Docs sync: verify every document against the code and fix the drift #66
Loading…
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?
Goal
Audit every agent-pipeline and repo document against the code that actually implements it, fix the
drift you find, and report what you could not prove.
Scope (docs → code)
docs/agent-issue-pipeline.md→ the real run loop, cron jobs (gotoi-issue-runner,gotoi-guard,gotoi-integrator), PR targets (agent-develop), comment protocol.docs/agent-pipeline/*.md(verifier, reviewer, hidden-tests, integration-branch,forgejo-enforcement, quarantine, queue-plan, threat-model) →
scripts/agent-pipeline/*.AGENTS.md,README.md,scripts/README.md→ commands, gates, paths, branch rules..claude/skills/*→ the behaviour they instruct (forgejo.py subcommands, gate lists).docs/use-cases/README.md,docs/templates.md,docs-site/content/) →middleware/dashboard/agent behaviour only where you can cite a contradicting file:line or a
command's output.
Method
SYNC,STALEorUNVERIFIABLE.STALEwith a minimal docs commit per area (docs(<area>): …,Refs #<N>).explicit
UNVERIFIABLElist — claims that need a human or a live system to confirm.Constraints
Refs #<N>only). No pushing beyond your branch (the orchestratorpublishes).
Claimed — branch
issue/66-docs-sync. Doing: audit docs/agent-issue-pipeline.md, docs/agent-pipeline/.md, AGENTS.md, README.md, scripts/README.md and .claude/skills/ against scripts/code, fix STALE claims, report UNVERIFIABLE.Issue #66 — Docs sync: verify every document against the code and fix the drift
Restated goal
Audit every agent-pipeline and repo document claim against the code, script, workflow, or live
system that actually implements it; record
SYNC/STALE/UNVERIFIABLEper claim withfile:lineor command output as evidence; fix everySTALEclaim with the minimum docs commit(
docs(<area>): …,Refs #66); post exactly one findings comment plus the four protocol comments."Done" for the operator means: the docs a contributor or the coding agent reads before acting —
AGENTS.mdbranch rules,docs/agent-issue-pipeline.md,docs/agent-pipeline/*.md,scripts/README.md,.claude/skills/*— no longer send them to a branch, script, or cron that doesnot exist, or omit one that does. Claims that cannot be checked without a human (cron internals,
Forgejo UI behaviour, operator credentials) are listed explicitly as
UNVERIFIABLE, not guessed.Scope
Files I intend to change (docs only):
AGENTS.md— Branches table, mermaid, and the three branch bullets (issue branches cut from andPR'd against
agent-develop, notdevelop).docs/agent-pipeline/integration-branch.md— §"What is NOT wired yet".docs/agent-pipeline/reviewer.md— thegotoi-run-capture"archived hourly" claim (cron disabled).scripts/README.md— service registry (3 → 5) and the TUI layout/keys line..claude/skills/gotoi-issue-flow/SKILL.md— the closing "Auto-merge … do not exist" paragraph andthe "Two copies exist" count.
Files I will not touch (explicit non-scope):
middleware/,dashboard/,agent/code — no contradicting code found yet; if the driftturns out to be code, I stop and say so in the comment first (issue constraint).
/home/eduardez/workspace/gotoi(live checkout),~/.hermes/**(outside the worktree, HARD LAW 5),plans/(product content, HARD LAW 6).docs/agent-pipeline/*.md(threat-model,forgejo-enforcement,quarantine,hidden-tests,verifier/verifier-matrix,queue-plan,anti-tampering,baseline,triage,ci-breakdown,phase*) — spot-checked and matching so far; touched only if a new contradiction appears.UC decision
No UC. The issue is internal dev/agent tooling documentation (
docs/agent-issue-pipeline.mditself documents tooling that lives outside the product), not a middleware route, agent entry point,
dashboard page, CLI subcommand, or operator-facing capability.
docs/agent-issue-pipeline.md's ownheader scopes it as operator-run pipeline docs. Adding a UC for a docs-sync pass would violate
gotoi-uc-gatestep 2 (Implementation must cite a real handler). Nothing in the diff adds or renamesa feature, so
docs/use-cases/_check.pymust stay green without a new file; that is the gate.Ordered tasks (each with its verifying command)
Verify:
git rev-list --left-right --count origin/develop...origin/agent-develop(topology),ls scripts/agent-pipeline/(integrate.pyexists),ls ~/.hermes/cron/jobs.json+rg -n 'gotoi-(integrator|run-capture)' ~/.hermes/cron/jobs.json(cron entries),sed -n '63,118p' scripts/tui.py(SERVICES = 5) — already run, evidence in hand.AGENTS.mdbranch block. Issue branches cut fromorigin/agent-develop, PR targetsagent-develop;developkeeps the promotion role.Verify:
rg -n 'agent-develop' AGENTS.mdshows the issue→agent-develop edges and no remaining"PR targets
develop" line for issue branches.docs/agent-pipeline/integration-branch.md§"What is NOT wired yet".integrate.pyexists (339 lines), is wired as cron
gotoi-integrator(every 30 min,no_agent,~/.hermes/scripts/gotoi-integrate.sh), and the runner law already targetsagent-develop.Verify:
rg -n 'NOT wired' docs/agent-pipeline/integration-branch.mdreturns nothing stale;every remaining claim in the section cites a file or command that exists.
.claude/skills/gotoi-issue-flow/SKILL.md. Replace the "Auto-merge … do not exist"paragraph with the live wiring; "two copies" → three, md5-identical.
Verify:
rg -n 'do not exist|two copies' .claude/skills/gotoi-issue-flow/SKILL.mdempty.scripts/README.md. Registry is five services; ASCII layout and key row updated.Verify:
rg -n 'middleware.*,.*postgres.*,.*dashboard' scripts/README.mdshows 5 ids.docs/agent-pipeline/reviewer.md. Thegotoi-run-capturecron is disabled(paused 2026-10-07); state the artifact is a snapshot, not hourly.
Verify:
rg -n 'run-capture' docs/agent-pipeline/reviewer.mdno longer claims hourly archiving.python3 docs/use-cases/_check.py;python3 scripts/check-ai-headers.py;python3 scripts/check-type-mirror.py;rg -n 'Showing lines' --glob '!node_modules' --glob '!.git'.No code touched →
bun test/go testnot required; run them anyway if anything beyond markdown moves./home/eduardez/workspace/gotoi-wt/meta/issue-66.report.md, then theDONE|PARTIAL|BLOCKEDcomment with hashes and one line per gate.Open questions → assumptions I proceed on
agent-developreally the live PR target? Three independent live sources agree: thegotoi-issue-runnercron prompt (law 2), thegotoi-integratorAPPLY output, and branch topology(
origin/agent-developcontains the merge commitb64f46afor issue #58). → Assume yes; AGENTS.mdis the drift.
no_agentscript? Assumption: "wired" means a cronentry exists and its script execs the repo tool — true here → the doc's "does not exist" claim is STALE.
develop? No —origin/develop:AGENTS.mdcarries thesame stale text; the promotion PR is the path. → Report it; do not touch
develop.~/.hermes/*drift (skill copy, run-capture cron) is outside the worktree → reported asUNVERIFIABLE/note, never edited (HARD LAW 5).Risk and fallback
develop→agent-developin AGENTS.md could contradict a genuine release-mergerule. Fallback: keep the
main/developrelease sentence untouched, change only theissue-branch rows/bullets, and note the split explicitly.
files carry the five-field header except
docs/agent-pipeline/*.mdif they have one — updateLast:there;
AGENTS.mdandscripts/README.mdhave no header.(issue constraint 3).
DONE — docs sync audit complete. Branch
issue/66-docs-sync, 5 commits, not pushed.Commits:
Gates (all exit 0):
bun test/bun run check/go testnot run: markdown only, zero code touched.STALE claims fixed (10 in 9 files):
AGENTS.md— said every change lands ondevelopand issue branches are cut from it. Reallyagent-developis the PR target;developtakes one promotion PR per batch.integration-branch.md— saidintegrate.py"does not exist" and "nothing merges"; tool +gotoi-integratorcron exist. It merges nothing because CI never reports on anagent-developPR.triage.md§3,docs/agent-issue-pipeline.md§2/§5 — same correction.phase3-design.md— S10 hidden tests marked "not built";hidden-tests.shlanded after the file.anti-tampering.md— cited--base origin/develop; workflow passesgithub.base_ref.reviewer.md— said the run report is archived hourly bygotoi-run-capture; that job is disabled.scripts/README.md— registry is five services (docs, marketing missing), keys1..5.gotoi-issue-flow/SKILL.md— "two copies" offorgejo.py(three, md5-identical); integrator "does not exist".Verified SYNC, no change needed: README env/API tables +
agent-updates.tsroutes + deploy paths; job HMAC is the enroll secret on both sides; most ofdocs/agent-pipeline/;queue-plan.md:67andphase1-readiness.md:100still accurate.Needs a human decision (documented in
integration-branch.md§"What is still missing", not fixed here — it is a workflow change, outside a docs issue):agent-develop(build-agent.yml:15,agent-guards.yml:10listmain/develop). The branch rule requires the same five contexts, so the bot can never satisfy them andintegrate.pyrefuses every merge —not-greenon every tick,total_count: 0on PRs #61/#64/#65, and PR#63/#64/#65 were allmerged_by: EduarD3V. One line per workflow addsagent-develop.origin/develop:AGENTS.mdstill carries the stale branch text — this fix only lands via the promotion PR.UNVERIFIABLE (outside the worktree, law 5):
~/.hermes/skills/gotoi/gotoi-coding-agent/SKILL.md:373saysgotoi-run-captureruns hourly; the job is disabled (paused 2026-10-07T07:37).REVIEW: FIXED 2 — findings: (1) integration-branch.md claimed all operator merges happened on empty status lists and that every cron tick prints not-green — PR#63's head has 21 statuses and only 21 of 50 recorded ticks print not-green; fixed in
aead4df. (2) phase3-design.md contradicted itself — S10 heading said built while 'What remains' still listed it pending, and S13 read 'built once the queue carried real work' beside an empty-queue verdict; fixed in55872c1. (3) plan fidelity: 4 files outside the plan's Scope list were touched (agent-issue-pipeline.md, anti-tampering.md, phase3-design.md, triage.md) — all inside the issue's own scope or the plan's conditional clause, no fix needed. (4) report coverage gaps: no explicit verdict recorded for docs/agent-pipeline/hidden-tests.md, the product docs (use-cases/README.md, templates.md, docs-site), or the non-issue-flow skill gate lists — spot-checked SYNC here (hidden-tests.sh CLI matches hidden-tests.md; docs-site commands/ports match the code), rest UNFIXED. (5) AGENTS.md's new 'gotoi-agent is on agent-develop's merge allowlist' claim rests on integration-branch.md's proven table: GET /branch_protections 403s as the bot, not re-verifiable. Gates re-run green: _check.py, check-ai-headers.py, check-type-mirror.py, no 'Showing lines' artifacts, 9/9 files markdown, selftest-integrate 15/15, selftest-queue-plan 8/8. UNFIXED: (4) full product-doc and skill gate-list audit, (5) whitelist re-verification — both need operator/API access beyond this session.DONE — branch issue/66-docs-sync pushed, PR #69 opened to agent-develop: #69. 7 commits (5 docs fixes + 2 review fixes), 10 STALE claims corrected across 9 markdown files, docs-only diff. Gates (orchestrator-run, on final tree): _check.py 0 (358 UCs), check-ai-headers 0 (573 ok), check-type-mirror 0, 'Showing lines' hits pre-existing at base only. Review: FIXED 2 (
aead4df,55872c1); UNFIXED: product-doc/skill gate-list full audit + agent-develop merge-allowlist re-verification (operator/API access). Human decisions flagged in thread: CI workflows build-agent.yml/agent-guards.yml never run on PRs into agent-develop, so integrate.py can never see green contexts.