repo-harness 0.14.0 → 0.14.2

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 (71) hide show
  1. package/AGENTS.md +0 -1
  2. package/CLAUDE.md +0 -1
  3. package/README.es.md +4 -3
  4. package/README.fr.md +5 -4
  5. package/README.ja.md +5 -4
  6. package/README.md +6 -5
  7. package/README.zh-CN.md +5 -4
  8. package/assets/AGENTS.md +0 -1
  9. package/assets/CLAUDE.md +0 -1
  10. package/assets/hooks/AGENTS.md +0 -1
  11. package/assets/hooks/CLAUDE.md +0 -1
  12. package/assets/partials/05-workflow.partial.md +1 -1
  13. package/assets/reference-configs/agentic-development-flow.md +1 -1
  14. package/assets/reference-configs/document-generation.md +3 -4
  15. package/assets/reference-configs/external-tooling.md +83 -64
  16. package/assets/reference-configs/harness-overview.md +3 -2
  17. package/assets/skill-commands/manifest.json +18 -0
  18. package/assets/skill-commands/repo-harness-architecture/SKILL.md +3 -4
  19. package/assets/skill-version.json +2 -2
  20. package/assets/skills/repo-harness-cross-review/SKILL.md +1 -1
  21. package/assets/skills/repo-harness-cross-review/references/claude-mode.md +16 -10
  22. package/assets/skills/repo-harness-cross-review/references/codex-mode.md +11 -1
  23. package/assets/skills/repo-harness-plan/references/create.md +5 -3
  24. package/assets/skills/repo-harness-product/references/prd.md +3 -2
  25. package/assets/templates/contract.template.md +1 -3
  26. package/assets/templates/helpers/architecture-event.ts +2 -5
  27. package/assets/templates/helpers/check-agent-tooling.sh +34 -60
  28. package/assets/templates/helpers/check-architecture-sync.sh +12 -7
  29. package/assets/templates/helpers/context-contract-sync.sh +0 -3
  30. package/assets/templates/helpers/ensure-task-workflow.sh +6 -11
  31. package/assets/templates/helpers/plan-to-todo.sh +1 -3
  32. package/dist/hook-entry.js +646 -614
  33. package/package.json +5 -4
  34. package/scripts/AGENTS.md +0 -1
  35. package/scripts/CLAUDE.md +0 -1
  36. package/scripts/architecture-event.ts +2 -5
  37. package/scripts/axr5-archctx-clean-room.ts +28 -10
  38. package/scripts/axr6-stop-host-cycle.ts +8 -7
  39. package/scripts/axr7-consumer-e2e.ts +2 -2
  40. package/scripts/check-agent-tooling.sh +34 -60
  41. package/scripts/check-architecture-sync.sh +12 -7
  42. package/scripts/check-managed-runtime.ts +10 -0
  43. package/scripts/context-contract-sync.sh +0 -3
  44. package/scripts/ensure-task-workflow.sh +6 -11
  45. package/scripts/lib/project-init-lib.sh +18 -12
  46. package/scripts/plan-to-todo.sh +1 -3
  47. package/scripts/sync-codex-installed-copies.sh +11 -0
  48. package/src/cli/commands/architecture-projection.ts +6 -1
  49. package/src/cli/commands/cross-review.ts +23 -2
  50. package/src/cli/commands/global-runtime.ts +597 -56
  51. package/src/cli/commands/init.ts +39 -53
  52. package/src/cli/commands/install.ts +1 -15
  53. package/src/cli/commands/validators.ts +0 -15
  54. package/src/cli/hook/delegation-state.ts +1 -14
  55. package/src/cli/hook/mutation-observed.ts +8 -4
  56. package/src/cli/hook/session-context.ts +2 -96
  57. package/src/cli/hook/stop-handler.ts +0 -56
  58. package/src/cli/hook/subagent-handler.ts +186 -89
  59. package/src/cli/index.ts +109 -115
  60. package/src/cli/mcp/session-store.ts +94 -13
  61. package/src/cli/mcp/transports/http.ts +48 -19
  62. package/src/cli/runtime/helper-runner.ts +56 -2
  63. package/src/core/adoption/gitignore-plan.ts +12 -1
  64. package/src/core/adoption/standard-plan.ts +0 -1
  65. package/src/core/architecture/projection.ts +13 -1
  66. package/src/core/review/cross-review.ts +24 -1
  67. package/src/core/skill-surface/catalog.ts +119 -4
  68. package/src/effects/architecture/archctx-provider.ts +82 -17
  69. package/src/effects/review/cross-review-runner.ts +69 -51
  70. package/src/effects/skill-tree-integrity.ts +152 -0
  71. package/src/cli/commands/delegation-mode.ts +0 -79
package/AGENTS.md CHANGED
@@ -90,7 +90,6 @@ bun src/cli/index.ts init --repo . --dry-run
90
90
  - Verification: Use root required checks plus local commands recorded in this capability contract.
91
91
  - Latest snapshot: `(none yet)`
92
92
  - Semantic diagram source: `docs/architecture/modules/verification/evals-checks.md`
93
- - Latest human diagram: `(none yet)`
94
93
  - Pending architecture request: `(none)`
95
94
 
96
95
  ## Active Workstreams
package/CLAUDE.md CHANGED
@@ -90,7 +90,6 @@ bun src/cli/index.ts init --repo . --dry-run
90
90
  - Verification: Use root required checks plus local commands recorded in this capability contract.
91
91
  - Latest snapshot: `(none yet)`
92
92
  - Semantic diagram source: `docs/architecture/modules/verification/evals-checks.md`
93
- - Latest human diagram: `(none yet)`
94
93
  - Pending architecture request: `(none)`
95
94
 
96
95
  ## Active Workstreams
package/README.es.md CHANGED
@@ -446,7 +446,8 @@ son dependencias empaquetadas ordinarias.
446
446
  | --- | --- | --- |
447
447
  | [Hylarucoder](https://x.com/hylarucoder) / Geju | El método de due diligence P1/P2/P3 y la práctica Geju que dieron forma a la disciplina de planning, tracing y decision-rationale de este workflow | Contribución metodológica y agradecimiento; no es una dependencia empaquetada |
448
448
  | Waza de [TW93](https://x.com/HiTw93), incluyendo `think`, `hunt`, `check` y `health` | Planning diario, bug hunts, verificación, health checks y sync de skill Codex-first | Instalado a través del skills CLI en los host skill roots |
449
- | `mermaid` | Diagramas de architecture y system-flow legibles por humanos cuando Mermaid no alcanza | Skill runtime-referenced, no vendored en los repos generados |
449
+ | `mermaid` | Soporte de authoring y review para bloques Mermaid fenced dentro de la documentación de arquitectura | Skill externo runtime-referenced, no vendored en los repos generados y sin generar HTML standalone |
450
+ | [`reverse-skill-router`](https://github.com/zhaoxuya520/reverse-skill) | Enruta tareas de ingeniería inversa y seguridad a playbooks especializados | Skill recomendado pero solo explícito (`--with-reverse-skill`); queda fuera de los perfiles porque la suposición upstream «objetivo mencionado = autorizado» exige una revisión independiente del scope |
450
451
  | CodeGraph (`@colbymchenry/codegraph`) | Navegación symbol-aware, impact tracing y readiness checks para este repo self-host | Dev dependency en este repo; los repos generados se mantienen global-MCP-first salvo que la policy haga opt-in |
451
452
  | [Oracle](https://github.com/steipete/oracle) de [Peter Steinberger](https://x.com/steipete) (`@steipete/oracle`, MIT) | Motor de consulta de navegador GPT Pro / ChatGPT Web por defecto, al que el Oracle provider `chatgpt-browser` invoca externamente (shell out) para las consultas `gptpro` | Binario resuelto externamente (`--oracle-bin`, `REPO_HARNESS_ORACLE_BIN`, `node_modules/.bin`, o `PATH`); nunca se descarga automáticamente, y un binario ausente es un fallo duro de `ORACLE_NOT_INSTALLED` |
452
453
  | OpenAI Codex | Agente de ejecución primario para implementación repo-local, verificación y GitHub contributor attribution cuando un commit incluye materialmente trabajo escrito por Codex | Un runtime de agente externo; la atribución es un trailer de commit explícito, no automatización oculta de hooks |
@@ -466,8 +467,8 @@ repositorio adopte la misma política.
466
467
 
467
468
  ## Versión actual
468
469
 
469
- - Paquete npm: `repo-harness@0.14.0`
470
- - Sello de workflow generado: `repo-harness@0.14.0+template@0.14.0`
470
+ - Paquete npm: `repo-harness@0.14.2`
471
+ - Sello de workflow generado: `repo-harness@0.14.2+template@0.14.2`
471
472
  - Repositorio de GitHub: `Ancienttwo/repo-harness`
472
473
  - Notas de versión e historial: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
473
474
 
package/README.fr.md CHANGED
@@ -77,7 +77,7 @@ alias de skill repo-harness, installe les hook adapters de niveau utilisateur,
77
77
  et enregistre un install profile explicite. Il est idempotent et n'applique
78
78
  aucun fichier de workflow repo-local au répertoire courant. `--dry-run --json`
79
79
  liste d'abord les composants à installer, ignorer et supprimer. Profiles,
80
- delegation mode, commandes de rafraîchissement, et l'audit read-only `setup
80
+ autorité de délégation Codex native, commandes de rafraîchissement, et l'audit read-only `setup
81
81
  check` : [`install-profiles.md`](docs/reference-configs/install-profiles.md).
82
82
 
83
83
  ### 3. Prévisualiser le contrat repo-local
@@ -441,7 +441,8 @@ pas des dépendances embarquées ordinaires.
441
441
  | --- | --- | --- |
442
442
  | [Hylarucoder](https://x.com/hylarucoder) / Geju | Méthode de due-diligence P1/P2/P3 et pratique Geju qui ont façonné la discipline de planning, de trace et de decision-rationale dans ce workflow | Contribution méthodologique et remerciement ; pas une dépendance embarquée |
443
443
  | Waza par [TW93](https://x.com/HiTw93), incluant `think`, `hunt`, `check` et `health` | Planning quotidien, bug hunts, vérification, health checks et skill sync Codex-first | Installé via le skills CLI dans les host skill roots |
444
- | `mermaid` | Diagrammes d'architecture et de system-flow lisibles par un humain quand Mermaid seul ne suffit pas | Skill référencé au runtime, non vendored dans les dépôts générés |
444
+ | `mermaid` | Support d'authoring et de review pour les blocs Mermaid fenced dans la documentation d'architecture | Skill externe référencé au runtime, non vendored dans les dépôts générés et ne générant pas de HTML standalone |
445
+ | [`reverse-skill-router`](https://github.com/zhaoxuya520/reverse-skill) | Route les tâches de rétro-ingénierie et de sécurité vers les playbooks spécialisés | Skill recommandé mais uniquement explicite (`--with-reverse-skill`) ; hors profils car l'hypothèse amont « cible mentionnée = autorisée » exige une revue indépendante du scope |
445
446
  | CodeGraph (`@colbymchenry/codegraph`) | Navigation symbol-aware, impact tracing et readiness checks pour ce dépôt self-host | Dev dependency dans ce dépôt ; les dépôts générés restent global-MCP-first sauf opt-in de la policy |
446
447
  | [Oracle](https://github.com/steipete/oracle) par [Peter Steinberger](https://x.com/steipete) (`@steipete/oracle`, MIT) | Moteur par défaut de consult navigateur GPT Pro / ChatGPT Web, que le provider Oracle `chatgpt-browser` invoque en shell out pour les consults `gptpro` | Binaire résolu en externe (`--oracle-bin`, `REPO_HARNESS_ORACLE_BIN`, `node_modules/.bin`, ou `PATH`) ; jamais téléchargé automatiquement, et un binaire manquant est une erreur franche `ORACLE_NOT_INSTALLED` |
447
448
  | OpenAI Codex | Agent d'exécution principal pour l'implémentation repo-local, la vérification, et l'attribution de contributeur GitHub quand un commit inclut matériellement du travail écrit par Codex | Agent runtime externe ; l'attribution est un commit trailer explicite, pas une automatisation cachée par hook |
@@ -461,8 +462,8 @@ adopte la même policy.
461
462
 
462
463
  ## Release actuelle
463
464
 
464
- - Package npm : `repo-harness@0.14.0`
465
- - Generated workflow stamp : `repo-harness@0.14.0+template@0.14.0`
465
+ - Package npm : `repo-harness@0.14.2`
466
+ - Generated workflow stamp : `repo-harness@0.14.2+template@0.14.2`
466
467
  - Dépôt GitHub : `Ancienttwo/repo-harness`
467
468
  - Notes et historique de release : [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
468
469
 
package/README.ja.md CHANGED
@@ -76,7 +76,7 @@ repo-harness の skill alias を更新し、user-level の hook adapter をイ
76
76
  明示的な install profile を記録します。冪等(idempotent)であり、repo-local な
77
77
  workflow ファイルをカレントディレクトリへ適用することはありません。
78
78
  `--dry-run --json` を使うと、インストール・skip・削除される component を
79
- 先に一覧できます。profile、delegation mode、refresh コマンド、read-only な
79
+ 先に一覧できます。profile、native Codex delegation authority、refresh コマンド、read-only な
80
80
  `setup check` audit については
81
81
  [`install-profiles.md`](docs/reference-configs/install-profiles.md)
82
82
  を参照してください。
@@ -449,7 +449,8 @@ agent runtime を中心に構築されています。これらは通常の bundl
449
449
  | --- | --- | --- |
450
450
  | [Hylarucoder](https://x.com/hylarucoder) / Geju | この workflow における planning、tracing、decision-rationale の規律を形作った P1/P2/P3 due-diligence method と Geju の実践 | Methodology への貢献と謝辞であり、bundled dependency ではありません |
451
451
  | Waza by [TW93](https://x.com/HiTw93)(`think`、`hunt`、`check`、`health` を含む) | 日々の planning、bug hunt、verification、health check、Codex-first な skill sync | skills CLI を通じて host の skill root にインストールされます |
452
- | `mermaid` | Mermaid だけでは足りないときの、人間が読める architecture / system-flow diagram | Runtime で参照される skill であり、生成されたリポジトリには vendor されません |
452
+ | `mermaid` | architecture 文書内の Mermaid fenced block に対する authoring / review 支援 | Runtime で参照される外部 skill であり、生成されたリポジトリには vendor されず、standalone HTML も生成しません |
453
+ | [`reverse-skill-router`](https://github.com/zhaoxuya520/reverse-skill) | リバースエンジニアリングと security task を専門 playbook にルーティングします | 推奨ですが明示 opt-in (`--with-reverse-skill`) のみ。upstream の「対象を言及 = 許可済み」という前提は独立した scope review が必要なため、profile には含めません |
453
454
  | CodeGraph(`@colbymchenry/codegraph`) | この self-host リポジトリのための symbol-aware navigation、impact tracing、readiness check | 本リポジトリでは dev dependency。生成されたリポジトリは、policy が opt-in しない限り global-MCP-first のままです |
454
455
  | [Oracle](https://github.com/steipete/oracle) by [Peter Steinberger](https://x.com/steipete)(`@steipete/oracle`、MIT) | `chatgpt-browser` の Oracle provider が `gptpro` consult のために shell out する、既定の GPT Pro / ChatGPT Web browser consult engine | 外部で解決される binary(`--oracle-bin`、`REPO_HARNESS_ORACLE_BIN`、`node_modules/.bin`、または `PATH`)。自動ダウンロードはされず、binary が見つからない場合は hard な `ORACLE_NOT_INSTALLED` failure になります |
455
456
  | OpenAI Codex | commit が実質的に Codex 作成の作業を含むときの、repo-local な実装・verification・GitHub contributor attribution を担う primary execution agent | 外部 agent runtime。attribution は隠れた hook automation ではなく、明示的な commit trailer です |
@@ -469,8 +470,8 @@ commit script や hooks に組み込まないでください。
469
470
 
470
471
  ## 現在の Release
471
472
 
472
- - npm package:`repo-harness@0.14.0`
473
- - Generated workflow stamp:`repo-harness@0.14.0+template@0.14.0`
473
+ - npm package:`repo-harness@0.14.2`
474
+ - Generated workflow stamp:`repo-harness@0.14.2+template@0.14.2`
474
475
  - GitHub repository:`Ancienttwo/repo-harness`
475
476
  - Release notes and history:[`docs/CHANGELOG.md`](docs/CHANGELOG.md)
476
477
 
package/README.md CHANGED
@@ -74,7 +74,7 @@ The global bootstrap: installs the npm package as the global CLI, refreshes
74
74
  repo-harness skill aliases, installs user-level hook adapters, and records an
75
75
  explicit install profile. It is idempotent and does not apply repo-local workflow
76
76
  files to the current directory. `--dry-run --json` lists components to install,
77
- skip, and remove first. Profiles, delegation mode, refresh commands, and the
77
+ skip, and remove first. Profiles, native Codex delegation authority, refresh commands, and the
78
78
  read-only `setup check` audit:
79
79
  [`install-profiles.md`](docs/reference-configs/install-profiles.md).
80
80
 
@@ -111,7 +111,7 @@ looks wrong, stop and read
111
111
  ### Update and remove
112
112
 
113
113
  ```bash
114
- repo-harness update # refresh user-level CLI and runtime pieces
114
+ repo-harness update # reconcile CLI, mandatory deps, profile tooling, and CodeGraph
115
115
  repo-harness update --check # read-only repair guidance, no writes
116
116
  repo-harness uninstall # remove managed host adapters only
117
117
  ```
@@ -422,7 +422,8 @@ dependencies.
422
422
  | --- | --- | --- |
423
423
  | [Hylarucoder](https://x.com/hylarucoder) / Geju | P1/P2/P3 due-diligence method and Geju practice that shaped the planning, tracing, and decision-rationale discipline in this workflow | Methodology contribution and acknowledgement; not a bundled dependency |
424
424
  | Waza by [TW93](https://x.com/HiTw93), including `think`, `hunt`, `check`, and `health` | Daily planning, bug hunts, verification, health checks, and Codex-first skill sync | Installed through the skills CLI into host skill roots |
425
- | `mermaid` | Human-readable architecture and system-flow diagrams when Mermaid is not enough | Runtime-referenced skill, not vendored into generated repos |
425
+ | `mermaid` | Authoring and readability review for Mermaid architecture and system-flow source | Runtime-referenced review skill, not vendored into generated repos and never an HTML artifact generator |
426
+ | [`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 |
426
427
  | 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 |
427
428
  | [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 |
428
429
  | 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 |
@@ -441,8 +442,8 @@ repo-harness commit scripts or hooks unless that repo adopts the same policy.
441
442
 
442
443
  ## Current Release
443
444
 
444
- - npm package: `repo-harness@0.14.0`
445
- - Generated workflow stamp: `repo-harness@0.14.0+template@0.14.0`
445
+ - npm package: `repo-harness@0.14.2`
446
+ - Generated workflow stamp: `repo-harness@0.14.2+template@0.14.2`
446
447
  - GitHub repository: `Ancienttwo/repo-harness`
447
448
  - Release notes and history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
448
449
 
package/README.zh-CN.md CHANGED
@@ -73,7 +73,7 @@ repo-harness install
73
73
  这个全局 bootstrap 会把 npm 包安装成全局 CLI,刷新 repo-harness 的 skill
74
74
  aliases,安装 user-level hook adapters,并记录一份明确的 install profile。
75
75
  它是幂等的,不会把 repo-local workflow 文件应用到当前目录。`--dry-run
76
- --json` 会先列出将要安装、跳过和移除的组件。Profile、delegation mode、
76
+ --json` 会先列出将要安装、跳过和移除的组件。Profile、原生 Codex delegation authority、
77
77
  刷新命令,以及只读的 `setup check` audit,见
78
78
  [`install-profiles.md`](docs/reference-configs/install-profiles.md)。
79
79
 
@@ -428,7 +428,8 @@ dependency。
428
428
  | --- | --- | --- |
429
429
  | [Hylarucoder](https://x.com/hylarucoder) / Geju | P1/P2/P3 due-diligence 方法和 Geju 实践,塑造了这套 workflow 里 planning、tracing 和 decision-rationale 的纪律 | 方法论贡献和致谢;不是 bundled dependency |
430
430
  | [TW93](https://x.com/HiTw93) 的 Waza,包括 `think`、`hunt`、`check` 和 `health` | 日常 planning、bug hunt、verification、health check,以及 Codex-first 的 skill sync | 通过 skills CLI 安装进 host skill root |
431
- | `mermaid` | 当 Mermaid 不够用时,提供人类可读的 architecture 和 system-flow 图 | Runtime-referenced 的 skill,不会 vendor 进生成的仓库 |
431
+ | `mermaid` | 为架构文档中的 Mermaid fenced blocks 提供 authoring 和 review 支持 | Runtime-referenced 的外部 skill,不会 vendor 进生成的仓库,也不会生成 standalone HTML |
432
+ | [`reverse-skill-router`](https://github.com/zhaoxuya520/reverse-skill) | 将逆向工程和安全任务路由到专项 playbook | 推荐但仅显式安装(`--with-reverse-skill`);上游把“提到目标”视作授权,因此必须独立审核 scope,不进入任何默认 profile |
432
433
  | CodeGraph(`@colbymchenry/codegraph`) | 为这个 self-host 仓库提供 symbol-aware 导航、impact tracing 和 readiness check | 本仓库的 dev dependency;生成的仓库默认保持 global-MCP-first,除非 policy 显式开启 |
433
434
  | [Peter Steinberger](https://x.com/steipete) 的 [Oracle](https://github.com/steipete/oracle)(`@steipete/oracle`,MIT) | `chatgpt-browser` 的 Oracle provider 为 `gptpro` consult 默认 shell 出去调用的 GPT Pro / ChatGPT Web 浏览器 consult 引擎 | 外部解析的 binary(`--oracle-bin`、`REPO_HARNESS_ORACLE_BIN`、`node_modules/.bin` 或 `PATH`);从不自动下载,缺失 binary 会硬失败 `ORACLE_NOT_INSTALLED` |
434
435
  | OpenAI Codex | repo-local 实现和验证的主要执行 agent;commit 实质包含 Codex 产出内容时,也承担 GitHub contributor attribution | 外部 agent runtime;attribution 是显式的 commit trailer,不是隐藏的 hook automation |
@@ -448,8 +449,8 @@ policy。
448
449
 
449
450
  ## 当前 Release
450
451
 
451
- - npm package:`repo-harness@0.14.0`
452
- - Generated workflow stamp:`repo-harness@0.14.0+template@0.14.0`
452
+ - npm package:`repo-harness@0.14.2`
453
+ - Generated workflow stamp:`repo-harness@0.14.2+template@0.14.2`
453
454
  - GitHub repository:`Ancienttwo/repo-harness`
454
455
  - Release notes 和 history:[`docs/CHANGELOG.md`](docs/CHANGELOG.md)
455
456
 
package/assets/AGENTS.md CHANGED
@@ -50,7 +50,6 @@ Owns the workflow-engine-contract-assets capability boundary declared in .archco
50
50
  - Verification: Use root required checks plus local commands recorded in this capability contract.
51
51
  - Latest snapshot: `(none yet)`
52
52
  - Semantic diagram source: `docs/architecture/modules/workflow-engine/contract-assets.md`
53
- - Latest human diagram: `(none yet)`
54
53
  - Pending architecture request: `(none)`
55
54
 
56
55
  ## Active Workstreams
package/assets/CLAUDE.md CHANGED
@@ -50,7 +50,6 @@ Owns the workflow-engine-contract-assets capability boundary declared in .archco
50
50
  - Verification: Use root required checks plus local commands recorded in this capability contract.
51
51
  - Latest snapshot: `(none yet)`
52
52
  - Semantic diagram source: `docs/architecture/modules/workflow-engine/contract-assets.md`
53
- - Latest human diagram: `(none yet)`
54
53
  - Pending architecture request: `(none)`
55
54
 
56
55
  ## Active Workstreams
@@ -62,7 +62,6 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .archcont
62
62
  - Verification: Use root required checks plus local commands recorded in this capability contract.
63
63
  - Latest snapshot: `(none yet)`
64
64
  - Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
65
- - Latest human diagram: `(none yet)`
66
65
  - Pending architecture request: `(none)`
67
66
 
68
67
  ## Active Workstreams
@@ -62,7 +62,6 @@ Owns the runtime-harness-hook-adapters capability boundary declared in .archcont
62
62
  - Verification: Use root required checks plus local commands recorded in this capability contract.
63
63
  - Latest snapshot: `(none yet)`
64
64
  - Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
65
- - Latest human diagram: `(none yet)`
66
65
  - Pending architecture request: `(none)`
67
66
 
68
67
  ## Active Workstreams
@@ -40,7 +40,7 @@ PLAN_LOOP:
40
40
  - Small or medium feature plans -> Waza `/think`.
41
41
  - Bugs, regressions, crashes, errors, or failing tests -> Waza `/hunt`.
42
42
  - Implemented diffs, pre-merge checks, or release follow-through -> Waza `/check`.
43
- - Architecture diagrams or system-flow diagrams -> Markdown Mermaid first, `mermaid` for optional human HTML.
43
+ - Architecture diagrams or system-flow diagrams -> Markdown Mermaid only; use `mermaid` for authoring and review, never standalone HTML output.
44
44
  - Use P1/P2/P3 as the shared due-diligence protocol; report it explicitly for complex engineering or architecture planning, `/hunt`, risky refactors, deployments, auth/payment/data work, and shared contracts.
45
45
  - Hooks may emit advisory Waza `/check` and `/health` route hints, but must not auto-run skills or vendor skill bodies.
46
46
 
@@ -15,7 +15,7 @@ root prompt concise; this file owns the detailed routing.
15
15
  | Small or medium feature/fix plan | Waza `/think` | Concise approved plan, then implementation on request |
16
16
  | Bug, regression, error, crash, failing test | Waza `/hunt` | Root cause sentence with evidence before any fix |
17
17
  | Implemented diff, pre-merge, release follow-through | Waza `/check` | Review findings, safe fixes, verification, and shipment state |
18
- | Architecture diagram or system-flow diagram | Markdown Mermaid first, `mermaid` for human HTML | Semantic Mermaid in architecture docs plus optional rendered HTML grounded in repo context |
18
+ | Architecture diagram or system-flow diagram | Markdown Mermaid only; `mermaid` assists authoring and review | Evidence-backed Mermaid fenced blocks in architecture Markdown; no standalone HTML |
19
19
 
20
20
  ### Parent Agent Planning Ownership
21
21
 
@@ -19,7 +19,6 @@ Create these only when the agent has concrete repo evidence or the user asks:
19
19
  - `docs/decisions.md`: accepted architecture decisions with trade-offs.
20
20
  - `docs/architecture/snapshots/*.md`: current module boundaries and data flow for architecture-sensitive changes.
21
21
  - Mermaid fenced blocks in `docs/architecture/modules/**.md` or `docs/architecture/snapshots/*.md`: semantic diagram source for agents and review diffs.
22
- - `docs/architecture/diagrams/*.html`: optional human-readable `mermaid` renderings produced when a visual is clearer than prose.
23
22
  - `docs/packages.md`: package inventory for real multi-package repos.
24
23
  - `plans/prds/*.prd.md`: upper-layer PRDs generated through `repo-harness-product`'s PRD mode from `.claude/templates/prd.template.md`; keep Sprint backlogs in `plans/sprints/`.
25
24
 
@@ -33,7 +32,7 @@ Create these only when the agent has concrete repo evidence or the user asks:
33
32
  - Let capability `CLAUDE.md` and `AGENTS.md` carry local contract projections; root docs stay concise.
34
33
  - Keep complete workstream TODOs in `tasks/workstreams/<domain>/<capability>/`; contract blocks should link to them instead of becoming task logs.
35
34
  - Keep onboarding docs split by reader: agents read active source artifacts first; humans review the Human Review Card, diff, latest trace, and rollback first.
36
- - Hooks may create `docs/architecture/requests/*.md`; agents own semantic snapshots, embedded Mermaid, and optional `mermaid` HTML output.
35
+ - Hooks may create `docs/architecture/requests/*.md`; agents own semantic snapshots and embedded Mermaid source.
37
36
  - Archive handled architecture requests with `repo-harness run archive-architecture-request`; keep `docs/architecture/requests/` pending-only and preserve handled requests under `docs/architecture/requests/archive/YYYY/`. A `Resolved` request must declare its `Architecture Module` and include that exact existing module as a durable `--artifact`.
38
- - When both Mermaid and HTML exist, keep the Mermaid in Markdown as the semantic source and make the HTML link back to that Markdown source.
39
- - Treat `mermaid` as an external installed skill dependency at `~/.codex/skills/mermaid`; do not copy or inline its assets into generated repos.
37
+ - Treat Markdown Mermaid as the only architecture diagram artifact; do not generate standalone HTML.
38
+ - Treat `mermaid` as an external authoring/review skill at `~/.codex/skills/mermaid`; do not copy or inline its assets into generated repos.
@@ -4,6 +4,7 @@ Generated repos route external tooling by host/runtime shape. Task-level
4
4
  skill routing lives in `docs/reference-configs/agentic-development-flow.md`.
5
5
 
6
6
  - `Waza` supplies `/think`, `/hunt`, and `/check` for daily small/medium work
7
+ - `reverse-skill-router` is an explicit-only recommended router for independently authorized reverse-engineering and security work
7
8
  - `hai-stack` supplies `geju` for live, pre-contract exploration; only its frozen output enters a contract
8
9
  - Codex automation requires `health`, `check`, and `mermaid` from `~/.codex/skills`
9
10
  - `CodeGraph` is required agent readiness for code navigation and impact tracing
@@ -32,16 +33,20 @@ bootstrap path must not silently install unrelated toolchains or Claude
32
33
  marketplace plugins.
33
34
 
34
35
  `repo-harness uninstall` removes repo-harness managed Codex/Claude hook
35
- adapters. It intentionally does not uninstall Waza, Mermaid, CodeGraph,
36
+ adapters. It intentionally does not uninstall Waza, Mermaid, Reverse Skill, CodeGraph,
36
37
  brain config, package-manager globals, or user-authored sibling hook entries.
37
38
 
38
- `repo-harness update` refreshes only the CLI and repo-harness-owned user-level
39
- runtime by default. Third-party tooling and CodeGraph registration stay
40
- readiness findings from `repo-harness setup check` unless the update command is
41
- run with an explicit opt-in such as `--with-external-skills` or
42
- `--configure-codegraph`. Repo-local workflow refresh stays on
43
- `repo-harness init`; `setup check --check-updates` reports an Agent action when
44
- the current adopted repo's dry-run adoption plan has pending operations.
39
+ `repo-harness update` is a reconciliation command, not a best-effort package
40
+ install. It verifies the installed package's exact `archctx` and
41
+ `archctx-contracts` dependencies, package-local CodeGraph, compatible ArchContext
42
+ Node runtime, and capability handshake. A stale Bun global dependency tree is
43
+ reported with explicit remove/install recovery commands; update does not remove
44
+ a working CLI before a replacement is known-good. The global CodeGraph CLI/MCP
45
+ is refreshed at the exact shipped compatibility version. Mutable third-party
46
+ Waza and Mermaid providers remain behind explicit `--with-external-skills`;
47
+ `--no-codegraph` disables the CodeGraph refresh.
48
+ Repo-local workflow refresh stays on `repo-harness init`; `setup check
49
+ --check-updates` remains the read-only advisory surface.
45
50
 
46
51
  The cross-review skill is **harness-owned and self-contained** — its source
47
52
  lives in `assets/skills/repo-harness-cross-review/` and it wraps the peer CLI
@@ -59,6 +64,28 @@ package's host-aware installation. These harness skills ship with the full
59
64
  profile (the default for `init`) and provide the peer acceptance gate surface
60
65
  for the typed `AcceptanceReceipt`; the review section is projection only.
61
66
 
67
+ Reverse Skill is registered from `zhaoxuya520/reverse-skill` as the recommended
68
+ but explicit-only `reverse-skill-router`. It is not part of either install
69
+ profile because the upstream pack requires agents to read
70
+ `field-journal/precedent-auth.md`, which treats merely mentioning a target as
71
+ authorization. That assumption cannot replace a real scope or RoE boundary.
72
+ The catalog pins upstream commit
73
+ `539899ddc7608d63dc66e08e794d572e080f1a55` and the selected tree digest
74
+ `sha256:7aafee6c0dec684d410af6864ab77da4d88b9d442142c0efb91b235ce9793dda`;
75
+ repo-harness verifies the full staged tree before projecting it into either
76
+ host root.
77
+ After independent review, install it explicitly:
78
+
79
+ ```bash
80
+ repo-harness install --with-reverse-skill
81
+ repo-harness update --with-reverse-skill
82
+ ```
83
+
84
+ Add `--no-external-skills` to the install command when Reverse Skill should be
85
+ the only marketplace Skill added. The Skills CLI copies the router pack into
86
+ the selected host Skill roots; repo-harness does not execute its workflows or
87
+ bootstrap its optional analysis/security toolchains during install.
88
+
62
89
  The review scope is the current reviewable diff, not just committed branch
63
90
  history: branch diff against the default base, staged changes, unstaged tracked
64
91
  changes, and untracked files are all in scope. A timeout or missing peer CLI is
@@ -411,7 +438,7 @@ diff -qr ~/.agents/skills/geju ~/.codex/skills/geju
411
438
  ### CodeGraph
412
439
 
413
440
  ```bash
414
- bun add -g @colbymchenry/codegraph@latest && codegraph sync . && codegraph status .
441
+ bun add -g @colbymchenry/codegraph@1.5.0 && codegraph sync . && codegraph status .
415
442
  ```
416
443
 
417
444
  ## Agent Fleet
@@ -475,17 +502,26 @@ description (for example, `Opus at max effort` or `Sonnet at high effort`) to th
475
502
  mapped GPT-5.6 model and reasoning level. A missing label fails closed so the
476
503
  installed metadata cannot claim a different model from the TOML settings.
477
504
 
478
- These files define the desired installed role configuration and feed both Codex
479
- dispatch surfaces: native MultiAgentV2 `agent_type` selection, and Codex App
480
- Thread dispatch, where `model` and `model_reasoning_effort` are read back out of
481
- the installed TOML and passed explicitly to `codex_app__create_thread`. App
482
- Thread dispatch is the default Codex path because the flat native spawn schema
483
- carries only a task name, a message, and `fork_turns`: it cannot select a model
484
- per role, so a `gpt-5.6-luna` role dispatched natively silently inherits the
485
- parent model. These files do not by themselves prove that either surface honored
486
- the configured model; keep runtime selection claims behind a real canary — a
487
- SubagentStart observation on the native path, an official thread read on the
488
- thread path.
505
+ These files define the desired installed role configuration for Codex native
506
+ MultiAgent `agent_type` selection. On Codex CLI 0.147, the live native spawn
507
+ surface accepts `agent_type`; that field is the only fleet identity/lifecycle
508
+ authority. A dispatch packet must also pass `fork_turns="none"` and remain
509
+ self-contained. If the live schema cannot accept the requested installed
510
+ `agent_type`, the fleet dispatch fails closed instead of selecting an App
511
+ thread, `codex-exec`, or the main thread.
512
+
513
+ Installed files do not by themselves prove that Codex honored the configured
514
+ model. Runtime selection claims stay behind official `SubagentStart`
515
+ `agent_type`/`model` evidence. `SubagentStart` does not expose reasoning effort,
516
+ so that field remains `configured_unverified` and is never promoted to a runtime
517
+ claim.
518
+
519
+ A 2026-08-11 Codex CLI 0.147 canary recorded `explorer` on its configured
520
+ `gpt-5.6-luna` model and `deep-reasoner` on its configured `gpt-5.6-terra`
521
+ model in one session. The strict tooling check aggregated both official
522
+ observations as `verified`. This closes the older flat-V2 limitation for the
523
+ versioned native surface; it does not turn missing future `agent_type` or model
524
+ readback into a compatibility fallback.
489
525
 
490
526
  ### Local merge gate
491
527
 
@@ -525,55 +561,38 @@ and CI remain the remote merge authority.
525
561
  For Codex, repo-harness keeps configuration readiness and runtime routing
526
562
  readiness separate:
527
563
 
528
- - `UserPromptSubmit.delegation` initializes
529
- `.ai/harness/delegation/latest.json` with
530
- `native_role_routing.status = "unverified"` and a repo-scoped evidence
531
- directory for that delegation.
564
+ - `UserPromptSubmit.delegation` is an explicit command adapter only: `/delegate`
565
+ or `/parallel` injects the bounded dispatch contract. Natural-language prompt
566
+ classification and SessionStart standing authorization are not authorities.
532
567
  - `SubagentStart.context` consumes Codex's official `agent_type` and `model`
533
568
  fields plus `turn_id` and `agent_id`. It enumerates project custom-agent TOML
534
569
  files first, then user files, parses them with `Bun.TOML.parse`, selects by
535
570
  the schema-authoritative `name`, and writes one atomic observation per child
536
- without reading Codex transcripts. The filename is only a convention; an
537
- unrelated valid profile may inherit its model, while the selected profile
571
+ under the event-scoped directory referenced by
572
+ `.ai/harness/delegation/native-role-routing.json`, even when no prompt advisor
573
+ state exists. It does not read Codex transcripts. The filename is only a
574
+ convention; an unrelated valid profile may inherit its model, while the selected profile
538
575
  must pin one before repo-harness can verify model routing.
539
- - `check-agent-tooling.sh` deterministically aggregates every child observation
540
- in the current delegation. An empty current delegation retains the latest
541
- completed canary instead of erasing negative evidence. Each verified or
542
- mismatched observation carries the selected TOML SHA-256, so later config
543
- drift invalidates stale evidence. `--strict-readiness`
544
- fails after `unavailable`, `mismatch`, `invalid`, or structurally malformed
545
- evidence; only a genuinely absent canary remains advisory `unverified`.
546
-
547
- SubagentStart does not expose `model_reasoning_effort`, so repo-harness never
548
- claims that per-role reasoning effort is verified from this gate.
549
-
550
- `native_role_routing` evidence stays scoped to the native fallback path; it says
551
- nothing about App Thread dispatch, and an absent native canary is not a failure
552
- of the default thread path. Thread-path model evidence comes from official
553
- thread reads instead: the requested `model`/`thinking` passed to
554
- `codex_app__create_thread` and the model observed on the materialized thread are
555
- recorded separately, and a thread whose runtime model was never read back stays
556
- unverified. A post-merge live canary on 2026-08-02 requested
557
- `gpt-5.6-luna`/`max`, materialized a worktree thread, and completed a bounded
558
- read-only task at the shipped main SHA. The host-owned rollout `turn_context`
559
- observed `model = gpt-5.6-luna` and `effort = max`, which proves the host-local
560
- execution matched the request. It does not close the orchestrator contract: the
561
- current `codex_app__read_thread` response omitted model and effort fields, so
562
- portable runtime readiness remains unverified and must not be inferred from
563
- create-call acceptance or private rollout parsing.
564
-
565
- The readback contract is version-bound and fail-closed. On Codex CLI
566
- `0.146.0-alpha.9.2`, `codex app-server generate-json-schema` shows that
567
- `ThreadReadResponse` contains only `thread`, while its `Thread` object exposes
568
- `modelProvider` but neither `model` nor `reasoningEffort`. The same generated
569
- schema exposes `model` and nullable `reasoningEffort` on `ThreadStartResponse`
570
- and `ThreadResumeResponse`, but the App Thread tools do not propagate those
571
- fields across the pending-worktree materialization path. Runtime readiness is
572
- closed only when a public App Thread response exposes the materialized thread's
573
- observed `model` and reasoning effort separately from the requested tuple. A
574
- missing or mismatched observed tuple keeps the role-routed result unverified and
575
- selects the declared fallback; repo-harness must not scrape rollout JSONL or
576
- SQLite as a compatibility path.
576
+ - `check-agent-tooling.sh` deterministically aggregates the current native
577
+ event scope only; it never revives a historical scope. The hook retains at
578
+ most 32 observations in that scope and removes older managed scope evidence
579
+ under a dedicated native-evidence lock. Each verified or mismatched
580
+ observation carries the selected TOML SHA-256, so later config drift
581
+ invalidates stale evidence. `--strict-readiness` fails after `unverified`,
582
+ `unavailable`, `mismatch`, `invalid`, structurally malformed evidence, an
583
+ empty current scope, or a missing current pointer target.
584
+
585
+ The official [Codex Subagents documentation](https://developers.openai.com/codex/subagents)
586
+ documents `model_reasoning_effort` in each agent file, and the official
587
+ [Configuration Reference](https://developers.openai.com/codex/config-reference)
588
+ also documents `agents.default_subagent_reasoning_effort` plus explicit spawn
589
+ effort precedence. `SubagentStart` does not expose the effective
590
+ `model_reasoning_effort`, so repo-harness records `reasoning_effort_status =
591
+ "configured_unverified"` and never promotes a configured or requested value to
592
+ runtime proof. A missing, default,
593
+ mismatched, invalid, or unverified native observation blocks a role-routing
594
+ claim and authorizes no alternate fleet runner. repo-harness must not scrape
595
+ rollout JSONL or SQLite as a compatibility path.
577
596
 
578
597
  `developer_instructions` is the packaged `.md` body plus the canonical
579
598
  EXECUTION_BOUNDARY anti-extras clause, kept byte-identical to the
@@ -220,8 +220,9 @@ Maintainer-facing detail on how the initializer and runtime defaults are wired.
220
220
  `.ai/hooks/lib/workflow-state.sh` is an operator helper projection, not a
221
221
  second host-event runtime.
222
222
  - Generated and migrated repos keep discovery and complex/design planning in the parent agent: `geju` opens the pre-contract frame, then the parent completes P1/P2/P3 and freezes the accepted direction. Daily small/medium work uses Waza with Codex-first runtime copies in `~/.codex/skills`; durable knowledge stays in repo-authored research and lessons.
223
- - `repo-harness install` bootstraps the Codex/Claude runtime pieces for the default workflow: refreshes `repo-harness` skill aliases, installs global Codex/Claude hook adapters, installs Waza skills (`think`, `hunt`, `check`, `health`) and Mermaid through the skills CLI, persists the brain root in `~/.repo-harness/config.json`, and configures CodeGraph MCP for selected host agents. `repo-harness init` remains a compatibility alias for existing automation.
224
- - Other external tooling stays advisory-only: `repo-harness run check-agent-tooling --host both --check-updates`; Waza update checks compare upstream `tw93/Waza` `SKILL.md` hashes without running `npx skills check`; no automatic CodeGraph daemon or provider setup.
223
+ - `repo-harness install` bootstraps the package-owned Codex/Claude runtime pieces for the default workflow: refreshes `repo-harness` skill aliases, installs global Codex/Claude hook adapters, persists the brain root in `~/.repo-harness/config.json`, and configures CodeGraph MCP for selected host agents. Mutable Waza and Mermaid providers are installed only after explicit selection. `repo-harness init` remains a compatibility alias for existing automation.
224
+ - The recommended `reverse-skill-router` remains explicit-only through `--with-reverse-skill` because its upstream authorization assumption cannot replace independently verified scope; the pinned selected tree is integrity-checked before host projection.
225
+ - Read-only external-tooling audit stays advisory: `repo-harness run check-agent-tooling --host both --check-updates`. The explicit mutating boundary is `repo-harness update`, which reconciles mandatory ArchContext packages and runtime and updates the global CodeGraph CLI/MCP; mutable Waza/Mermaid providers require `--with-external-skills`. It does not initialize or sync a repository CodeGraph index.
225
226
  - Manual distillation stays repo-local: repeated corrections -> `tasks/lessons.md`; deep findings and hidden contracts -> topic-scoped `docs/researches/*.md`; sprint verification evidence -> `tasks/reviews/*.review.md`; durable capability progress -> `tasks/workstreams/`; release history -> `docs/CHANGELOG.md`.
226
227
 
227
228
  ### Package Manager Defaults
@@ -298,6 +298,24 @@
298
298
  "mutatesRepoByDefault": false,
299
299
  "summary": "Diagram-design skill. Fetched from BfdCampos/dotfiles via bunx skills add.",
300
300
  "retirementCandidate": null
301
+ },
302
+ {
303
+ "name": "reverse-skill-router",
304
+ "kind": "external",
305
+ "source": null,
306
+ "provider": "zhaoxuya520/reverse-skill@539899ddc7608d63dc66e08e794d572e080f1a55",
307
+ "integrity": "sha256:7aafee6c0dec684d410af6864ab77da4d88b9d442142c0efb91b235ce9793dda",
308
+ "hosts": [
309
+ "claude",
310
+ "codex"
311
+ ],
312
+ "profiles": [],
313
+ "discoverability": "external-marketplace",
314
+ "component": "adaptive-workflow",
315
+ "requires": [],
316
+ "mutatesRepoByDefault": false,
317
+ "summary": "Explicit-opt-in reverse-engineering and security-task router pack. Fetched from zhaoxuya520/reverse-skill via bunx skills add after independent authorization review.",
318
+ "retirementCandidate": null
301
319
  }
302
320
  ],
303
321
  "expectedProjections": {
@@ -19,8 +19,7 @@ architecture documentation, drift-request, or diagram pass.
19
19
  - umbrella status in `docs/architecture/index.md`
20
20
  - module or snapshot docs under `docs/architecture/`
21
21
  - Mermaid fenced block in the relevant module or snapshot Markdown when a visual flow materially helps
22
- - optional human-readable diagram artifact under `docs/architecture/diagrams/`
23
- 5. Use Markdown Mermaid as the semantic diagram source; use `mermaid` only for optional human-readable HTML renderings grounded in observed repo files.
22
+ 5. Use Markdown Mermaid as the only architecture diagram artifact. Do not generate standalone HTML; use the external `mermaid` skill only to review layout and renderability before shipping the Markdown source.
24
23
  6. Archive handled requests with:
25
24
  - `repo-harness run archive-architecture-request --request <request> --status <resolved|superseded|rejected|no-change> --artifact <path> --note <text>`
26
25
  - For `resolved`, the live `Pending` request must declare `> **Architecture Module**:` and that exact existing module path must be supplied as an `--artifact`.
@@ -34,12 +33,12 @@ architecture documentation, drift-request, or diagram pass.
34
33
  - If no pending architecture request exists, report `no-change` and do not invent one.
35
34
  - If capability resolution is ambiguous, stop at the matching paths and ask for a narrower scope.
36
35
  - If `check-architecture-sync.sh` blocks in strict mode, resolve or archive the pending request card for the touched capability before finishing the worktree.
37
- - If diagram rendering fails, keep the Mermaid Markdown source and report the render failure.
36
+ - If diagram validation fails, fix the Mermaid Markdown source or report the validation failure; do not substitute HTML.
38
37
 
39
38
  ## Boundaries
40
39
 
41
40
  - Does not run `repo-harness init`.
42
41
  - Does not install or refresh the full harness.
43
42
  - Does not let hooks rewrite architecture prose; hooks only record drift requests.
44
- - Does not vendor `mermaid`; it remains an external installed skill for optional human-readable HTML.
43
+ - Does not vendor `mermaid`; it remains an external authoring/review skill and never owns a product artifact.
45
44
  - Keeps `docs/architecture/requests/` pending-only by archiving handled requests.
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.14.0",
3
- "templateVersion": "0.14.0",
2
+ "version": "0.14.2",
3
+ "templateVersion": "0.14.2",
4
4
  "skillName": "repo-harness",
5
5
  "contractId": "tasks-first-harness-v1",
6
6
  "compatibility": {
@@ -33,5 +33,5 @@ how to interpret findings, and the boundaries below.
33
33
  ## Boundaries
34
34
 
35
35
  - Read-only: the provider never edits code (no Bash/Edit/Write for Claude; read-only sandbox for Codex).
36
- - A provider failure (timeout, empty output, malformed transcript, auth failure, nonzero exit, degraded scope) is explicit. Never a fallback, never a synthesized pass.
36
+ - Bounded: 2 provider attempts, then `SKIPPED` -- advisory, non-blocking (exit 0). Do not re-run it or narrow the diff to retry. Only `degraded_scope` blocks (exit 1). Never a synthesized pass.
37
37
  - Never produces or verifies a `merge-gate` receipt; that judge is separate.
@@ -11,12 +11,16 @@ in the prompt since Claude has no Bash access to inspect the repo itself.
11
11
 
12
12
  - Pinned to the `fable` alias so the external opinion does not silently
13
13
  follow the host's default model.
14
- - If the fable route emits its explicit capacity-limit signal, retries exactly once on `opus`
15
- -- one fallback step, never a loop, and never a fallback to a
16
- different provider. Other nonzero exits remain failures even if they wrote
17
- stdout.
18
- - Per-attempt default budget: 330 seconds; the bounded two-attempt capacity
19
- route therefore has a 660-second worst-case budget.
14
+ - Exactly two attempts, whatever went wrong: any failed attempt (timeout,
15
+ nonzero exit, auth failure, empty or malformed output) consumes one, and
16
+ attempt 2 always re-runs on `opus` -- never a third attempt, never a
17
+ fallback to a different provider. A nonzero exit is a failed attempt even
18
+ when it wrote stdout.
19
+ - Per-attempt default budget: 330 seconds; the bounded two-attempt route
20
+ therefore has a 660-second worst-case budget.
21
+ - Both attempts spent without a usable transcript -> `skipped`: advisory and
22
+ non-blocking (exit 0). Proceed on your own review; do not re-run the review
23
+ or narrow the diff to retry it.
20
24
  - Claude Code must support `--safe-mode`; an older CLI fails closed instead of
21
25
  loading host hooks or silently dropping isolation.
22
26
 
@@ -26,8 +30,8 @@ Claude Code persists print-mode sessions to
26
30
  `~/.claude/projects/<project>/<session-id>.jsonl`. If stdout is empty, the
27
31
  runner recovers the last assistant message from the most recent matching
28
32
  session file started after the run began. If a session file is found but no
29
- usable assistant text can be extracted from it, the result is an explicit
30
- `malformed_transcript` failure -- recovered text is never treated as a
33
+ usable assistant text can be extracted from it, that attempt fails with the
34
+ explicit `malformed_transcript` code -- recovered text is never treated as a
31
35
  passing review when the run itself timed out or exited nonzero.
32
36
 
33
37
  ## Command
@@ -40,5 +44,7 @@ repo-harness cross-review --provider claude
40
44
 
41
45
  - No merge-gate: this mode never produces or verifies a `merge-gate` receipt.
42
46
  - No semantic fallback: timeout, empty output, malformed transcript, and
43
- auth failure are reported as distinct, explicit outcomes -- never
44
- silently retried against Codex instead.
47
+ auth failure are reported as distinct, explicit codes -- never
48
+ silently retried against Codex instead, and a `skipped` run is never a pass.
49
+ - Only `degraded_scope` (the harness could not observe what to review) is
50
+ blocking, with exit 1. Provider unavailability is advisory.