Skip to content

Commit d67acc1

Browse files
authored
Merge pull request #26 from saagpatel/feat/doc-truth-up-command
feat(docs): doc-truth-up kit — parallel runner + FF-merge helper
2 parents d41e46a + e68e719 commit d67acc1

12 files changed

Lines changed: 12551 additions & 0 deletions

docs/commands/doc-truth-up.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
description: Reconcile this repo's documentation to the current state of its code. Read-only on code; edits docs only. Runs unattended (no questions).
3+
allowed-tools: Read, Grep, Glob, Edit, Write, Bash(date:*), Bash(git status:*), Bash(git checkout:*), Bash(git branch:*), Bash(git add:*), Bash(git commit:*), Bash(git diff:*), Bash(git log:*), Bash(git rev-parse:*)
4+
---
5+
6+
You are running **unattended** in a fresh session inside ONE target repository. Your only job:
7+
make this repo's **documentation accurately reflect the current state of its code** — and change
8+
nothing else.
9+
10+
## Absolute rules (non-negotiable)
11+
12+
1. **Code is read-only ground truth.** You may READ any file. You may EDIT only documentation:
13+
`README.md`, `CLAUDE.md`, `AGENTS.md`, a new `DOC-RECONCILIATION.md`, and anything under `docs/`.
14+
Never create, modify, or delete source code, config, tests, lockfiles, or any non-doc file.
15+
2. **Do not execute anything.** No running the app, no builds, installs, test runs, or project
16+
scripts. Determine reality by READING: source, test files, manifests, git history. (Reading a
17+
test file is fine; running it is not.)
18+
3. **Do not push. Do not commit to `main`/`master`.** Work on a branch.
19+
4. **Run unattended — never ask the user a question.** Where you would normally ask, instead record
20+
the ambiguity in the report and proceed conservatively (leave the doc unchanged, mark it
21+
`unverifiable`).
22+
5. **Never guess or upgrade a claim the code can't support.** If the code can't confirm something,
23+
leave the doc text as-is and mark it `unverifiable` with the reason. Honesty over completeness.
24+
6. **Preserve human-authored nuance.** Don't delete content you merely can't verify — flag it.
25+
Edit surgically, in each doc's existing voice and structure. Smaller diffs are better.
26+
27+
## What "current state" means
28+
29+
**Accuracy, not completeness.** A half-built project should get docs that honestly say
30+
"Phase 2 of 4 — X built, Y stubbed, Z not started." A finished-but-underdocumented project should
31+
get its docs brought **up** to reflect what's actually there. If the code shows the project is
32+
broken or stalled, the doc should say so plainly — you report the state, you never fix it.
33+
34+
## Procedure
35+
36+
**0 · Orient.** Identify the project type from manifests (`package.json`, `Cargo.toml`,
37+
`pyproject.toml`, `go.mod`, `*.xcodeproj` / `Package.swift`, etc.). List the doc files present and
38+
the top-level directory structure. Note the current git branch and HEAD sha.
39+
40+
**1 · Establish ground truth from code (read-only).** Gather evidence for each of the six claims:
41+
- **What it is** — entry points (main / index / app / route files / CLI commands / library root),
42+
core modules, README intro.
43+
- **Current state** — implemented features vs. stubs/TODOs; presence and breadth of tests; recent
44+
git history; any `STATUS` / `ROADMAP` / `HANDOFF` docs. Be conservative about status labels.
45+
- **Stack** — languages, frameworks, key tools, from manifests + a file-extension census.
46+
- **How to run** — the run/build commands that **actually exist** (package.json scripts, Makefile
47+
targets, Cargo bins, `console_scripts`, etc.). Confirm whether the documented command is defined.
48+
Do **not** execute it.
49+
- **Known risks** — only flag where docs and code **contradict** (e.g., "doc says no tests" but a
50+
full suite exists; "doc says SQLite" but code uses Postgres).
51+
- **Next move** — what's demonstrably incomplete (stubs, TODOs, roadmap items absent from code).
52+
53+
**2 · Compare.** For each of the six claims, classify against the docs:
54+
- `consistent` — the docs already match the code. Leave the text alone.
55+
- `drifted` — the docs are wrong or stale. Fix them.
56+
- `unverifiable` — the code can't confirm it (forward-looking or too vague). Leave the text alone.
57+
Cite evidence for each as `path:line`.
58+
59+
**3 · Reconcile the docs.** For every `drifted` claim, edit the relevant doc so it matches reality —
60+
minimal, in-voice edits. Do not touch `consistent` or `unverifiable` text. Do not restructure or
61+
reformat beyond the specific correction.
62+
63+
**4 · Write the reconciliation record.** Create/overwrite `DOC-RECONCILIATION.md` at the repo root,
64+
in this order:
65+
- **Why this file exists** (2–3 sentence preamble): state that it was generated by the
66+
`/doc-truth-up` documentation-reconciliation pass, which treats the code as read-only ground truth
67+
and edits only documentation so it reflects the repo's actual current state — it changed no code
68+
and ran no builds or tests. This explains the file's purpose to anyone who finds it later.
69+
- **Per-claim findings** — for each of the six claims: its status
70+
(`consistent` / `drifted` / `unverifiable`), the evidence basis (`verified-by-reading-code` or
71+
`unverifiable-because-<reason>`), and — for `drifted` claims — what you changed (file + a one-line
72+
before→after gist).
73+
- **Contradictions for manual review** — if you find real drift in a file you are NOT allowed to
74+
edit (anything outside `README.md` / `CLAUDE.md` / `AGENTS.md` / `DOC-RECONCILIATION.md` / `docs/`,
75+
e.g. `IMPLEMENTATION-ROADMAP.md`, `HANDOFF.md`, `STATUS.md`), do NOT edit that file. List it here
76+
with `path:line`, what is wrong, and the one-line fix a human should make. (Omit this section if
77+
there are none.)
78+
- **Footer** — a full **date + time stamp** (run `date "+%Y-%m-%d %H:%M:%S %Z"` and use its output),
79+
the branch name, and the HEAD sha you reconciled against (`git rev-parse HEAD`).
80+
81+
This is the auditable sign-off the operator will batch-review.
82+
83+
**5 · Commit on a branch.** `git checkout -b docs/truth-up-<YYYY-MM-DD>`; stage **only** doc files;
84+
commit with `docs: reconcile documentation to current code state`. Do **not** push. Do **not**
85+
commit to main/master. If any non-doc file shows up in `git status`, STOP, do not commit it, and
86+
report it in the summary instead.
87+
88+
## Finish with a one-screen summary (for batch review)
89+
90+
Print a block under ~15 lines so a reviewer scanning 100 of these can triage fast:
91+
- repo name · branch created · HEAD sha reconciled against · date+time stamp
92+
- per-claim one-word status (6 claims)
93+
- counts: `consistent` / `drifted-fixed` / `unverifiable`
94+
- doc files changed (paths)
95+
- any code↔doc contradictions worth a human's eye, in one line each
96+
- any non-doc files that unexpectedly appeared in `git status` (should be none)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
doc-truth-up batch · 80 repo(s) · tier=2 · model=sonnet · concurrency=8 · EXECUTE
2+
[1/80] AssistSupport-security-alerts → skipped (not a git repo)
3+
[2/80] AIFortuneTeller → already_done
4+
[3/80] ArguMap → already_done
5+
[4/80] APIReverse → already_done
6+
[5/80] BrowserHistoryVisualizer → already_done
7+
[6/80] Calibrate → already_done
8+
[7/80] Chromafield → already_done
9+
[8/80] Codec → skipped (uncommitted tracked changes)
10+
[9/80] AssistSupport → skipped (uncommitted tracked changes)
11+
[10/80] Fun:GamePrjs/DeepTank → skipped (uncommitted tracked changes)
12+
[11/80] Fun:GamePrjs/ CryptForge → skipped (uncommitted tracked changes)
13+
[12/80] Fun:GamePrjs/DesktopPEt → skipped (uncommitted tracked changes)
14+
[13/80] Fun:GamePrjs/EarthPulse → skipped (uncommitted tracked changes)
15+
[14/80] FunGamePrjs/OrbitForge → skipped (uncommitted tracked changes)
16+
[15/80] GPT_RAG → skipped (uncommitted tracked changes)
17+
[16/80] EvolutionSandbox → ran
18+
[17/80] Devil's Advocate → ran
19+
[18/80] ITPRJsViaClaude/IncidentWorkbench → skipped (uncommitted tracked changes)
20+
[19/80] ITPRJsViaClaude/KBFreshnessDetector → skipped (uncommitted tracked changes)
21+
[20/80] ITPRJsViaClaude/PersonalKBDrafter → skipped (uncommitted tracked changes)
22+
[21/80] Fun:GamePrjs/DesktopTerrarium/desktop_terrarium → ran
23+
[22/80] ITPRJsViaClaude/SmartClipboard → skipped (uncommitted tracked changes)
24+
[23/80] ConvictionMapper → ran
25+
[24/80] ITPRJsViaClaude/TicketDashboard → skipped (uncommitted tracked changes)
26+
[25/80] ITPRJsViaClaude/TicketHandoff → skipped (uncommitted tracked changes)
27+
[26/80] IncidentMgmt → skipped (uncommitted tracked changes)
28+
[27/80] IncidentReview → skipped (uncommitted tracked changes)
29+
[28/80] GlassLayer → ran
30+
[29/80] JSMTicketAnalyticsExport → skipped (uncommitted tracked changes)
31+
[30/80] Fun:GamePrjs/PomGambler → ran
32+
[31/80] Fun:GamePrjs/OrbitForge → ran
33+
[32/80] ComplianceKit → ran
34+
[33/80] HowMoneyMoves → ran
35+
[34/80] LifeCadenceLedger → ran
36+
[35/80] MoneyPRJsViaGPT/AIGCCore → skipped (uncommitted tracked changes)
37+
[36/80] MoneyPRJsViaGPT/SignalFlow → skipped (uncommitted tracked changes)
38+
[37/80] ITPRJsViaClaude/SnippetLibrary → ran
39+
[38/80] MCPAudit → ran
40+
[39/80] Premise → skipped (uncommitted tracked changes)
41+
[40/80] JobMarketHeatmap → ran
42+
[41/80] ITPRJsViaClaude/ScreenshotAnnotate → ran
43+
[42/80] Interruption Resume Studio → ran
44+
[43/80] Misc:NoGoPRJs/app → ran
45+
[44/80] Liminal → ran
46+
[45/80] NetworkDecoder → ran
47+
[46/80] NeuralNetwork → ran
48+
[47/80] ScreenshottoDataSelect → ran
49+
[48/80] Pulse Orbit → ran
50+
[49/80] RedditSentimentAnalyzer → ran
51+
[50/80] ResumeEvolver → ran
52+
[51/80] ReturnRadar → ran
53+
[52/80] RoomTone → ran
54+
[53/80] TradeOffAtlas → ran
55+
[54/80] VanityPRJs/Relay → skipped (uncommitted tracked changes)
56+
[55/80] Sovereign → ran
57+
[56/80] VanityPRJs/Chronomap → ran
58+
[57/80] Seismoscope → ran
59+
[58/80] Signal & Noise → ran
60+
[59/80] VanityPRJs/Conductor → ran
61+
[60/80] evals → skipped (not a git repo)
62+
[61/80] VanityPRJs/Echolocate → ran
63+
[62/80] da-scaffold → ran
64+
[63/80] Terroir → ran
65+
[64/80] mcpforge-hosted-ts-smoke → skipped (not a git repo)
66+
[65/80] mcpforge-openai-full-smoke-gate → skipped (not a git repo)
67+
[66/80] mcpforge-openai-remote-openapi-readiness → skipped (not a git repo)
68+
[67/80] mcpforge-openapi-auth-smoke-fixture → skipped (not a git repo)
69+
[68/80] mcpforge-ts-hardening → skipped (not a git repo)
70+
[69/80] mcpforge-v03-builder → skipped (not a git repo)
71+
[70/80] resume-evolver-tmp-1776063720 → skipped (uncommitted tracked changes)
72+
[71/80] VanityPRJs/TerraSynth → ran
73+
[72/80] bridge-db → ran
74+
[73/80] visual-album-studio → skipped (uncommitted tracked changes)
75+
[74/80] cross-system-smoke → ran
76+
[75/80] ink → ran
77+
[76/80] Wavelength → ran
78+
[77/80] knowledgecore → ran
79+
[78/80] stockpulse → ran
80+
[79/80] thought-trails → ran
81+
[80/80] mcpforge → ran
82+
83+
Done. {'skipped': 31, 'already_done': 6, 'ran': 43}
84+
Results: /Users/d/Projects/GithubRepoAuditor/output/doc-truth-up-run-2026-05-30.json
85+
Review each repo's docs/truth-up-* branch, then merge or delete. Nothing was pushed.

0 commit comments

Comments
 (0)