Skip to content

Docs review — 2026-05-18 (af3914f) #215

@Luis85

Description

@Luis85
  • [BLOCKER] CLAUDE.md:67demo:dev comment claims the command builds the library first, but it does not

    details

    Drift: CLAUDE.md key-commands table annotates npm run demo:dev with # build library then run examples/product-demo via Vite. The actual script is cd examples/product-demo && npm run dev — no library build. A developer following only this table runs the demo with a stale or empty dist/ and gets import errors. README.md correctly calls out npm run build as a prerequisite, but the key-commands table actively contradicts it.

    Evidence: grep -n "demo:dev" CLAUDE.md67: npm run demo:dev # build library then run examples/product-demo via Vite. jq '.scripts["demo:dev"]' package.json"cd examples/product-demo && npm run dev".

    Fix:

    -npm run demo:dev      # build library then run examples/product-demo via Vite
    +npm run demo:dev      # start examples/product-demo Vite dev server (run `npm run build` first)

Counter-argument to my own [BLOCKER]: The comment could be read as compressed workflow prose — "having built the library, then run the demo" — rather than claiming the command itself performs the build. That interpretation doesn't hold: shell annotation convention (command # description) universally means the annotation describes what the command does. The word "build" precedes "then run," making the claim unambiguously false. Finding kept.


  • [MAJOR] .claude/skills/verify/SKILL.md:9,43 — skill claims verify has five stages; the script has seven

    details

    Drift: SKILL.md line 9 says "the underlying npm script runs all five stages" and line 43 says "All 5 stages green". The verify script runs seven stages: format:check && lint && lint:demo && typecheck && test && build && docs. lint:demo (stage 3) and docs (stage 7) are absent from the skill's enumeration and isolation-commands block. CLAUDE.md:52 correctly lists all seven.

    Evidence: jq '.scripts.verify' package.json"npm run format:check && npm run lint && npm run lint:demo && npm run typecheck && npm run test && npm run build && npm run docs". grep -n "five\|5 stage" .claude/skills/verify/SKILL.md → lines 9, 43.

    Fix: Update SKILL.md — replace "five" / "5" with "seven" / "7" everywhere, add npm run lint:demo as stage 3 and npm run docs as stage 7 to the stage list and isolation-commands block, update the pass-line to "All 7 stages green".

  • [MAJOR] examples/product-demo/README.md:150-157 — localStorage key table documents pre-refactor keys; demo now uses demo.v2.* namespace

    details

    Drift: The README table (lines 150-157) shows four keys: agentonomous/whiskers, agentonomous/__agentonomous/index__, agentonomous/whiskers/tfjs-network, agentonomous/speed. After the keyspace split and demo refactor: (1) snapshot data key is agentonomous/__agentonomous/data/whiskers (DATA_PREFIX in LocalStorageSnapshotStore.ts), (2) index key is agentonomous/__agentonomous/meta/index (META_INDEX_KEY), (3) speed key is demo.v2.session.speed (SpeedPicker.vue:11); the old agentonomous/speed key is explicitly purged as legacy by purgeLegacyDemoKeys() in app/main.ts.

    Evidence: grep -n "META_INDEX_KEY\|DATA_PREFIX" src/persistence/LocalStorageSnapshotStore.ts → shows __agentonomous/meta/index and __agentonomous/data/ prefixes. grep -n "SPEED_STORAGE_KEY" examples/product-demo/src/components/shell/SpeedPicker.vuedemo.v2.session.speed. grep -n "agentonomous/speed" examples/product-demo/src/app/main.ts → listed as a legacy key to purge.

    Fix: Replace the key table with the current layout:

    -| `agentonomous/whiskers`               | Agent snapshot (auto-save, every 5 s)          |
    -| `agentonomous/__agentonomous/index__` | Snapshot store index                           |
    -| `agentonomous/whiskers/tfjs-network`  | Trained Learning-mode snapshot (Train button)  |
    -| `agentonomous/speed`                  | Speed-picker preference (not part of snapshot) |
    +| `agentonomous/__agentonomous/data/whiskers` | Agent snapshot (auto-save)              |
    +| `agentonomous/__agentonomous/meta/index`    | Snapshot store index                    |
    +| `agentonomous/whiskers/tfjs-network`        | Trained Learning-mode snapshot          |
    +| `demo.v2.session.speed`                     | Speed-picker preference                 |
  • [MAJOR] docs/plans/2026-04-26-quality-codeql.md — all implementation steps [ ] but umbrella tracker marks chunk shipped

    details

    Drift: docs/plans/2026-04-26-quality-automation-routines.md row 1 is marked [x] shipped for the CodeQL chunk. The chunk plan itself (quality-codeql.md) has every implementation step still [ ]. A reader of the chunk plan sees 5+ open tasks for already-shipped work.

    Evidence: grep "^\- \[" docs/plans/2026-04-26-quality-codeql.md | head -5 → all - [ ]. grep "CodeQL\|codeql" docs/plans/2026-04-26-quality-automation-routines.md → row 1 [x] shipped.

    Fix: Flip all step checkboxes to [x], add a shipped note with the relevant PR number, then git mv docs/plans/2026-04-26-quality-codeql.md docs/archive/plans/ per CLAUDE.md archive convention (add archive banner, no body edits).

  • [MAJOR] docs/plans/2026-04-26-quality-dep-triage-bot.md — all implementation steps [ ] but umbrella tracker marks chunk shipped

    details

    Drift: Umbrella tracker row 2 is [x] shipped for dep-triage-bot. The chunk plan has 7 open [ ] steps.

    Evidence: grep -c "^\- \[ \]" docs/plans/2026-04-26-quality-dep-triage-bot.md7. grep "dep-triage" docs/plans/2026-04-26-quality-automation-routines.md → row 2 [x] shipped.

    Fix: Same as af3914f.4 — flip checkboxes, note the PR, archive to docs/archive/plans/.

  • [MAJOR] docs/plans/2026-04-26-quality-actions-bump-bot.md — all implementation steps [ ] but umbrella tracker marks chunk shipped via docs(routine): add weekly action-SHA bump prompt #142

    details

    Drift: Umbrella tracker row 3 is [x] shipped via #142. The chunk plan has 6 open [ ] steps.

    Evidence: grep -c "^\- \[ \]" docs/plans/2026-04-26-quality-actions-bump-bot.md6. grep "bump-bot" docs/plans/2026-04-26-quality-automation-routines.md → row 3 [x] shipped via #142.

    Fix: Flip checkboxes, note PR docs(routine): add weekly action-SHA bump prompt #142, archive to docs/archive/plans/.

  • [MAJOR] docs/plans/2026-04-26-quality-plan-recon-bot.md — all implementation steps [ ] but umbrella tracker marks chunk shipped via docs(routine): add monthly plan reconciliation prompt #143

    details

    Drift: Umbrella tracker row 4 is [x] shipped via #143. The chunk plan has 6 open [ ] steps.

    Evidence: grep -c "^\- \[ \]" docs/plans/2026-04-26-quality-plan-recon-bot.md6. grep "recon" docs/plans/2026-04-26-quality-automation-routines.md → row 4 [x] shipped via #143.

    Fix: Flip checkboxes, note PR docs(routine): add monthly plan reconciliation prompt #143, archive to docs/archive/plans/.

  • [MAJOR] docs/plans/2026-04-26-quality-bundle-trend.md — all implementation steps [ ] but umbrella tracker marks chunk shipped via ci(metrics): weekly bundle-size trend snapshot #144

    details

    Drift: Umbrella tracker row 5 is [x] shipped via #144. The chunk plan has 10 open [ ] steps.

    Evidence: grep -c "^\- \[ \]" docs/plans/2026-04-26-quality-bundle-trend.md10. grep "bundle-trend" docs/plans/2026-04-26-quality-automation-routines.md → row 5 [x] shipped via #144.

    Fix: Flip checkboxes, note PR ci(metrics): weekly bundle-size trend snapshot #144, archive to docs/archive/plans/.

  • [MINOR] PUBLISHING.md:38 — leaf-job list labelled "as of d9b4b85" is missing the e2e job added since that SHA

    details

    Drift: PUBLISHING.md:38 lists the full leaf-job list "as of d9b4b85" for branch-protection configuration. The e2e job (Playwright) has since been added to ci-gate.needs (present at .github/workflows/ci.yml:527). Anyone configuring branch protection by copying this list would omit e2e as a required status check.

    Evidence: grep -n "e2e" .github/workflows/ci.yml → job defined at line 470, listed in ci-gate.needs at line 527. grep "e2e" PUBLISHING.md → no results.

    Fix:

     (For reference, the full leaf-job list as of d9b4b85: `Format (Prettier)`,
     `Lint (ESLint)`, `Typecheck (tsc --noEmit)`, `Lint workflows (actionlint)`,
     `Audit production deps (npm audit)`, `API docs (typedoc)`,
     `Test core (Vitest, ubuntu-latest)`, `Test tfjs (cpu on ubuntu-latest)`,
    -`Build & size budget`, `Demo build (examples/product-demo)`.)
    +`Build & size budget`, `Demo build (examples/product-demo)`, `e2e`.)

    Or remove the parenthetical entirely — the surrounding text already directs readers to wire CI gate (required check) as the single required check, which is the safe long-term guidance.

  • [MINOR] .claude/skills/review-fix/SKILL.md:343 — hardcoded Windows machine path D:\Projects\agent-library

    details

    Drift: Line 343 says "the main repo (D:\Projects\agent-library), NOT from the worktree". This is a machine-specific Windows developer path with no meaning in a CI, Linux, or macOS context, or on any other developer machine.

    Evidence: grep -n "D:\\\\Projects\|agent-library" .claude/skills/review-fix/SKILL.md → line 343 and 349 match.

    Fix:

    -the **main repo** (`D:\Projects\agent-library`), NOT from the
    +the **main repo** (the repo root, e.g. `~/agentonomous`), NOT from the
  • [MINOR] docs/plans/2026-04-25-comprehensive-polish-and-harden.md:790-803 — "Open questions" section lists OQs 1–2 as open; both are resolved inline earlier in the same file

    details

    Drift: The "Open questions" section (line 790) presents OQs 1–4 as unresolved. OQ1 (reward source) is explicitly resolved at line 518: "Open question 1 (reward source) resolved: consumer-supplied…". OQ2 (softmax target shape) is resolved at line 592: "Open question 2 (softmax target shape) resolved: stick to the 7…". The summary section was never updated after those resolutions were written.

    Evidence: grep -n "OQ\b\|Open question" docs/plans/2026-04-25-comprehensive-polish-and-harden.md → resolution markers at lines 518, 592; open summary section at line 790.

    Fix: In the "Open questions" section, mark OQ1 and OQ2 as resolved with a one-line note referencing the inline decision (e.g., "Resolved — see line 518"). OQ3 and OQ4 appear genuinely still-open; leave them as-is or mark them if resolved.

  • [MINOR] docs/plans/2026-04-25-comprehensive-polish-and-harden.md:825 and docs/plans/2026-04-26-quality-automation-routines.md:160 — dead link to .claude/memory/feedback_one_pr_per_session.md (file does not exist)

    details

    Drift: Both files reference .claude/memory/feedback_one_pr_per_session.md. The file does not exist; ls .claude/memory/feedback_*.md lists 10 feedback files and this is not among them. .claude/memory/MEMORY.md index also has no entry for it.

    Evidence: ls /home/user/agentonomous/.claude/memory/feedback_*.mdfeedback_one_pr_per_session.md absent. grep "one_pr_per_session" .claude/memory/MEMORY.md → no results.

    Fix:

    # comprehensive-polish-and-harden.md:825
    -See `MEMORY.md → feedback_one_pr_per_session.md` for the headline rule and
    +See `MEMORY.md → feedback_pr_hygiene.md` for the headline rule and
    
    # quality-automation-routines.md:160
    -(one PR per session — see `MEMORY.md → feedback_one_pr_per_session.md`),
    +(one PR per session — see `MEMORY.md → feedback_pr_hygiene.md`),

    (The one-PR-per-session rule lives in feedback_pr_hygiene.md; alternatively remove the parenthetical if it adds no value.)


  • Reviewed at: af3914f3eaed7a0f39da7ed4437f4be259e89fec (64 Markdown files audited)
  • Blockers: 1
  • Majors: 7
  • Minors: 4
  • Nits: 0
  • Counter-argument check: af3914f.1 (CLAUDE.md demo:dev) — counter tested, not held, finding kept as BLOCKER
  • Truncated: no (12 findings, well under cap of 40)
  • Not reviewed: docs/archive/** (frozen by design); docs/api/** (TypeDoc-generated); docs/daily-reviews/** (immutable snapshots); docs/docs-review-bot/PROMPT.md + README.md (meta-review excluded by prompt); CHANGELOG.md + .changeset/*.md (owned by changeset machinery); node_modules/, dist/, coverage/, .worktrees/, graphify-out/wiki/ (generated/gitignored). Bot prompt internals (docs/review-bot/PROMPT.md, docs/actions-bump-bot/PROMPT.md, docs/dep-triage-bot/PROMPT.md, docs/plan-recon-bot/PROMPT.md) were cross-referenced for file/path claims but not audited for internal consistency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    docs-reviewFindings from the scheduled docs-review routine

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions