Skip to content

docs(ws2): claim the tooling-audit workstream + correct three items in the enumeration - #2482

Merged
POWERFULMOVES merged 3 commits into
mainfrom
docs/ws2-audit-claim-handoff
Aug 8, 2026
Merged

docs(ws2): claim the tooling-audit workstream + correct three items in the enumeration#2482
POWERFULMOVES merged 3 commits into
mainfrom
docs/ws2-audit-claim-handoff

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Aug 8, 2026

Copy link
Copy Markdown
Owner

What

Claims Workstream 2 of z890's cleanup + tooling-audit + lane-review coordination plan, and records three corrections the enumeration needs before either node builds on it.

Docs only — a register CLAIM plus a handoff doc. No code, no Makefile, no workflow touched.

Corrections to the handed-over enumeration

All verified against origin/main @ 22c78fbca.

(a) 2 leaking copies, not 4 drifting implementations

Location buildx rm --all-inactive?
pmoves/scripts/pmoves-disk-cleanup.sh:52 ✅ present
deploy/provision/docker-fleet-cleanup.sh:43 ✅ present
pmoves/mk/infra.mk:89 (docker-prune-all) still leaks
.claude/skills/ci-expedition/SKILL.md:69 still leaks

The two shell scripts are already coherent. The drift is that the Make target and the skill's runner-hygiene block never received the #2473 fix. Changes the framing from "collapse four" to "two are fine, two never got fixed."

infra.mk is z890's declared sub-fix — not touched here.

(b) My own earlier "13 of 15" figure was wrong

I reported that in a previous session. It double-counted services re-declared across the generated split overlays. The real count is 7 unique sibling-context builds in pmoves/docker-compose.yml:

transcribe-backend / transcribe-frontend  ../PMOVES-transcribe-and-fetch
pmoves-yt                                 ../PMOVES.YT
archon                                    ../PMOVES-Archon
cipher-api                                ../Pmoves-cipher
openroom                                  ../PMOVES-OpenRoom
llama-throughput-lab                      ../PMOVES-llama-throughput-lab

The overlays re-declare exactly those seven (agents 2 + apps 1 + media 3 + ui 1), which is where the inflation came from. z890's "7" was right. Plus docker-compose.n8n.yml (they flagged it) → 7 registered submodules, 8 services.

Self-correction, second commit on this branch. My first revision also added hf-mcp-server.yml. That was wrong — its context is ../../pmoves/services/hf-mcp-server, a two-level relative path back into pmoves/services/, i.e. first-party. I'd keyed on a leading ../, which isn't sufficient; the first path segment has to be resolved against .gitmodules. Same class of error as the "13 of 15" figure it was meant to fix — matching a path shape instead of resolving it. Retracted in the doc rather than quietly edited.

The class the enumeration missed entirely

Build contexts are the less dangerous half. Five bind-mount sources also come from submodules (PMOVES-supabase ×4, PMOVES-n8n ×1). A missing build context fails loudly. A missing bind source does not — Docker creates it as a directory, so a file mount silently becomes a directory mount and the container fails on its own config instead. That's the class that took services down on this node, and why item 4 is a runbook.

(c) The ci-expedition fix is narrower than "PR head, not default"

SKILL.md:29 reads "GitHub uses default-branch file for issue_comment/pull_request_review/push". issue_comment and push are correct — only pull_request_review is wrong. Surgical removal from a parenthetical.

The evidence is empirical, from the #2479 fix rather than from docs:

Run PR head Workflow that ran Result
31257145963 pre-fix, while main already had the fix old (token / mint + collect) failed at checkout
31257247543 rebased, so head carried the fix new (single collect) ✅ green

Default-branch resolution predicts the opposite of what happened.

(d) The .worktrees/* skill copies aren't a reconciliation problem

They're worktree checkouts of the same git-tracked file. Fixing main fixes all of them — one item off the list.

Claimed scope

Five items, one PR each. up-* sprawl is inventory only, no Makefile edits — the operator picks the retire list, since "zero textual references" can't prove a target is unused.

Item 4 (sibling-submodule build gap) is a runbook, not a code fix. It's invisible in diffs because CI checks out submodules: recursive, and it took down services on this node yesterday: 28 of 33 containers ran from a second clone with all 57 submodules unpopulated, so Docker created bind sources as empty directories and supabase-vector crash-looped 78 times on Is a directory (os error 21).

Also in the handoff, for z890's WS3

AGNOTE4482PHI.t1.md has been damaged three times in a row by merges from stale bases — #2437 committed conflict markers, #2450 deleted six entries (two of which had merged 8 and 36 minutes earlier), and #2450's replacement entry was itself character-corrupted. Fixed in #2476 and #2478.

A deletion is a valid diff, so nothing catches it. Worth a structural check on the one file every agent reads before claiming — but that's a WS3 call, not a WS2 deliverable.

Two Mavis-5090 claims also belong on the WS3 ping list, in a different category from KIMI-SPARK/CRUSH: merged work missing only a RELEASE line, so they need a release, not a re-claim.

Method

The first verification pass ran against this node's stale working tree (67aed7fe8) and reported pmoves-disk-cleanup.sh as missing and docker-fleet-cleanup.sh as unfixed. Both false. Everything was re-derived from origin/main via git show.

On Windows that needs MSYS_NO_PATHCONV=1, or the ref is silently mangled to origin\main;.claude\... and git reports a misleading "ambiguous argument" that reads like a missing file. Recorded in the handoff so the next node doesn't lose the same two attempts.

🤖 Generated with Claude Code

…n the enumeration

z890's coordination plan assigns Workstream 2 to this node by affinity. This
claims it — bounded to five enumerated items, not to "tooling" as an area — and
records the corrections the enumeration needs before either node builds on it.

Corrections, all verified against origin/main @ 22c78fb:

  (a) 2 leaking copies, not 4 drifting implementations. Both shell scripts
      already carry the #2473 buildx fix (pmoves-disk-cleanup.sh:52,
      docker-fleet-cleanup.sh:43). Only infra.mk:89 and
      ci-expedition/SKILL.md:69 lack it.

  (b) 4090's own earlier "13 of 15 fork services" figure was WRONG — it
      double-counted services re-declared across the generated split overlays.
      Correct count is 7 unique sibling-context builds in docker-compose.yml,
      plus n8n, plus hf-mcp-server.yml which the handed-over list missed.

  (c) The ci-expedition fix is narrower than "PR head, not default". In that
      row `issue_comment` and `push` are correct; only `pull_request_review`
      is wrong. Surgical edit, not a row rewrite.

  Plus: the four .worktrees/* skill copies are checkouts of the same tracked
  file, so fixing main fixes them all — one item off the list.

Evidence for (c) is empirical, from the #2479 fix rather than from docs: run
31257145963 (PR head pre-fix, main already fixed) ran the OLD workflow and
failed at checkout; run 31257247543 (head rebased) ran the NEW workflow and went
green. Default-branch resolution predicts the opposite.

Not claimed and deliberately left alone: infra.mk:89 (z890's declared sub-fix),
WS1/WS3/WS4. Recommends Mavis-5090 for WS4-B, since the "rooms pull portals"
model is their open OpenRoom slice-2 claim.

The handoff doc also carries a WS3-relevant finding: AGNOTE4482PHI.t1.md was
damaged three times in a row by stale-base merges (#2437 markers, #2450 deleting
six entries, a corrupted duplicate). A deletion is a valid diff, so nothing
catches it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions github-actions Bot added docs Documentation governance AGNOTE register / agent definitions / damage-control hooks labels Aug 8, 2026
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@POWERFULMOVES, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 1 minute

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6e40b531-4dea-4905-bcf3-f2c2de3a944e

📥 Commits

Reviewing files that changed from the base of the PR and between 2b4fca4 and 22dbddb.

📒 Files selected for processing (2)
  • pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
  • pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
📝 Walkthrough

Walkthrough

The PR adds WS2 tooling-audit documentation. It records corrected findings, five delivery items, ownership guidance, stale-base merge failures, CI evidence, and verification requirements for origin/main and Windows.

Changes

WS2 tooling audit

Layer / File(s) Summary
Corrected audit findings
pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
The handoff corrects cleanup counts, sibling-build counts, ci-expedition trigger scope, worktree handling, and the up-* target total.
Delivery items and runtime evidence
pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
The handoff defines five work items and records submodule runtime failures, ownership assignments, release guidance, and a voice-pipeline caveat.
Coordination and verification records
pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md, pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
The documents record the WS2 coordination claim, stale-base merge failures, and verification steps for origin/main and Windows.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: hunnibear

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is detailed and on-topic, but it omits the template's required Summary, Testing, Required Checks, and Review Coordination sections. Reformat the description to include the required headings, commands or workflow evidence, required-check status, and review-coordination notes.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the documentation workstream claim and the enumeration corrections.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/ws2-audit-claim-handoff

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2b4fca4574

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md Outdated
Comment thread pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md Outdated
Comment thread pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md`:
- Around line 39-47: Add the `text` language identifier to the fenced code
blocks containing repository mapping data and error output, including the blocks
around the visible entries and the referenced sections. Ensure all affected
fences satisfy markdownlint MD040 without changing their contents.
- Around line 14-16: Align the WS2 item count and ownership across all cited
documentation: in pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
lines 14-16, change “Three items” to “Five items” or explicitly identify the
three correction sections; in lines 91-101, distinguish the five coordination
items from the four items owned by 4090; and in
pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md lines 1718-1722, replace “Claimed (5
items)” with the exact 4090 ownership count and identify item 1 as z890’s
dependency.
- Line 10: Separate evidence provenance in both documentation sites: in
pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md at lines 10-10, limit
the git show/origin/main statement to repository-content claims and identify
runtime and CI evidence separately; in pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md at
lines 1726-1728, replace the claim that all evidence was re-derived via git show
with distinct sources for GitHub run evidence, node observations, and repository
comparisons.
- Around line 76-87: The evidence table and conclusion about pull_request_review
resolution are inconsistent because run 31257247543 is a schedule run on main,
not a pull_request_review run. Update the “Evidence for the pull_request_review
correction” section to use accurately matching trigger runs, or revise the
conclusion to avoid claiming these runs prove PR-head/merge-ref resolution;
ensure the operational guidance and workflow labels remain consistent with the
corrected evidence.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 22d2b8e7-9256-4fa0-a533-134333d3b55d

📥 Commits

Reviewing files that changed from the base of the PR and between 22c78fb and 2b4fca4.

📒 Files selected for processing (2)
  • pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
  • pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md

Comment thread pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md Outdated
Comment thread pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md Outdated
Comment thread pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md Outdated
Comment thread pmoves/docs/handoffs/WS2_TOOLING_AUDIT_4090_2026-08-08.md
…d-mount class

Two corrections to the handoff doc, made before the enumeration propagates.

RETRACTION. An earlier revision added hf-mcp-server.yml to the sibling-submodule
build list. Wrong. Its context is ../../pmoves/services/hf-mcp-server — a
two-level relative path back INTO pmoves/services/, i.e. a first-party service.
My matcher keyed on a leading `../`, which is not sufficient: the first path
segment has to be checked against .gitmodules. Corrected list is 7 registered
submodules / 8 services, which is z890's original number plus n8n. This is the
same class of error as the "13 of 15" figure it was meant to fix — pattern-
matching a path shape instead of resolving it.

ADDITION. The enumeration covers build contexts only, and those are the less
dangerous half. Five BIND-MOUNT sources also come from submodules
(PMOVES-supabase x4, PMOVES-n8n x1). A missing build context fails loudly; a
missing bind source does not — Docker CREATES it as a directory, so a file mount
silently becomes a directory mount and the container then fails on its own
config. That is the class that took services down on this node, and it is the
reason item 4 is a runbook rather than a code fix.

Also records item 3's outcome: the two claude-pmoves.sh were never duplicates.
One selects an agent and loads nothing; the other loads env + the MCP roster and
selects no agent. Each ends in its own `exec claude`, so they are mutually
exclusive, and `make -C pmoves claude-pmoves` took the path with no creds.
Picking one — the item as written — would have deleted a working capability
either way. Fixed by delegation in #2484.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lindness claim

Review pass on the claim + handoff. All six findings were valid; none were
cosmetic.

TTL. The claim had no expiry, so an abandoned branch would reserve these items
indefinitely with no way for another node to tell when reclaiming is safe.
Added: TTL 72h, expires 2026-08-11T13:00:00Z.

OWNERSHIP COUNT. The entry said "five items claimed" while the body enumerated
items 2-5 and the next paragraph assigned item 1 to z890 — ambiguous in exactly
the file that exists to prevent collisions. Now states WS2 has five items and
4090 reserves FOUR of them, with item 1 named as z890's.

PROVENANCE. "Everything re-verified via git show against origin/main" was not
true of the whole document: it also carries GitHub Actions run results and node
runtime observations, neither of which git show can produce. Now split three
ways — repository content via git show, CI behavior via gh api on run records,
node runtime state via docker inspect / git submodule status on THIS node only
(single-node observation, not a fleet claim).

CI-BLINDNESS CLAIM WAS WRONG. The doc said CI cannot catch the submodule gap
because workflows check out with `submodules: recursive`. They do not check out
submodules at all (validate-dockerfile-paths-ratchet.yml:54,
validate-composes-ratchet.yml:41). They pass because
validate_dockerfile_paths.py explicitly excludes sibling-submodule targets —
"external repos the ratchet can't statically check" — and because
validate-composes never inspects bind sources. A known, accepted blind spot
rather than an accidental one. That is a better argument for the runbook, not a
worse one, and it is now the one the doc makes.

TRIGGER ROW. Correction 3 said `issue_comment` and `push` were both correct and
only `pull_request_review` was wrong. `push` resolves from the PUSHED ref, so
that was half-right; my first fix left the other half standing. Now a three-row
table with the two halves' provenance distinguished — the pull_request_review
correction is empirical from runs 31257145963 / 31257247543, the push correction
is Actions semantics from review and is stated as behavior rather than as
something measured here.

Plus: item 3's outcome recorded (the two claude-pmoves.sh were never duplicates,
fixed by delegation in #2484), and MD040 language identifiers on three fenced
blocks.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@POWERFULMOVES
POWERFULMOVES merged commit 59ddff1 into main Aug 8, 2026
56 checks passed
@POWERFULMOVES
POWERFULMOVES deleted the docs/ws2-audit-claim-handoff branch August 8, 2026 14:24
POWERFULMOVES added a commit that referenced this pull request Aug 9, 2026
…reign RELEASE lines (#2498)

* docs(agnote): WS2 RELEASE + lane sweep — evidence for owners, no foreign RELEASE lines

Two entries.

RELEASE — WS2 (z890's coordination plan) is complete inside its 72h TTL. Eight
PRs merged: #2482 claim+handoff+corrections, #2483 ci-expedition skill, #2484
claude-pmoves delegation, #2485 submodule gap runbook, #2486 up-* inventory,
#2488 validate-command-anchors, #2494 first-contact + guard routing table, #2495
Danger Room handoff to SPARK. pmoves/mk/infra.mk untouched throughout — z890's
#2480, no collision.

The entry records what the audit found BEYOND its enumerated items, because that
is the reusable part: a gate can advertise coverage it does not have (three
separate instances, each caught by review rather than by me); the always-loaded
orientation file misdirects first contact; the guard's own routing table has two
dead roads; and patterns.yaml is the pattern worth generalizing while
pre-tool.sh duplicates 5 of its entries minus the affordance.

It also records four corrections to my own prior work — the wrong 13-of-15
figure, the retracted hf-mcp-server entry, the dangerous first up-* retire list,
and the yt-cookies pair that was never a duplicate. A closeout that only lists
wins is not a closeout.

NOTE — lane sweep. 115 CLAIM against 119 RELEASE. Four Mavis lanes verified
shipped and missing only a RELEASE (harness v0 #2437/#2443/#2450, multi-fork
follow-ups #2477, OpenRoom slice 2, creative-pipeline v0). Four older lanes
still open with no PR cited and nothing found merged, now 8-10 days. Mine that
are correctly still open: #2446 draft, #2468 held for review, and the SPARK
handoff awaiting its CLAIM.

ZERO RELEASE lines written on another agent's behalf — verified in the diff.
Those lanes are Mavis's to close under Village Rule; this records evidence so
they can close from it rather than from memory. Kept distinct from the
KIMI-SPARK / CRUSH stale claims, which need a release OR re-claim — different
category, and conflating them would make the ping inaccurate.

Verified: make -C pmoves validate-command-anchors passes.

Note for follow-up: dogfooding this entry surfaced a real false-positive
generator in MAKE_CITE_RE — `-C \S+` swallows a closing backtick, so prose that
backticks "make -C pmoves" alone captures the following word as a target. Fixed
separately, not folded in here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(agnote): state the counting method, and stop treating merge as acceptance

Three review findings, all correct, all mine.

1. THE TOTALS WERE NOT REPRODUCIBLE. I published "115 CLAIM against 119 RELEASE"
   with no method attached. Recounting three ways on the same file:

     anchored bullet rows      115 / 119   <- what I published
     token anywhere in text    284 / 221   (prose mentions)
     timestamped, no anchor    116 / 119

   and the 2026-08-07 sweep reported 121 / 115 on a fourth. None of these is
   wrong; a bare number with no pattern is. The entry now states the exact regex,
   lists what the other methods give, and says to treat the ratio as a rough
   signal rather than a metric — the per-lane table is the checkable part.

2. MERGE IS NOT RUNTIME ACCEPTANCE. I listed OpenRoom slice 2 under "verified
   shipped, missing only a RELEASE" on the strength of #2437 merging. That lane
   was claimed against six handoff priorities with room-level acceptance, and
   #2437 is scaffold plus iframe wiring. Merging it does not demonstrate the
   rooms render.

3. Same for line 1723: it covers three deliverables including fork-side
   consumers, and #2477 merging in PMOVES.AI says nothing about whether the fork
   consumers landed.

Both are now "merged, acceptance unverified" rather than ready-to-release, with
the reasoning stated so the owner closes from runtime evidence instead of from
my table.

This is precisely the error the register exists to prevent, made by the sweep
that exists to catch it — which is worth leaving visible rather than quietly
correcting. Every gate I shipped this week was weaker than advertised until
something proved it could say no; this one was a bookkeeping claim that had not
been asked to reproduce itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation governance AGNOTE register / agent definitions / damage-control hooks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant