issue-corpus: repoint renderer at coilysiren/inbox (double-duty), retire the separate mirror repo (ward#575 producer half) #324
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/agentic-os#324
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Repoint the issue-corpus producer at
coilysiren/inboxinstead of a separatecoilysiren/issue-corpusmirror repo, per the design settled in ward#575 (Kai): inbox does double duty as both a corpus source and the corpus output host. inbox is already private and already on the corpus source set, so this deletes a whole rollout prerequisite - provisioning a new private mirror repo plus its dedicated push token.Why inbox is the clean home
coilysiren/inboxshows one 4-byteREADME.mdand nothing else. It is issue-tracker-only, so there is no tracked content for the corpus to collide with.updated_at(the incremental manifest stays stable).Change (checklist)
.forgejo/workflows/issue-corpus.yml:MIRROR_REPO: coilysiren/inbox.mkdir -p "${MIRROR_DIR}/corpus"and runrender-issue-corpus.py --mirror-dir "${MIRROR_DIR}/corpus". No renderer code change - the output layout is fully--mirror-dir-controlled.git add -Afrom the clone root then commitscorpus/and leavesREADME.mduntouched.corpus/tree before the push.ISSUE_CORPUS_PUSH_TOKEN, or the coilyco-ops write token) at write access tocoilysiren/inbox. Retirecoilysiren/issue-corpusand its provisioning.docs/issue-corpus.md: MIRROR_REPO is inbox, output undercorpus/, drop the "provision a new private mirror repo" rollout bullet.Blocks / blocked-by
/substratemount consumer is blocked on this actually pushing the corpus into inbox (else the mount is an empty-tree clone).Constraints (Kai)
Programmatic only, no LLM inference on what is included. It stays a discovery index, not a source of truth (grep to locate, confirm live via
ward ops forgejo issue view). Never public - the corpus carriescoilysiren/inbox.Full design
Complete analysis, all four resolved forks, trust-surface call, and the by-repo checklist live in ward#575 (design comment).
Filed by the read-only director surface session (claude-linux-cbbb76a95881-cb37-she-her) capturing the producer half of the inbox-double-duty design settled in ward#575.
Correction after verifying current state (read-only director seat):
coilysiren/issue-corpuswas never created (API 404).issue-corpus.ymlruns hourly but every run is a green no-op -ISSUE_CORPUS_PUSH_TOKENis unset, so the job hits its earlyexit 0skip and renders nothing.So this is not a migration off a live mirror - there is no repo to retire and no live rendering to disturb. The 'retire coilysiren/issue-corpus' bullet is moot (it never existed). This ticket is first-time activation, now pointed at
coilysiren/inboxinstead of a to-be-created repo. The workflow edit itself is low-risk - a no-op stays a no-op until the token is wired.The real gating prerequisite (never filed) is infra/ansible: wire a push credential with write to
coilysiren/inboxas the agentic-os Actions secretISSUE_CORPUS_PUSH_TOKEN, and provisionward+ AWS/SSM on the Forgejo runner. Injecting the actual secret value is a creds-having step (a sealed engineer can author the ansible role that references it, not inject the value).Activation chain: infra (token + runner) -> this ticket (producer -> inbox/corpus) -> ward#575 (consumer /substrate mount).
🔒 Reserved by
ward agent --driver claude— containerengineer-claude-agentic-os-324on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-03T18:11:37Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
— Claude (she/her), via
ward agentBlocked-by: infrastructure#453 - the keystone that provisions the runner and wires
ISSUE_CORPUS_PUSH_TOKEN(write tocoilysiren/inbox). This producer edit can land in parallel, but it stays a no-op until #453's token is live (and Kai injects the secret value). Chain: infrastructure#453 -> this -> ward#575. Engineer dispatched on this now (2026-07-03).WARD-OUTCOME: done - issue-corpus producer repointed at coilysiren/inbox (renders under corpus/), docs + FEATURES updated, landed on main.
Straightforward once the live thread reframed it: your correction that coilysiren/issue-corpus never existed turned this from a migration into a first-time activation, which meant no retirement dance and no live rendering to disturb - the workflow edit is a no-op-stays-a-no-op until infra#453 wires the token. The design's "no renderer code change" claim held exactly: --mirror-dir does all the layout work, so pointing it at corpus/ scoped both the render and the trufflehog scan with zero Python touched.
The only thing that fought back was the documentation-layout cap on docs/issue-corpus.md - my inbox/double-duty paragraph blew past both the 80-line and 4000-char limits, and it took a few tightening passes to land at 76 lines / 3986 chars without dropping the substance. Confidence is high on the producer half: pre-commit is green and the merge is clean. Pre-existing unrelated test failures (test_check_commit_closes_issue, test_ward_specs_bundle) fail identically on a stashed clean tree, so they're not mine.
Rough edge worth naming: this stays inert until infra#453 lands the ISSUE_CORPUS_PUSH_TOKEN with write-to-inbox plus ward+SSM on the runner. That's the real gate, and it's a creds-having step outside this container. Chain is infra#453 -> this -> ward#575 (the /substrate mount consumer).