repo-harness 0.24.3 → 0.25.1
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 +111 -84
- 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 +36 -0
- package/assets/AGENTS.md +4 -5
- package/assets/CLAUDE.md +4 -5
- package/assets/herdr/github-events/filter.mjs +73 -0
- package/assets/herdr/github-events/worker.mjs +92 -0
- package/assets/herdr/github-events/wrangler.json +11 -0
- package/assets/herdr/webhook-notify/bot-event.mjs +35 -0
- package/assets/herdr/webhook-notify/herdr-plugin.toml +1 -1
- package/assets/herdr/webhook-notify/notify.mjs +66 -10
- package/assets/herdr/webhook-notify/pane-status.mjs +1 -1
- package/assets/reference-configs/agentic-development-flow.md +48 -23
- 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 +94 -41
- package/assets/reference-configs/global-working-rules.md +15 -4
- package/assets/reference-configs/harness-overview.md +100 -278
- package/assets/reference-configs/herdr-notify.md +76 -11
- package/assets/reference-configs/herdr-skill-context.md +61 -0
- package/assets/reference-configs/hook-operations.md +2 -3
- package/assets/reference-configs/host-invariants.md +30 -3
- package/assets/skill-commands/AGENTS.md +1 -1
- package/assets/skill-commands/CLAUDE.md +1 -1
- package/assets/skill-commands/manifest.json +108 -56
- package/assets/skill-commands/repo-harness-architecture/references/worker.md +27 -9
- 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/SKILL.md +2 -1
- 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-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 +124 -0
- package/assets/skills/repo-harness-issue-flow/references/acceptor.md +138 -0
- package/assets/skills/repo-harness-issue-flow/references/board.md +264 -0
- package/assets/skills/repo-harness-issue-flow/references/events.md +117 -0
- package/assets/skills/repo-harness-issue-flow/references/orchestrator.md +443 -0
- package/assets/skills/repo-harness-issue-flow/references/replan.md +99 -0
- package/assets/skills/repo-harness-issue-flow/references/templates.md +444 -0
- package/assets/skills/repo-harness-issue-flow/references/worker.md +234 -0
- package/assets/skills/repo-harness-product/SKILL.md +4 -4
- 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 +5 -6
- 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 +2 -16
- package/assets/templates/design-brief.template.md +5 -5
- package/assets/templates/helpers/capability-resolver.ts +115 -40
- package/assets/templates/prd.template.md +1 -1
- package/assets/templates/root-context.md +41 -0
- package/assets/templates/runtime.gitignore +1 -8
- package/assets/tool-catalog.v1.json +50 -3
- package/assets/workflow-contract.v1.json +380 -215
- package/cordis.patch.yml +7 -0
- package/dist/dsh/client.js +132 -0
- package/dist/dsh/package.json +21 -0
- package/dist/dsh/plugin.js +4526 -0
- package/dist/hook-entry.js +1525 -1730
- package/dist/oar-review-host.js +133 -87
- package/dist/operator-ui/assets/ArchitectureWorkspace-CY6MWVYK.js +7 -0
- package/dist/operator-ui/assets/ArchitectureWorkspace-CeJeskZg.css +1 -0
- package/dist/operator-ui/assets/DocsPage-DnPRp8Bo.js +33 -0
- package/dist/operator-ui/assets/abnfDiagram-VCTEODGH-FrczBTcM.js +1 -0
- package/dist/operator-ui/assets/arc-Pry-7G1_.js +1 -0
- package/dist/operator-ui/assets/architecture-7GRP2DOG-DJmhcRNc.js +1 -0
- package/dist/operator-ui/assets/architectureDiagram-5GKGNRK7-B7YjW5cP.js +36 -0
- package/dist/operator-ui/assets/array-BifhSqXX.js +1 -0
- package/dist/operator-ui/assets/blockDiagram-I7D4REHJ-VlgsJiAG.js +129 -0
- package/dist/operator-ui/assets/c4Diagram-7LVT6UL2-D7skC_rA.js +38 -0
- package/dist/operator-ui/assets/channel-CH26DhuI.js +1 -0
- package/dist/operator-ui/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/operator-ui/assets/chunk-4HAMMTFA-CmMSCuUx.js +62 -0
- package/dist/operator-ui/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/operator-ui/assets/chunk-75Z2AOVW-C2Xq_mi9.js +2 -0
- package/dist/operator-ui/assets/chunk-DU6HZSFF-c1GQqTNL.js +127 -0
- package/dist/operator-ui/assets/chunk-F27PBJKO-mKGGg2lc.js +1 -0
- package/dist/operator-ui/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
- package/dist/operator-ui/assets/chunk-GMAD6QVW-BBvaMzz7.js +72 -0
- package/dist/operator-ui/assets/chunk-GVQU2GXP-Ciqkfb7x.js +1 -0
- package/dist/operator-ui/assets/chunk-IMKFNOWR-lPRrJwGG.js +231 -0
- package/dist/operator-ui/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/operator-ui/assets/chunk-L3NEJ4N5-ZCELMmfj.js +1 -0
- package/dist/operator-ui/assets/chunk-OSK3NFVY-C2FSyex1.js +10 -0
- package/dist/operator-ui/assets/chunk-P2QGCYS3-BNCem-OE.js +1 -0
- package/dist/operator-ui/assets/chunk-POPQ4Y6H-DLkj1nb5.js +1 -0
- package/dist/operator-ui/assets/chunk-PWAF6VOD-BPXpJW86.js +1 -0
- package/dist/operator-ui/assets/chunk-SHT3W25Y-C2LRo2LL.js +168 -0
- package/dist/operator-ui/assets/chunk-SVP7TREG-DzBTsX5k.js +88 -0
- package/dist/operator-ui/assets/chunk-TICWLB2K-Bcy59Hos.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-CmP13vv6.js +1 -0
- package/dist/operator-ui/assets/classDiagram-v2-VYDZK3BY-CmP13vv6.js +1 -0
- package/dist/operator-ui/assets/cose-bilkent-JH36ORCC-DcCrMHTN.js +1 -0
- package/dist/operator-ui/assets/cynefin-OW5HDTMX-ClBj8Ulr.js +1 -0
- package/dist/operator-ui/assets/cynefinDiagram-5FMLGOSQ-Ds7Mibm4.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-BQdr4QZm.js +4 -0
- package/dist/operator-ui/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/operator-ui/assets/diagram-S7CK7UJ4-D2lmiWeD.js +30 -0
- package/dist/operator-ui/assets/diagram-UQ7AKVKN-O3oH4sVn.js +41 -0
- package/dist/operator-ui/assets/diagram-VSXAHHWV-ChWUSpJM.js +3 -0
- package/dist/operator-ui/assets/diagram-VX7I27RA-Ch69HZTd.js +24 -0
- package/dist/operator-ui/assets/diagram-Z3DM3KII-BrawDVH6.js +24 -0
- package/dist/operator-ui/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist/operator-ui/assets/ebnfDiagram-PWID7BFC-DmJK-kmd.js +1 -0
- package/dist/operator-ui/assets/erDiagram-RLTQ6QDP-Q0HnvPDo.js +99 -0
- package/dist/operator-ui/assets/eventmodeling-NTZA5JFV-BCV_9PCS.js +1 -0
- package/dist/operator-ui/assets/flowDiagram-HODETNUW-UuLvXIz-.js +1 -0
- package/dist/operator-ui/assets/ganttDiagram-EL5Y4UJY-qvwdPHBY.js +292 -0
- package/dist/operator-ui/assets/gitGraph-4MIJSDKK-Dx7BjZZV.js +1 -0
- package/dist/operator-ui/assets/gitGraphDiagram-WWUBYQGX-VMYWxpyb.js +106 -0
- package/dist/operator-ui/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/operator-ui/assets/index-BRqR1RMk.js +25 -0
- package/dist/operator-ui/assets/index-DDZqieYX.css +2 -0
- package/dist/operator-ui/assets/info-A6RAGUB7-CWmAbV2v.js +1 -0
- package/dist/operator-ui/assets/infoDiagram-27XIBGKW-CbdlBmQQ.js +2 -0
- package/dist/operator-ui/assets/init-C-OQMol4.js +1 -0
- package/dist/operator-ui/assets/ishikawaDiagram-5VMMS53U-DCFApDt3.js +70 -0
- package/dist/operator-ui/assets/journeyDiagram-3NMN7TZE-JU9Lmrb8.js +139 -0
- package/dist/operator-ui/assets/kanban-definition-UXKFOSKX-BaFyfuHa.js +89 -0
- package/dist/operator-ui/assets/katex-ZlcWpGUi.js +257 -0
- package/dist/operator-ui/assets/line-B0IEL5-x.js +1 -0
- package/dist/operator-ui/assets/linear-CFt_L1U_.js +1 -0
- package/dist/operator-ui/assets/mermaid-parser.core-BY831mH1.js +7 -0
- package/dist/operator-ui/assets/mermaid.core-ButCc1lu.js +44 -0
- package/dist/operator-ui/assets/mindmap-definition-YA3MSWOX-BZ9lAvGW.js +96 -0
- package/dist/operator-ui/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/operator-ui/assets/packet-AYTQ26CC-B5-Y1eju.js +1 -0
- package/dist/operator-ui/assets/path-fybaL0A-.js +1 -0
- package/dist/operator-ui/assets/pegDiagram-XKGWAZYB-Ahet4paP.js +1 -0
- package/dist/operator-ui/assets/pie-WAS4IAKB-CMEA1YN5.js +1 -0
- package/dist/operator-ui/assets/pieDiagram-E7YTZNPT-BKoLuqEb.js +39 -0
- package/dist/operator-ui/assets/quadrantDiagram-AXDQQJYC-Ba5lcmOU.js +7 -0
- package/dist/operator-ui/assets/radar-RG4KPBEZ-DRKsFqgB.js +1 -0
- package/dist/operator-ui/assets/railroad-74A4TZTK-UnJQj6WT.js +1 -0
- package/dist/operator-ui/assets/railroad-abnf-HS5TGJTU-BfLADly0.js +1 -0
- package/dist/operator-ui/assets/railroad-ebnf-LZEXJU2U-Dctjf-fQ.js +1 -0
- package/dist/operator-ui/assets/railroad-peg-WCYAUIDC-DC2Nq5l8.js +1 -0
- package/dist/operator-ui/assets/railroadDiagram-O6MQD6OU-Ii3HCSET.js +1 -0
- package/dist/operator-ui/assets/requirementDiagram-BXWQKSXE-GiUPpmpF.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-CUfXBwpy.js +40 -0
- package/dist/operator-ui/assets/sequenceDiagram-WJ2MYXX4-T3ZLlCgn.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-D2AphR6j.js +1 -0
- package/dist/operator-ui/assets/stateDiagram-v2-MP3YSRHH-DoOPJXWN.js +1 -0
- package/dist/operator-ui/assets/swimlanes-42K2YHIH-DNQbbl88.js +1 -0
- package/dist/operator-ui/assets/swimlanesDiagram-VR7AAH4N-FdvvbV9Z.js +8 -0
- package/dist/operator-ui/assets/timeline-definition-24CTP7MA-Co0q_tCB.js +120 -0
- package/dist/operator-ui/assets/treeView-Q6P3EWNA-B3AJbB6p.js +1 -0
- package/dist/operator-ui/assets/treemap-WGGIJYW6-_H9SWbfT.js +1 -0
- package/dist/operator-ui/assets/value-DcGlvoTp.js +1 -0
- package/dist/operator-ui/assets/vennDiagram-4TSXK5OY-CGfjaO6_.js +34 -0
- package/dist/operator-ui/assets/wardley-WFR3VGLG-NUDbyuOy.js +1 -0
- package/dist/operator-ui/assets/wardleyDiagram-VM6X3IG4-COuGUrRm.js +78 -0
- package/dist/operator-ui/assets/xychartDiagram-S5SC5T6Z-DHG9QX-U.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/interfaces/effective-state-v2.ts +1 -0
- package/interfaces/types.ts +1 -1
- package/package.json +40 -13
- package/references/handoff.md +17 -19
- package/scripts/AGENTS.md +3 -5
- package/scripts/CLAUDE.md +3 -5
- package/scripts/axr5-archctx-clean-room.ts +14 -2
- package/scripts/capability-config.ts +0 -19
- package/scripts/check-agent-tooling.sh +63 -39
- package/scripts/check-pi-package-smoke.ts +39 -0
- package/scripts/check-state-boundaries.ts +342 -53
- package/scripts/check-tarball-install-smoke.sh +23 -28
- package/scripts/contract-worktree-runtime.ts +29 -13
- 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 +101 -368
- 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/report-ci.ts +219 -29
- package/scripts/run-harness-profile-benchmark.ts +4 -43
- package/scripts/run-skill-routing-eval.ts +60 -26
- package/scripts/select-ci-coverage.ts +29 -49
- package/scripts/ship-worktrees.sh +1 -20
- package/scripts/skill-surface-select.ts +2 -0
- package/scripts/sync-codex-installed-copies.sh +17 -2
- package/scripts/test-file-durations.json +0 -39
- package/scripts/workflow-contract.ts +4 -0
- package/scripts/worktree-merge-lib.sh +1 -2
- package/src/cli/commands/adoption-plan.ts +31 -13
- package/src/cli/commands/architecture-configuration.ts +21 -20
- package/src/cli/commands/architecture-debt.ts +8 -1
- package/src/cli/commands/bots.ts +45 -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 +128 -164
- package/src/cli/commands/events.ts +174 -0
- package/src/cli/commands/external-source.ts +1 -9
- package/src/cli/commands/fleet.ts +34 -7
- package/src/cli/commands/global-runtime.ts +123 -83
- 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 +6 -2
- package/src/cli/commands/init-hook.ts +30 -11
- package/src/cli/commands/init.ts +22 -73
- package/src/cli/commands/mcp.ts +10 -268
- package/src/cli/commands/operator.ts +25 -16
- package/src/cli/commands/publication.ts +36 -10
- package/src/cli/commands/retention.ts +18 -12
- package/src/cli/commands/review.ts +51 -12
- package/src/cli/commands/run.ts +2 -19
- package/src/cli/commands/setup-check-child.ts +2 -1
- package/src/cli/commands/setup-snapshot.ts +29 -7
- package/src/cli/commands/state.ts +11 -10
- package/src/cli/commands/tools.ts +232 -1
- package/src/cli/commands/upgrade-registered.ts +309 -0
- package/src/cli/commands/upgrade.ts +246 -21
- 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 +114 -28
- package/src/cli/hook/mutation-guard.ts +55 -12
- 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 +170 -88
- package/src/cli/installer/configuration-ownership.ts +12 -3
- package/src/cli/installer/global-context.ts +28 -2
- package/src/cli/installer/install-profile.ts +207 -62
- 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 +63 -18
- package/src/cli/mcp/auth.ts +31 -187
- package/src/cli/mcp/codegraph-adapter.ts +26 -24
- package/src/cli/mcp/doctor.ts +141 -0
- package/src/cli/mcp/fleet-tools.ts +21 -8
- 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/instructions.ts +4 -11
- package/src/cli/mcp/policy.ts +12 -63
- package/src/cli/mcp/repo.ts +1 -1
- package/src/cli/mcp/server.ts +4 -132
- package/src/cli/mcp/state-tools.ts +20 -49
- package/src/cli/mcp/tools.ts +17 -591
- package/src/cli/mcp/types.ts +1 -13
- package/src/core/architecture/module-view.ts +1 -10
- package/src/core/architecture/projection.ts +66 -1
- package/src/core/capabilities/ownership-blocker.ts +9 -1
- package/src/core/capabilities/registry.ts +3 -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/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/fleet/admitted-task-message.ts +7 -6
- package/src/core/fleet/board.ts +8 -40
- package/src/core/fleet/task-message.ts +9 -15
- package/src/core/messages/task-message-error.ts +11 -1
- package/src/core/operator/admitted-task-activity.ts +3 -3
- package/src/core/operator/admitted-task-context.ts +2 -7
- package/src/core/operator/agents-settings.ts +283 -0
- package/src/core/operator/architecture-map.ts +867 -0
- package/src/core/operator/architecture.ts +19 -1
- package/src/core/operator/bot-access.ts +365 -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 +6 -21
- 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 +351 -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 +112 -14
- package/src/core/review/authority-context.ts +8 -0
- 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/review/runner-port.ts +149 -0
- package/src/core/sessions/task-sessions.ts +1 -7
- 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 +49 -11
- package/src/core/setup/hook-usage.ts +94 -0
- package/src/core/setup/projection.ts +25 -8
- package/src/core/setup/types.ts +51 -16
- package/src/core/skill-surface/catalog.ts +11 -6
- package/src/core/skill-surface/projection-state.ts +10 -0
- 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 +41 -0
- package/src/dsh/build.ts +71 -0
- package/src/dsh/client.tsx +99 -0
- package/src/dsh/guard-denials.ts +78 -0
- package/src/dsh/package.dist.json +21 -0
- package/src/dsh/plugin.ts +278 -0
- package/src/dsh/protocol.ts +16 -0
- package/src/effects/admission/admission-source.ts +3 -0
- package/src/effects/adoption/gitignore-plan.ts +9 -3
- package/src/effects/adoption/manifest-templates.ts +1 -1
- package/src/effects/adoption/standard-plan.ts +155 -230
- package/src/effects/architecture/archctx-provider.ts +25 -2
- package/src/effects/architecture/capability-resolver.ts +1 -23
- package/src/effects/architecture/model-reader.ts +5 -4
- package/src/effects/artifact-retention.ts +19 -56
- package/src/effects/bot-registry.ts +186 -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/external-sources/binding.ts +8 -12
- package/src/effects/external-sources/store.ts +2 -26
- package/src/effects/fleet/board.ts +4 -21
- package/src/effects/fleet/provider-feedback.ts +1 -1
- package/src/effects/fleet/task-inbox-layout-migration.ts +24 -10
- package/src/effects/fleet/task-inbox.ts +24 -149
- 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 +9 -5
- package/src/effects/locking/exclusive-directory-lock.ts +45 -31
- 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 +16 -1
- package/src/effects/operator/bot-access.ts +286 -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 +76 -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 +618 -477
- package/src/effects/operator/task-context.ts +0 -2
- 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 +613 -0
- package/src/effects/publication/merge-readiness.ts +988 -83
- 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 +136 -6
- package/src/effects/review/diff-fingerprint.ts +3 -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 +95 -183
- package/src/effects/review/review-isolation.ts +86 -15
- package/src/effects/review/review-publish.ts +317 -0
- package/src/effects/{review/oar-review-host.ts → review-runner/task-oar-host.ts} +31 -37
- package/src/effects/{review/pre-prompt-inbox-consumer.ts → review-runner/task-pre-prompt-inbox-consumer.ts} +5 -5
- package/src/effects/{review/pre-prompt-inbox.ts → review-runner/task-pre-prompt-inbox.ts} +4 -4
- package/src/effects/review-runner/task-review-runner.ts +209 -0
- package/src/effects/runtime/helper-runner.ts +0 -1
- package/src/effects/runtime/protected-helper-platform.ts +8 -38
- package/src/effects/sessions/admitted-source.ts +2 -5
- package/src/effects/sessions/task-sessions.ts +3 -3
- 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/setup/pi-host-probe.ts +32 -0
- package/src/effects/state/coordination-worktree-topology.ts +610 -82
- package/src/effects/state/resolve-continuation-envelope.ts +2 -2
- package/src/effects/state/resolve-effective-state.ts +79 -109
- 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/herdr.ts +1 -1
- package/src/effects/terminal/native-task-session.ts +9 -6
- 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-admission.ts +72 -0
- package/src/effects/terminal/task-session-io.ts +24 -2
- package/src/effects/terminal/{task-session-reader.ts → task-session-record.ts} +76 -6
- package/src/effects/terminal/task-session.ts +106 -213
- package/src/effects/terminal/task-worktree-runtime.ts +25 -0
- package/src/effects/upgrade/legacy-inventory.ts +155 -9
- package/src/effects/upgrade/legacy-worktree-cleanup.ts +215 -0
- package/src/effects/upgrade/operator-decisions.ts +131 -0
- package/src/effects/upgrade/worktree-template-migration.ts +141 -0
- package/src/operator-web/AdmittedTaskContext.tsx +1 -2
- package/src/operator-web/App.tsx +199 -262
- package/src/operator-web/ArchitectureHistory.tsx +481 -0
- 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 +42 -4
- package/src/operator-web/Board.tsx +29 -13
- package/src/operator-web/BotsPage.tsx +335 -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 +11 -128
- 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 +280 -20
- package/src/operator-web/architecture-map-layers.ts +125 -0
- package/src/operator-web/architecture-map-layout.ts +185 -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 +76 -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 +5 -65
- package/src/operator-web/fixtures/architecture-map.json +18788 -0
- package/src/operator-web/fixtures/bots.ts +97 -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 -7
- 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/fleet-api.ts +0 -40
- package/src/operator-web/i18n.ts +1421 -223
- 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 -110
- 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/agents/engineers/profiles/verification-evals-checks.json +0 -17
- package/agents/engineers/profiles/workflow-engine-contract-assets.json +0 -17
- package/agents/engineers/sops/verification-evals-checks.md +0 -9
- package/agents/engineers/sops/workflow-engine-contract-assets.md +0 -9
- 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-chatgpt/SKILL.md +0 -33
- package/assets/skills/repo-harness-chatgpt/references/bridge.md +0 -160
- package/assets/skills/repo-harness-chatgpt/references/consult.md +0 -92
- package/assets/skills/repo-harness-chatgpt/references/continue.md +0 -57
- package/assets/skills/repo-harness-chatgpt/references/delegate.md +0 -409
- package/assets/skills/repo-harness-chatgpt/references/orchestrate.md +0 -226
- package/assets/skills/repo-harness-chatgpt/references/read-back.md +0 -87
- package/assets/skills/repo-harness-chatgpt/references/setup.md +0 -199
- 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/docs/images/repo-harness-gptpro-cn.png +0 -0
- package/docs/images/repo-harness-gptpro.png +0 -0
- package/docs/repo-harness-chatgpt-browser-engine.md +0 -359
- 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/codex-handoff-resume.sh +0 -65
- 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/prepare-codex-handoff.sh +0 -58
- package/scripts/prepare-handoff.sh +0 -57
- package/scripts/recovery-view-cli.ts +0 -118
- 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/chatgpt-browser/binding.ts +0 -117
- package/src/cli/chatgpt-browser/engine.ts +0 -602
- package/src/cli/chatgpt-browser/file-policy.ts +0 -175
- package/src/cli/chatgpt-browser/native-provider.ts +0 -622
- package/src/cli/chatgpt-browser/oracle-provider.ts +0 -806
- package/src/cli/chatgpt-browser/oracle-session-evidence.ts +0 -128
- package/src/cli/chatgpt-browser/prompt-assembler.ts +0 -29
- package/src/cli/chatgpt-browser/secret-scan.ts +0 -139
- package/src/cli/chatgpt-browser/session-store.ts +0 -351
- package/src/cli/chatgpt-browser/types.ts +0 -212
- package/src/cli/chatgpt-skill/installer.ts +0 -131
- package/src/cli/chatgpt-skill/source.ts +0 -60
- package/src/cli/commands/chatgpt.ts +0 -440
- package/src/cli/commands/integration.ts +0 -218
- package/src/cli/installer/runtime-host-lock.ts +0 -66
- package/src/cli/mcp/coding-tools.ts +0 -645
- package/src/cli/mcp/coding-workspaces.ts +0 -731
- package/src/cli/mcp/oauth.ts +0 -517
- package/src/cli/mcp/process-sessions.ts +0 -749
- package/src/cli/mcp/session-store.ts +0 -179
- package/src/cli/mcp/setup-ownership.ts +0 -59
- package/src/cli/mcp/setup.ts +0 -1403
- package/src/cli/mcp/transports/http.ts +0 -885
- package/src/cli/mcp/uninstall.ts +0 -119
- package/src/core/engineers/AGENTS.md +0 -29
- package/src/core/engineers/CLAUDE.md +0 -29
- package/src/core/engineers/agent-runtime-effect.ts +0 -603
- package/src/core/engineers/engineering-overlay.ts +0 -475
- package/src/core/engineers/principal-claim.ts +0 -164
- package/src/core/engineers/profile-binding.ts +0 -171
- package/src/core/engineers/scheduling.ts +0 -1037
- package/src/core/fleet/task-reply.ts +0 -259
- package/src/core/integration/product-acceptance.ts +0 -371
- package/src/core/operator/organization-snapshot.ts +0 -147
- package/src/core/operator/planning-snapshot.ts +0 -92
- package/src/core/operator/repository-snapshot.ts +0 -12
- package/src/core/operator/task-history.ts +0 -56
- package/src/core/state/sprint-backlog-rows.ts +0 -154
- package/src/effects/engineers/agent-runtime-adapters/herdr-cli-agent.ts +0 -48
- package/src/effects/engineers/agent-runtime-effect-store.ts +0 -787
- package/src/effects/engineers/agent-runtime-feature.ts +0 -65
- package/src/effects/engineers/dependency-authority.ts +0 -629
- package/src/effects/engineers/engineering-overlay.ts +0 -80
- package/src/effects/engineers/scheduling.ts +0 -150
- package/src/effects/evidence/recovery-materializer.ts +0 -756
- package/src/effects/integration/product-acceptance.ts +0 -595
- package/src/effects/operator/repository-snapshot-worker.ts +0 -55
- package/src/effects/operator/repository-snapshot.ts +0 -149
- package/src/effects/operator/task-activity.ts +0 -45
- package/src/effects/operator/task-history.ts +0 -105
- package/src/effects/profiles/profile-store.ts +0 -203
- package/src/effects/state/coordination-canonical-source.ts +0 -461
- package/src/operator-web/OrganizationSummary.tsx +0 -64
- package/src/operator-web/PlanningView.tsx +0 -48
- 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,26 +140,24 @@ 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
|
|
|
116
146
|
### Success looks like this
|
|
117
147
|
|
|
118
|
-
Init writes repo-local files and
|
|
119
|
-
entry
|
|
120
|
-
`~/.codex/handoffs/`. It writes no install-managed host files. When the
|
|
148
|
+
Init writes repo-local files and one file under `HOME`: the repo registry
|
|
149
|
+
entry. It writes no install-managed host files. When the
|
|
121
150
|
required Herdr skill or the architecture projection preference is missing, init
|
|
122
151
|
reports a skipped step that names `repo-harness update`. repo-harness supplies tools and evidence; the Bot
|
|
123
152
|
decides what to schedule.
|
|
124
153
|
|
|
125
154
|
Apply ends with `=== Migration Report ===`, naming where generated hook behavior
|
|
126
155
|
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
|
-
|
|
156
|
+
adapter target, the repo-local surfaces created or refreshed, and an
|
|
157
|
+
`--- External Tooling ---` readiness block. Stable intent then lives in
|
|
158
|
+
`docs/spec.md` and `docs/prds/`, task and resume state in the GitHub issue,
|
|
159
|
+
its claim comments and the PR. If the dry run looks wrong, stop and
|
|
160
|
+
read
|
|
132
161
|
[`hook-operations.md`](docs/reference-configs/hook-operations.md) first.
|
|
133
162
|
|
|
134
163
|
### Update and remove
|
|
@@ -138,10 +167,10 @@ repo-harness update # reconcile CLI, mandatory deps, profile tooling, a
|
|
|
138
167
|
repo-harness update --check # read-only repair guidance, no writes
|
|
139
168
|
repo-harness upgrade # check retired leftovers; no writes
|
|
140
169
|
repo-harness upgrade --apply # back up and remove only proven owned leftovers
|
|
170
|
+
repo-harness upgrade decide --keep <path> # record an operator decision for a report-only project item
|
|
171
|
+
repo-harness upgrade --registered # preview project refresh for every registered repo; no writes
|
|
141
172
|
repo-harness uninstall --dry-run # preview owned user configuration cleanup
|
|
142
173
|
repo-harness uninstall # remove owned configuration; preserve user changes/history
|
|
143
|
-
repo-harness mcp uninstall --dry-run # preview independent MCP setup cleanup
|
|
144
|
-
repo-harness mcp uninstall --services-stopped # after stopping all MCP HTTP services
|
|
145
174
|
```
|
|
146
175
|
|
|
147
176
|
`update` and `setup check` print one leftover count. `update` does not apply
|
|
@@ -184,10 +213,9 @@ release line have no supported historical proof and remain report-only.
|
|
|
184
213
|
## Why repo-harness
|
|
185
214
|
|
|
186
215
|
- **File-backed sessions, not chat memory.** Separate Claude and Codex sessions
|
|
187
|
-
stay coordinated through the repo
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
changed files without re-deriving them.
|
|
216
|
+
stay coordinated through the repo and its GitHub issue and PR. A session can
|
|
217
|
+
end mid-task. The next one reads the issue, the latest claim status and the
|
|
218
|
+
PR, and resumes the exact next step without re-deriving it.
|
|
191
219
|
- **Token-lean by design.** Instead of grep-and-read loops that re-scan the repo
|
|
192
220
|
every session, the harness leans on a pre-built CodeGraph index for structural
|
|
193
221
|
queries and on progressive context loading: a stable ~12KB root context plus
|
|
@@ -203,9 +231,8 @@ In an adopted repo, the surface area is intentionally small:
|
|
|
203
231
|
| Surface | Purpose |
|
|
204
232
|
| --- | --- |
|
|
205
233
|
| `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/` and `tasks/current.md` | Session journal and resumable status, derived from workflow artifacts instead of chat memory. |
|
|
234
|
+
| `docs/prds/` | Product intent and optional design briefs. |
|
|
235
|
+
| `tasks/lessons.md` | The one local lesson ledger. Task identity and history stay in the issue and PR. |
|
|
209
236
|
|
|
210
237
|
## Task Authority
|
|
211
238
|
|
|
@@ -227,13 +254,13 @@ callers while the contract lifecycle is removed.
|
|
|
227
254
|
|
|
228
255
|
| | |
|
|
229
256
|
| --- | --- |
|
|
230
|
-
| **File-backed sessions** |
|
|
257
|
+
| **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
258
|
| **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
259
|
| **Issue → PR → Review** | One task authority with bounded changes, recorded verification and review evidence |
|
|
233
260
|
| **Session handoff** | Record the issue, branch, evidence and next action so another agent can continue |
|
|
234
261
|
| **Progressive context loading** | A ~12KB stable root context plus ~1KB capability contracts loaded only for the files actually being touched |
|
|
235
262
|
| **CodeGraph integration** | Structural queries (callers, callees, definitions) answered from a pre-built index instead of repeated grep-and-read passes |
|
|
236
|
-
| **MCP planner sidecar** |
|
|
263
|
+
| **MCP planner sidecar** | A local MCP client reads real repo state over stdio and writes PRD artifacts, with no default source-code write access |
|
|
237
264
|
| **Claude + Codex alignment** | One user-level adapter contract, one workflow contract, and one set of repo-local artifacts shared by both hosts |
|
|
238
265
|
|
|
239
266
|
## How It Works
|
|
@@ -242,7 +269,7 @@ callers while the contract lifecycle is removed.
|
|
|
242
269
|
typed hook handlers, the operator-helper asset, workflow contract, tests, and
|
|
243
270
|
release gate.
|
|
244
271
|
2. **Target repo contract**: `repo-harness init` or migration writes repo-local
|
|
245
|
-
files such as `docs/spec.md`, `
|
|
272
|
+
files such as `docs/spec.md`, `docs/prds/`, `tasks/lessons.md`, `.ai/context/`,
|
|
246
273
|
`.ai/harness/`, helper scripts, and `.ai/hooks/`.
|
|
247
274
|
3. **Host adapters**: user-level `~/.claude/settings.json` and
|
|
248
275
|
`~/.codex/hooks.json` route Claude/Codex events into `repo-harness-hook`.
|
|
@@ -261,8 +288,7 @@ Handler details and policy modes:
|
|
|
261
288
|
## Task Workflow
|
|
262
289
|
|
|
263
290
|
The GitHub issue and PR carry task identity, claims, status and dependencies.
|
|
264
|
-
|
|
265
|
-
old records until that lifecycle is retired.
|
|
291
|
+
There is no local plan, sprint, contract, review or notes artifact.
|
|
266
292
|
|
|
267
293
|
```mermaid
|
|
268
294
|
flowchart TD
|
|
@@ -285,12 +311,10 @@ flowchart TD
|
|
|
285
311
|
For long-running product loops, keep discovery and engineering-plan judgment with
|
|
286
312
|
the parent agent before Codex loops on execution: `geju` opens the pre-contract
|
|
287
313
|
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
|
|
314
|
+
upper-layer PRD under `docs/prds/`, then orders GitHub issues through
|
|
315
|
+
`repo-harness-issue-flow`. The issue and PR are the durable execution queue, so a
|
|
291
316
|
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).
|
|
317
|
+
[`agentic-development-flow.md`](docs/reference-configs/agentic-development-flow.md).
|
|
294
318
|
|
|
295
319
|
## Work Across Sessions
|
|
296
320
|
|
|
@@ -305,12 +329,13 @@ repo-harness fleet board --json
|
|
|
305
329
|
```
|
|
306
330
|
|
|
307
331
|
The board reads retained task, Lease, publication, inbox and runtime evidence.
|
|
308
|
-
It does not claim work or create an Engineer binding.
|
|
309
|
-
|
|
332
|
+
It does not claim work or create an Engineer binding. Completion and cleanup
|
|
333
|
+
helpers remain for existing records.
|
|
310
334
|
|
|
311
335
|
Use [repo-harness](SKILL.md) for scope and worker ownership,
|
|
312
336
|
[repo-harness-product](assets/skills/repo-harness-product/SKILL.md) for requested
|
|
313
|
-
|
|
337
|
+
PRD or Goal work, [repo-harness-issue-flow](assets/skills/repo-harness-issue-flow/SKILL.md)
|
|
338
|
+
for issue backlog splitting and dispatch, and [repo-harness-check](assets/skill-commands/repo-harness-check/SKILL.md)
|
|
314
339
|
for scope and recorded verification.
|
|
315
340
|
|
|
316
341
|
### Refactor recommendations
|
|
@@ -330,7 +355,6 @@ accepted suggestion goes through the normal plan and pull request workflow.
|
|
|
330
355
|
```bash
|
|
331
356
|
repo-harness external-source refresh # one bounded, explicitly enabled GitHub observation
|
|
332
357
|
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
358
|
repo-harness external-source bindings # binding edges and current drift attention
|
|
335
359
|
```
|
|
336
360
|
|
|
@@ -352,8 +376,8 @@ an explicit `execution_mode`: `contract` or `inline`. The mode is part of the
|
|
|
352
376
|
approved admission digest; changing it requires new approval. Do not create an
|
|
353
377
|
approval from these examples: actor IDs and authorization references are binding
|
|
354
378
|
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
|
|
379
|
+
below, and supply the current immutable issue claim. A local plan or contract
|
|
380
|
+
file cannot grant permission. A user waiver requires a separate upstream-authorized
|
|
357
381
|
decision; waiver eligibility in an admission does not grant one.
|
|
358
382
|
|
|
359
383
|
See [the control Bot boundary](docs/control-bot-boundary.md) for the integration contract.
|
|
@@ -368,6 +392,10 @@ In the Claude desktop app without Herdr, add `--launch app-terminal` and omit `-
|
|
|
368
392
|
|
|
369
393
|
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
394
|
|
|
395
|
+
### Bot merge
|
|
396
|
+
|
|
397
|
+
A local Herdr Bot runs `repo-harness publication merge` in its shell. A cloud-only Bot runs the same command in a sandbox that has repo-harness, a working `gh auth` and a checkout. 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).
|
|
398
|
+
|
|
371
399
|
## Hooks
|
|
372
400
|
|
|
373
401
|
The installed adapter binds 6 public hook routes: Claude installs 5 and Codex
|
|
@@ -395,24 +423,40 @@ Full playbook:
|
|
|
395
423
|
|
|
396
424
|
## Local Human Control Board
|
|
397
425
|
|
|
398
|
-
Run the
|
|
399
|
-
repositories:
|
|
426
|
+
Run the operator console on the same machine as the adopted repositories:
|
|
400
427
|
|
|
401
428
|
```bash
|
|
402
429
|
repo-harness operator serve
|
|
403
430
|
```
|
|
404
431
|
|
|
405
|
-
The command binds to loopback only and prints the local URL. The
|
|
406
|
-
the
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
432
|
+
The command binds to loopback only and prints the local URL. The console has
|
|
433
|
+
these pages: the development board with its task drawer, repositories, Agents,
|
|
434
|
+
Skills, Hooks, tools, architecture and system status. The theme follows the
|
|
435
|
+
system until you pick one. The language follows your saved choice, then the browser language.
|
|
436
|
+
|
|
437
|
+
The approved design allows three bounded writes and nothing else. They open in
|
|
438
|
+
this order: local agent config in `~/.repo-harness/config.json`, docs sessions
|
|
439
|
+
that return changes as a Draft PR, and worktree cleanup. Green worktree cleanup
|
|
440
|
+
also has a terminal form:
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
repo-harness worktrees list # add --json for ids and selection digests
|
|
444
|
+
repo-harness worktrees clean --ids <id,...> --expected-digest <digest>
|
|
445
|
+
```
|
|
446
|
+
Each write passes an origin check, a write token and a
|
|
447
|
+
precondition check, and is audited before it runs. Host projection (install,
|
|
448
|
+
update, profile switch), registry cleanup and CLI uninstall stay commands that
|
|
449
|
+
you run in a terminal. The console does not send messages to coding sessions,
|
|
450
|
+
stop them or dispatch work; dispatch stays Bot → CLI → herdr. Browser payloads
|
|
451
|
+
do not contain secrets or absolute paths. Product scope:
|
|
452
|
+
[`docs/prds/20261026-2310-operator-console-uiux.prd.md`](docs/prds/20261026-2310-operator-console-uiux.prd.md);
|
|
453
|
+
UX: [`docs/prds/DESIGN-operator-console-uiux.md`](docs/prds/DESIGN-operator-console-uiux.md).
|
|
410
454
|
|
|
411
455
|
Read committed architecture facts or export a module review prompt:
|
|
412
456
|
|
|
413
457
|
```bash
|
|
414
458
|
repo-harness module list --json
|
|
415
|
-
repo-harness module review-prompt capability.runtime-harness.
|
|
459
|
+
repo-harness module review-prompt capability.runtime-harness.task-agent-host --json
|
|
416
460
|
```
|
|
417
461
|
|
|
418
462
|
The prompt uses HEAD content. It reports uncommitted paths and their content
|
|
@@ -423,42 +467,29 @@ shards arrive. Diff mode requires both `--base <rev>` and `--head <rev>`.
|
|
|
423
467
|
|
|
424
468
|
## MCP Connector
|
|
425
469
|
|
|
426
|
-
As an optional sidecar, `repo-harness mcp` exposes workflow artifacts to
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
470
|
+
As an optional sidecar, `repo-harness mcp serve` exposes workflow artifacts to a
|
|
471
|
+
local MCP client over stdio through the default `planner` profile or the
|
|
472
|
+
`executor` profile. The client reads real repo state and writes PRDs under
|
|
473
|
+
`docs/prds/`. It has no default source-code write access, no shell and no runner. The
|
|
474
|
+
task owner directs an explicitly addressed Herdr agent to execute the task goal.
|
|
431
475
|
|
|
432
476
|
```bash
|
|
433
|
-
repo-harness mcp
|
|
434
|
-
repo-harness mcp
|
|
477
|
+
repo-harness mcp serve --repo . --profile planner
|
|
478
|
+
repo-harness mcp doctor --repo .
|
|
435
479
|
```
|
|
436
480
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
1. ChatGPT reads repo-harness workflow files through MCP.
|
|
441
|
-
2. ChatGPT writes a PRD with `write_prd_from_idea`.
|
|
442
|
-
3. ChatGPT writes a checklist Sprint with `write_checklist_sprint`.
|
|
443
|
-
4. ChatGPT prepares `.ai/harness/handoff/task-goal.md` with `prepare_task_goal_from_sprint`.
|
|
444
|
-
5. The task owner sends the generated execution prompt to an explicitly addressed Herdr agent and stages each completed Sprint phase.
|
|
445
|
-
|
|
446
|
-
General repo reader/writer tools, snapshot and index consistency, server
|
|
447
|
-
profiles, and the opt-in dev runner:
|
|
448
|
-
[`general-repo-mcp.md`](docs/reference-configs/general-repo-mcp.md). Direct-coding
|
|
449
|
-
profile: [`chatgpt-coding-mcp.md`](docs/reference-configs/chatgpt-coding-mcp.md).
|
|
481
|
+
General repo reader/writer tools, snapshot and index consistency, and server profiles:
|
|
482
|
+
[`general-repo-mcp.md`](docs/reference-configs/general-repo-mcp.md).
|
|
450
483
|
Index-stale, CodeGraph-down, and rollback operations:
|
|
451
484
|
[`general-repo-mcp-codegraph.md`](deploy/runbooks/general-repo-mcp-codegraph.md).
|
|
452
485
|
|
|
453
486
|
## Reviewing Work
|
|
454
487
|
|
|
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.
|
|
488
|
+
Start with the PR description. It is the one-screen decision surface: goal,
|
|
489
|
+
scope, changes, commands passed, external acceptance, residual risk and rollback.
|
|
490
|
+
Then inspect the changed files, the latest trace in Verification Plan execution
|
|
491
|
+
records, and the checks. Accept only when the checks pass and external acceptance
|
|
492
|
+
is pass, `not_required`, or an explicit override.
|
|
462
493
|
|
|
463
494
|
Execution facts and acceptance are separate authorities: a passing
|
|
464
495
|
`verify-contract` run proves a command ran, not that the work is accepted.
|
|
@@ -468,15 +499,11 @@ Agents read source artifacts before derived summaries:
|
|
|
468
499
|
|
|
469
500
|
| Agent reads first | Human reviews first |
|
|
470
501
|
| --- | --- |
|
|
471
|
-
| Current user prompt and referenced files |
|
|
502
|
+
| Current user prompt and referenced files | PR description |
|
|
472
503
|
| `AGENTS.md` / `CLAUDE.md` | Changed files and diff |
|
|
473
|
-
|
|
|
474
|
-
|
|
|
475
|
-
|
|
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.
|
|
504
|
+
| The GitHub issue and PR | Verification Plan execution records and run trace |
|
|
505
|
+
| Latest claim status comment on the issue | Residual risks and rollback |
|
|
506
|
+
If it disagrees with the issue, PR, checks, or handoff, the source artifacts win.
|
|
480
507
|
|
|
481
508
|
Runtime-heavy validators (Unity, browser E2E, mobile simulators, hardware rigs,
|
|
482
509
|
staging smoke tests) can publish external verification manifests under the
|
|
@@ -498,14 +525,15 @@ control context loading. They do not add a host permission boundary.
|
|
|
498
525
|
| --- | --- | --- |
|
|
499
526
|
| `repo-harness` | Bot | Route explicit harness actions |
|
|
500
527
|
| `repo-harness-check` | Bot | Plan scoped work, review plans, assess recorded checks |
|
|
501
|
-
| `repo-harness-product` | Bot | Requested PRD
|
|
528
|
+
| `repo-harness-product` | Bot | Requested PRD drafting or Goal preparation |
|
|
529
|
+
| `repo-harness-issue-flow` | Bot | Issue and PR driven multi-agent development: split by module, dispatch workers, follow PRs and CI |
|
|
502
530
|
| `repo-harness-ship` | Bot | Explicit publication and cleanup decisions |
|
|
503
531
|
| `obsidian-memory` | Bot | Explicit memory recall or persistence |
|
|
504
532
|
| `repo-harness-cross-review` | Bot | Generic review; direct advisory runtime retired |
|
|
505
|
-
| `repo-harness-chatgpt` | Bot | Explicit integration mode and advisory decisions |
|
|
506
533
|
| `repo-harness-setup` | Worker | Assigned install, migration, repair or scaffold |
|
|
507
534
|
| `repo-harness-test` | Worker | Source tests and real fixtures |
|
|
508
535
|
| `repo-harness-architecture` | Worker | Assigned model, projection or diagram work |
|
|
536
|
+
| `repo-harness-archimap` | Worker | Draw or refresh the human-facing architecture map `docs/architecture/archimap.html` |
|
|
509
537
|
| `windows-python-first` | Worker | Native Windows file, text and shell work through Python |
|
|
510
538
|
|
|
511
539
|
Planning is merged into `repo-harness-check`. No separate planning alias remains.
|
|
@@ -540,7 +568,7 @@ paths are symlink-backed runtime entrypoints rebuilt by
|
|
|
540
568
|
the npm unpublished-version preflight, then runs the `release` lane: the
|
|
541
569
|
expensive-gated tests and the tarball install smoke. It is not a second full
|
|
542
570
|
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.
|
|
571
|
+
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
572
|
|
|
545
573
|
```bash
|
|
546
574
|
bun run check:ci # the whole gate
|
|
@@ -568,7 +596,6 @@ dependencies.
|
|
|
568
596
|
| [herdr](https://herdr.dev/) | Required peer-terminal runtime: notification dispatch, peer collaboration, and hosting the persistent acceptance reviewer | Externally installed binary, checksum-pinned in `.ai/harness/policy.json`; replaces the retired tmux runtime |
|
|
569
597
|
| [`reverse-skill-router`](https://github.com/zhaoxuya520/reverse-skill) | Routes reverse-engineering and security tasks to specialist playbooks | Recommended explicit-only Skill (`--with-reverse-skill`); not profile-selected because upstream's target-mention authorization assumption requires independent scope review |
|
|
570
598
|
| CodeGraph (`@colbymchenry/codegraph`) | Symbol-aware navigation, impact tracing, and readiness checks for this self-host repo | Dev dependency in this repo; generated repos stay global-MCP-first unless policy opts in |
|
|
571
|
-
| [Oracle](https://github.com/steipete/oracle) by [Peter Steinberger](https://x.com/steipete) (`@steipete/oracle`, MIT) | Default GPT Pro / ChatGPT Web browser consult engine that the `chatgpt-browser` Oracle provider shells out to for `gptpro` consults | Externally-resolved binary (`--oracle-bin`, `REPO_HARNESS_ORACLE_BIN`, `node_modules/.bin`, or `PATH`); never auto-downloaded, and a missing binary is a hard `ORACLE_NOT_INSTALLED` failure |
|
|
572
599
|
| OpenAI Codex | Primary execution agent for repo-local implementation, verification, and GitHub contributor attribution when a commit materially includes Codex-authored work | External agent runtime; attribution is an explicit commit trailer, not hidden hook automation |
|
|
573
600
|
|
|
574
601
|
### GitHub Contributor Attribution
|
|
@@ -585,8 +612,8 @@ repo-harness commit scripts or hooks unless that repo adopts the same policy.
|
|
|
585
612
|
|
|
586
613
|
## Current Release
|
|
587
614
|
|
|
588
|
-
- npm package: `repo-harness@0.
|
|
589
|
-
- Generated workflow stamp: `repo-harness@0.
|
|
615
|
+
- npm package: `repo-harness@0.25.1`
|
|
616
|
+
- Generated workflow stamp: `repo-harness@0.25.1+template@0.25.1`
|
|
590
617
|
- GitHub repository: `Ancienttwo/repo-harness`
|
|
591
618
|
- Release notes and history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
592
619
|
|
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.
|