{"id":50721205,"url":"https://github.com/codeforester/base-demo","last_synced_at":"2026-06-10T00:01:35.586Z","repository":{"id":361731222,"uuid":"1255582910","full_name":"codeforester/base-demo","owner":"codeforester","description":"Reference Base-managed project and interactive demo","archived":false,"fork":false,"pushed_at":"2026-06-01T02:11:19.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T03:23:24.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeforester.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-01T01:42:39.000Z","updated_at":"2026-06-01T02:11:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/codeforester/base-demo","commit_stats":null,"previous_names":["codeforester/base-demo"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/codeforester/base-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforester%2Fbase-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforester%2Fbase-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforester%2Fbase-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforester%2Fbase-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeforester","download_url":"https://codeload.github.com/codeforester/base-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforester%2Fbase-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34130642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-10T00:01:34.801Z","updated_at":"2026-06-10T00:01:35.579Z","avatar_url":"https://github.com/codeforester.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# base-demo\n\nReference Base-managed project and interactive demo.\n\nThis repository is the public reference project for Base-managed repositories.\nIt starts with a small, inspectable baseline before the interactive walkthrough\nis layered in.\n\n## Quick Start\n\nClone `base` and `base-demo` as peer directories:\n\n```bash\ngit clone https://github.com/codeforester/base.git\ngit clone https://github.com/codeforester/base-demo.git\n```\n\nFrom the `base-demo` repository root on a machine where Base is already set up:\n\n```bash\nbasectl projects list\nbasectl setup base-demo\nbasectl check base-demo\nbasectl doctor base-demo\nbasectl repo check .\nbasectl run base-demo --list\nbasectl run base-demo hello\nbasectl test base-demo\nbasectl activate base-demo\nbasectl demo base-demo\n```\n\nThe commands above exercise the complete Base project loop:\n\n- `basectl projects list` proves the repository is discoverable from the\n  workspace.\n- `basectl setup base-demo` reconciles the project manifest, Brewfile, and\n  project virtual environment.\n- `basectl check base-demo` and `basectl doctor base-demo` validate the local\n  project environment.\n- `basectl repo check .` validates the standard repository baseline files.\n- `basectl run base-demo --list` shows the manifest-declared project commands.\n- `basectl run base-demo hello` runs the `hello` command from the project root.\n- `basectl test base-demo` runs the manifest-declared test command.\n- `basectl activate base-demo` starts a project shell with the activation\n  source applied.\n- `basectl demo base-demo` runs the project-owned walkthrough.\n\nExpected command output includes:\n\n```text\n$ basectl run base-demo --list\nCommands for project 'base-demo'\n\ntest                 ./tests/validate.sh\nhello                ./src/hello.sh\nenv                  ./src/env.sh\nmanifest             ./src/manifest.sh\npython-info          ./bin/base-demo-python-info\n\n$ basectl run base-demo hello\nhello from base-demo\nBASE_PROJECT=base-demo\nBASE_DEMO_ENV=unset\n\n$ basectl test base-demo\nRepository baseline is present.\n```\n\n`BASE_DEMO_ENV` becomes `baseline` inside `basectl activate base-demo`,\nbecause activation sources `.base/activate.sh` into the project shell.\n\n## Repository Shape\n\n- `base_manifest.yaml` declares the project name, activation source, command,\n  test command, and Brewfile location using current Base contracts.\n- `Brewfile` is the Homebrew-owned place for ordinary macOS tools.\n- `.base/activate.sh` demonstrates project activation state.\n- `src/hello.sh`, `src/env.sh`, and `src/manifest.sh` are tiny command targets\n  for `basectl run`.\n- `lib/python/base_demo_cli` is a tiny Python command target that runs inside\n  the Base-managed project environment.\n- `bin/base-demo-python-info` is the Bash launcher that delegates the Python\n  package to `base-wrapper`.\n- `demo/demo.sh` is the interactive walkthrough.\n- `tests/validate.sh` verifies that the repository baseline is intact.\n\n## Manifest Contract Map\n\n`base_manifest.yaml` is the project contract Base reads. In this repository,\neach field maps to a visible Base workflow:\n\n| Manifest field | Demonstrated by | Purpose |\n| --- | --- | --- |\n| `schema_version` | `basectl setup base-demo` | Declares the manifest contract version Base should parse. |\n| `project.name` | `basectl projects list` | Gives Base the stable project name used by setup, check, doctor, run, test, activate, and demo. |\n| `brewfile` | `basectl setup base-demo` | Delegates ordinary Homebrew dependencies to `brew bundle`. This demo keeps the Brewfile empty on purpose. |\n| `activate.source` | `basectl activate base-demo` | Sources project-owned shell state into the activated project shell. |\n| `commands` | `basectl run base-demo --list` | Declares named project commands such as `hello`, `env`, `manifest`, and `python-info`. |\n| `test.command` | `basectl test base-demo` | Defines the project-owned validation command. |\n| `demo.script` | `basectl demo base-demo` | Defines the project-owned interactive walkthrough. |\n| `artifacts` | `basectl setup base-demo` | Lists Base-managed artifacts. The baseline demo uses an empty list to avoid unnecessary installs. |\n\nThe demo intentionally uses shell scripts, one standard-library Python module,\nand no external runtime dependencies.\nMore specialized examples, such as Python, Go, Docker, or service demos, should\nstay small or move into separate demo repositories when they need their own\nsetup story.\n\nFor CI or scripted validation, run the walkthrough without prompts:\n\n```bash\nbasectl demo base-demo -- --non-interactive\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforester%2Fbase-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeforester%2Fbase-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforester%2Fbase-demo/lists"}