Regenerate docs/api and llms.txt for the undocumented core modules #440

Open
opened 2026-08-23 19:29:17 +00:00 by mph · 6 comments
Owner

docs/api/ and llms.txt describe a codebase that no longer exists.

Evidence

The last commit to touch the published copies is d52fce4 (2026-06-12). Since then roughly 22 modules were added under core/model|adapters|output with no page and no index line — among them:

WorktreeKey, EffortSlug, ForgeConfig, ForgejoUrl, ForgejoClient, Herdr, TerminalWorkspaceBackend, WorkflowGate, CiGate, CiLog, DashboardJar

and a further ~24 modules and 9 command scripts changed.

Why it went unnoticed

.claude/skills/build-iw-cli-skills/SKILL.md:66 states the staleness rule: a changed file under core/model/ stales its module page. IW-423 Phase 2 followed that rule and refreshed docs/api/ServerTypes.md, docs/api/Constants.md and llms.txt — the two pages it staled — which touched none of the missing 22.

Lesson: a staleness rule keyed on "the page for a changed module" cannot detect a module that never had a page, so the index silently stops describing the codebase.

Fix

  • Regenerate docs/api/ and llms.txt for the undocumented core modules.
  • Give build-iw-cli-skills a check for modules that have no page at all, not only pages that went stale.

Index lines were deliberately not added for the missing modules during IW-423, because a link to a docs/<Module>.md that does not exist is worse than no line.


Recorded during IW-423; see project-management/issues/IW-423/LESSONS.md entry 17.

`docs/api/` and `llms.txt` describe a codebase that no longer exists. ## Evidence The last commit to touch the published copies is `d52fce4` (2026-06-12). Since then roughly 22 modules were added under `core/model|adapters|output` with no page and no index line — among them: `WorktreeKey`, `EffortSlug`, `ForgeConfig`, `ForgejoUrl`, `ForgejoClient`, `Herdr`, `TerminalWorkspaceBackend`, `WorkflowGate`, `CiGate`, `CiLog`, `DashboardJar` and a further ~24 modules and 9 command scripts changed. ## Why it went unnoticed `.claude/skills/build-iw-cli-skills/SKILL.md:66` states the staleness rule: a changed file under `core/model/` stales its module page. IW-423 Phase 2 followed that rule and refreshed `docs/api/ServerTypes.md`, `docs/api/Constants.md` and `llms.txt` — the two pages it staled — which touched none of the missing 22. **Lesson:** a staleness rule keyed on "the page for a changed module" cannot detect a module that never had a page, so the index silently stops describing the codebase. ## Fix - Regenerate `docs/api/` and `llms.txt` for the undocumented core modules. - Give `build-iw-cli-skills` a check for modules that have no page at all, not only pages that went stale. Index lines were deliberately not added for the missing modules during IW-423, because a link to a `docs/<Module>.md` that does not exist is worse than no line. --- Recorded during IW-423; see `project-management/issues/IW-423/LESSONS.md` entry 17.
Member

Found during IW-601 phase 4 (§8): an existing page is also stale, not only missing ones. docs/api/PhaseMerge.md still lists CICheckStatus, CIVerdict, evaluateChecks and buildRecoveryPrompt, none of which exist in core/model/PhaseMerge.scala any more.

Found during IW-601 phase 4 (§8): an existing page is also stale, not only missing ones. `docs/api/PhaseMerge.md` still lists `CICheckStatus`, `CIVerdict`, `evaluateChecks` and `buildRecoveryPrompt`, none of which exist in `core/model/PhaseMerge.scala` any more.
Member

More stale output found during IW-652. One build-iw-cli-skills run regenerates both:

  • Regenerate docs/api/ with the build-iw-cli-skills flow: it still documents the old ServerStatus (running, pid) and ServerLifecycleService.createStatus, which IW-652 Phase 1 removed.
  • The published skills (build-iw-cli-skills) need iw service and the WorktreeServices API.
More stale output found during IW-652. One `build-iw-cli-skills` run regenerates both: - Regenerate `docs/api/` with the `build-iw-cli-skills` flow: it still documents the old `ServerStatus` (`running`, `pid`) and `ServerLifecycleService.createStatus`, which IW-652 Phase 1 removed. - The published skills (`build-iw-cli-skills`) need `iw service` and the `WorktreeServices` API.
Member

Found during IW-682 (port allocation for worktrees). Follow-up, verbatim:

  • After Phase 2, regenerate the published skills (build-iw-cli-skills) for iw port-slot and the WorktreePortSlots API.
Found during IW-682 (port allocation for worktrees). Follow-up, verbatim: - [ ] After Phase 2, regenerate the published skills (build-iw-cli-skills) for `iw port-slot` and the `WorktreePortSlots` API.
Member

Found during IW-513 (phase 3), for the regeneration:

  • llms.txt lists GitHubClient twice under Adapters.
Found during IW-513 (phase 3), for the regeneration: - [ ] `llms.txt` lists `GitHubClient` twice under Adapters.
Member

From IW-548 follow-ups:

  • docs/api/ReviewStateCliParser.md shows a stale resolveIssueId body — docs/api/ReviewStateCliParser.md (~lines 319-327) shows a resolveIssueId body that no longer matches ReviewState.scala, which now uses WorktreeKeyResolver.fromFlagOrBranch; refresh the example.
From IW-548 follow-ups: - [ ] `docs/api/ReviewStateCliParser.md` shows a stale `resolveIssueId` body — `docs/api/ReviewStateCliParser.md` (~lines 319-327) shows a `resolveIssueId` body that no longer matches `ReviewState.scala`, which now uses `WorktreeKeyResolver.fromFlagOrBranch`; refresh the example.
Member

Intake: needs-human
Workflow: waterfall
Reason: G7 a standing [fix] finding — the analysis gives CommandDocsDriftTest as the precedent for a pin that requires every module to have a page, but that test asserts the opposite direction (D8.1 = A); also open: G7 (1 [human] finding: should the module-coverage check be a blocking CI pin, a skill-only check, or a warning)
Analysis: project-management/issues/IW-440/analysis.md on branch IW-440

Intake: needs-human Workflow: waterfall Reason: G7 a standing [fix] finding — the analysis gives CommandDocsDriftTest as the precedent for a pin that requires every module to have a page, but that test asserts the opposite direction (D8.1 = A); also open: G7 (1 [human] finding: should the module-coverage check be a blocking CI pin, a skill-only check, or a warning) Analysis: project-management/issues/IW-440/analysis.md on branch IW-440
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/iw-cli#440
No description provided.