repo-harness 0.21.2 → 0.22.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.
Files changed (244) hide show
  1. package/AGENTS.md +1 -0
  2. package/CLAUDE.md +1 -0
  3. package/README.es.md +39 -66
  4. package/README.fr.md +41 -67
  5. package/README.ja.md +39 -64
  6. package/README.md +40 -67
  7. package/README.zh-CN.md +34 -61
  8. package/SKILL.md +4 -0
  9. package/agents/fleet/deep-worker.md +6 -5
  10. package/agents/fleet/fast-worker.md +6 -5
  11. package/assets/hooks/lib/workflow-state.sh +1 -1
  12. package/assets/reference-configs/agentic-development-flow.md +2 -0
  13. package/assets/reference-configs/document-generation.md +2 -3
  14. package/assets/reference-configs/external-tooling.md +83 -158
  15. package/assets/reference-configs/global-working-rules.md +8 -0
  16. package/assets/reference-configs/harness-overview.md +2 -5
  17. package/assets/reference-configs/heartbeat-triage.md +1 -3
  18. package/assets/reference-configs/herdr-notify.md +6 -0
  19. package/assets/reference-configs/hook-operations.md +22 -10
  20. package/assets/reference-configs/host-invariants.md +1 -1
  21. package/assets/skill-commands/manifest.json +26 -3
  22. package/assets/skill-commands/repo-harness-architecture/SKILL.md +3 -3
  23. package/assets/skill-commands/repo-harness-architecture/references/worker.md +59 -32
  24. package/assets/skill-commands/repo-harness-check/SKILL.md +3 -0
  25. package/assets/skill-commands/repo-harness-check/references/architecture-evidence.md +70 -0
  26. package/assets/skill-version.json +2 -2
  27. package/assets/skills/repo-harness-cross-review/SKILL.md +4 -2
  28. package/assets/skills/repo-harness-cross-review/references/generic-review.md +30 -0
  29. package/assets/skills/windows-python-first/SKILL.md +76 -0
  30. package/assets/skills/windows-python-first/agents/openai.yaml +4 -0
  31. package/assets/templates/helpers/archive-workflow.sh +0 -6
  32. package/assets/templates/helpers/capability-resolver.ts +148 -110
  33. package/assets/templates/helpers/contract-worktree.sh +5 -5
  34. package/assets/templates/helpers/heartbeat-triage.sh +0 -18
  35. package/assets/templates/helpers/merge-gate.ts +12 -2
  36. package/assets/templates/helpers/refresh-current-status.sh +1 -1
  37. package/assets/templates/helpers/workflow-contract.ts +1 -1
  38. package/assets/templates/helpers/workstream-sync.sh +7 -4
  39. package/assets/workflow-contract.v1.json +33 -12
  40. package/dist/hook-entry.js +8283 -10503
  41. package/dist/oar-coding-host.js +13 -2
  42. package/dist/oar-review-host.js +14 -0
  43. package/dist/operator-ui/assets/ArchitectureWorkspace-D4OUgv7P.js +1 -0
  44. package/dist/operator-ui/assets/index-DAePh_VG.css +2 -0
  45. package/dist/operator-ui/assets/index-y71_oLs9.js +18 -0
  46. package/dist/operator-ui/index.html +6 -6
  47. package/package.json +11 -9
  48. package/references/bot-control.md +53 -0
  49. package/scripts/archive-workflow.sh +0 -6
  50. package/scripts/axr5-archctx-clean-room.ts +3 -3
  51. package/scripts/capability-resolver.ts +51 -30
  52. package/scripts/check-ci.sh +21 -1
  53. package/scripts/check-pi-package-smoke.ts +1 -1
  54. package/scripts/check-state-boundaries.ts +3 -2
  55. package/scripts/check-tarball-install-smoke.sh +21 -9
  56. package/scripts/contract-worktree.sh +5 -5
  57. package/scripts/create-project-dirs.sh +0 -1
  58. package/scripts/heartbeat-triage.sh +0 -18
  59. package/scripts/init-project.sh +0 -1
  60. package/scripts/lib/project-init-lib.sh +6 -49
  61. package/scripts/me2b-runtime-admission-canary.ts +4 -4
  62. package/scripts/merge-gate.ts +12 -2
  63. package/scripts/refresh-current-status.sh +1 -1
  64. package/scripts/run-harness-profile-benchmark.ts +1 -1
  65. package/scripts/test-file-durations.json +0 -41
  66. package/scripts/workflow-contract.ts +1 -1
  67. package/scripts/workstream-sync.sh +7 -4
  68. package/src/cli/commands/architecture-configuration.ts +20 -5
  69. package/src/cli/commands/architecture-projection.ts +17 -127
  70. package/src/cli/commands/capability-context.ts +17 -186
  71. package/src/cli/commands/doctor.ts +57 -20
  72. package/src/cli/commands/global-runtime.ts +38 -7
  73. package/src/cli/commands/init-hook.ts +70 -28
  74. package/src/cli/commands/init.ts +1 -4
  75. package/src/cli/commands/operator.ts +5 -2
  76. package/src/cli/commands/pm.ts +2 -3
  77. package/src/cli/commands/refactor.ts +61 -196
  78. package/src/cli/commands/review.ts +6 -3
  79. package/src/cli/commands/run.ts +0 -4
  80. package/src/cli/commands/setup-check-child.ts +8 -0
  81. package/src/cli/commands/setup-snapshot.ts +70 -0
  82. package/src/cli/commands/task-agent.ts +7 -0
  83. package/src/cli/hook/handler-registry.ts +0 -26
  84. package/src/cli/hook/mutation-observed.ts +5 -123
  85. package/src/cli/hook/session-context-budget.ts +0 -3
  86. package/src/cli/hook/session-context.ts +28 -164
  87. package/src/cli/hook/stop-handler.ts +0 -38
  88. package/src/cli/hook/subagent-handler.ts +3 -1
  89. package/src/cli/hook-entry.ts +0 -4
  90. package/src/cli/index.ts +2 -7
  91. package/src/cli/mcp/pm-server.ts +9 -6
  92. package/src/cli/mcp/transports/http.ts +9 -0
  93. package/src/core/adoption/standard-plan.ts +31 -16
  94. package/src/core/architecture/projection.ts +34 -551
  95. package/src/core/capabilities/registry.ts +98 -79
  96. package/src/core/dev-activity/decode.ts +204 -0
  97. package/src/core/dev-activity/projection.ts +349 -0
  98. package/src/core/dev-activity/types.ts +147 -0
  99. package/src/core/hook-work-budget.ts +0 -2
  100. package/src/core/pm/protocol.ts +15 -0
  101. package/src/core/refactor/provider-contract.ts +15 -180
  102. package/src/core/setup/decode.ts +174 -0
  103. package/src/core/setup/projection.ts +212 -0
  104. package/src/core/setup/types.ts +154 -0
  105. package/src/effects/architecture/archctx-provider.ts +22 -283
  106. package/src/effects/architecture/model-reader.ts +9 -15
  107. package/src/effects/architecture/projection-apply.ts +79 -0
  108. package/src/effects/architecture/projection-config.ts +19 -6
  109. package/src/effects/capabilities/archcontext-owners.ts +95 -0
  110. package/src/effects/dev-activity/collector.ts +507 -0
  111. package/src/effects/engineers/profile-store.ts +2 -11
  112. package/src/effects/locking/exclusive-directory-lock.ts +3 -0
  113. package/src/effects/operator/fleet-collector-process.ts +6 -15
  114. package/src/effects/operator/server.ts +73 -47
  115. package/src/effects/pipeline/authority.ts +1 -0
  116. package/src/effects/pipeline/store.ts +27 -3
  117. package/src/effects/pm/operations.ts +4 -3
  118. package/src/effects/publication/merge-readiness.ts +6 -3
  119. package/src/effects/refactor/archctx-provider.ts +32 -82
  120. package/src/effects/refactor/recommendations.ts +87 -99
  121. package/src/effects/review/generic-review.ts +102 -25
  122. package/src/effects/review/oar-review-host.ts +13 -3
  123. package/src/effects/runtime/helper-runner.ts +2 -16
  124. package/src/effects/runtime/protected-helper-platform.ts +34 -1
  125. package/src/effects/setup/collector.ts +164 -0
  126. package/src/effects/state/resolve-effective-state.ts +38 -11
  127. package/src/effects/terminal/task-request-readback.ts +79 -0
  128. package/src/effects/terminal/task-session.ts +125 -27
  129. package/src/operator-web/App.tsx +391 -1674
  130. package/src/operator-web/ArchitectureWorkspace.tsx +2 -18
  131. package/src/operator-web/Board.tsx +436 -0
  132. package/src/operator-web/Drawer.tsx +113 -0
  133. package/src/operator-web/ItemDrawer.tsx +183 -0
  134. package/src/operator-web/OrganizationSummary.tsx +1 -1
  135. package/src/operator-web/PipelineBoard.tsx +11 -7
  136. package/src/operator-web/PlanningView.tsx +1 -1
  137. package/src/operator-web/RepositoriesPage.tsx +90 -0
  138. package/src/operator-web/RepositoryWorkspace.tsx +1097 -0
  139. package/src/operator-web/RuntimeBadges.tsx +1 -1
  140. package/src/operator-web/SetupPages.tsx +444 -0
  141. package/src/operator-web/SystemPage.tsx +99 -0
  142. package/src/operator-web/app.css +207 -0
  143. package/src/operator-web/clipboard.ts +13 -0
  144. package/src/operator-web/css.d.ts +2 -0
  145. package/src/operator-web/dev-activity.ts +155 -0
  146. package/src/operator-web/fixture.ts +0 -38
  147. package/src/operator-web/fixtures/dev-activity.ts +195 -0
  148. package/src/operator-web/fixtures/index.ts +99 -0
  149. package/src/operator-web/fixtures/setup.ts +176 -0
  150. package/src/operator-web/fleet-api.ts +132 -0
  151. package/src/operator-web/i18n.ts +538 -130
  152. package/src/operator-web/index.html +4 -4
  153. package/src/operator-web/labels.ts +34 -0
  154. package/src/operator-web/main.tsx +34 -6
  155. package/src/operator-web/marks.tsx +4 -88
  156. package/src/operator-web/setup.ts +120 -0
  157. package/src/operator-web/theme.ts +71 -0
  158. package/src/operator-web/ui.tsx +94 -0
  159. package/src/operator-web/worklist.ts +131 -0
  160. package/src/operator-web/workspace-location.ts +43 -12
  161. package/src/pi/extension.ts +5 -2
  162. package/src/pi/hook-bridge.ts +33 -13
  163. package/assets/templates/helpers/architecture-event.ts +0 -1411
  164. package/assets/templates/helpers/architecture-queue.sh +0 -709
  165. package/assets/templates/helpers/archive-architecture-request.sh +0 -423
  166. package/assets/templates/helpers/check-architecture-sync.sh +0 -436
  167. package/dist/operator-ui/assets/ArchitectureWorkspace-CBlfSPBR.js +0 -1
  168. package/dist/operator-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  169. package/dist/operator-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  170. package/dist/operator-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  171. package/dist/operator-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  172. package/dist/operator-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  173. package/dist/operator-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  174. package/dist/operator-ui/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff +0 -0
  175. package/dist/operator-ui/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2 +0 -0
  176. package/dist/operator-ui/assets/index-BCD_MgSs.js +0 -9
  177. package/dist/operator-ui/assets/index-CRN670y2.css +0 -1
  178. package/dist/operator-ui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  179. package/dist/operator-ui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  180. package/dist/operator-ui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  181. package/dist/operator-ui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  182. package/dist/operator-ui/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
  183. package/dist/operator-ui/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
  184. package/dist/operator-ui/assets/space-grotesk-latin-400-normal-BnQMeOim.woff +0 -0
  185. package/dist/operator-ui/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 +0 -0
  186. package/dist/operator-ui/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff +0 -0
  187. package/dist/operator-ui/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 +0 -0
  188. package/dist/operator-ui/assets/space-grotesk-latin-600-normal-BflQw4A9.woff +0 -0
  189. package/dist/operator-ui/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 +0 -0
  190. package/dist/operator-ui/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff +0 -0
  191. package/dist/operator-ui/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 +0 -0
  192. package/scripts/architecture-event.ts +0 -1411
  193. package/scripts/architecture-queue.sh +0 -709
  194. package/scripts/archive-architecture-request.sh +0 -423
  195. package/scripts/check-architecture-sync.sh +0 -436
  196. package/src/cli/commands/automation.ts +0 -250
  197. package/src/cli/commands/refactor-recommendation-configuration.ts +0 -13
  198. package/src/cli/hook/architecture-drift.ts +0 -345
  199. package/src/core/architecture/restamp-publication.ts +0 -94
  200. package/src/core/automation/budget.ts +0 -1584
  201. package/src/core/automation/controller.ts +0 -246
  202. package/src/core/automation/projection.ts +0 -201
  203. package/src/core/operator/automation-summary.ts +0 -72
  204. package/src/core/operator/repository-snapshot.ts +0 -39
  205. package/src/core/refactor/activation.ts +0 -42
  206. package/src/core/refactor/architecture-intervention.ts +0 -49
  207. package/src/core/refactor/board.ts +0 -54
  208. package/src/core/refactor/candidate-verification.ts +0 -49
  209. package/src/core/refactor/execution-binding.ts +0 -61
  210. package/src/core/refactor/materialization.ts +0 -154
  211. package/src/core/refactor/policy.ts +0 -125
  212. package/src/core/refactor/program-state.ts +0 -209
  213. package/src/core/refactor/program.ts +0 -178
  214. package/src/core/refactor/proposal-authoring.ts +0 -78
  215. package/src/core/refactor/workflow-route.ts +0 -76
  216. package/src/effects/architecture/projection-acceptance.ts +0 -879
  217. package/src/effects/architecture/projection-continuation.ts +0 -55
  218. package/src/effects/architecture/projection-jobs.ts +0 -579
  219. package/src/effects/architecture/projection-orchestrator.ts +0 -280
  220. package/src/effects/architecture/refresh-consumer.ts +0 -119
  221. package/src/effects/architecture/restamp-publication.ts +0 -293
  222. package/src/effects/automation/budget-store.internal.ts +0 -15
  223. package/src/effects/automation/budget-store.ts +0 -1861
  224. package/src/effects/automation/clock.ts +0 -91
  225. package/src/effects/automation/controller-run.ts +0 -264
  226. package/src/effects/automation/controller-store.ts +0 -165
  227. package/src/effects/automation/grant-store.ts +0 -226
  228. package/src/effects/operator/automation-summary.ts +0 -95
  229. package/src/effects/refactor/activation-store.ts +0 -17
  230. package/src/effects/refactor/architecture-intervention.ts +0 -54
  231. package/src/effects/refactor/candidate-verification.ts +0 -127
  232. package/src/effects/refactor/discovery-authoring.ts +0 -109
  233. package/src/effects/refactor/execution-binding-store.ts +0 -54
  234. package/src/effects/refactor/materialization.ts +0 -158
  235. package/src/effects/refactor/post-merge-resolution.ts +0 -155
  236. package/src/effects/refactor/program-store.ts +0 -198
  237. package/src/effects/refactor/recommendation-settings.ts +0 -13
  238. package/src/effects/refactor/resolution-store.ts +0 -24
  239. package/src/effects/refactor/shadow-discovery.ts +0 -132
  240. package/src/operator-web/AutomationSummary.tsx +0 -134
  241. package/src/operator-web/icons.tsx +0 -80
  242. package/src/operator-web/repository-snapshot.ts +0 -27
  243. package/src/operator-web/styles.css +0 -523
  244. package/src/operator-web/styles.d.ts +0 -4
package/AGENTS.md CHANGED
@@ -13,6 +13,7 @@
13
13
  - `start` recovers only a real target directory registered by this clone on the expected branch, under the topology lock, with no lock or other owner. Recovery requires a current-user-owned checkout directory without group or other write access, a regular owned Git pointer, its matching admin backpointer, and the original directory identity saved by start. Git metadata can be group-writable but must not be other-writable. Start still creates a checkout when uid is unavailable; recovery then refuses. Exact removal retires the identity after Git readback. Missing identity or a replacement directory blocks recovery. Files, symlinks, unregistered paths and other branches are refused. Cleanup refuses a registered worktree whose branch is missing. MCP cleanup also refuses active markers and retained native verification evidence. Sweep reports name processed paths. Deferred entries are reported as counts. `kept` excludes deferred entries. A command timeout sends SIGTERM to the direct child only. A grandchild can briefly extend the deadline. No detached cleanup process starts. Herdr notifications accept registered default task worktrees and paths inside them. Other temporary paths and `rh-herdr-` labels stay filtered.
14
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
15
  - Use gatekeeper/cross-model review for large changes, security/permissions, or unresolved model uncertainty; 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.
16
17
  - Model division and cross-model dispatch/review follow [Herdr Dispatch](docs/reference-configs/external-tooling.md#herdr-dispatch).
17
18
  - 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.
18
19
  - When one PR changes both test assertions and implementation code, run one read-only review focused on tests bent to fit a bug (on-demand, not a restored gate; dispatch per the herdr guide).
package/CLAUDE.md CHANGED
@@ -13,6 +13,7 @@
13
13
  - `start` recovers only a real target directory registered by this clone on the expected branch, under the topology lock, with no lock or other owner. Recovery requires a current-user-owned checkout directory without group or other write access, a regular owned Git pointer, its matching admin backpointer, and the original directory identity saved by start. Git metadata can be group-writable but must not be other-writable. Start still creates a checkout when uid is unavailable; recovery then refuses. Exact removal retires the identity after Git readback. Missing identity or a replacement directory blocks recovery. Files, symlinks, unregistered paths and other branches are refused. Cleanup refuses a registered worktree whose branch is missing. MCP cleanup also refuses active markers and retained native verification evidence. Sweep reports name processed paths. Deferred entries are reported as counts. `kept` excludes deferred entries. A command timeout sends SIGTERM to the direct child only. A grandchild can briefly extend the deadline. No detached cleanup process starts. Herdr notifications accept registered default task worktrees and paths inside them. Other temporary paths and `rh-herdr-` labels stay filtered.
14
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
15
  - Use gatekeeper/cross-model review for large changes, security/permissions, or unresolved model uncertainty; 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.
16
17
  - Model division and cross-model dispatch/review follow [Herdr Dispatch](docs/reference-configs/external-tooling.md#herdr-dispatch).
17
18
  - 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.
18
19
  - When one PR changes both test assertions and implementation code, run one read-only review focused on tests bent to fit a bug (on-demand, not a restored gate; dispatch per the herdr guide).
package/README.es.md CHANGED
@@ -22,10 +22,10 @@ proyecto, de modo que la siguiente sesión de agente continúa desde archivos en
22
22
  lugar del historial de chat. Adopta un repositorio existente con un contract
23
23
  de agente tasks-first que mantiene alineados a Claude y Codex.
24
24
 
25
- Sobre ese contract ejecuta **programas autorizados**: trabajo de larga duración
26
- que sostiene su propia autorización, presupuesto, task offers y leases, de modo
27
- que un Sprint puede avanzar a través de sesiones sin que un humano conduzca
28
- cada paso.
25
+ Sobre ese contract, el Bot planifica **programas de larga duración**: los task
26
+ offers y los leases permiten que un Sprint avance a través de sesiones.
27
+ repo-harness aporta las herramientas y la evidencia; el Bot decide qué se
28
+ ejecuta a continuación.
29
29
 
30
30
  ## Índice
31
31
 
@@ -172,10 +172,9 @@ repo-harness mcp uninstall --services-stopped # after stopping all MCP HTTP serv
172
172
  decisión humana cabe en una sola pantalla — verdict, archivos previstos vs
173
173
  reales, comandos que pasaron, riesgo residual, rollback — en lugar de una
174
174
  reconstrucción de lo que el agente afirma haber hecho.
175
- - **El trabajo desatendido sigue siendo responsable.** Un programa no puede
176
- arrancar sin una autorización almacenada, no puede exceder su budget ledger,
177
- no puede retener una tarea más allá de su lease, y no puede reclamar
178
- aceptación sin un receipt. La autonomía está acotada por artefactos, no por
175
+ - **El trabajo planificado sigue siendo responsable.** Una tarea no puede
176
+ retenerse más allá de su lease. Tampoco puede reclamar aceptación sin un
177
+ receipt. El Bot planifica a partir de evidencia registrada, no de la
179
178
  confianza.
180
179
 
181
180
  En un repositorio adoptado, la superficie se mantiene intencionalmente
@@ -199,21 +198,20 @@ completo para un repositorio en solitario, y todo lo que está en
199
198
  [Flujo de trabajo de tareas](#flujo-de-trabajo-de-tareas) pertenece aquí. Nada
200
199
  de lo que sigue es necesario para usarlo.
201
200
 
202
- **Capa 2 — programas autorizados.** Trabajo de larga duración que sobrevive a
203
- una sesión: un controller desatendido que avanza un Sprint, un programa de refactor guiado
204
- por el modelo de arquitectura, un plano de colaboración donde varios Module
205
- Engineers intercambian señales y handoffs. Cada programa está condicionado a
206
- una autorización emitida por un operador, consume de un budget ledger por goal,
207
- y retiene el trabajo mediante leases renovables. Ver
201
+ **Capa 2 — programas planificados por el Bot.** Trabajo de larga duración que
202
+ sobrevive a una sesión: un plano de colaboración donde varios Module Engineers
203
+ intercambian señales y handoffs, y task offers de engineer retenidos mediante
204
+ leases renovables. El Bot decide qué planificar. repo-harness aporta las
205
+ herramientas y la evidencia. Ver
208
206
  [Programas autorizados](#programas-autorizados).
209
207
 
210
208
  | | Capa 1 | Capa 2 |
211
209
  | --- | --- | --- |
212
- | Unidad de trabajo | Un task contract | Un programa autorizado |
213
- | Quién lo conduce | Un humano en una sesión | Un controller, bajo topes |
214
- | Autoridad | Plan, contract, review, checks | Lo anterior, más authorization, budget, lease, receipts |
215
- | Punto de entrada | `repo-harness init` | `repo-harness automation grant mint` |
216
- | Condición de parada | Closeout de la tarea | Budget agotado, lease perdido, o un receipt terminal |
210
+ | Unidad de trabajo | Un task contract | Una engineer task planificada |
211
+ | Quién lo conduce | Un humano en una sesión | El Bot, a través del CLI de repo-harness y Herdr |
212
+ | Autoridad | Plan, contract, review, checks | Lo anterior, más engineer binding y lease |
213
+ | Punto de entrada | `repo-harness init` | `repo-harness engineer acquire-next` |
214
+ | Condición de parada | Closeout de la tarea | Closeout de la tarea o lease perdido |
217
215
 
218
216
  La capa 2 no reemplaza a la capa 1: cada paso de un programa sigue
219
217
  proyectándose en los mismos artefactos de plan, contract y review que habría
@@ -226,8 +224,7 @@ escrito un humano.
226
224
  | **Sesiones respaldadas por archivos** | Plans, contracts, checks y handoffs viven en el repositorio, de modo que una sesión nueva retoma desde artefactos en vez de un hilo de chat |
227
225
  | **Typed hook runtime** | Ocho managed routes compartidas, más tres delegation routes exclusivas de Codex, cada una atada a exactamente un typed handler in-process, con guards fail-closed en el límite de edición |
228
226
  | **Plan → Contract → Review** | Un solo ciclo de vida desde el plan aprobado hasta el contract proyectado, el worktree aislado, la evidencia estructurada y un closeout revisable |
229
- | **Programas autorizados** | Programas de refactor, automation y collaboration que sostienen su propia authorization, budget ledger, task offers y leases renovables |
230
- | **Controller desatendido acotado** | Un bucle de dispatch de Engineer bajo topes duros de pasos, duración y reintentos, que reserva budget antes de cada intento |
227
+ | **Programas planificados por el Bot** | Programas de collaboration con task offers de engineer y leases renovables; el Bot planifica, repo-harness aporta herramientas y evidencia |
231
228
  | **Carga de contexto progresiva** | Un root context estable de ~12KB más capability contracts de ~1KB que solo se cargan para los archivos que realmente se están tocando |
232
229
  | **Integración con CodeGraph** | Consultas estructurales (callers, callees, definitions) respondidas desde un índice pre-construido en vez de pasadas repetidas de grep-and-read |
233
230
  | **MCP planner sidecar** | ChatGPT lee el estado real del repositorio y escribe artefactos de PRD/Sprint/Goal; Codex los ejecuta, sin acceso de escritura al código fuente por defecto |
@@ -306,9 +303,9 @@ flowchart TD
306
303
  PreHooks -->|blocked| ScopeFix["Fix plan, contract, worktree, or scope"]
307
304
  ScopeFix --> Implement
308
305
  PreHooks -->|allowed| Changes["Code, docs, tests, or config changes"]
309
- Changes --> PostHooks["Post-edit and post-bash hooks<br/>trace, drift request, handoff, check evidence"]
310
- PostHooks --> ArchQueue["Architecture queue<br/>architecture-queue.sh record/reindex<br/>check-architecture-sync.sh"]
311
- ArchQueue --> Verify["Run verification<br/>tests plus repo workflow checks"]
306
+ Changes --> PostHooks["Post-edit and post-bash hooks<br/>trace, handoff, check evidence"]
307
+ PostHooks --> ArchUpdate["Explicit architecture update<br/>archctx ChangeSet when responsibilities change<br/>architecture-projection apply"]
308
+ ArchUpdate --> Verify["Run verification<br/>tests plus repo workflow checks"]
312
309
 
313
310
  Verify --> Checks["Structured evidence<br/>.ai/harness/evidence/events/log.jsonl<br/>.ai/harness/runs/*.json"]
314
311
  Checks --> CheckReview["Evaluator review<br/>Waza /check -> review file"]
@@ -341,40 +338,15 @@ y [`workflow-orchestration.md`](docs/reference-configs/workflow-orchestration.md
341
338
 
342
339
  ## Programas autorizados
343
340
 
344
- Un programa es trabajo que sobrevive a una sesión. Todos ellos parten de las
345
- mismas tres primitivas, y ninguno puede arrancar sin la primera.
341
+ Un programa es trabajo que sobrevive a una sesión. El Bot lo planifica a
342
+ través del CLI de repo-harness y Herdr. repo-harness no mantiene un scheduler,
343
+ un budget ledger ni un controller propios.
346
344
 
347
- ```bash
348
- repo-harness automation grant mint # store one operator ProgramAuthorizationV2
349
- repo-harness automation grant list # digests held for this repository
350
- repo-harness automation budget show # the enforceable per-goal ledger
351
- repo-harness automation budget repair # seal a stopped or expired run's exhaustion receipt
352
- ```
353
-
354
- - **Authorization.** Un `ProgramAuthorizationV2` emitido por un operador vive
355
- en el gate store del home del harness. No existe una ruta de arranque sin
356
- autenticar, y un programa nunca deriva su propio actor — el autor de cada
357
- registro se resuelve desde `--authorization-id`.
358
- - **Budget.** Los agent turns, acquisitions y runner invocations reservan el presupuesto antes del trabajo. `budget repair` conserva los límites.
359
345
  - **Lease.** El trabajo retenido lleva un lease renovable con un intervalo de
360
346
  renovación, un TTL máximo y un conjunto cerrado de fuentes de evidencia. Un
361
347
  estado de liveness no probado exige atención en lugar de reclamarse en
362
348
  silencio.
363
349
 
364
- ### Controller desatendido
365
-
366
- ```bash
367
- repo-harness automation controller start --maximum-steps 20 --maximum-duration-ms 300000
368
- repo-harness automation controller step
369
- repo-harness automation controller status
370
- repo-harness automation controller stop
371
- ```
372
-
373
- Un bucle de dispatch de Engineer bajo topes duros, con backoff determinista y
374
- un ledger acotado de reintentos por intento. Cada intento reserva budget antes
375
- de quedar registrado, y un resultado proyectado fuera del enum cerrado no puede
376
- contarse como satisfecho.
377
-
378
350
  ### Scheduling de Engineer
379
351
 
380
352
  ```bash
@@ -393,20 +365,17 @@ sobre un backlog más antiguo.
393
365
 
394
366
  Campaign execution moved to the existing Bot skills on 2026-10-04. Use [repo-harness](SKILL.md) to dispatch and collect work through Herdr/OAR. Use [repo-harness-product](assets/skills/repo-harness-product/SKILL.md) for planning and [repo-harness-check](assets/skill-commands/repo-harness-check/SKILL.md) for scope and verification. repo-harness has no campaign runtime.
395
367
 
396
- ### Refactor Mode
368
+ ### Refactor recommendations
397
369
 
398
370
  ```bash
399
- repo-harness refactor discover # bounded shadow scan of one local proposal
400
- repo-harness refactor materialize # one recommendation into N Work Packages
401
- repo-harness refactor verify-candidate
402
- repo-harness refactor board
371
+ repo-harness refactor recommendations # measured suggestions with evidence
372
+ repo-harness refactor decide <id> accept|defer|reject --reason "<text>"
403
373
  ```
404
374
 
405
- Un programa respaldado por ArchContext que convierte una recomendación de
406
- arquitectura en work packages contra una única autoridad canónica de tarea de
407
- Sprint. Su activación está condicionada: el canary set y la evidencia de
408
- rung-promotion deben refrescarse contra el provider instalado antes de que se
409
- active.
375
+ ArchContext mide problemas estructurales como ciclos y violaciones de
376
+ dirección. repo-harness muestra cada sugerencia con sus métricas y las
377
+ estadísticas de sus módulos, y registra la decisión del usuario. Nunca ejecuta
378
+ un refactor; una sugerencia aceptada sigue el flujo normal de plan y pull request.
410
379
 
411
380
  ### Plano de colaboración
412
381
 
@@ -446,6 +415,8 @@ repo-harness review status --contract tasks/contracts/<task>.contract.md
446
415
  repo-harness review close --contract tasks/contracts/<task>.contract.md
447
416
  ```
448
417
 
418
+ En la app de escritorio de Claude sin Herdr, añada `--launch app-terminal` y omita `--herdr-endpoint`. La primera llamada imprime el comando fijo del host. Claude lo ejecuta una vez en una pestaña Terminal de la app y repite la misma ronda. OAR, Seatbelt y el Receipt no cambian.
419
+
449
420
  Un task-agent fleet `deep-reasoner` persiste en un linked checkout dedicado y la sesión Herdr indicada, durante un máximo de tres rondas. Por defecto se elige el harness opuesto al owner; `--harness` permite elegirlo explícitamente. Sólo un ejecutable ausente antes de iniciar permite fallback anunciado. El Result de archivo pasa la validación de dominio y el writer/verifier Receipt generic-review; close verifica el Receipt otra vez. History es observación. Claude usa una allowlist de archivos resultado y fingerprints; aislamiento OS de producción e ingestión completa de paquetes grandes siguen sin verificar.
450
421
 
451
422
  ## Hooks
@@ -583,11 +554,12 @@ host mientras el CLI y los hooks poseen la ejecución.
583
554
  | `repo-harness-product` | Modos PRD, Sprint y Goal para el product planning de upper-layer |
584
555
  | `repo-harness-check` | Definir el plan. Revisar el plan. Verificar los resultados registrados. |
585
556
  | `repo-harness-ship` | Valida worktrees terminados, hace push de branches y abre PRs |
586
- | `repo-harness-architecture` | Docs de architecture, drift requests y diagramas sin un refresh completo del harness |
557
+ | `repo-harness-architecture` | Modelo de architecture, docs proyectados y diagramas sin un refresh completo del harness |
587
558
  | `repo-harness-cross-review` | Generic acceptance through persistent fleet deep-reasoner task-agent + Herdr review; direct advisory runtime retired |
588
559
  | `repo-harness-chatgpt` | Consultas de Oracle browser/GPT Pro, setup del MCP Connector y bridge handoff; solo setup explícito |
589
560
  | `obsidian-memory` | Bot: leer o guardar memoria por solicitud explícita. |
590
561
  | `repo-harness-test` | Worker: pruebas del código fuente y fixtures reales. |
562
+ | `windows-python-first` | Worker: tareas de archivos, texto y shell en Windows nativo con Python. |
591
563
  | `merge-gate` (externo) | Gate final de exact-candidate; repo-harness no distribuye ningún Skill de merge-gate — ver [external tooling](docs/reference-configs/external-tooling.md) |
592
564
 
593
565
  Los Bot skills definen el alcance, la delegación y las decisiones. Los Worker skills ejecutan los pasos.
@@ -595,7 +567,8 @@ Los Bot skills definen el alcance, la delegación y las decisiones. Los Worker s
595
567
  Bot: `repo-harness`, `repo-harness-check`, `repo-harness-product`,
596
568
  `repo-harness-ship`, `obsidian-memory`, `repo-harness-cross-review`,
597
569
  `repo-harness-chatgpt`. Worker: `repo-harness-setup`,
598
- `repo-harness-test`, and `repo-harness-architecture`.
570
+ `repo-harness-test`, `repo-harness-architecture`, and
571
+ `windows-python-first`.
599
572
  `obsidian-memory`, and `repo-harness-ship` requieren una invocación explícita.
600
573
  Las tareas comunes usan un brief corto y la descripción del PR. PRD, Sprint y Goal sirven para el trabajo de producto solicitado.
601
574
 
@@ -676,8 +649,8 @@ repositorio adopte la misma política.
676
649
 
677
650
  ## Versión actual
678
651
 
679
- - Paquete npm: `repo-harness@0.21.2`
680
- - Sello de workflow generado: `repo-harness@0.21.2+template@0.21.2`
652
+ - Paquete npm: `repo-harness@0.22.1`
653
+ - Sello de workflow generado: `repo-harness@0.22.1+template@0.22.1`
681
654
  - Repositorio de GitHub: `Ancienttwo/repo-harness`
682
655
  - Notas de versión e historial: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
683
656
 
package/README.fr.md CHANGED
@@ -22,10 +22,10 @@ de review, afin que la session d'agent suivante reprenne à partir des fichiers
22
22
  plutôt que de la mémoire de chat. Il adopte un dépôt existant avec un contrat
23
23
  d'agent tasks-first qui maintient Claude et Codex alignés.
24
24
 
25
- Par-dessus ce contrat, il exécute des **programmes autorisés** : du travail de
26
- longue durée qui porte sa propre autorisation, son budget, ses task offers et
27
- ses leases, si bien qu'un Sprint peut avancer d'une session à l'autre sans
28
- qu'un humain pilote chaque étape.
25
+ Par-dessus ce contrat, le Bot ordonnance des **programmes de longue durée** :
26
+ les task offers et les leases permettent à un Sprint d'avancer d'une session à
27
+ l'autre. repo-harness fournit les outils et les preuves ; le Bot décide de ce
28
+ qui s'exécute ensuite.
29
29
 
30
30
  ## Sommaire
31
31
 
@@ -171,11 +171,10 @@ repo-harness mcp uninstall --services-stopped # after stopping all MCP HTTP serv
171
171
  décision humaine tient sur un seul écran — verdict, fichiers prévus vs
172
172
  réels, commandes passées, risque résiduel, rollback — plutôt qu'une
173
173
  reconstruction de ce que l'agent prétend avoir fait.
174
- - **Le travail non supervisé reste redevable.** Un programme ne peut pas
175
- démarrer sans une autorisation stockée, ne peut pas dépasser son budget
176
- ledger, ne peut pas retenir une tâche au-delà de son lease, et ne peut pas
177
- revendiquer une acceptance sans receipt. L'autonomie est bornée par des
178
- artifacts, pas par la confiance.
174
+ - **Le travail ordonnancé reste redevable.** Une tâche ne peut pas être
175
+ retenue au-delà de son lease. Elle ne peut pas non plus revendiquer une
176
+ acceptance sans receipt. Le Bot ordonnance à partir des preuves enregistrées,
177
+ pas de la confiance.
179
178
 
180
179
  Dans un dépôt adopté, la surface à comprendre reste volontairement réduite :
181
180
 
@@ -197,21 +196,20 @@ entier pour un dépôt en solo, et tout ce qui figure dans
197
196
  [Workflow des tâches](#workflow-des-tâches) appartient à cette couche. Rien de
198
197
  ce qui suit n'est requis pour l'utiliser.
199
198
 
200
- **Couche 2 — les programmes autorisés.** Du travail de longue durée qui survit
201
- à une session : un controller non supervisé qui fait avancer un Sprint, un programme de
202
- refactor piloté par le modèle d'architecture, un plan de collaboration où
203
- plusieurs Module Engineers échangent signaux et handoffs. Chaque programme est
204
- conditionné à une autorisation frappée par un opérateur, puise dans un budget
205
- ledger par goal, et retient le travail via des leases renouvelables. Voir
199
+ **Couche 2 — les programmes ordonnancés par le Bot.** Du travail de longue
200
+ durée qui survit à une session : un plan de collaboration où plusieurs Module
201
+ Engineers échangent signaux et handoffs, et des task offers d'engineer retenus
202
+ via des leases renouvelables. Le Bot décide de ce qu'il ordonnance. repo-harness
203
+ fournit les outils et les preuves. Voir
206
204
  [Programmes autorisés](#programmes-autorisés).
207
205
 
208
206
  | | Couche 1 | Couche 2 |
209
207
  | --- | --- | --- |
210
- | Unité de travail | Un task contract | Un programme autorisé |
211
- | Qui le pilote | Un humain dans une session | Un controller, sous caps |
212
- | Autorité | Plan, contract, review, checks | Ce qui précède, plus authorization, budget, lease, receipts |
213
- | Point d'entrée | `repo-harness init` | `repo-harness automation grant mint` |
214
- | Condition d'arrêt | Closeout de la tâche | Budget épuisé, lease perdu, ou un receipt terminal |
208
+ | Unité de travail | Un task contract | Une engineer task ordonnancée |
209
+ | Qui le pilote | Un humain dans une session | Le Bot, via le CLI repo-harness et Herdr |
210
+ | Autorité | Plan, contract, review, checks | Ce qui précède, plus engineer binding et lease |
211
+ | Point d'entrée | `repo-harness init` | `repo-harness engineer acquire-next` |
212
+ | Condition d'arrêt | Closeout de la tâche | Closeout de la tâche ou lease perdu |
215
213
 
216
214
  La couche 2 ne remplace pas la couche 1 : chaque étape d'un programme se
217
215
  projette toujours dans les mêmes artifacts de plan, contract et review qu'un
@@ -224,8 +222,7 @@ humain aurait écrits.
224
222
  | **Sessions file-backed** | Les plans, contracts, checks et handoffs vivent dans le dépôt, si bien qu'une nouvelle session reprend à partir des artifacts plutôt que d'un chat thread |
225
223
  | **Runtime de hooks typés** | Huit routes managées partagées, plus trois routes de delegation réservées à Codex, chacune liée à exactement un typed handler in-process, avec des guards fail-closed à la frontière d'édition |
226
224
  | **Plan → Contract → Review** | Un seul lifecycle, du plan approuvé au contract projeté, en passant par le worktree isolé et l'evidence structurée, jusqu'à un closeout prêt pour la review |
227
- | **Programmes autorisés** | Programmes refactor, automation et collaboration qui portent leur propre authorization, budget ledger, task offers et leases renouvelables |
228
- | **Controller non supervisé borné** | Une boucle de dispatch Engineer sous des caps stricts d'étapes, de durée et de retries, qui réserve du budget avant chaque tentative |
225
+ | **Programmes ordonnancés par le Bot** | Programmes de collaboration avec des task offers d'engineer et des leases renouvelables ; le Bot ordonnance, repo-harness fournit les outils et les preuves |
229
226
  | **Chargement de contexte progressif** | Un root context stable d'environ 12 Ko, plus des capability contracts d'environ 1 Ko chargés uniquement pour les fichiers réellement touchés |
230
227
  | **Intégration CodeGraph** | Requêtes structurelles (callers, callees, définitions) résolues depuis un index pré-construit, au lieu de passes grep-and-read répétées |
231
228
  | **MCP planner sidecar** | ChatGPT lit l'état réel du dépôt et écrit les artifacts PRD/Sprint/Goal ; Codex les exécute, sans accès en écriture par défaut au source-code |
@@ -304,9 +301,9 @@ flowchart TD
304
301
  PreHooks -->|blocked| ScopeFix["Fix plan, contract, worktree, or scope"]
305
302
  ScopeFix --> Implement
306
303
  PreHooks -->|allowed| Changes["Code, docs, tests, or config changes"]
307
- Changes --> PostHooks["Post-edit and post-bash hooks<br/>trace, drift request, handoff, check evidence"]
308
- PostHooks --> ArchQueue["Architecture queue<br/>architecture-queue.sh record/reindex<br/>check-architecture-sync.sh"]
309
- ArchQueue --> Verify["Run verification<br/>tests plus repo workflow checks"]
304
+ Changes --> PostHooks["Post-edit and post-bash hooks<br/>trace, handoff, check evidence"]
305
+ PostHooks --> ArchUpdate["Explicit architecture update<br/>archctx ChangeSet when responsibilities change<br/>architecture-projection apply"]
306
+ ArchUpdate --> Verify["Run verification<br/>tests plus repo workflow checks"]
310
307
 
311
308
  Verify --> Checks["Structured evidence<br/>.ai/harness/evidence/events/log.jsonl<br/>.ai/harness/runs/*.json"]
312
309
  Checks --> CheckReview["Evaluator review<br/>Waza /check -> review file"]
@@ -339,40 +336,15 @@ et [`workflow-orchestration.md`](docs/reference-configs/workflow-orchestration.m
339
336
 
340
337
  ## Programmes autorisés
341
338
 
342
- Un programme est un travail qui survit à une session. Chacun d'eux part des
343
- trois mêmes primitives, et aucun ne peut démarrer sans la première.
339
+ Un programme est un travail qui survit à une session. Le Bot l'ordonnance via
340
+ le CLI repo-harness et Herdr. repo-harness ne garde ni scheduler, ni budget
341
+ ledger, ni controller qui lui soient propres.
344
342
 
345
- ```bash
346
- repo-harness automation grant mint # store one operator ProgramAuthorizationV2
347
- repo-harness automation grant list # digests held for this repository
348
- repo-harness automation budget show # the enforceable per-goal ledger
349
- repo-harness automation budget repair # seal a stopped or expired run's exhaustion receipt
350
- ```
351
-
352
- - **Authorization.** Un `ProgramAuthorizationV2` frappé par un opérateur vit
353
- dans le gate store du harness home. Il n'existe aucun chemin de démarrage non
354
- authentifié, et un programme ne dérive jamais son propre actor — l'auteur de
355
- chaque enregistrement est résolu depuis `--authorization-id`.
356
- - **Budget.** Les agent turns, acquisitions et runner invocations réservent le budget avant le travail. `budget repair` conserve les limites.
357
343
  - **Lease.** Le travail retenu porte un lease renouvelable avec un intervalle de
358
344
  renouvellement, un TTL maximum, et un ensemble fermé de sources d'evidence. Un
359
345
  état de liveness non prouvé demande de l'attention plutôt qu'une reprise
360
346
  silencieuse.
361
347
 
362
- ### Controller non supervisé
363
-
364
- ```bash
365
- repo-harness automation controller start --maximum-steps 20 --maximum-duration-ms 300000
366
- repo-harness automation controller step
367
- repo-harness automation controller status
368
- repo-harness automation controller stop
369
- ```
370
-
371
- Une seule boucle de dispatch Engineer sous des caps stricts, avec un backoff
372
- déterministe et un ledger borné de retries de tentative. Chaque tentative
373
- réserve du budget avant d'être enregistrée, et un outcome projeté en dehors de
374
- l'enum fermée ne peut pas être compté comme satisfait.
375
-
376
348
  ### Ordonnancement des Engineers
377
349
 
378
350
  ```bash
@@ -391,20 +363,18 @@ immuables sous le backlog schema v2 — lancez une fois
391
363
 
392
364
  Campaign execution moved to the existing Bot skills on 2026-10-04. Use [repo-harness](SKILL.md) to dispatch and collect work through Herdr/OAR. Use [repo-harness-product](assets/skills/repo-harness-product/SKILL.md) for planning and [repo-harness-check](assets/skill-commands/repo-harness-check/SKILL.md) for scope and verification. repo-harness has no campaign runtime.
393
365
 
394
- ### Refactor Mode
366
+ ### Refactor recommendations
395
367
 
396
368
  ```bash
397
- repo-harness refactor discover # bounded shadow scan of one local proposal
398
- repo-harness refactor materialize # one recommendation into N Work Packages
399
- repo-harness refactor verify-candidate
400
- repo-harness refactor board
369
+ repo-harness refactor recommendations # measured suggestions with evidence
370
+ repo-harness refactor decide <id> accept|defer|reject --reason "<text>"
401
371
  ```
402
372
 
403
- Un programme adossé à ArchContext qui transforme une recommandation
404
- d'architecture en work packages contre une autorité unique et canonique de
405
- Sprint task. L'activation est conditionnée : le canary set et l'evidence de
406
- rung-promotion doivent être rafraîchis contre le provider installé avant
407
- l'activation.
373
+ ArchContext mesure des problèmes structurels comme les cycles et les
374
+ violations de direction. repo-harness montre chaque suggestion avec ses
375
+ métriques et les statistiques de ses modules, et enregistre la décision de
376
+ l'utilisateur. Il n'exécute jamais de refactor ; une suggestion acceptée suit le
377
+ flux normal de plan et de pull request.
408
378
 
409
379
  ### Plan de collaboration
410
380
 
@@ -444,6 +414,8 @@ repo-harness review status --contract tasks/contracts/<task>.contract.md
444
414
  repo-harness review close --contract tasks/contracts/<task>.contract.md
445
415
  ```
446
416
 
417
+ Dans l'application de bureau Claude sans Herdr, ajoutez `--launch app-terminal` et omettez `--herdr-endpoint`. Le premier appel affiche la commande fixe du host. Claude l'exécute une fois dans un onglet Terminal de l'application, puis relance la même ronde. OAR, Seatbelt et le Receipt restent identiques.
418
+
447
419
  Un task-agent fleet `deep-reasoner` persiste dans un linked checkout dédié et la session Herdr explicitement adressée, pour trois rounds au maximum. Le harness opposé à celui du owner est choisi par défaut ; `--harness` permet un choix explicite. Seul un executable absent avant le démarrage permet un fallback annoncé. Le Result fichier passe la validation de domaine puis le writer/verifier Receipt generic-review ; close revérifie le Receipt. History reste une observation. Claude utilise une allowlist de fichiers résultat et des fingerprints ; isolation OS de production et ingestion complète des grands packets restent non vérifiées.
448
420
 
449
421
  ## Hooks
@@ -579,11 +551,12 @@ bornée pendant que le CLI et les hooks possèdent l'exécution.
579
551
  | `repo-harness-product` | Modes PRD, Sprint et Goal pour le product planning upper-layer |
580
552
  | `repo-harness-check` | Planifier le travail. Revoir le plan. Vérifier les résultats enregistrés. |
581
553
  | `repo-harness-ship` | Valide les worktrees terminés, push les branches et ouvre les PRs |
582
- | `repo-harness-architecture` | Docs d'architecture, drift requests et diagrammes sans rafraîchissement complet du harness |
554
+ | `repo-harness-architecture` | Modèle d'architecture, docs projetés et diagrammes sans rafraîchissement complet du harness |
583
555
  | `repo-harness-cross-review` | Generic acceptance through persistent fleet deep-reasoner task-agent + Herdr review; direct advisory runtime retired |
584
556
  | `repo-harness-chatgpt` | Consults Oracle browser/GPT Pro, setup du Connecteur MCP et bridge handoff ; setup explicite uniquement |
585
557
  | `obsidian-memory` | Bot : lire ou écrire la mémoire sur demande explicite. |
586
558
  | `repo-harness-test` | Worker : tests du code source et fixtures réelles. |
559
+ | `windows-python-first` | Worker : fichiers, texte et shell sous Windows natif avec Python. |
587
560
  | `merge-gate` (externe) | Gate final exact-candidate ; repo-harness ne fournit aucun Skill merge-gate — voir [external tooling](docs/reference-configs/external-tooling.md) |
588
561
 
589
562
  Les Bot skills définissent le périmètre, la délégation et les décisions. Les Worker skills exécutent les étapes.
@@ -591,7 +564,8 @@ Les Bot skills définissent le périmètre, la délégation et les décisions. L
591
564
  Bot: `repo-harness`, `repo-harness-check`, `repo-harness-product`,
592
565
  `repo-harness-ship`, `obsidian-memory`, `repo-harness-cross-review`,
593
566
  `repo-harness-chatgpt`. Worker: `repo-harness-setup`,
594
- `repo-harness-test`, and `repo-harness-architecture`.
567
+ `repo-harness-test`, `repo-harness-architecture`, and
568
+ `windows-python-first`.
595
569
  `obsidian-memory`, and `repo-harness-ship` exigent une invocation explicite.
596
570
  Les tâches courantes utilisent un brief court et la description du PR. PRD, Sprint et Goal servent aux travaux produit demandés.
597
571
 
@@ -671,8 +645,8 @@ adopte la même policy.
671
645
 
672
646
  ## Release actuelle
673
647
 
674
- - Package npm : `repo-harness@0.21.2`
675
- - Generated workflow stamp : `repo-harness@0.21.2+template@0.21.2`
648
+ - Package npm : `repo-harness@0.22.1`
649
+ - Generated workflow stamp : `repo-harness@0.22.1+template@0.22.1`
676
650
  - Dépôt GitHub : `Ancienttwo/repo-harness`
677
651
  - Notes et historique de release : [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
678
652