repo-harness 0.24.2 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +11 -38
- package/CLAUDE.md +11 -37
- package/README.md +101 -57
- package/SKILL.md +4 -3
- package/agents/fleet/deep-worker.md +2 -2
- package/agents/fleet/fast-worker.md +2 -2
- package/agents/fleet/gatekeeper.md +2 -0
- package/agents/fleet/known-gaps.md +29 -0
- package/agents/fleet/orchestrator.md +35 -0
- package/assets/AGENTS.md +4 -5
- package/assets/CLAUDE.md +4 -5
- package/assets/herdr/webhook-notify/herdr-plugin.toml +1 -1
- package/assets/herdr/webhook-notify/notify.mjs +59 -4
- package/assets/herdr/webhook-notify/pane-status.mjs +1 -1
- package/assets/reference-configs/agentic-development-flow.md +42 -22
- package/assets/reference-configs/design-options.md +11 -15
- package/assets/reference-configs/document-generation.md +10 -11
- package/assets/reference-configs/evaluator-rubric.md +1 -1
- package/assets/reference-configs/external-tooling.md +72 -12
- package/assets/reference-configs/global-working-rules.md +14 -4
- package/assets/reference-configs/harness-overview.md +98 -278
- package/assets/reference-configs/herdr-notify.md +19 -11
- package/assets/reference-configs/herdr-skill-context.md +61 -0
- package/assets/reference-configs/host-invariants.md +30 -2
- package/assets/skill-commands/manifest.json +99 -28
- package/assets/skill-commands/repo-harness-architecture/references/worker.md +13 -4
- package/assets/skill-commands/repo-harness-check/references/architecture-evidence.md +8 -0
- package/assets/skill-commands/repo-harness-check/references/create.md +5 -5
- package/assets/skill-commands/repo-harness-check/references/pr-verification.md +1 -7
- package/assets/skill-commands/repo-harness-ship/references/worker.md +45 -1
- package/assets/skill-version.json +2 -2
- package/assets/skills/repo-harness-archimap/SKILL.md +121 -0
- package/assets/skills/repo-harness-archimap/assets/template.html +241 -0
- package/assets/skills/repo-harness-archimap/references/boards.md +105 -0
- package/assets/skills/repo-harness-archimap/references/visual-language.md +99 -0
- package/assets/skills/repo-harness-archimap/scripts/measure.ts +484 -0
- package/assets/skills/repo-harness-chatgpt/references/bridge.md +28 -64
- package/assets/skills/repo-harness-chatgpt/references/continue.md +1 -1
- package/assets/skills/repo-harness-chatgpt/references/delegate.md +5 -5
- package/assets/skills/repo-harness-cross-review/references/generic-review.md +5 -2
- package/assets/skills/repo-harness-herdr-portal/references/spawn.md +7 -0
- package/assets/skills/repo-harness-issue-flow/SKILL.md +119 -0
- package/assets/skills/repo-harness-issue-flow/references/acceptor.md +133 -0
- package/assets/skills/repo-harness-issue-flow/references/board.md +240 -0
- package/assets/skills/repo-harness-issue-flow/references/orchestrator.md +265 -0
- package/assets/skills/repo-harness-issue-flow/references/templates.md +368 -0
- package/assets/skills/repo-harness-issue-flow/references/worker.md +219 -0
- package/assets/skills/repo-harness-product/SKILL.md +2 -2
- package/assets/skills/repo-harness-product/references/goal.md +7 -7
- package/assets/skills/repo-harness-product/references/prd.md +5 -7
- package/assets/skills/repo-harness-setup/references/init.md +0 -1
- package/assets/skills/repo-harness-setup/references/repair.md +1 -1
- package/assets/skills/repo-harness-test/references/authoring.md +1 -1
- package/assets/skills/repo-harness-test/references/refactor-evidence.md +1 -1
- package/assets/skills/repo-harness-test/references/running.md +1 -1
- package/assets/skills/repo-harness-test/references/verification-plan.md +3 -16
- package/assets/templates/design-brief.template.md +5 -5
- package/assets/templates/helpers/capability-resolver.ts +112 -40
- package/assets/templates/prd.template.md +1 -1
- package/assets/templates/root-context.md +41 -0
- package/assets/templates/runtime.gitignore +0 -8
- package/assets/tool-catalog.v1.json +50 -3
- package/assets/workflow-contract.v1.json +378 -166
- package/cordis.patch.yml +7 -0
- package/dist/dsh-plugin.js +399 -0
- package/dist/hook-entry.js +1457 -1711
- package/dist/oar-review-host.js +67 -28
- package/dist/operator-ui/assets/ArchitectureWorkspace-BrUOPtga.js +7 -0
- package/dist/operator-ui/assets/ArchitectureWorkspace-CeJeskZg.css +1 -0
- package/dist/operator-ui/assets/DocsPage-DV2HZUAM.js +33 -0
- package/dist/operator-ui/assets/abnfDiagram-VCTEODGH-Bjvx57sB.js +1 -0
- package/dist/operator-ui/assets/arc-Pry-7G1_.js +1 -0
- package/dist/operator-ui/assets/architecture-7GRP2DOG-DwBb_elr.js +1 -0
- package/dist/operator-ui/assets/architectureDiagram-5GKGNRK7-DI0vCG--.js +36 -0
- package/dist/operator-ui/assets/array-BifhSqXX.js +1 -0
- package/dist/operator-ui/assets/blockDiagram-I7D4REHJ-BZ_YUsUS.js +129 -0
- package/dist/operator-ui/assets/c4Diagram-7LVT6UL2-DH0Jtlli.js +38 -0
- package/dist/operator-ui/assets/channel-CM1VQx9C.js +1 -0
- package/dist/operator-ui/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/operator-ui/assets/chunk-4HAMMTFA-tFJtpQE1.js +62 -0
- package/dist/operator-ui/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/operator-ui/assets/chunk-75Z2AOVW-CIdpTPCg.js +2 -0
- package/dist/operator-ui/assets/chunk-DU6HZSFF-Bd07S2X4.js +127 -0
- package/dist/operator-ui/assets/chunk-F27PBJKO-DWRq64qg.js +1 -0
- package/dist/operator-ui/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
- package/dist/operator-ui/assets/chunk-GMAD6QVW-Dl95AJFc.js +72 -0
- package/dist/operator-ui/assets/chunk-GVQU2GXP-C7OXmRjR.js +1 -0
- package/dist/operator-ui/assets/chunk-IMKFNOWR-QL5B_aOs.js +231 -0
- package/dist/operator-ui/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/operator-ui/assets/chunk-L3NEJ4N5-ukfpnoE0.js +1 -0
- package/dist/operator-ui/assets/chunk-OSK3NFVY-CnHEPnkn.js +10 -0
- package/dist/operator-ui/assets/chunk-P2QGCYS3-BpS1hNgD.js +1 -0
- package/dist/operator-ui/assets/chunk-POPQ4Y6H-CMPd1nz4.js +1 -0
- package/dist/operator-ui/assets/chunk-PWAF6VOD-BX0WsbhE.js +1 -0
- package/dist/operator-ui/assets/chunk-SHT3W25Y-BNEtOwXv.js +168 -0
- package/dist/operator-ui/assets/chunk-SVP7TREG-Bxc3jiKi.js +88 -0
- package/dist/operator-ui/assets/chunk-TICWLB2K-DyFwShYo.js +206 -0
- package/dist/operator-ui/assets/chunk-XXDRQBXY-Bd3Sm03O.js +1 -0
- package/dist/operator-ui/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/operator-ui/assets/classDiagram-ZZMXUADV-DbQjXAzM.js +1 -0
- package/dist/operator-ui/assets/classDiagram-v2-VYDZK3BY-DbQjXAzM.js +1 -0
- package/dist/operator-ui/assets/cose-bilkent-JH36ORCC-DcCrMHTN.js +1 -0
- package/dist/operator-ui/assets/cynefin-OW5HDTMX-B2H6A8Am.js +1 -0
- package/dist/operator-ui/assets/cynefinDiagram-5FMLGOSQ-nBu7H-dN.js +62 -0
- package/dist/operator-ui/assets/cytoscape.esm-ZKjJ8woK.js +321 -0
- package/dist/operator-ui/assets/dagre-C-rnJpZF.js +1 -0
- package/dist/operator-ui/assets/dagre-GXQ25YYZ-B2in2DwM.js +4 -0
- package/dist/operator-ui/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/operator-ui/assets/diagram-S7CK7UJ4-CVqDk_Fk.js +30 -0
- package/dist/operator-ui/assets/diagram-UQ7AKVKN-Bhe0hBRp.js +41 -0
- package/dist/operator-ui/assets/diagram-VSXAHHWV-DCmGVIr0.js +3 -0
- package/dist/operator-ui/assets/diagram-VX7I27RA-Bs6Vy86z.js +24 -0
- package/dist/operator-ui/assets/diagram-Z3DM3KII-DM7HmIub.js +24 -0
- package/dist/operator-ui/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist/operator-ui/assets/ebnfDiagram-PWID7BFC-D2y4BOCF.js +1 -0
- package/dist/operator-ui/assets/erDiagram-RLTQ6QDP-SM1BNTfU.js +99 -0
- package/dist/operator-ui/assets/eventmodeling-NTZA5JFV-BE74fbWW.js +1 -0
- package/dist/operator-ui/assets/flowDiagram-HODETNUW-Bv9uAODR.js +1 -0
- package/dist/operator-ui/assets/ganttDiagram-EL5Y4UJY-B2P50qAo.js +292 -0
- package/dist/operator-ui/assets/gitGraph-4MIJSDKK-CAF_C8Dc.js +1 -0
- package/dist/operator-ui/assets/gitGraphDiagram-WWUBYQGX-SInZ4rJX.js +106 -0
- package/dist/operator-ui/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/operator-ui/assets/index-CPqSvndN.css +2 -0
- package/dist/operator-ui/assets/index-f-CSZ52F.js +25 -0
- package/dist/operator-ui/assets/info-A6RAGUB7-Bllvf-34.js +1 -0
- package/dist/operator-ui/assets/infoDiagram-27XIBGKW-D8NT9zyX.js +2 -0
- package/dist/operator-ui/assets/init-C-OQMol4.js +1 -0
- package/dist/operator-ui/assets/ishikawaDiagram-5VMMS53U-CE8D2a4x.js +70 -0
- package/dist/operator-ui/assets/journeyDiagram-3NMN7TZE-M29lG_I4.js +139 -0
- package/dist/operator-ui/assets/kanban-definition-UXKFOSKX-uofpf--r.js +89 -0
- package/dist/operator-ui/assets/katex-ZlcWpGUi.js +257 -0
- package/dist/operator-ui/assets/line-O2iQnsVY.js +1 -0
- package/dist/operator-ui/assets/linear-CFt_L1U_.js +1 -0
- package/dist/operator-ui/assets/mermaid-parser.core-Z8f9As5u.js +7 -0
- package/dist/operator-ui/assets/mermaid.core-DlT9jDxk.js +44 -0
- package/dist/operator-ui/assets/mindmap-definition-YA3MSWOX-DF-U4w3y.js +96 -0
- package/dist/operator-ui/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/operator-ui/assets/packet-AYTQ26CC-BxumXMQA.js +1 -0
- package/dist/operator-ui/assets/path-fybaL0A-.js +1 -0
- package/dist/operator-ui/assets/pegDiagram-XKGWAZYB-CEfYiEYk.js +1 -0
- package/dist/operator-ui/assets/pie-WAS4IAKB-dJWiJit9.js +1 -0
- package/dist/operator-ui/assets/pieDiagram-E7YTZNPT-DNUW3YgV.js +39 -0
- package/dist/operator-ui/assets/quadrantDiagram-AXDQQJYC-BywHKYmV.js +7 -0
- package/dist/operator-ui/assets/radar-RG4KPBEZ-DVXYXIk7.js +1 -0
- package/dist/operator-ui/assets/railroad-74A4TZTK-DUlxBsRj.js +1 -0
- package/dist/operator-ui/assets/railroad-abnf-HS5TGJTU-DNtifAEn.js +1 -0
- package/dist/operator-ui/assets/railroad-ebnf-LZEXJU2U-CYKwwuRu.js +1 -0
- package/dist/operator-ui/assets/railroad-peg-WCYAUIDC-DLC4ckY3.js +1 -0
- package/dist/operator-ui/assets/railroadDiagram-O6MQD6OU-BK5ZqcXN.js +1 -0
- package/dist/operator-ui/assets/requirementDiagram-BXWQKSXE-BPNZxdR4.js +84 -0
- package/dist/operator-ui/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/operator-ui/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/operator-ui/assets/sankeyDiagram-P5KCCOFB-A3wO6K53.js +40 -0
- package/dist/operator-ui/assets/sequenceDiagram-WJ2MYXX4-DZH1qETK.js +162 -0
- package/dist/operator-ui/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/operator-ui/assets/src-B-DeWB10.js +1 -0
- package/dist/operator-ui/assets/src-D6_zRfqR.js +1 -0
- package/dist/operator-ui/assets/stateDiagram-D77RDMKH-BAxdK688.js +1 -0
- package/dist/operator-ui/assets/stateDiagram-v2-MP3YSRHH-0zIAKCg6.js +1 -0
- package/dist/operator-ui/assets/swimlanes-42K2YHIH-CZCcKZu8.js +1 -0
- package/dist/operator-ui/assets/swimlanesDiagram-VR7AAH4N-Bkz-hKOF.js +8 -0
- package/dist/operator-ui/assets/timeline-definition-24CTP7MA-Bj5uQAgY.js +120 -0
- package/dist/operator-ui/assets/treeView-Q6P3EWNA-BEmjJl7z.js +1 -0
- package/dist/operator-ui/assets/treemap-WGGIJYW6-KNjDwrtc.js +1 -0
- package/dist/operator-ui/assets/value-DcGlvoTp.js +1 -0
- package/dist/operator-ui/assets/vennDiagram-4TSXK5OY-CQcrg6LI.js +34 -0
- package/dist/operator-ui/assets/wardley-WFR3VGLG-DchAOldS.js +1 -0
- package/dist/operator-ui/assets/wardleyDiagram-VM6X3IG4-BRXjrmTb.js +78 -0
- package/dist/operator-ui/assets/xychartDiagram-S5SC5T6Z-BHTOn-Ft.js +7 -0
- package/dist/operator-ui/index.html +4 -3
- package/dist/operator-ui/logos/README.md +7 -0
- package/dist/operator-ui/logos/repo-harness-carrot-mark-transparent.svg +1 -0
- package/dist/operator-ui/mascots/README.md +11 -0
- package/dist/operator-ui/mascots/buddy-alert.svg +1 -0
- package/dist/operator-ui/mascots/buddy-happy.svg +1 -0
- package/dist/operator-ui/mascots/buddy-party.svg +1 -0
- package/dist/operator-ui/mascots/buddy-reading.svg +1 -0
- package/dist/operator-ui/mascots/buddy-search.svg +1 -0
- package/dist/operator-ui/mascots/buddy-sleep.svg +1 -0
- package/dist/operator-ui/mascots/buddy-wrench.svg +1 -0
- package/dist/operator-ui/mascots/buddy.svg +1 -0
- package/dist/operator-ui/mascots/bug.svg +1 -0
- package/dist/operator-ui/mascots/cloud-off.svg +1 -0
- package/dist/operator-ui/mascots/donkey-bags.svg +1 -0
- package/dist/operator-ui/mascots/donkey-happy.svg +1 -0
- package/dist/operator-ui/mascots/donkey.svg +1 -0
- package/dist/operator-ui/mascots/hook-cap.svg +1 -0
- package/dist/operator-ui/mascots/hook-carrot.svg +1 -0
- package/dist/operator-ui/mascots/hook.svg +1 -0
- package/dist/operator-ui/mascots/terminal.svg +1 -0
- package/docs/images/archimap.png +0 -0
- package/docs/images/operator-console/bot-paths.png +0 -0
- package/docs/images/operator-console/docs-session-states.png +0 -0
- package/docs/images/operator-console/ia-sidebar.png +0 -0
- package/docs/repo-harness-chatgpt-browser-engine.md +2 -2
- package/interfaces/effective-state-v2.ts +1 -0
- package/interfaces/types.ts +1 -1
- package/package.json +36 -7
- package/scripts/AGENTS.md +3 -5
- package/scripts/CLAUDE.md +3 -5
- package/scripts/capability-config.ts +0 -19
- package/scripts/check-agent-tooling.sh +26 -8
- package/scripts/check-pi-package-smoke.ts +39 -0
- package/scripts/check-state-boundaries.ts +138 -37
- package/scripts/check-tarball-install-smoke.sh +20 -15
- package/scripts/contract-worktree-runtime.ts +30 -2
- package/scripts/contract-worktree.sh +142 -199
- package/scripts/create-project-dirs.sh +1 -41
- package/scripts/heartbeat-triage.sh +0 -46
- package/scripts/init-project.sh +2 -48
- package/scripts/inspect-project-state.ts +0 -29
- package/scripts/install-agent-fleet.sh +16 -10
- package/scripts/lib/ci-run-tests.sh +29 -1
- package/scripts/lib/project-init-lib.sh +98 -363
- package/scripts/lib/test-home-isolation.mjs +20 -4
- package/scripts/maintenance-triage.sh +52 -1
- package/scripts/project-test-capabilities.ts +167 -0
- package/scripts/recovery-view-cli.ts +3 -5
- package/scripts/report-ci.ts +130 -12
- package/scripts/run-harness-profile-benchmark.ts +4 -43
- package/scripts/run-skill-routing-eval.ts +54 -16
- package/scripts/select-ci-coverage.ts +18 -43
- package/scripts/ship-worktrees.sh +1 -20
- package/scripts/skill-surface-select.ts +2 -0
- package/scripts/sync-codex-installed-copies.sh +16 -1
- package/scripts/test-file-durations.json +0 -13
- package/scripts/workflow-contract.ts +4 -0
- package/src/cli/chatgpt-browser/file-policy.ts +14 -9
- package/src/cli/commands/adoption-plan.ts +17 -12
- package/src/cli/commands/architecture-configuration.ts +21 -20
- package/src/cli/commands/architecture-debt.ts +8 -1
- package/src/cli/commands/bots.ts +48 -0
- package/src/cli/commands/brain-root.ts +9 -8
- package/src/cli/commands/brain.ts +7 -146
- package/src/cli/commands/candidate-reconciliation.ts +1 -1
- package/src/cli/commands/capability-context.ts +0 -2
- package/src/cli/commands/doc-sessions.ts +107 -0
- package/src/cli/commands/doctor.ts +125 -7
- package/src/cli/commands/external-source.ts +1 -9
- package/src/cli/commands/fleet.ts +34 -7
- package/src/cli/commands/global-runtime.ts +113 -42
- package/src/cli/commands/herdr-skill-render.d.mts +1 -0
- package/src/cli/commands/herdr-skill-render.mjs +14 -0
- package/src/cli/commands/herdr-skill.ts +23 -12
- package/src/cli/commands/herdr.ts +5 -1
- package/src/cli/commands/init-hook.ts +21 -2
- package/src/cli/commands/init.ts +7 -19
- package/src/cli/commands/mcp.ts +208 -49
- package/src/cli/commands/operator.ts +25 -2
- package/src/cli/commands/publication.ts +35 -10
- package/src/cli/commands/retention.ts +0 -2
- package/src/cli/commands/review.ts +44 -3
- package/src/cli/commands/run.ts +1 -14
- package/src/cli/commands/setup-snapshot.ts +27 -5
- package/src/cli/commands/state.ts +11 -10
- package/src/cli/commands/tools.ts +1 -1
- package/src/cli/commands/upgrade-registered.ts +271 -0
- package/src/cli/commands/upgrade.ts +213 -20
- package/src/cli/commands/worktrees.ts +122 -0
- package/src/cli/hook/AGENTS.md +5 -6
- package/src/cli/hook/CLAUDE.md +5 -6
- package/src/cli/hook/agent-notice.ts +88 -12
- package/src/cli/hook/bridge-client.ts +128 -0
- package/src/cli/hook/event-telemetry.ts +182 -1
- package/src/cli/hook/handler-registry.ts +2 -2
- package/src/cli/hook/hook-protocol.ts +45 -0
- package/src/cli/hook/mutation-bash.ts +109 -28
- package/src/cli/hook/mutation-guard.ts +6 -1
- package/src/cli/hook/route-registry.ts +13 -5
- package/src/cli/hook/runtime.ts +6 -3
- package/src/cli/hook/session-context.ts +6 -83
- package/src/cli/hook/stop-handler.ts +6 -49
- package/src/cli/hook/subagent-context.ts +1 -1
- package/src/cli/index.ts +129 -69
- package/src/cli/installer/global-context.ts +1 -0
- package/src/cli/installer/install-profile.ts +206 -61
- package/src/cli/installer/managed-entries.ts +2 -2
- package/src/cli/installer/pi-package.ts +90 -0
- package/src/cli/installer/shared.ts +1 -1
- package/src/cli/installer/skill-projection.ts +7 -5
- package/src/cli/installer/uninstall.ts +62 -17
- package/src/cli/mcp/audit.ts +42 -0
- package/src/cli/mcp/auth.ts +3 -2
- package/src/cli/mcp/coding-workspaces.ts +17 -14
- package/src/cli/mcp/fleet-tools.ts +108 -12
- package/src/cli/mcp/general-repo-access/authority.ts +22 -0
- package/src/cli/mcp/general-repo-access.ts +3 -0
- package/src/cli/mcp/herdr-tools.ts +267 -0
- package/src/cli/mcp/instructions.ts +16 -4
- package/src/cli/mcp/oauth.ts +209 -90
- package/src/cli/mcp/policy.ts +43 -20
- package/src/cli/mcp/repo.ts +1 -1
- package/src/cli/mcp/review-publish-tool.ts +106 -0
- package/src/cli/mcp/server.ts +38 -26
- package/src/cli/mcp/setup-ownership.ts +2 -1
- package/src/cli/mcp/setup.ts +81 -65
- package/src/cli/mcp/state-tools.ts +20 -49
- package/src/cli/mcp/tools.ts +84 -286
- package/src/cli/mcp/transports/http.ts +55 -66
- package/src/cli/mcp/types.ts +8 -1
- package/src/cli/mcp/uninstall.ts +1 -1
- package/src/core/architecture/projection.ts +56 -0
- package/src/core/capabilities/registry.ts +0 -14
- package/src/core/capabilities/resolver.ts +0 -2
- package/src/core/decision/pane-status.d.mts +1 -1
- package/src/core/decision/pane-status.mjs +1 -1
- package/src/core/dev-activity/architecture.ts +24 -0
- package/src/core/dev-activity/brief.ts +15 -8
- package/src/core/dev-activity/decode.ts +19 -23
- package/src/core/dev-activity/projection.ts +24 -8
- package/src/core/dev-activity/types.ts +23 -5
- package/src/core/engineers/AGENTS.md +4 -6
- package/src/core/engineers/CLAUDE.md +4 -6
- package/src/core/engineers/scheduling.ts +2 -499
- package/src/core/evidence/required-check-evidence.ts +659 -0
- package/src/core/evidence/test-execution-evidence.ts +154 -0
- package/src/core/evidence/workflow-needs.ts +143 -0
- package/src/core/external-sources/binding.ts +0 -173
- package/src/core/operator/admitted-task-activity.ts +2 -2
- package/src/core/operator/agents-settings.ts +283 -0
- package/src/core/operator/architecture-map.ts +867 -0
- package/src/core/operator/bot-access.ts +467 -0
- package/src/core/operator/doc-citation.ts +105 -0
- package/src/core/operator/doc-session-agent-record.ts +26 -0
- package/src/core/operator/doc-session-changes.ts +191 -0
- package/src/core/operator/doc-session-events.ts +211 -0
- package/src/core/operator/doc-session-finalization-view.ts +44 -0
- package/src/core/operator/doc-session-finalize.ts +42 -0
- package/src/core/operator/doc-session-record.ts +58 -0
- package/src/core/operator/doc-session-views.ts +99 -0
- package/src/core/operator/docs-host-runtimes.ts +16 -0
- package/src/core/operator/docs.ts +139 -0
- package/src/core/operator/execution-state.ts +156 -0
- package/src/core/operator/fleet-snapshot.ts +4 -0
- package/src/core/operator/herdr-pin.ts +13 -0
- package/src/core/operator/notify-status.ts +128 -0
- package/src/core/operator/public-text.ts +24 -0
- package/src/core/operator/pull-request-files.ts +10 -0
- package/src/core/operator/runtime-status.ts +44 -78
- package/src/core/operator/task-activity.ts +6 -88
- package/src/core/operator/tests.ts +298 -0
- package/src/core/operator/worktree-cleanup-observation.ts +35 -0
- package/src/core/operator/worktree-cleanup-plan.ts +129 -0
- package/src/core/operator/worktree-cleanup.ts +86 -0
- package/src/core/operator/worktrees.ts +87 -0
- package/src/core/publication/acceptance-merge-policy.ts +196 -0
- package/src/core/publication/closing-references.ts +96 -0
- package/src/core/publication/generated-artifacts.ts +316 -0
- package/src/core/publication/merge-readiness.ts +295 -7
- package/src/core/publication/policy-path.ts +2 -0
- package/src/core/publication/required-check-coverage.ts +314 -0
- package/src/core/review/acceptance-receipt.ts +106 -14
- package/src/core/review/generic-review.ts +7 -2
- package/src/core/review/review-publish.ts +262 -0
- package/src/core/review/review-runtimes.ts +11 -0
- package/src/core/setup/cli-inventory.ts +463 -0
- package/src/core/setup/cli-seed.v1.json +538 -0
- package/src/core/setup/decode.ts +48 -10
- package/src/core/setup/hook-usage.ts +94 -0
- package/src/core/setup/projection.ts +24 -7
- package/src/core/setup/types.ts +48 -9
- package/src/core/skill-surface/catalog.ts +11 -6
- package/src/core/state/artifact-parsers.ts +0 -31
- package/src/core/state/coordination-identity.ts +4 -179
- package/src/core/state/project-continuation-envelope.ts +30 -26
- package/src/core/state/project-effective-state.ts +8 -95
- package/src/core/state/project-state-snapshot.ts +4 -16
- package/src/core/state/types.ts +28 -19
- package/src/core/tools/catalog.ts +29 -3
- package/src/dsh/bridge.ts +40 -0
- package/src/dsh/plugin.ts +262 -0
- package/src/effects/adoption/manifest-templates.ts +1 -1
- package/src/effects/adoption/standard-plan.ts +63 -222
- package/src/effects/architecture/capability-resolver.ts +1 -23
- package/src/effects/architecture/model-reader.ts +3 -3
- package/src/effects/artifact-retention.ts +19 -56
- package/src/effects/bot-registry.ts +185 -0
- package/src/effects/configuration/agents-configuration.ts +127 -0
- package/src/effects/configuration/global-configuration.ts +114 -8
- package/src/effects/dev-activity/collector.ts +94 -26
- package/src/effects/engineers/dependency-authority.ts +15 -8
- package/src/effects/evidence/recovery-materializer.ts +58 -141
- package/src/effects/external-sources/binding.ts +1 -8
- package/src/effects/external-sources/store.ts +2 -26
- package/src/effects/fleet/task-inbox.ts +1 -110
- package/src/effects/git/common-directory.ts +17 -7
- package/src/effects/git/managed-worktree.ts +33 -0
- package/src/effects/git/runner.ts +110 -0
- package/src/effects/git/worktree-processes.ts +72 -0
- package/src/effects/git/worktree-record.ts +71 -0
- package/src/effects/host-skill-roots.ts +8 -4
- package/src/effects/locking/exclusive-directory-lock.ts +46 -36
- package/src/effects/locking/runtime-transaction-lock.ts +123 -0
- package/src/effects/loop/state-input-collector.ts +0 -5
- package/src/effects/operator/admitted-task-activity.ts +5 -2
- package/src/effects/operator/agents-settings-route.ts +94 -0
- package/src/effects/operator/architecture-map-collector.ts +156 -0
- package/src/effects/operator/architecture-map-worker.ts +685 -0
- package/src/effects/operator/architecture.ts +1 -1
- package/src/effects/operator/bot-access.ts +311 -0
- package/src/effects/operator/cleanup-file-access.ts +140 -0
- package/src/effects/operator/doc-session-changes.ts +431 -0
- package/src/effects/operator/doc-session-events.ts +198 -0
- package/src/effects/operator/doc-session-finalization-view.ts +12 -0
- package/src/effects/operator/doc-session-finalize-github.ts +147 -0
- package/src/effects/operator/doc-session-finalize-scope.ts +39 -0
- package/src/effects/operator/doc-session-finalize.ts +404 -0
- package/src/effects/operator/doc-session-views.ts +131 -0
- package/src/effects/operator/doc-session.ts +277 -0
- package/src/effects/operator/docs-collector.ts +182 -0
- package/src/effects/operator/docs-reader.ts +470 -0
- package/src/effects/operator/execution-collector.ts +129 -0
- package/src/effects/operator/execution-state-worker.ts +23 -0
- package/src/effects/operator/execution-state.ts +74 -0
- package/src/effects/operator/herdr-runtime-transport.ts +13 -16
- package/src/effects/operator/notify-collector.ts +62 -0
- package/src/effects/operator/notify-status.ts +101 -87
- package/src/effects/operator/runtime-service.ts +9 -4
- package/src/effects/operator/runtime-source.ts +13 -27
- package/src/effects/operator/runtime-status.ts +40 -53
- package/src/effects/operator/server.ts +596 -44
- package/src/effects/operator/task-diff.ts +15 -10
- package/src/effects/operator/task-read-process.ts +20 -10
- package/src/effects/operator/tests-collector.ts +317 -0
- package/src/effects/operator/worktree-cleanup-archive.ts +229 -0
- package/src/effects/operator/worktree-cleanup-observation.ts +199 -0
- package/src/effects/operator/worktree-cleanup-plan.ts +204 -0
- package/src/effects/operator/worktree-cleanup-removal.ts +54 -0
- package/src/effects/operator/worktree-cleanup.ts +226 -0
- package/src/effects/operator/worktree-collector-worker.ts +98 -0
- package/src/effects/operator/worktree-collector.ts +81 -0
- package/src/effects/operator/worktree-orphans-worker.ts +95 -0
- package/src/effects/operator/write-audit.ts +183 -0
- package/src/effects/operator/write-channel.ts +172 -0
- package/src/effects/operator/write-run.ts +197 -0
- package/src/effects/path-identity.ts +8 -0
- package/src/effects/pi-agent-dir.ts +11 -0
- package/src/effects/pi-executable.ts +34 -0
- package/src/effects/process-group-registry.ts +1 -1
- package/src/effects/publication/generated-artifacts.ts +517 -0
- package/src/effects/publication/merge-executor.ts +540 -0
- package/src/effects/publication/merge-readiness.ts +964 -78
- package/src/effects/publication/test-execution-evidence.ts +205 -0
- package/src/effects/repo-harness-home.ts +8 -0
- package/src/effects/repo-registry.ts +186 -17
- package/src/effects/review/acceptance-receipt.ts +140 -6
- package/src/effects/review/diff-fingerprint.ts +9 -7
- package/src/effects/review/docs-host-isolation.ts +312 -0
- package/src/effects/review/docs-host-proxy.ts +162 -0
- package/src/effects/review/generic-review.ts +100 -36
- package/src/effects/review/oar-review-host.ts +29 -15
- package/src/effects/review/pre-prompt-inbox-consumer.ts +3 -3
- package/src/effects/review/review-isolation.ts +87 -4
- package/src/effects/review/review-publish.ts +317 -0
- package/src/effects/runtime/helper-runner.ts +0 -1
- package/src/effects/runtime/protected-helper-platform.ts +8 -38
- package/src/effects/setup/agent-runtime-probe-child.ts +9 -0
- package/src/effects/setup/agent-runtime-probe.ts +116 -0
- package/src/effects/setup/cli-inventory.ts +456 -0
- package/src/effects/setup/collector.ts +63 -7
- package/src/effects/setup/hook-usage.ts +56 -0
- package/src/effects/setup/pi-capability-child.ts +9 -0
- package/src/effects/setup/pi-herdr-integration.ts +58 -0
- package/src/effects/state/coordination-worktree-topology.ts +443 -68
- package/src/effects/state/resolve-continuation-envelope.ts +2 -2
- package/src/effects/state/resolve-effective-state.ts +65 -98
- package/src/effects/state/worktree-trash.ts +157 -6
- package/src/effects/strategy/context.ts +2 -3
- package/src/effects/terminal/herdr-decision.ts +2 -2
- package/src/effects/terminal/herdr-notify-install.ts +88 -0
- package/src/effects/terminal/herdr-observation.ts +29 -24
- package/src/effects/terminal/native-task-session.ts +7 -5
- package/src/effects/terminal/task-role-profiles.ts +4 -1
- package/src/effects/terminal/task-runtime-observation.ts +16 -6
- package/src/effects/terminal/task-session.ts +84 -3
- package/src/effects/upgrade/legacy-inventory.ts +28 -2
- package/src/effects/upgrade/legacy-worktree-cleanup.ts +215 -0
- package/src/effects/upgrade/operator-decisions.ts +130 -0
- package/src/effects/upgrade/worktree-template-migration.ts +141 -0
- package/src/operator-web/App.tsx +196 -219
- package/src/operator-web/ArchitectureMap.tsx +462 -0
- package/src/operator-web/ArchitectureSequence.tsx +303 -0
- package/src/operator-web/ArchitectureTopology.tsx +219 -0
- package/src/operator-web/ArchitectureWorkspace.tsx +35 -4
- package/src/operator-web/Board.tsx +29 -13
- package/src/operator-web/BotsPage.tsx +380 -0
- package/src/operator-web/CliPage.tsx +113 -0
- package/src/operator-web/DocsMarkdown.tsx +182 -0
- package/src/operator-web/DocsPage.tsx +229 -0
- package/src/operator-web/Drawer.tsx +10 -4
- package/src/operator-web/Home.tsx +352 -0
- package/src/operator-web/ItemDrawer.tsx +63 -7
- package/src/operator-web/NavRail.tsx +394 -0
- package/src/operator-web/RepositoryWorkspace.tsx +3 -41
- package/src/operator-web/RuntimeBadges.tsx +5 -4
- package/src/operator-web/SettingsPage.tsx +250 -0
- package/src/operator-web/SetupPages.tsx +40 -7
- package/src/operator-web/TestsPage.tsx +258 -0
- package/src/operator-web/ToolsPage.tsx +26 -14
- package/src/operator-web/WorktreesPage.tsx +251 -0
- package/src/operator-web/app.css +172 -7
- package/src/operator-web/architecture-map-layers.ts +125 -0
- package/src/operator-web/architecture-map-layout.ts +173 -0
- package/src/operator-web/architecture-map-parts.tsx +236 -0
- package/src/operator-web/architecture-runtime.ts +43 -0
- package/src/operator-web/architecture-sequence-layout.ts +126 -0
- package/src/operator-web/architecture-topology-layout.ts +157 -0
- package/src/operator-web/bots.ts +90 -0
- package/src/operator-web/brand.tsx +22 -0
- package/src/operator-web/design-tokens.ts +58 -0
- package/src/operator-web/dev-activity.ts +28 -7
- package/src/operator-web/fixture.ts +3 -18
- package/src/operator-web/fixtures/architecture-map.json +18788 -0
- package/src/operator-web/fixtures/bots.ts +109 -0
- package/src/operator-web/fixtures/dev-activity.ts +49 -9
- package/src/operator-web/fixtures/docs.ts +131 -0
- package/src/operator-web/fixtures/index.ts +68 -4
- package/src/operator-web/fixtures/settings.ts +102 -0
- package/src/operator-web/fixtures/setup.ts +22 -9
- package/src/operator-web/fixtures/tests.ts +72 -0
- package/src/operator-web/fixtures/worktrees.ts +115 -0
- package/src/operator-web/i18n.ts +1386 -39
- package/src/operator-web/index.html +1 -1
- package/src/operator-web/labels.ts +7 -0
- package/src/operator-web/main.tsx +2 -0
- package/src/operator-web/repository-reads.ts +279 -0
- package/src/operator-web/settings.ts +270 -0
- package/src/operator-web/setup.ts +16 -9
- package/src/operator-web/task-location.ts +10 -15
- package/src/operator-web/types.ts +72 -3
- package/src/operator-web/ui.tsx +19 -2
- package/src/operator-web/workspace-location.ts +45 -13
- package/src/operator-web/worktrees.ts +245 -0
- package/src/pi/compat.ts +54 -0
- package/src/pi/extension.ts +139 -0
- package/src/pi/hook-bridge.ts +44 -0
- package/assets/reference-configs/development-protocol.md +0 -18
- package/assets/reference-configs/handoff-protocol.md +0 -8
- package/assets/reference-configs/sprint-contracts.md +0 -51
- package/assets/reference-configs/workflow-orchestration.md +0 -29
- package/assets/skills/repo-harness-product/references/sprint.md +0 -34
- package/assets/templates/contract.template.md +0 -173
- package/assets/templates/implementation-notes.template.md +0 -41
- package/assets/templates/plan.template.md +0 -87
- package/assets/templates/review.template.md +0 -98
- package/assets/templates/sprint.template.md +0 -76
- package/dist/operator-ui/assets/ArchitectureWorkspace-9kTFQyoX.js +0 -1
- package/dist/operator-ui/assets/index-BPO_QTWf.js +0 -18
- package/dist/operator-ui/assets/index-DDqPSgxK.css +0 -2
- package/docs/images/image.png +0 -0
- package/interfaces/effective-state-v1.ts +0 -1
- package/scripts/archive-workflow.sh +0 -851
- package/scripts/capture-plan.sh +0 -29
- package/scripts/check-task-sync.sh +0 -24
- package/scripts/check-task-workflow.sh +0 -25
- package/scripts/classify-historical-plans.ts +0 -254
- package/scripts/ensure-task-workflow.sh +0 -11
- package/scripts/migrate-verification-plan.ts +0 -221
- package/scripts/new-plan.sh +0 -193
- package/scripts/plan-to-todo.sh +0 -17
- package/scripts/refresh-current-status.sh +0 -552
- package/scripts/switch-plan.sh +0 -150
- package/scripts/verify-contract.sh +0 -40
- package/scripts/workstream-sync.sh +0 -300
- package/src/cli/installer/runtime-host-lock.ts +0 -66
- package/src/core/operator/task-history.ts +0 -56
- package/src/core/state/sprint-backlog-rows.ts +0 -154
- package/src/effects/operator/task-activity.ts +0 -45
- package/src/effects/operator/task-history.ts +0 -105
- package/src/effects/state/coordination-canonical-source.ts +0 -461
- package/src/operator-web/TaskEvidence.tsx +0 -95
- package/src/operator-web/TaskHistory.tsx +0 -51
- package/src/operator-web/favicon.svg +0 -6
- package/src/operator-web/marks.tsx +0 -41
- package/src/operator-web/task-activity.ts +0 -11
- package/src/operator-web/task-history.ts +0 -12
- /package/dist/operator-ui/{assets/favicon-TLXk-wak.svg → logos/repo-harness-carrot-mark.svg} +0 -0
package/AGENTS.md
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
# repo-harness
|
|
2
2
|
|
|
3
3
|
## Workflow
|
|
4
|
+
- Multi-agent work follows `repo-harness-issue-flow` (`assets/skills/repo-harness-issue-flow/SKILL.md`): roles, claims, handoff, dispatch, acceptance and merge.
|
|
5
|
+
- `docs/architecture/archimap.html` is the single architecture entry. It links each module to its archctx-projected capability doc in `docs/architecture/modules/`. Change boundaries only through `repo-harness-architecture`; do not hand-write other architecture docs.
|
|
6
|
+
- Keep four hard boundaries: main publication, deletion, credentials/permissions, and release/production operations.
|
|
7
|
+
- Only when the current task explicitly authorizes main publication, and `publication.acceptance_merge` is `on` in the policy on the PR base, is publication allowed; the skill defines who merges. Push/tag need task authorization. Deletion, credentials/permissions and release/production need user approval. An explicit no-merge instruction always wins.
|
|
8
|
+
- The diff's [Review by risk](docs/reference-configs/agentic-development-flow.md#review-by-risk) tier selects independent review; the skill defines the reviewers and their model families. Changing implementation and test assertions together does not raise the tier.
|
|
9
|
+
- Create task worktrees only at `/tmp/<repo>-wt-<slug>` (Windows: `os.tmpdir()`) with `repo-harness run contract-worktree start --issue <number>`, or `git worktree add` with that path. Never create one beside the main checkout (`../`). Commit or push before a reboot or a tmp cleanup. Closeout and sweep remove only merged, clean and unowned worktrees; to keep one, give it an unmerged commit, keep it dirty, or mark or lock it.
|
|
4
10
|
- For non-trivial work, follow the global Progressive Due Diligence rule (P1 map, P2 trace, P3 decision) before design decisions or code edits.
|
|
5
11
|
- Keep root CLAUDE.md and AGENTS.md as standalone regular files; repeat shared rules in both and keep host-specific guidance separate.
|
|
6
|
-
- Read the current request and repo-local agent context, work on a branch, make bounded commits, verify once, then report the PR outcome.
|
|
12
|
+
- Read the current request and repo-local agent context, work on a branch, make bounded commits, verify once, then report the PR outcome. Finish the main task first. Fix a small problem found on the way directly; for a large problem, open a GitHub issue before you work on it.
|
|
7
13
|
- Read `tasks/lessons.md` at session start and apply its active lessons. Current repo state and evidence override a lesson.
|
|
8
|
-
-
|
|
9
|
-
- Ordinary tasks use the PR description: goal, scope, changes, verification, risk and rollback. No mandatory plan/contract/review/notes chain; notes are only for non-obvious decisions.
|
|
10
|
-
- Keep four hard boundaries: main publication, deletion, credentials/permissions, and release/production operations.
|
|
11
|
-
- Only when the current task explicitly authorizes main publication may a model squash-merge after automated checks pass and GitHub has no outstanding change requests or unresolved review threads; an explicit no-merge instruction always wins. Push/tag still require task authorization; credentials/permissions, other deletion and release/production retain their separate approval boundaries. Record authorized publication, the provider-confirmed merge SHA and parent SHA, `git revert <squash-commit>`, and the daily report. Do not create rollback tags.
|
|
12
|
-
- Default worktrees are at `/tmp/<repo>-wt-<slug>` (Windows: `os.tmpdir()`). Commit or push before a reboot or a tmp cleanup.
|
|
13
|
-
- Closeout and sweep remove only merged, clean and unowned worktrees. To keep one, give it an unmerged commit, keep it dirty, or mark or lock it. Details: [agentic-development-flow](docs/reference-configs/agentic-development-flow.md).
|
|
14
|
-
- Automatically delete only merged, clean worktrees/branches; ask the user for every other deletion. Credentials/permissions (including confirmation bypass) and release/production operations require user approval.
|
|
15
|
-
- Select independent review by the diff's [Review by risk](docs/reference-configs/agentic-development-flow.md#review-by-risk) tier: none for low, one fresh-context review for medium, gatekeeper plus cross-model review for high; ordinary steps record diagnostics without approval loops.
|
|
16
|
-
- When you delegate, investigate first, then split work by write ownership. Give each parallel writer its own worktree from a clean source. Implementation sub-agents edit only their scope. They do not run build, typecheck or tests. They commit early in their own worktree and return early. In a shared checkout they do not commit; the parent commits. Evidence roles run the named check that is their task and do not commit. The parent agent owns task management, conflict resolution, build, typecheck, tests and integration. After integration, the parent removes each sub-agent worktree and branch whose commits are in the task branch and whose checkout is clean. It also removes the intermediate build output and temporary files that the work created. Other deletion still needs the user.
|
|
17
|
-
- Model division and cross-model dispatch/review follow [Herdr Dispatch](docs/reference-configs/herdr-notify.md#herdr-dispatch).
|
|
14
|
+
- Ordinary tasks use the PR description: goal, scope, changes, verification, risk and rollback. No plan, contract, review, notes or approval artifact is mandatory. Record a one-time decision in the issue.
|
|
18
15
|
- GitHub operations (PRs, reviews, merges, labels, releases, comments) go only through the gh/git CLI or the GitHub API. Never use simulated browser clicks on github.com: the account can be banned.
|
|
19
|
-
-
|
|
20
|
-
- `.archcontext/model/` owns architecture boundaries; read `docs/architecture/` on demand and update only real responsibility changes. Architecture diagnostics do not block work or author nested agent instructions.
|
|
21
|
-
- When a branch changes a capability's responsibility, entrypoints, relations or flows, follow `repo-harness-architecture` (`assets/skill-commands/repo-harness-architecture/references/worker.md`). Handle architecture debt in the model and human prose. The archctx rolling writer publishes generated regions and the projection manifest; do not apply and commit them in a feature PR.
|
|
22
|
-
- Preserve `agents/fleet/`, release checklists and downstream `assets/templates`. `.ai/harness/workflow-contract.json` is the opt-in marker. `assets/workflow-contract.v1.json` is the contract.
|
|
23
|
-
- `_ops/` is ignored private operations state: never commit or agent-edit it. `_ref/` is an ignored reference cache; cite influential revisions. Follow deploy SQL policy, otherwise use ascending 4-digit files under `deploy/sql/`.
|
|
24
|
-
|
|
25
|
-
## GitHub Issue Claims
|
|
26
|
-
- Before an agent starts work on a GitHub issue, read its current state, assignees and all comments through `gh` or the GitHub API. Use pagination for comments. Check existing work claims, linked PRs and handoff notes.
|
|
27
|
-
- An active claim is an assignee other than the current task owner, an open PR that links the issue, or an active claim comment that no later status comment released. If another agent or person has an active claim, do not start duplicate work. Coordinate with that owner within the authorized task scope. Take over only after an explicit handoff or user instruction. Silence, an old timestamp or a disconnected session does not release a claim.
|
|
28
|
-
- When taking an unclaimed issue or an approved handoff, post a claim comment before edits, tests or worker dispatch. Use `gh issue comment <issue-url> --body-file <file>`. This rule authorizes claim and status comments for an issue within the user's task scope. It grants no other GitHub write authority.
|
|
29
|
-
- Start the comment with `repo-harness issue claim`. Include `Status: active`, the agent kind and unique session or task ID, the branch, the work scope and any prior claim comment URL for a handoff. Use this identity in later status comments. A shared GitHub login is not an agent identity. Do not include secrets or private host paths.
|
|
30
|
-
- Read the issue comments again after posting. Confirm the published comment URL and body. If a competing claim appeared, stop duplicate work and resolve ownership before continuing. For simultaneous claims without an explicit assignment or handoff, the earliest GitHub comment wins; break timestamp ties by comment ID. These comments coordinate agents; they are not an atomic lock and do not replace canonical task claims or leases.
|
|
31
|
-
- On resume, check the current claim before continuing. Reuse the same active claim instead of posting it again. If a read or post fails, or delivery is uncertain, stop and report the failure. Read back before retrying an uncertain post.
|
|
32
|
-
- Post a status comment that links the claim when the work is blocked, ready for review, complete or released. Keep a blocked or review-pending claim active. Include the PR or result when available. Release ownership explicitly on cancellation or handoff. Do not close the issue unless the task authorizes closure.
|
|
16
|
+
- Preserve `agents/fleet/`, release checklists and downstream `assets/templates`. `.ai/harness/workflow-contract.json` is the opt-in marker. `assets/workflow-contract.v1.json` is the contract. `_ops/` is ignored private operations state: never commit or agent-edit it. `_ref/` is an ignored reference cache; cite influential revisions. Follow deploy SQL policy, otherwise use ascending 4-digit files under `deploy/sql/`.
|
|
33
17
|
|
|
34
18
|
## Code Optimization Principles
|
|
35
19
|
- Identify observable conditions, controllable inputs, the invariant and the actual pressure point before changing structure.
|
|
@@ -45,6 +29,7 @@
|
|
|
45
29
|
- For a bug fix, prefer a focused failing regression before the fix. Run only the reproducer during RED. Record a reproduction gap when the environment cannot produce it; ordinary tasks do not require RED artifacts.
|
|
46
30
|
- A diff's size, a new test file, a new agent or a rebase does not by itself require a full run.
|
|
47
31
|
- Use `bun run test:files <affected tests> --timeout 60000 --max-concurrency 1`; extend existing coverage before creating a new test file.
|
|
32
|
+
- Test budget per PR: added test lines divided by added product lines must not exceed 2:1, and the PR adds at most one test file. A PR that adds no product lines records the exception for any added test. Measure with `git diff --numstat main...HEAD -- tests` and `git diff --numstat main...HEAD -- src scripts`; above either cap, add a `Test budget exception` PR section with the counts and why an existing test cannot cover the behavior.
|
|
48
33
|
- Select tests by observable risk and owning runtime boundary, including error/recovery paths when affected.
|
|
49
34
|
- Mechanical prose changes need link/scope validation, not new product tests; do not test incidental formatting or that deleted files stay deleted.
|
|
50
35
|
- Reviewers consume the recorded command, result, revision and environment; they do not rerun passing checks to claim ownership.
|
|
@@ -52,20 +37,10 @@
|
|
|
52
37
|
- Run the full suite daily; a failure opens an automatic repair task and appears in the daily report.
|
|
53
38
|
- Isolate mutable HOME, repositories and process state; use real synchronization signals and preserve complete failure output.
|
|
54
39
|
- Report failed, timed-out, incomplete or omitted coverage explicitly; do not manufacture receipts, waiver files or pre-fix logs.
|
|
55
|
-
- Never modify or delete test assertions just to make tests pass; justify every necessary test change item by item in the PR description.
|
|
40
|
+
- Never modify or delete test assertions just to make tests pass; justify every necessary test change item by item in the PR description. Remove a redundant test only when the PR names the retained test that covers the same behavior.
|
|
56
41
|
- Before you write or change tests, load the `repo-harness-test` skill (`assets/skills/repo-harness-test/SKILL.md`).
|
|
57
42
|
- When a local check and CI disagree, CI is the authority. Reproduce the failure with `bash scripts/check-ci.sh <lane>` before you change code; a global `repo-harness` or `repo-harness-hook` on `PATH` can hide a missing test setup.
|
|
58
43
|
|
|
59
|
-
## Handoff
|
|
60
|
-
- Create a checkpoint only when context/session rollover or unresolved work needs it; ordinary completion stays in the PR description.
|
|
61
|
-
- Read files named in the current request before recovery context.
|
|
62
|
-
- Record the goal, branch/worktree/HEAD, decisions, touched files, verification results, blockers and one exact next command.
|
|
63
|
-
- Keep temporary checkpoints under ignored `.ai/harness/handoff/`; historical snapshots are not current execution authority.
|
|
64
|
-
- Include evidence paths and actual command outcomes; distinguish observed state from inference.
|
|
65
|
-
- Never include secrets, tokens or real environment files in handoff text.
|
|
66
|
-
- On resume, verify the live checkout and source artifacts before reusing a result; `tasks/current.md` is an optional local read model.
|
|
67
|
-
- Preserve dirty work and other workers' edits; hand back an ownership conflict instead of discarding their changes.
|
|
68
|
-
|
|
69
44
|
## Writing
|
|
70
45
|
- Write output text (docs, PR descriptions, commit messages, reports, research notes) in ASD-STE100 Simplified Technical English: short sentences, one idea per sentence, active voice, approved-dictionary words. Write Chinese output the same way.
|
|
71
46
|
- Prefer high information density: evidence first, mechanisms and business effect explained, complex reasoning allowed, no explanatory repetition. Lead with the main finding, key number or key mechanism. State known facts and supported conclusions directly, without lead-ins such as "note that", "this shows to some extent" or "it must be stressed". Put the evidence grade in the wording, not in a separate caveat.
|
|
@@ -79,9 +54,7 @@
|
|
|
79
54
|
- Avoid unnecessary secondary labels and descriptions. Let the layout do the explaining.
|
|
80
55
|
|
|
81
56
|
## Codex
|
|
82
|
-
- Own backend implementation and testing; Claude owns frontend implementation and interaction, and the parent coordinates scope and integration.
|
|
83
57
|
- User-level `~/.codex/hooks.json` hooks invoke `repo-harness-hook`; its typed route registry selects one in-process handler. Operator helpers run from the package through `repo-harness run <helper>`.
|
|
84
58
|
- Use `~/.codex/skills` as the runtime skill source; `~/.agents/skills` is staging/cache only. Keep `think`, `hunt`, `check` and `health` updates verified before runtime use.
|
|
85
59
|
- The Codex automation profile requires runtime-provided `health`, `check` and `mermaid`; do not vendor their bodies.
|
|
86
|
-
- Treat auto-compact as a fallback; prepare ignored `.ai/harness/handoff/current.md` and `resume.md` when long-task rollover is needed.
|
|
87
60
|
- Keep this file short; load [development flow](docs/reference-configs/agentic-development-flow.md) and [external tooling](docs/reference-configs/external-tooling.md) only when needed.
|
package/CLAUDE.md
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
# repo-harness
|
|
2
2
|
|
|
3
3
|
## Workflow
|
|
4
|
+
- Multi-agent work follows `repo-harness-issue-flow` (`assets/skills/repo-harness-issue-flow/SKILL.md`): roles, claims, handoff, dispatch, acceptance and merge.
|
|
5
|
+
- `docs/architecture/archimap.html` is the single architecture entry. It links each module to its archctx-projected capability doc in `docs/architecture/modules/`. Change boundaries only through `repo-harness-architecture`; do not hand-write other architecture docs.
|
|
6
|
+
- Keep four hard boundaries: main publication, deletion, credentials/permissions, and release/production operations.
|
|
7
|
+
- Only when the current task explicitly authorizes main publication, and `publication.acceptance_merge` is `on` in the policy on the PR base, is publication allowed; the skill defines who merges. Push/tag need task authorization. Deletion, credentials/permissions and release/production need user approval. An explicit no-merge instruction always wins.
|
|
8
|
+
- The diff's [Review by risk](docs/reference-configs/agentic-development-flow.md#review-by-risk) tier selects independent review; the skill defines the reviewers and their model families. Changing implementation and test assertions together does not raise the tier.
|
|
9
|
+
- Create task worktrees only at `/tmp/<repo>-wt-<slug>` (Windows: `os.tmpdir()`) with `repo-harness run contract-worktree start --issue <number>`, or `git worktree add` with that path. Never create one beside the main checkout (`../`). Commit or push before a reboot or a tmp cleanup. Closeout and sweep remove only merged, clean and unowned worktrees; to keep one, give it an unmerged commit, keep it dirty, or mark or lock it.
|
|
4
10
|
- For non-trivial work, follow the global Progressive Due Diligence rule (P1 map, P2 trace, P3 decision) before design decisions or code edits.
|
|
5
11
|
- Keep root CLAUDE.md and AGENTS.md as standalone regular files; repeat shared rules in both and keep host-specific guidance separate.
|
|
6
|
-
- Read the current request and repo-local agent context, work on a branch, make bounded commits, verify once, then report the PR outcome.
|
|
12
|
+
- Read the current request and repo-local agent context, work on a branch, make bounded commits, verify once, then report the PR outcome. Finish the main task first. Fix a small problem found on the way directly; for a large problem, open a GitHub issue before you work on it.
|
|
7
13
|
- Read `tasks/lessons.md` at session start and apply its active lessons. Current repo state and evidence override a lesson.
|
|
8
|
-
-
|
|
9
|
-
- Ordinary tasks use the PR description: goal, scope, changes, verification, risk and rollback. No mandatory plan/contract/review/notes chain; notes are only for non-obvious decisions.
|
|
10
|
-
- Keep four hard boundaries: main publication, deletion, credentials/permissions, and release/production operations.
|
|
11
|
-
- Only when the current task explicitly authorizes main publication may a model squash-merge after automated checks pass and GitHub has no outstanding change requests or unresolved review threads; an explicit no-merge instruction always wins. Push/tag still require task authorization; credentials/permissions, other deletion and release/production retain their separate approval boundaries. Record authorized publication, the provider-confirmed merge SHA and parent SHA, `git revert <squash-commit>`, and the daily report. Do not create rollback tags.
|
|
12
|
-
- Default worktrees are at `/tmp/<repo>-wt-<slug>` (Windows: `os.tmpdir()`). Commit or push before a reboot or a tmp cleanup.
|
|
13
|
-
- Closeout and sweep remove only merged, clean and unowned worktrees. To keep one, give it an unmerged commit, keep it dirty, or mark or lock it. Details: [agentic-development-flow](docs/reference-configs/agentic-development-flow.md).
|
|
14
|
-
- Automatically delete only merged, clean worktrees/branches; ask the user for every other deletion. Credentials/permissions (including confirmation bypass) and release/production operations require user approval.
|
|
15
|
-
- Select independent review by the diff's [Review by risk](docs/reference-configs/agentic-development-flow.md#review-by-risk) tier: none for low, one fresh-context review for medium, gatekeeper plus cross-model review for high; ordinary steps record diagnostics without approval loops.
|
|
16
|
-
- When you delegate, investigate first, then split work by write ownership. Give each parallel writer its own worktree from a clean source. Implementation sub-agents edit only their scope. They do not run build, typecheck or tests. They commit early in their own worktree and return early. In a shared checkout they do not commit; the parent commits. Evidence roles run the named check that is their task and do not commit. The parent agent owns task management, conflict resolution, build, typecheck, tests and integration. After integration, the parent removes each sub-agent worktree and branch whose commits are in the task branch and whose checkout is clean. It also removes the intermediate build output and temporary files that the work created. Other deletion still needs the user.
|
|
17
|
-
- Model division and cross-model dispatch/review follow [Herdr Dispatch](docs/reference-configs/herdr-notify.md#herdr-dispatch).
|
|
14
|
+
- Ordinary tasks use the PR description: goal, scope, changes, verification, risk and rollback. No plan, contract, review, notes or approval artifact is mandatory. Record a one-time decision in the issue.
|
|
18
15
|
- GitHub operations (PRs, reviews, merges, labels, releases, comments) go only through the gh/git CLI or the GitHub API. Never use simulated browser clicks on github.com: the account can be banned.
|
|
19
|
-
-
|
|
20
|
-
- `.archcontext/model/` owns architecture boundaries; read `docs/architecture/` on demand and update only real responsibility changes. Architecture diagnostics do not block work or author nested agent instructions.
|
|
21
|
-
- When a branch changes a capability's responsibility, entrypoints, relations or flows, follow `repo-harness-architecture` (`assets/skill-commands/repo-harness-architecture/references/worker.md`). Handle architecture debt in the model and human prose. The archctx rolling writer publishes generated regions and the projection manifest; do not apply and commit them in a feature PR.
|
|
22
|
-
- Preserve `agents/fleet/`, release checklists and downstream `assets/templates`. `.ai/harness/workflow-contract.json` is the opt-in marker. `assets/workflow-contract.v1.json` is the contract.
|
|
23
|
-
- `_ops/` is ignored private operations state: never commit or agent-edit it. `_ref/` is an ignored reference cache; cite influential revisions. Follow deploy SQL policy, otherwise use ascending 4-digit files under `deploy/sql/`.
|
|
24
|
-
|
|
25
|
-
## GitHub Issue Claims
|
|
26
|
-
- Before an agent starts work on a GitHub issue, read its current state, assignees and all comments through `gh` or the GitHub API. Use pagination for comments. Check existing work claims, linked PRs and handoff notes.
|
|
27
|
-
- An active claim is an assignee other than the current task owner, an open PR that links the issue, or an active claim comment that no later status comment released. If another agent or person has an active claim, do not start duplicate work. Coordinate with that owner within the authorized task scope. Take over only after an explicit handoff or user instruction. Silence, an old timestamp or a disconnected session does not release a claim.
|
|
28
|
-
- When taking an unclaimed issue or an approved handoff, post a claim comment before edits, tests or worker dispatch. Use `gh issue comment <issue-url> --body-file <file>`. This rule authorizes claim and status comments for an issue within the user's task scope. It grants no other GitHub write authority.
|
|
29
|
-
- Start the comment with `repo-harness issue claim`. Include `Status: active`, the agent kind and unique session or task ID, the branch, the work scope and any prior claim comment URL for a handoff. Use this identity in later status comments. A shared GitHub login is not an agent identity. Do not include secrets or private host paths.
|
|
30
|
-
- Read the issue comments again after posting. Confirm the published comment URL and body. If a competing claim appeared, stop duplicate work and resolve ownership before continuing. For simultaneous claims without an explicit assignment or handoff, the earliest GitHub comment wins; break timestamp ties by comment ID. These comments coordinate agents; they are not an atomic lock and do not replace canonical task claims or leases.
|
|
31
|
-
- On resume, check the current claim before continuing. Reuse the same active claim instead of posting it again. If a read or post fails, or delivery is uncertain, stop and report the failure. Read back before retrying an uncertain post.
|
|
32
|
-
- Post a status comment that links the claim when the work is blocked, ready for review, complete or released. Keep a blocked or review-pending claim active. Include the PR or result when available. Release ownership explicitly on cancellation or handoff. Do not close the issue unless the task authorizes closure.
|
|
16
|
+
- Preserve `agents/fleet/`, release checklists and downstream `assets/templates`. `.ai/harness/workflow-contract.json` is the opt-in marker. `assets/workflow-contract.v1.json` is the contract. `_ops/` is ignored private operations state: never commit or agent-edit it. `_ref/` is an ignored reference cache; cite influential revisions. Follow deploy SQL policy, otherwise use ascending 4-digit files under `deploy/sql/`.
|
|
33
17
|
|
|
34
18
|
## Code Optimization Principles
|
|
35
19
|
- Identify observable conditions, controllable inputs, the invariant and the actual pressure point before changing structure.
|
|
@@ -45,6 +29,7 @@
|
|
|
45
29
|
- For a bug fix, prefer a focused failing regression before the fix. Run only the reproducer during RED. Record a reproduction gap when the environment cannot produce it; ordinary tasks do not require RED artifacts.
|
|
46
30
|
- A diff's size, a new test file, a new agent or a rebase does not by itself require a full run.
|
|
47
31
|
- Use `bun run test:files <affected tests> --timeout 60000 --max-concurrency 1`; extend existing coverage before creating a new test file.
|
|
32
|
+
- Test budget per PR: added test lines divided by added product lines must not exceed 2:1, and the PR adds at most one test file. A PR that adds no product lines records the exception for any added test. Measure with `git diff --numstat main...HEAD -- tests` and `git diff --numstat main...HEAD -- src scripts`; above either cap, add a `Test budget exception` PR section with the counts and why an existing test cannot cover the behavior.
|
|
48
33
|
- Select tests by observable risk and owning runtime boundary, including error/recovery paths when affected.
|
|
49
34
|
- Mechanical prose changes need link/scope validation, not new product tests; do not test incidental formatting or that deleted files stay deleted.
|
|
50
35
|
- Reviewers consume the recorded command, result, revision and environment; they do not rerun passing checks to claim ownership.
|
|
@@ -52,20 +37,10 @@
|
|
|
52
37
|
- Run the full suite daily; a failure opens an automatic repair task and appears in the daily report.
|
|
53
38
|
- Isolate mutable HOME, repositories and process state; use real synchronization signals and preserve complete failure output.
|
|
54
39
|
- Report failed, timed-out, incomplete or omitted coverage explicitly; do not manufacture receipts, waiver files or pre-fix logs.
|
|
55
|
-
- Never modify or delete test assertions just to make tests pass; justify every necessary test change item by item in the PR description.
|
|
40
|
+
- Never modify or delete test assertions just to make tests pass; justify every necessary test change item by item in the PR description. Remove a redundant test only when the PR names the retained test that covers the same behavior.
|
|
56
41
|
- Before you write or change tests, load the `repo-harness-test` skill (`assets/skills/repo-harness-test/SKILL.md`).
|
|
57
42
|
- When a local check and CI disagree, CI is the authority. Reproduce the failure with `bash scripts/check-ci.sh <lane>` before you change code; a global `repo-harness` or `repo-harness-hook` on `PATH` can hide a missing test setup.
|
|
58
43
|
|
|
59
|
-
## Handoff
|
|
60
|
-
- Create a checkpoint only when context/session rollover or unresolved work needs it; ordinary completion stays in the PR description.
|
|
61
|
-
- Read files named in the current request before recovery context.
|
|
62
|
-
- Record the goal, branch/worktree/HEAD, decisions, touched files, verification results, blockers and one exact next command.
|
|
63
|
-
- Keep temporary checkpoints under ignored `.ai/harness/handoff/`; historical snapshots are not current execution authority.
|
|
64
|
-
- Include evidence paths and actual command outcomes; distinguish observed state from inference.
|
|
65
|
-
- Never include secrets, tokens or real environment files in handoff text.
|
|
66
|
-
- On resume, verify the live checkout and source artifacts before reusing a result; `tasks/current.md` is an optional local read model.
|
|
67
|
-
- Preserve dirty work and other workers' edits; hand back an ownership conflict instead of discarding their changes.
|
|
68
|
-
|
|
69
44
|
## Writing
|
|
70
45
|
- Write output text (docs, PR descriptions, commit messages, reports, research notes) in ASD-STE100 Simplified Technical English: short sentences, one idea per sentence, active voice, approved-dictionary words. Write Chinese output the same way.
|
|
71
46
|
- Prefer high information density: evidence first, mechanisms and business effect explained, complex reasoning allowed, no explanatory repetition. Lead with the main finding, key number or key mechanism. State known facts and supported conclusions directly, without lead-ins such as "note that", "this shows to some extent" or "it must be stressed". Put the evidence grade in the wording, not in a separate caveat.
|
|
@@ -79,7 +54,6 @@
|
|
|
79
54
|
- Avoid unnecessary secondary labels and descriptions. Let the layout do the explaining.
|
|
80
55
|
|
|
81
56
|
## Claude Code
|
|
82
|
-
- Own frontend implementation and interaction; Codex owns backend implementation and testing, and the parent coordinates scope and integration.
|
|
83
57
|
- Use Claude Code's available tools within granted permissions; changes to tool grants, hooks or confirmation bypass require approval of the exact change.
|
|
84
58
|
- User-level `~/.claude/settings.json` hooks invoke `repo-harness-hook`; its typed route registry selects one in-process handler. Operator helpers run from the package through `repo-harness run <helper>`.
|
|
85
59
|
- Write comments, commits and PR text from the final diff; comments explain non-obvious reasons, and PRs describe final behavior and material rationale.
|
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ files let Claude and Codex resume work across sessions.
|
|
|
43
43
|
|
|
44
44
|
### 1. Install the CLI
|
|
45
45
|
|
|
46
|
-
Prerequisites: a Git working tree, `bun`, and usable `herdr` >=0.9.
|
|
46
|
+
Prerequisites: a Git working tree, `bun`, and usable `herdr` >=0.9.5 for host readiness; macOS/Linux also require `bash`,
|
|
47
47
|
while Windows requires Git for Windows (including its Bash and `usr/bin`
|
|
48
48
|
tools). `jq` is optional. No Node.js required — the installer uses Bun >=
|
|
49
49
|
1.4.0 as the runtime, installing or upgrading Bun first when needed.
|
|
@@ -79,6 +79,37 @@ endpoints. See [runtime cutover](https://github.com/Ancienttwo/repo-harness/blob
|
|
|
79
79
|
repo-harness install
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
Pi is an optional host under the default `--target both`. When `pi` is on
|
|
83
|
+
PATH, install and update register the installed repo-harness directory with
|
|
84
|
+
`pi install <package-directory>`. An existing user package entry is retained.
|
|
85
|
+
Missing Pi skips this step. Preview with `repo-harness install --dry-run --json`.
|
|
86
|
+
The minimum Pi version is [MIN_PI_VERSION](src/pi/compat.ts); there is no upper bound.
|
|
87
|
+
`repo-harness setup check` and `repo-harness update --check` report the version,
|
|
88
|
+
path resolver capability, package entry and skill projection.
|
|
89
|
+
|
|
90
|
+
Catalog skills use `${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}/skills` and the
|
|
91
|
+
same profile selection and ownership rules as the other hosts. Uninstall removes
|
|
92
|
+
only owned package entries and unchanged owned skills. Package commands use Pi's
|
|
93
|
+
CLI; repo-harness does not write Pi settings, credentials or trust files.
|
|
94
|
+
Pi covers session context, agent notices, edit/write, bash and Stop hooks.
|
|
95
|
+
It has no fleet roles or subagent hooks. PowerShell, `!`/`!!` user shell,
|
|
96
|
+
other extensions' file writes and third-party MCP writes are outside this coverage.
|
|
97
|
+
|
|
98
|
+
DSH (DeepSeek Harness) is a package host. repo-harness ships a Cordis plugin
|
|
99
|
+
and a bundle patch; DSH manages the installation. Load the plugin with
|
|
100
|
+
`dsh plugin add link:<repo-harness package directory>`, or with
|
|
101
|
+
`dsh plugin add repo-harness@<version>` after release. The plugin needs Bun on
|
|
102
|
+
`PATH`; it starts this package's `dist/hook-entry.js`. It maps native `write`,
|
|
103
|
+
`edit` and `bash` calls to the typed guards, delivers session context through
|
|
104
|
+
the first agent step, and records Stop at the turn boundary. It disables
|
|
105
|
+
itself in a repository without `.ai/harness/workflow-contract.json`. MCP
|
|
106
|
+
writes, `pwsh`, `!` user commands and writes from other plugins stay outside
|
|
107
|
+
this boundary. DSH already reads `AGENTS.md` and `~/.agents/skills`; the
|
|
108
|
+
plugin does not change those paths. `repo-harness doctor` and
|
|
109
|
+
`repo-harness setup check` report whether a DSH profile declares the bundle,
|
|
110
|
+
and list the external skills in the shared agents root. repo-harness does not
|
|
111
|
+
write the DSH profile.
|
|
112
|
+
|
|
82
113
|
On Windows, keep Git for Windows on the install/update `PATH`. That explicit
|
|
83
114
|
ceremony validates and pins `git.exe`, its matching `bash.exe`/`usr/bin`, and
|
|
84
115
|
the install account's absolute `TEMP` directory plus native `System32` tools in the OS account's
|
|
@@ -109,7 +140,6 @@ or refreshed. It never creates an application stack; new projects and modules us
|
|
|
109
140
|
|
|
110
141
|
```bash
|
|
111
142
|
repo-harness init
|
|
112
|
-
bash scripts/check-task-workflow.sh
|
|
113
143
|
bun test
|
|
114
144
|
```
|
|
115
145
|
|
|
@@ -124,11 +154,11 @@ decides what to schedule.
|
|
|
124
154
|
|
|
125
155
|
Apply ends with `=== Migration Report ===`, naming where generated hook behavior
|
|
126
156
|
comes from, the user-level `~/.claude/settings.json` and `~/.codex/hooks.json`
|
|
127
|
-
adapter target, the repo-local surfaces created or refreshed,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
157
|
+
adapter target, the repo-local surfaces created or refreshed, and an
|
|
158
|
+
`--- External Tooling ---` readiness block. Stable intent then lives in
|
|
159
|
+
`docs/spec.md` and `docs/prds/`, task state in the GitHub issue and PR,
|
|
160
|
+
resume state in `.ai/harness/handoff/`. If the dry run looks wrong, stop and
|
|
161
|
+
read
|
|
132
162
|
[`hook-operations.md`](docs/reference-configs/hook-operations.md) first.
|
|
133
163
|
|
|
134
164
|
### Update and remove
|
|
@@ -138,6 +168,8 @@ repo-harness update # reconcile CLI, mandatory deps, profile tooling, a
|
|
|
138
168
|
repo-harness update --check # read-only repair guidance, no writes
|
|
139
169
|
repo-harness upgrade # check retired leftovers; no writes
|
|
140
170
|
repo-harness upgrade --apply # back up and remove only proven owned leftovers
|
|
171
|
+
repo-harness upgrade decide --keep <path> # record an operator decision for a report-only project item
|
|
172
|
+
repo-harness upgrade --registered # preview project refresh for every registered repo; no writes
|
|
141
173
|
repo-harness uninstall --dry-run # preview owned user configuration cleanup
|
|
142
174
|
repo-harness uninstall # remove owned configuration; preserve user changes/history
|
|
143
175
|
repo-harness mcp uninstall --dry-run # preview independent MCP setup cleanup
|
|
@@ -203,9 +235,9 @@ In an adopted repo, the surface area is intentionally small:
|
|
|
203
235
|
| Surface | Purpose |
|
|
204
236
|
| --- | --- |
|
|
205
237
|
| `docs/spec.md` and `docs/reference-configs/` | Shared standards and stable product intent that every agent session can read. |
|
|
206
|
-
| `
|
|
207
|
-
| `tasks/
|
|
208
|
-
| `.ai/harness/handoff/`
|
|
238
|
+
| `docs/prds/` | Product intent and optional design briefs. |
|
|
239
|
+
| `tasks/lessons.md` | The one local lesson ledger. Task identity and history stay in the issue and PR. |
|
|
240
|
+
| `.ai/harness/handoff/` | Session journal and resumable status, derived from the issue, PR and repository state instead of chat memory. |
|
|
209
241
|
|
|
210
242
|
## Task Authority
|
|
211
243
|
|
|
@@ -227,7 +259,7 @@ callers while the contract lifecycle is removed.
|
|
|
227
259
|
|
|
228
260
|
| | |
|
|
229
261
|
| --- | --- |
|
|
230
|
-
| **File-backed sessions** |
|
|
262
|
+
| **File-backed sessions** | Issues, PRs, checks, and handoffs live in the repository, so a new session resumes from artifacts instead of a chat thread |
|
|
231
263
|
| **Typed hook runtime** | 6 public routes (Claude 5, Codex 5), each bound to exactly one typed in-process handler, with fail-closed guards at the edit boundary |
|
|
232
264
|
| **Issue → PR → Review** | One task authority with bounded changes, recorded verification and review evidence |
|
|
233
265
|
| **Session handoff** | Record the issue, branch, evidence and next action so another agent can continue |
|
|
@@ -242,7 +274,7 @@ callers while the contract lifecycle is removed.
|
|
|
242
274
|
typed hook handlers, the operator-helper asset, workflow contract, tests, and
|
|
243
275
|
release gate.
|
|
244
276
|
2. **Target repo contract**: `repo-harness init` or migration writes repo-local
|
|
245
|
-
files such as `docs/spec.md`, `
|
|
277
|
+
files such as `docs/spec.md`, `docs/prds/`, `tasks/lessons.md`, `.ai/context/`,
|
|
246
278
|
`.ai/harness/`, helper scripts, and `.ai/hooks/`.
|
|
247
279
|
3. **Host adapters**: user-level `~/.claude/settings.json` and
|
|
248
280
|
`~/.codex/hooks.json` route Claude/Codex events into `repo-harness-hook`.
|
|
@@ -261,8 +293,7 @@ Handler details and policy modes:
|
|
|
261
293
|
## Task Workflow
|
|
262
294
|
|
|
263
295
|
The GitHub issue and PR carry task identity, claims, status and dependencies.
|
|
264
|
-
|
|
265
|
-
old records until that lifecycle is retired.
|
|
296
|
+
There is no local plan, sprint, contract, review or notes artifact.
|
|
266
297
|
|
|
267
298
|
```mermaid
|
|
268
299
|
flowchart TD
|
|
@@ -285,12 +316,10 @@ flowchart TD
|
|
|
285
316
|
For long-running product loops, keep discovery and engineering-plan judgment with
|
|
286
317
|
the parent agent before Codex loops on execution: `geju` opens the pre-contract
|
|
287
318
|
frame, the parent completes P1/P2/P3 and freezes the accepted direction into an
|
|
288
|
-
upper-layer PRD under `
|
|
289
|
-
`
|
|
290
|
-
upper source of truth and the backlog is the durable execution queue, so a
|
|
319
|
+
upper-layer PRD under `docs/prds/`, then orders GitHub issues through
|
|
320
|
+
`repo-harness-issue-flow`. The issue and PR are the durable execution queue, so a
|
|
291
321
|
resumed Goal session never reinterprets the original chat. See
|
|
292
|
-
[`agentic-development-flow.md`](docs/reference-configs/agentic-development-flow.md)
|
|
293
|
-
and [`workflow-orchestration.md`](docs/reference-configs/workflow-orchestration.md).
|
|
322
|
+
[`agentic-development-flow.md`](docs/reference-configs/agentic-development-flow.md).
|
|
294
323
|
|
|
295
324
|
## Work Across Sessions
|
|
296
325
|
|
|
@@ -305,12 +334,13 @@ repo-harness fleet board --json
|
|
|
305
334
|
```
|
|
306
335
|
|
|
307
336
|
The board reads retained task, Lease, publication, inbox and runtime evidence.
|
|
308
|
-
It does not claim work or create an Engineer binding.
|
|
309
|
-
|
|
337
|
+
It does not claim work or create an Engineer binding. Completion and cleanup
|
|
338
|
+
helpers remain for existing records.
|
|
310
339
|
|
|
311
340
|
Use [repo-harness](SKILL.md) for scope and worker ownership,
|
|
312
341
|
[repo-harness-product](assets/skills/repo-harness-product/SKILL.md) for requested
|
|
313
|
-
|
|
342
|
+
PRD or Goal work, [repo-harness-issue-flow](assets/skills/repo-harness-issue-flow/SKILL.md)
|
|
343
|
+
for issue backlog splitting and dispatch, and [repo-harness-check](assets/skill-commands/repo-harness-check/SKILL.md)
|
|
314
344
|
for scope and recorded verification.
|
|
315
345
|
|
|
316
346
|
### Refactor recommendations
|
|
@@ -330,7 +360,6 @@ accepted suggestion goes through the normal plan and pull request workflow.
|
|
|
330
360
|
```bash
|
|
331
361
|
repo-harness external-source refresh # one bounded, explicitly enabled GitHub observation
|
|
332
362
|
repo-harness external-source bind --repo <id> --source-revision <digest> --session <selector.json>
|
|
333
|
-
repo-harness external-source historical-bindings --repo <id> # retired V1 records only
|
|
334
363
|
repo-harness external-source bindings # binding edges and current drift attention
|
|
335
364
|
```
|
|
336
365
|
|
|
@@ -352,8 +381,8 @@ an explicit `execution_mode`: `contract` or `inline`. The mode is part of the
|
|
|
352
381
|
approved admission digest; changing it requires new approval. Do not create an
|
|
353
382
|
approval from these examples: actor IDs and authorization references are binding
|
|
354
383
|
data, not authentication. Select the resulting active grant and policy digests
|
|
355
|
-
below, and supply the current immutable issue claim. A
|
|
356
|
-
cannot grant permission. A user waiver requires a separate upstream-authorized
|
|
384
|
+
below, and supply the current immutable issue claim. A local plan or contract
|
|
385
|
+
file cannot grant permission. A user waiver requires a separate upstream-authorized
|
|
357
386
|
decision; waiver eligibility in an admission does not grant one.
|
|
358
387
|
|
|
359
388
|
See [the control Bot boundary](docs/control-bot-boundary.md) for the integration contract.
|
|
@@ -368,6 +397,10 @@ In the Claude desktop app without Herdr, add `--launch app-terminal` and omit `-
|
|
|
368
397
|
|
|
369
398
|
A dedicated linked checkout hosts one fleet `deep-reasoner` task-agent in the addressed Herdr session for at most three repair rounds. Default selection uses the owner’s opposite harness; `--harness` explicitly selects Claude or Codex. Only a missing executable before start allows a reported fallback. File Results pass domain binding/finding checks and the generic-review Receipt writer/verifier before close. Terminal history is observation. Claude uses an exact result-file allowlist plus mutation fingerprints; production OS write isolation and complete large-packet ingestion remain unverified.
|
|
370
399
|
|
|
400
|
+
### Bot merge
|
|
401
|
+
|
|
402
|
+
A local Herdr Bot merges through the MCP `merge_pull_request` tool of the `orchestrator` profile. A cloud-only Bot runs `repo-harness publication merge` in a sandbox that has repo-harness, a working `gh auth` and a checkout. Both use the same executor. It merges only when `publication.acceptance_merge` is `on` in the policy on the PR base, and it needs strict required checks and enforce_admins on the default branch. A Bot record does not grant merge permission. See [the control Bot boundary](docs/control-bot-boundary.md#bot-modes-and-merge).
|
|
403
|
+
|
|
371
404
|
## Hooks
|
|
372
405
|
|
|
373
406
|
The installed adapter binds 6 public hook routes: Claude installs 5 and Codex
|
|
@@ -395,18 +428,34 @@ Full playbook:
|
|
|
395
428
|
|
|
396
429
|
## Local Human Control Board
|
|
397
430
|
|
|
398
|
-
Run the
|
|
399
|
-
repositories:
|
|
431
|
+
Run the operator console on the same machine as the adopted repositories:
|
|
400
432
|
|
|
401
433
|
```bash
|
|
402
434
|
repo-harness operator serve
|
|
403
435
|
```
|
|
404
436
|
|
|
405
|
-
The command binds to loopback only and prints the local URL. The
|
|
406
|
-
the
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
437
|
+
The command binds to loopback only and prints the local URL. The console has
|
|
438
|
+
these pages: the development board with its task drawer, repositories, Agents,
|
|
439
|
+
Skills, Hooks, tools, architecture and system status. The theme follows the
|
|
440
|
+
system until you pick one. The language follows your saved choice, then the browser language.
|
|
441
|
+
|
|
442
|
+
The approved design allows three bounded writes and nothing else. They open in
|
|
443
|
+
this order: local agent config in `~/.repo-harness/config.json`, docs sessions
|
|
444
|
+
that return changes as a Draft PR, and worktree cleanup. Green worktree cleanup
|
|
445
|
+
also has a terminal form:
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
repo-harness worktrees list # add --json for ids and selection digests
|
|
449
|
+
repo-harness worktrees clean --ids <id,...> --expected-digest <digest>
|
|
450
|
+
```
|
|
451
|
+
Each write passes an origin check, a write token and a
|
|
452
|
+
precondition check, and is audited before it runs. Host projection (install,
|
|
453
|
+
update, profile switch), registry cleanup and CLI uninstall stay commands that
|
|
454
|
+
you run in a terminal. The console does not send messages to coding sessions,
|
|
455
|
+
stop them or dispatch work; dispatch stays Bot → CLI → herdr. Browser payloads
|
|
456
|
+
do not contain secrets or absolute paths. Product scope:
|
|
457
|
+
[`docs/prds/20261026-2310-operator-console-uiux.prd.md`](docs/prds/20261026-2310-operator-console-uiux.prd.md);
|
|
458
|
+
UX: [`docs/prds/DESIGN-operator-console-uiux.md`](docs/prds/DESIGN-operator-console-uiux.md).
|
|
410
459
|
|
|
411
460
|
Read committed architecture facts or export a module review prompt:
|
|
412
461
|
|
|
@@ -424,10 +473,9 @@ shards arrive. Diff mode requires both `--base <rev>` and `--head <rev>`.
|
|
|
424
473
|
## MCP Connector
|
|
425
474
|
|
|
426
475
|
As an optional sidecar, `repo-harness mcp` exposes workflow artifacts to MCP
|
|
427
|
-
clients through the default `planner` profile. ChatGPT reads real repo state
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
runner. The task owner directs an explicitly addressed Herdr agent to execute the task goal.
|
|
476
|
+
clients through the default `planner` profile. ChatGPT reads real repo state,
|
|
477
|
+
writes PRDs under `docs/prds/`, and reads the linked GitHub issue — with no
|
|
478
|
+
default source-code write access, arbitrary shell execution, or default runner. The task owner directs an explicitly addressed Herdr agent to execute the task goal.
|
|
431
479
|
|
|
432
480
|
```bash
|
|
433
481
|
repo-harness mcp setup chatgpt --repo .
|
|
@@ -439,9 +487,9 @@ the human workflow is:
|
|
|
439
487
|
|
|
440
488
|
1. ChatGPT reads repo-harness workflow files through MCP.
|
|
441
489
|
2. ChatGPT writes a PRD with `write_prd_from_idea`.
|
|
442
|
-
3. ChatGPT
|
|
443
|
-
4.
|
|
444
|
-
|
|
490
|
+
3. ChatGPT lists existing PRDs under `docs/prds/` and reads the linked issue.
|
|
491
|
+
4. The task owner orders GitHub issues through `repo-harness-issue-flow` and
|
|
492
|
+
sends the issue Goal to an explicitly addressed Herdr agent.
|
|
445
493
|
|
|
446
494
|
General repo reader/writer tools, snapshot and index consistency, server
|
|
447
495
|
profiles, and the opt-in dev runner:
|
|
@@ -452,13 +500,11 @@ Index-stale, CodeGraph-down, and rollback operations:
|
|
|
452
500
|
|
|
453
501
|
## Reviewing Work
|
|
454
502
|
|
|
455
|
-
Start with
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
review recommends pass, the card verdict is pass, and external acceptance is
|
|
461
|
-
pass, `not_required`, or an explicit override.
|
|
503
|
+
Start with the PR description. It is the one-screen decision surface: goal,
|
|
504
|
+
scope, changes, commands passed, external acceptance, residual risk and rollback.
|
|
505
|
+
Then inspect the changed files, the latest trace in Verification Plan execution
|
|
506
|
+
records, and the checks. Accept only when the checks pass and external acceptance
|
|
507
|
+
is pass, `not_required`, or an explicit override.
|
|
462
508
|
|
|
463
509
|
Execution facts and acceptance are separate authorities: a passing
|
|
464
510
|
`verify-contract` run proves a command ran, not that the work is accepted.
|
|
@@ -468,15 +514,11 @@ Agents read source artifacts before derived summaries:
|
|
|
468
514
|
|
|
469
515
|
| Agent reads first | Human reviews first |
|
|
470
516
|
| --- | --- |
|
|
471
|
-
| Current user prompt and referenced files |
|
|
517
|
+
| Current user prompt and referenced files | PR description |
|
|
472
518
|
| `AGENTS.md` / `CLAUDE.md` | Changed files and diff |
|
|
473
|
-
|
|
|
474
|
-
| Active contract in `tasks/contracts/` | Verification Plan execution records and run trace |
|
|
519
|
+
| The GitHub issue and PR | Verification Plan execution records and run trace |
|
|
475
520
|
| Latest handoff in `.ai/harness/handoff/` | Residual risks and rollback |
|
|
476
|
-
|
|
477
|
-
`tasks/current.md` is an ignored local orientation snapshot, not a tracked file.
|
|
478
|
-
If it disagrees with the active plan, contract, review, checks, or handoff, the
|
|
479
|
-
source artifacts win.
|
|
521
|
+
If it disagrees with the issue, PR, checks, or handoff, the source artifacts win.
|
|
480
522
|
|
|
481
523
|
Runtime-heavy validators (Unity, browser E2E, mobile simulators, hardware rigs,
|
|
482
524
|
staging smoke tests) can publish external verification manifests under the
|
|
@@ -498,7 +540,8 @@ control context loading. They do not add a host permission boundary.
|
|
|
498
540
|
| --- | --- | --- |
|
|
499
541
|
| `repo-harness` | Bot | Route explicit harness actions |
|
|
500
542
|
| `repo-harness-check` | Bot | Plan scoped work, review plans, assess recorded checks |
|
|
501
|
-
| `repo-harness-product` | Bot | Requested PRD
|
|
543
|
+
| `repo-harness-product` | Bot | Requested PRD drafting or Goal preparation |
|
|
544
|
+
| `repo-harness-issue-flow` | Bot | Issue and PR driven multi-agent development: split by module, dispatch workers, follow PRs and CI |
|
|
502
545
|
| `repo-harness-ship` | Bot | Explicit publication and cleanup decisions |
|
|
503
546
|
| `obsidian-memory` | Bot | Explicit memory recall or persistence |
|
|
504
547
|
| `repo-harness-cross-review` | Bot | Generic review; direct advisory runtime retired |
|
|
@@ -506,6 +549,7 @@ control context loading. They do not add a host permission boundary.
|
|
|
506
549
|
| `repo-harness-setup` | Worker | Assigned install, migration, repair or scaffold |
|
|
507
550
|
| `repo-harness-test` | Worker | Source tests and real fixtures |
|
|
508
551
|
| `repo-harness-architecture` | Worker | Assigned model, projection or diagram work |
|
|
552
|
+
| `repo-harness-archimap` | Worker | Draw or refresh the human-facing architecture map `docs/architecture/archimap.html` |
|
|
509
553
|
| `windows-python-first` | Worker | Native Windows file, text and shell work through Python |
|
|
510
554
|
|
|
511
555
|
Planning is merged into `repo-harness-check`. No separate planning alias remains.
|
|
@@ -540,7 +584,7 @@ paths are symlink-backed runtime entrypoints rebuilt by
|
|
|
540
584
|
the npm unpublished-version preflight, then runs the `release` lane: the
|
|
541
585
|
expensive-gated tests and the tarball install smoke. It is not a second full
|
|
542
586
|
suite and not the CI gate; a release depends on green CI for the release SHA.
|
|
543
|
-
Runtime routing regressions stay in affected tests. The old routing eval gate is retired.
|
|
587
|
+
Runtime routing regressions stay in affected tests. The old routing eval gate is retired. The skill-routing aggregate in `evals/skill-routing/routing-aggregate.json` is advisory evidence, not a merge gate: the provider harness passes the raw corpus prompt with no routing preamble, so the run measures direct model answers, not skill discovery. The aggregate sets `advisory: true` and records the reason; its `overall_pass` and floors stay reported metrics. A follow-up will add the routing preamble and reconsider gating.
|
|
544
588
|
|
|
545
589
|
```bash
|
|
546
590
|
bun run check:ci # the whole gate
|
|
@@ -585,8 +629,8 @@ repo-harness commit scripts or hooks unless that repo adopts the same policy.
|
|
|
585
629
|
|
|
586
630
|
## Current Release
|
|
587
631
|
|
|
588
|
-
- npm package: `repo-harness@0.
|
|
589
|
-
- Generated workflow stamp: `repo-harness@0.
|
|
632
|
+
- npm package: `repo-harness@0.25.0`
|
|
633
|
+
- Generated workflow stamp: `repo-harness@0.25.0+template@0.25.0`
|
|
590
634
|
- GitHub repository: `Ancienttwo/repo-harness`
|
|
591
635
|
- Release notes and history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
592
636
|
|
package/SKILL.md
CHANGED
|
@@ -9,17 +9,18 @@ when_to_use: "repo-harness"
|
|
|
9
9
|
Bot entrypoint. Resolve scope, worker ownership and the authorized outcome.
|
|
10
10
|
When acting as a PM Bot, use [the shared PM boundary](references/pm-boundary.md).
|
|
11
11
|
The PM coordinates work. Coding agents own source edits, tests and repairs.
|
|
12
|
+
GrokBot init: [bot onboarding](docs/bot-onboarding.md).
|
|
12
13
|
This role applies to Grok, Hermes, Dot and other Bot hosts. It does not restrict
|
|
13
14
|
an explicitly assigned coding worker or a direct development session.
|
|
14
15
|
Use `repo-harness state resolve --json` when active harness state is needed.
|
|
15
16
|
Treat the returned state as authority; load only the files it names.
|
|
16
17
|
Load the required `herdr` skill before controlling Herdr panes or agents.
|
|
17
|
-
|
|
18
|
+
Discover panes by task path, then use explicit targets.
|
|
18
19
|
|
|
19
20
|
1. **setup** — bind the mode and target repo, then assign `repo-harness-setup`.
|
|
20
21
|
2. **plan** — use `repo-harness-check` for scoped design or plan review.
|
|
21
|
-
|
|
22
|
-
3. **execute** — assign a
|
|
22
|
+
PRD or Goal: `repo-harness-product`. Issues: `repo-harness-issue-flow`.
|
|
23
|
+
3. **execute** — assign a [worker brief](assets/reference-configs/herdr-notify.md#worker-briefs). Load worker techniques
|
|
23
24
|
from `repo-harness-test` or
|
|
24
25
|
[`repo-harness-architecture`](assets/skill-commands/repo-harness-architecture/SKILL.md)
|
|
25
26
|
only when needed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: deep-worker
|
|
3
|
-
description: Heavy execution worker on Opus at high effort. Use for hard, well-scoped execution — cross-module refactors, tricky concurrency or state fixes, changes that must land right in one pass;
|
|
3
|
+
description: Heavy execution worker on Opus at high effort. Use for hard, well-scoped execution — cross-module refactors, tricky concurrency or state fixes, changes that must land right in one pass; may run scoped typecheck and affected tests in its own worktree, commits its slice early, and returns `RESULT: DONE/PARTIAL/BLOCKED` with its commits and check results. Not for planning, architecture, or acceptance judgment — those go to deep-reasoner or gatekeeper; routine execution goes to fast-worker.
|
|
4
4
|
model: opus
|
|
5
5
|
effort: high
|
|
6
6
|
---
|
|
@@ -9,7 +9,7 @@ You are a heavy execution worker. An orchestrator hands you the harder well-scop
|
|
|
9
9
|
|
|
10
10
|
- **Result first.** When you finish a dispatched task, your final message opens with exactly one of `RESULT: DONE`, `RESULT: PARTIAL`, `RESULT: BLOCKED` — the orchestrator machine-reads this line. DONE = the task is complete this turn, committed in your own worktree or left uncommitted in the orchestrator's shared checkout; PARTIAL = you delivered part but scope remained; BLOCKED = a precondition stopped you (ambiguity, a missing dependency, or a call above your role).
|
|
11
11
|
- **Stay in scope; hand back judgment.** Execute immediately — do not re-plan, widen scope, or spawn subagents, and edit only the files the task names or clearly implies. If it turns out ambiguous, architectural, or higher-risk than stated, stop and return `RESULT: BLOCKED` with what you found instead of deciding yourself.
|
|
12
|
-
- **
|
|
12
|
+
- **Check in your own worktree.** In your own worktree, you may run scoped typecheck and affected tests for your change and must report the results. The orchestrator owns post-merge / integration typecheck and affected tests. In the orchestrator's shared checkout, do not run build, typecheck or tests and do not commit; leave those actions to the orchestrator. Do not claim compile or pass results for checks you did not run; label them `[unverified]`.
|
|
13
13
|
- **Commit early, return early.** Commit each finished slice only in your own worktree, then return. If you work in the orchestrator's shared checkout, do not commit; return and let the orchestrator commit. Do not wait on long commands.
|
|
14
14
|
- **Boundaries.** By default you do not push, open or merge PRs, install global dependencies, delete worktrees or build output, or touch code outside the task's surface — those are the orchestrator's or the gate's calls unless a dispatch explicitly orders one.
|
|
15
15
|
- **Sign-off.** Lead with the `RESULT:` line, then list your commits and files changed with `file:line` references, the checks the orchestrator should run, and anything you deliberately left out of scope. Keep it compact — no process narration.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fast-worker
|
|
3
|
-
description: Fast execution worker on Sonnet at high effort. Use for well-scoped implementation, tests, refactoring, documentation, and mechanical changes;
|
|
3
|
+
description: Fast execution worker on Sonnet at high effort. Use for well-scoped implementation, tests, refactoring, documentation, and mechanical changes; may run scoped typecheck and affected tests in its own worktree, commits its slice early, and returns `RESULT: DONE/PARTIAL/BLOCKED` with its commits and check results. Not for planning, architecture, or high-risk judgment — those go to deep-reasoner or stay with the orchestrator.
|
|
4
4
|
model: sonnet
|
|
5
5
|
effort: high
|
|
6
6
|
---
|
|
@@ -9,7 +9,7 @@ You are a fast execution worker. An orchestrator hands you well-scoped tasks —
|
|
|
9
9
|
|
|
10
10
|
- **Result first.** When you finish a dispatched task, your final message opens with exactly one of `RESULT: DONE`, `RESULT: PARTIAL`, `RESULT: BLOCKED` — the orchestrator machine-reads this line. DONE = the task is complete this turn, committed in your own worktree or left uncommitted in the orchestrator's shared checkout; PARTIAL = you delivered part but scope remained; BLOCKED = a precondition stopped you (ambiguity, a missing dependency, or a call above your role).
|
|
11
11
|
- **Stay in scope; hand back judgment.** Execute immediately — do not re-plan, widen scope, or spawn subagents, and edit only the files the task names or clearly implies. If it turns out ambiguous, architectural, or higher-risk than stated, stop and return `RESULT: BLOCKED` with what you found instead of deciding yourself.
|
|
12
|
-
- **
|
|
12
|
+
- **Check in your own worktree.** In your own worktree, you may run scoped typecheck and affected tests for your change and must report the results. The orchestrator owns post-merge / integration typecheck and affected tests. In the orchestrator's shared checkout, do not run build, typecheck or tests and do not commit; leave those actions to the orchestrator. Do not claim compile or pass results for checks you did not run; label them `[unverified]`.
|
|
13
13
|
- **Commit early, return early.** Commit each finished slice only in your own worktree, then return. If you work in the orchestrator's shared checkout, do not commit; return and let the orchestrator commit. Do not wait on long commands.
|
|
14
14
|
- **Boundaries.** By default you do not push, open or merge PRs, install global dependencies, delete worktrees or build output, or touch code outside the task's surface — those are the orchestrator's or the gate's calls unless a dispatch explicitly orders one.
|
|
15
15
|
- **Sign-off.** Lead with the `RESULT:` line, then list your commits and files changed with `file:line` references, the checks the orchestrator should run, and anything you deliberately left out of scope. Keep it compact — no process narration.
|
|
@@ -7,6 +7,7 @@ effort: high
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
Review only a medium or high tier diff under Review by risk in the development flow; a low tier gets no review.
|
|
10
|
+
When `agents/fleet/known-gaps.md` is present, read the row for the PR's producer and run its named checks in addition to the tier's review. The table rules govern how the row combines with the review.
|
|
10
11
|
Read the current diff only. A defect in untouched code is a non-blocking note, not a finding.
|
|
11
12
|
From the second round, read only the hunks that changed after the previous round.
|
|
12
13
|
Keep review read-only. The Bot owns fixes and publication.
|
|
@@ -18,5 +19,6 @@ Consume existing command, result, revision and environment evidence once.
|
|
|
18
19
|
Do not rerun passing checks or require ordinary plan/contract/review artifacts.
|
|
19
20
|
Return missing, stale, failed or incomplete coverage to the execution owner.
|
|
20
21
|
Report each finding with severity, file:line, evidence and a bounded fix.
|
|
22
|
+
Return the result in the receipt schema. Never post; `review publish` posts.
|
|
21
23
|
Recommend the next action. Never edit, stage, commit, push, merge or release.
|
|
22
24
|
Never treat absent evidence or an unavailable tool as PASS.
|