Slice 56 - Public Release README
Date: 2026-06-29
Scope#
Replace the stale Node/npm public README with the Python local CodeAlmanac contract and make that contract executable through public tests.
This slice also records a public-release readiness gate so future work stops optimizing generic architecture once release proof is the higher-value work.
Non-Goals#
- No publish.
- No hosted CLI.
- No new command.
- No package-manager release automation.
- No viewer redesign.
Design#
README.md now documents:
codealmanacas the only public command.- Python 3.12+ as the runtime.
uv tool install codealmanacandpython -m pip install codealmanac.- The default configured root
almanac/. - Core read commands, lifecycle commands, sync, automation, jobs, providers, configuration, and public-contract exclusions.
pyproject.toml now declares readme = "README.md" and the Apache-2.0 license
file so package metadata points at the current public contract.
tests/test_public_contract.py checks the README contains the Python local
surface and rejects old Node/npm, almanac, hosted-dashboard, and absorb
language.
Cosmic Python Transfer#
Chapter 5's high-gear testing advice applies here: this is release behavior, so the test stays at the public contract level rather than pinning README sections to implementation internals.
Verification#
Initial focused gate:
uv run pytest tests/test_public_contract.py
uv run ruff check tests/test_public_contract.pyResult: 15 tests passed; focused ruff passed.
Full gate:
uv run pytest
uv run ruff check .
git diff --check
uv build --wheel --no-build-logs --out-dir /tmp/codealmanac-build-slice56Result: 238 tests passed; full ruff passed; diff hygiene passed; wheel built
as codealmanac-0.1.0-py3-none-any.whl.
Wheel inspection confirmed:
- README metadata exists as Markdown.
LICENSE.mdis recorded as a license file.- server assets are packaged.
- bundled manual files are packaged.
- prompt files are packaged.
Clean install dogfood installed the wheel into a throwaway Python 3.12 venv,
set an isolated HOME, initialized a temp repo, and ran the installed
codealmanac binary:
help_has_codealmanac=True
init_stdout=repo
search_stdout=getting-started
show_stdout=# Getting Started
health_keys=['broken_links', 'broken_xwiki', 'dead_refs', 'empty_pages', 'empty_topics', 'orphans']
jobs_stdout=
serve_workspace=repo
serve_page_count=1