docs(skills): pair-review goes harness-agnostic — Crush, operator, skills PRs, on-node passes - #2946
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f076024c62
ℹ️ 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".
|
◇ All five addressed in |
d31bdc4 to
9484b82
Compare
…ills PRs, on-node passes Adapts pmoves-pair-review and PAIR_REVIEW_RECIPROCITY.md from parallel-CLAUDE-only to the fleet as it actually is (operator-directed, during the #2943 review session): - Any harness counts as the peer surface: Claude Code, Crush, Codex CLI, Hermes, KiloCode claws, DeepSeek — cross-harness reviews are the point, they surface harness-assumption drift (env vars one launcher sources and another doesn't; the TS_Z890 roster drop was this class) - Fourth reviewer surface: the operator (DARKXSIDE/POWERFULMOVES) as Control — both #2942's :8091 correction and #2938's topology challenge came from operator pushback on confident agent drafts; gate, don't bottleneck - Harness notes for Crush: same gh/AGNOTE/sign-trail mechanics, COMMENTED-not-APPROVED (same-account constraint), sign with the agent_signatures.yaml identity, skills-load-on-demand as a trigger- quality check - Skills-PR review checklist mapped to the 4-class taxonomy: frontmatter name==dir (Crush validator), description-is-a-trigger, anchors ratchet, live-surface probes for port/endpoint claims, Tier 1/Tier 2 CI - On-node/private review passes: Ollama local models (private by construction — motivated by the 2026-09-04 tailnet-address leak), hf-agent model nomination, Archon 0.6.0 conversation endpoints for tool-using passes, and the already-provisioned coding plans via their CLIs — with the leads-not-verdicts guardrail No behavior change — workflow docs + skill only.
…ity doc - SKILL.md: drop the stale CLAUDE-only "do NOT invoke" block that contradicted the harness-agnostic one; operator signs as darkxside/ powerfulmoves (dsh is not a registered signature identity) - RECIPROCITY.md: hf-agent is an autonomous HF patrol with no per-diff endpoint — reframe as a discovery feed, selection stays with the session; Archon is not on every node — probe /api/health (JSON body) before offering it; coding-plan credentials land per-harness tiers (CLAUDE_CODE_OAUTH_TOKEN registers in the agent tier), resolve from the secrets manifest instead of assuming env.tier-llm 💘 Generated with Crush
9484b82 to
53ca6b3
Compare
…dy ACK (#2998) * docs(register): five-PR merge wave closeout — RELEASE rows + three-body ACK RELEASE rows for archon-native (#2943), pair-review (#2946), a0-archon-bridge (#2942), gh-app mint (#2959), H3 V3 archive (#2980). Signoff checklist carries the wave's delivery/control/memory ACKs; control is the operator's in-session merge directive. Learnings artifacts stayed runtime-generated per protocol. 💘 Generated with Crush * fix(register): declare CRUSH-SPARK (KIMI) and the kimi-k2 model token The 2026-09-08 RELEASE rows signed as CRUSH-SPARK (KIMI) -- the model+node decoration shape the vocabulary already documents for CRUSH-GLM52 (Z890). Alias folded to the crush identity; KIMI declared as the kimi-k2 model. 💘 Generated with Crush --------- Co-authored-by: Agent Zero <agent.zero@pmoves.ai>
…d-but-unreleased (#3007) Six expired-and-unreleased claims were each blocking a future claimant while nobody had said they were still on it. Five were already DELIVERED and simply never released; one was mine and was genuinely unfinished. MINE -- docs/reclaim-cipher-token-model, RELEASED with the real verdict: still needed, never started, now SPLIT. Claimed twice (#2824, #2864) and both PRs were REGISTER-ONLY -- #2864 was 6+ 0-, one file. Any audit keying on PR state reads two merged PRs as closure. It kept expiring because one claim held two lanes and the expensive half gated the cheap half. Cheap half landed as #2988; the expensive half (unhashed storage on a live auth table, auth.ts:62-64 in a submodule, bootstrap's six-scope shared identity) is named and left UNCLAIMED. FIVE BACKFILL ACKNOWLEDGEMENTS, not owner-signed closures -- B850 x3, HERMES x1, SPARK x1. Each carries filed-by: Z890-CLAUDE, merge SHA + timestamp, and states that the owner-authored RELEASE and signed ACK remain OWED. Attribution stays with the owner; only the signature is mine. That split is the point: AGENT_IDENTITY_PROPOSAL_2026-09-04.md section 4 names "written about and never writes" as the failure mode, so a backfill must not become another agent's ledger entry authored by me. CITATION CORRECTION. The precedent for this (#2960, the Mavis row) cites "AGENTS.md:L60-62, co-owner has no authority to close another owner's claim". That clause is not in AGENTS.md, and `git log -S` over AGENTS.md history returns EMPTY -- it has never been there. The practice is sound and is followed here; the phantom citation is not propagated. Grounded instead on the Village Rule that AGENTS.md does carry: claim -> work -> sign -> release, "on completion write a RELEASE row and a signed ACK block" -- which makes RELEASE the owner's act without inventing a clause. Verification: register is a strict byte prefix of origin/main plus 8589 appended bytes, 6 rows, NUL count 1 preserved, postdate clean. Expired-and-unreleased falls 6 -> 4. SPARK's three remaining expired lanes are deliberately NOT backfilled: each has an OPEN PR (#2946, #2959, #2943), so they are active work past TTL, not abandoned work. Claude-Session: https://claude.ai/code/session_01Jxd5gryAFPXwhjaCMw9Qrx Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: kiloclaw <kiloclaw@users.noreply.github.com>
What
Operator-directed adaptation of the pair-review workflow (during the #2943 review session): the skill and ops guide said "parallel-CLAUDE" — the fleet is multi-harness, and the reviewer surfaces were missing the operator and everything on-node.
TS_Z890roster drop was exactly this class).:8091port-map correction and fix(env): TS_Z890 gates three MCP servers and was defined nowhere #2938's topology challenge both came from operator pushback on confident agent drafts.gh/AGNOTE/sign-trailmechanics; COMMENTED-not-APPROVED (same-account constraint); sign with theagent_signatures.yamlidentity; skills-load-on-demand doubles as a description-as-trigger quality check.name==directory (Crush validator rejects colon-style names), description-is-a-trigger,validate_command_anchors.pyratchet, live-surface probes for port/endpoint claims, Tier 1/Tier 2 CI.hf-agentmodel nomination, Archon 0.6.0 conversation endpoints (:8091, every node) for tool-using passes, and the provisioned coding plans via their CLIs. Guardrail: leads, not verdicts; never the Control angle.Files:
.claude/skills/pmoves-pair-review/SKILL.md,pmoves/docs/operations/PAIR_REVIEW_RECIPROCITY.md. No behavior change.Testing
name; description generalized (Tier 1 checks frontmatter shape)skill_registry_validate.py: same 4 pre-existing errors as clean main (thepmoves-composio-mcp-pluginregistry gap — unrelated, verified by stashing)make -C pmoves register-claim(clock-read, postdate-safe)