Context
base_manifest.yaml declares artifacts: [] — the README explains this avoids unnecessary installs. As a result, basectl setup runs but produces no visible artifact reconciliation output, and the manifest contract map lists artifacts → basectl setup with nothing to show for it.
This is the only manifest field in the contract map that produces no observable effect during the demo. A learner cannot understand what artifacts does or why they would use it.
Scope
- Declare at least one artifact in
base_manifest.yaml. The best candidate is the existing base_demo_cli Python package in lib/python/: declaring it as a python-package artifact means basectl setup installs it into the project virtual environment, which is directly observable.
- Alternatively, declare a Homebrew tool from the artifact registry (e.g.
jq) if that better fits the demo story.
- Update the README Manifest Contract Map table to show the declared artifact and the
basectl setup output it produces.
- Update
tests/validate.sh to assert at least one artifact is declared (the list is non-empty).
- If the artifact changes CI setup time materially, note that in the PR.
Validation
basectl setup base-demo --dry-run output lists the declared artifact.
basectl setup base-demo installs the artifact into the project venv.
grep -A2 'artifacts:' base_manifest.yaml shows a non-empty list.
./tests/validate.sh
Context
base_manifest.yamldeclaresartifacts: []— the README explains this avoids unnecessary installs. As a result,basectl setupruns but produces no visible artifact reconciliation output, and the manifest contract map listsartifacts→basectl setupwith nothing to show for it.This is the only manifest field in the contract map that produces no observable effect during the demo. A learner cannot understand what
artifactsdoes or why they would use it.Scope
base_manifest.yaml. The best candidate is the existingbase_demo_cliPython package inlib/python/: declaring it as apython-packageartifact meansbasectl setupinstalls it into the project virtual environment, which is directly observable.jq) if that better fits the demo story.basectl setupoutput it produces.tests/validate.shto assert at least one artifact is declared (the list is non-empty).Validation
basectl setup base-demo --dry-runoutput lists the declared artifact.basectl setup base-demoinstalls the artifact into the project venv.grep -A2 'artifacts:' base_manifest.yamlshows a non-empty list../tests/validate.sh