Slice 57 - Real Codex Ingest Dogfood
Date: 2026-06-29
Purpose#
Move the public-release gate from fake harness confidence to a real Codex provider run against an isolated repo.
Scope#
- Run
IngestWorkflowwith the realCodexCliHarnessAdapter. - Keep the workspace registry isolated in a temp home.
- Let Codex use the real local login state.
- Verify generated wiki pages through CodeAlmanac read services and CLI behavior.
- Patch only issues exposed by dogfood.
Dogfood Shape#
The dogfood created a temp Git repo with:
almanac/initialized by the Python build workflow.notes/auth-boundary.mdas selected source material.- a committed clean baseline before Ingest.
- a temp registry path at
<temp-home>/.almanac/registry.json.
The service call shape matched the production boundary:
app = create_app(
AppConfig(registry_path=temp_home / ".almanac" / "registry.json"),
harness_adapters=(CodexCliHarnessAdapter(),),
)
app.workflows.build.initialize(InitializeWorkspaceRequest(path=repo))
app.workflows.ingest.run(
RunIngestRequest(
cwd=repo,
inputs=("notes/auth-boundary.md",),
harness=HarnessKind.CODEX,
)
)This follows the Cosmic Python service-layer shape: the CLI is not involved, the composition root wires the real adapter, and the workflow owns the product use case.
First Run Finding#
The first real Codex run completed and wrote one page under almanac/pages/.
The run log recorded lifecycle status plus provider output:
1 status queued ingest
2 status running
3 message verified clean almanac preflight
4 message resolved 1 source
5 message loaded 1 source runtime snapshot
6 output codex succeeded: Added one wiki page:
7 status doneThe generated page used [[workos]] and [[autumn]] page links even though
those pages did not exist. codealmanac health --json reported both as broken
links. The failure was prompt/manual quality, not workflow architecture.
Fix#
src/codealmanac/prompts/base/syntax.mdnow says page wikilinks must resolve.src/codealmanac/manual/pages.mdnow says page links are real wiki nodes, not automatic entity markup.src/codealmanac/manual/garden.mdnow tells Garden how to repair broken page links.- Prompt/manual tests pin those instructions.
The run also showed starter scaffold health noise from predefined empty topics.
starter_topics_yaml() now includes only the concepts topic used by the
starter page. A fresh-init health test guards against empty-topic, broken-link,
and dead-reference noise.
Second Run Evidence#
After the prompt/manual fix, a second real Codex run completed with:
- run id
ingest-20260629225644-1b61b756 - created page
almanac/pages/auth-membership-boundary.md codealmanac search authreturnedauth-membership-boundaryhealthreported no broken links, no dead refs, and no empty pages- provider names stayed as plain text instead of dangling page links
The only health item in the second run was the starter scaffold's old
operations empty topic, which this slice removes for new initialized repos.
Verification#
uv run pytest tests/test_prompts.py tests/test_manual.py tests/test_ingest_workflow.py::test_ingest_workflow_resolves_sources_runs_harness_and_refreshes_indexpassed before the scaffold change.uv run pytest tests/test_build_workflow.py::test_initialize_starter_wiki_has_no_health_noise tests/test_build_workflow.py::test_initialize_creates_almanac_wiki_and_registry tests/test_prompts.py tests/test_manual.py tests/test_ingest_workflow.py::test_ingest_workflow_resolves_sources_runs_harness_and_refreshes_indexpassed after the scaffold change.uv run pytestpassed with 239 tests.uv run ruff check .passed.git diff --checkpassed.