repo-harness 0.11.0 → 0.11.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 (60) hide show
  1. package/AGENTS.md +12 -4
  2. package/CLAUDE.md +12 -4
  3. package/README.es.md +3 -3
  4. package/README.fr.md +3 -3
  5. package/README.ja.md +3 -3
  6. package/README.md +17 -14
  7. package/README.zh-CN.md +3 -3
  8. package/assets/AGENTS.md +9 -5
  9. package/assets/CLAUDE.md +9 -5
  10. package/assets/hooks/lib/workflow-state.sh +77 -8
  11. package/assets/reference-configs/agentic-development-flow.md +2 -2
  12. package/assets/reference-configs/external-tooling.md +32 -7
  13. package/assets/skill-commands/manifest.json +22 -52
  14. package/assets/skill-version.json +10 -2
  15. package/assets/skills/repo-harness-chatgpt/SKILL.md +2 -2
  16. package/assets/templates/helpers/archive-workflow.sh +361 -159
  17. package/assets/templates/helpers/capability-resolver.ts +18 -1
  18. package/assets/templates/helpers/check-task-workflow.sh +46 -6
  19. package/assets/templates/helpers/classify-historical-plans.ts +241 -0
  20. package/assets/templates/helpers/ensure-task-workflow.sh +8 -1
  21. package/assets/templates/helpers/install-agent-fleet.sh +173 -10
  22. package/assets/templates/helpers/ship-worktrees.sh +2 -2
  23. package/assets/templates/helpers/verify-contract.sh +8 -2
  24. package/assets/workflow-contract.v1.json +4 -0
  25. package/package.json +1 -1
  26. package/scripts/AGENTS.md +8 -8
  27. package/scripts/CLAUDE.md +8 -8
  28. package/scripts/archive-workflow.sh +361 -159
  29. package/scripts/check-task-workflow.sh +46 -6
  30. package/scripts/classify-historical-plans.ts +241 -0
  31. package/scripts/ensure-task-workflow.sh +8 -1
  32. package/scripts/install-agent-fleet.sh +173 -10
  33. package/scripts/lib/project-init-lib.sh +7 -0
  34. package/scripts/run-harness-profile-benchmark.ts +1 -1
  35. package/scripts/run-skill-routing-eval.ts +6 -4
  36. package/scripts/ship-worktrees.sh +2 -2
  37. package/scripts/skill-surface-select.ts +11 -1
  38. package/scripts/sync-codex-installed-copies.sh +33 -6
  39. package/scripts/verify-contract.sh +8 -2
  40. package/src/cli/commands/global-runtime.ts +4 -4
  41. package/src/cli/commands/init-hook.ts +32 -3
  42. package/src/cli/commands/status.ts +39 -15
  43. package/src/cli/hook/command-observed.ts +4 -7
  44. package/src/cli/hook/handler-contract.ts +2 -1
  45. package/src/cli/hook/handler-registry.ts +6 -1
  46. package/src/cli/hook/mutation-guard.ts +151 -62
  47. package/src/cli/hook/runtime.ts +139 -91
  48. package/src/cli/hook/session-context-budget.ts +64 -1
  49. package/src/cli/hook/session-context.ts +26 -13
  50. package/src/cli/index.ts +46 -9
  51. package/src/cli/installer/install-profile.ts +236 -92
  52. package/src/cli/installer/managed-entries.ts +10 -8
  53. package/src/core/adoption/gitignore-plan.ts +1 -0
  54. package/src/core/adoption/standard-plan.ts +10 -0
  55. package/src/core/capabilities/registry.ts +17 -0
  56. package/src/core/skill-surface/catalog.ts +2 -2
  57. package/src/core/skill-surface/profile-components.ts +4 -9
  58. package/src/effects/evidence/checks-materializer.ts +46 -42
  59. package/src/effects/review/diff-fingerprint.ts +1 -0
  60. package/src/effects/state/resolve-effective-state.ts +24 -5
package/AGENTS.md CHANGED
@@ -77,10 +77,10 @@ bun src/cli/index.ts adopt --repo . --dry-run
77
77
  - Architecture domain: `workflow-engine`
78
78
  - Architecture capability: `inspection-migration`
79
79
  - Architecture module: `docs/architecture/modules/workflow-engine/inspection-migration.md`
80
- - Last architecture event: 2026-07-03T15:44:54+0800
81
- - Last changed path: `docs/architecture/requests/archive/2026/workflow-engine-inspection-migration.md`
80
+ - Last architecture event: 2026-07-03T14:07:48+0800
81
+ - Last changed path: `scripts/inspect-project-state.ts`
82
82
  - Severity: high
83
- - Change type: architecture-closeout
83
+ - Change type: workflow-surface
84
84
  - Module responsibility: Keep this block aligned with the local boundary described by surrounding human-owned context.
85
85
  - Entrypoints: `scripts/inspect-project-state.ts`
86
86
  - Allowed dependencies: Follow root `AGENTS.md` / `CLAUDE.md` and this local contract.
@@ -96,9 +96,17 @@ bun src/cli/index.ts adopt --repo . --dry-run
96
96
  ## Active Workstreams
97
97
 
98
98
  - `tasks/workstreams/workflow-engine/inspection-migration/20260703-inspection-migration.md`
99
- - status: active
99
+ - status: completed
100
100
  - current_slice: completed-20260703-architecture-closeout
101
101
  - source_plan: (none)
102
+ - `tasks/workstreams/workflow-engine/inspection-migration/20260712-inspection-migration.md`
103
+ - status: completed
104
+ - current_slice: completed-20260712-repo-owned-agent-fleet
105
+ - source_plan: `plans/archive/plan-20260712-2053-repo-owned-agent-fleet.md`
106
+ - `tasks/workstreams/workflow-engine/inspection-migration/agent-fleet-specialists.md`
107
+ - status: completed
108
+ - current_slice: completed-20260713-policy-seed
109
+ - source_plan: `plans/archive/plan-20260712-2215-agent-fleet-specialists.md`
102
110
 
103
111
  ## Current Session Projection
104
112
 
package/CLAUDE.md CHANGED
@@ -77,10 +77,10 @@ bun src/cli/index.ts adopt --repo . --dry-run
77
77
  - Architecture domain: `workflow-engine`
78
78
  - Architecture capability: `inspection-migration`
79
79
  - Architecture module: `docs/architecture/modules/workflow-engine/inspection-migration.md`
80
- - Last architecture event: 2026-07-03T15:44:54+0800
81
- - Last changed path: `docs/architecture/requests/archive/2026/workflow-engine-inspection-migration.md`
80
+ - Last architecture event: 2026-07-03T14:07:48+0800
81
+ - Last changed path: `scripts/inspect-project-state.ts`
82
82
  - Severity: high
83
- - Change type: architecture-closeout
83
+ - Change type: workflow-surface
84
84
  - Module responsibility: Keep this block aligned with the local boundary described by surrounding human-owned context.
85
85
  - Entrypoints: `scripts/inspect-project-state.ts`
86
86
  - Allowed dependencies: Follow root `AGENTS.md` / `CLAUDE.md` and this local contract.
@@ -96,9 +96,17 @@ bun src/cli/index.ts adopt --repo . --dry-run
96
96
  ## Active Workstreams
97
97
 
98
98
  - `tasks/workstreams/workflow-engine/inspection-migration/20260703-inspection-migration.md`
99
- - status: active
99
+ - status: completed
100
100
  - current_slice: completed-20260703-architecture-closeout
101
101
  - source_plan: (none)
102
+ - `tasks/workstreams/workflow-engine/inspection-migration/20260712-inspection-migration.md`
103
+ - status: completed
104
+ - current_slice: completed-20260712-repo-owned-agent-fleet
105
+ - source_plan: `plans/archive/plan-20260712-2053-repo-owned-agent-fleet.md`
106
+ - `tasks/workstreams/workflow-engine/inspection-migration/agent-fleet-specialists.md`
107
+ - status: completed
108
+ - current_slice: completed-20260713-policy-seed
109
+ - source_plan: `plans/archive/plan-20260712-2215-agent-fleet-specialists.md`
102
110
 
103
111
  ## Current Session Projection
104
112
 
package/README.es.md CHANGED
@@ -82,7 +82,7 @@ artifacts.
82
82
  ## Novedades
83
83
 
84
84
  Las notas de versión viven en [`docs/CHANGELOG.md`](docs/CHANGELOG.md). La línea
85
- actual es `0.11.0`.
85
+ actual es `0.11.2`.
86
86
 
87
87
  ## Cómo funciona
88
88
 
@@ -413,8 +413,8 @@ Guards habituales:
413
413
 
414
414
  ## Release actual
415
415
 
416
- - npm package: `repo-harness@0.11.0`
417
- - Generated workflow stamp: `repo-harness@0.11.0+template@0.11.0`
416
+ - npm package: `repo-harness@0.11.2`
417
+ - Generated workflow stamp: `repo-harness@0.11.2+template@0.11.2`
418
418
  - GitHub repository: `Ancienttwo/repo-harness`
419
419
  - Release history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
420
420
 
package/README.fr.md CHANGED
@@ -82,7 +82,7 @@ l'emportent.
82
82
  ## Nouveautés
83
83
 
84
84
  Les notes de version vivent dans [`docs/CHANGELOG.md`](docs/CHANGELOG.md). La
85
- ligne actuelle est `0.11.0`.
85
+ ligne actuelle est `0.11.2`.
86
86
 
87
87
  ## Comment ça marche
88
88
 
@@ -414,8 +414,8 @@ Guards courants :
414
414
 
415
415
  ## Release actuelle
416
416
 
417
- - npm package : `repo-harness@0.11.0`
418
- - Generated workflow stamp : `repo-harness@0.11.0+template@0.11.0`
417
+ - npm package : `repo-harness@0.11.2`
418
+ - Generated workflow stamp : `repo-harness@0.11.2+template@0.11.2`
419
419
  - GitHub repository : `Ancienttwo/repo-harness`
420
420
  - Release history : [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
421
421
 
package/README.ja.md CHANGED
@@ -71,7 +71,7 @@ review、checks、handoff と食い違う場合は、source artifacts を優先
71
71
  ## What's New
72
72
 
73
73
  リリースノートは [`docs/CHANGELOG.md`](docs/CHANGELOG.md) にあります。現在の
74
- ラインは `0.11.0` です。
74
+ ラインは `0.11.2` です。
75
75
 
76
76
  ## 仕組み
77
77
 
@@ -389,8 +389,8 @@ hook がブロックしたときは、まず terminal の構造化された出
389
389
 
390
390
  ## 現在の Release
391
391
 
392
- - npm package:`repo-harness@0.11.0`
393
- - Generated workflow stamp:`repo-harness@0.11.0+template@0.11.0`
392
+ - npm package:`repo-harness@0.11.2`
393
+ - Generated workflow stamp:`repo-harness@0.11.2+template@0.11.2`
394
394
  - GitHub repository:`Ancienttwo/repo-harness`
395
395
  - Release history:[`docs/CHANGELOG.md`](docs/CHANGELOG.md)
396
396
 
package/README.md CHANGED
@@ -88,7 +88,7 @@ active plan, contract, review, checks, or handoff, the source artifacts win.
88
88
  ## What's New
89
89
 
90
90
  Release notes live in [`docs/CHANGELOG.md`](docs/CHANGELOG.md). The current line
91
- is `0.11.0`.
91
+ is `0.11.2`.
92
92
 
93
93
  ## How It Works
94
94
 
@@ -279,18 +279,21 @@ npx -y repo-harness@latest install
279
279
  ### 2. Bootstrap the host runtime once
280
280
 
281
281
  ```bash
282
- repo-harness install --profile minimal
282
+ repo-harness install
283
283
  ```
284
284
 
285
285
  `install` is the first-run global bootstrap path. It installs the current npm
286
286
  package as the global CLI, refreshes repo-harness skill aliases, installs
287
- user-level hook adapters, and records an explicit install profile. `minimal`
288
- is the interactive and non-interactive default; it does not install Waza,
289
- cross-review skills, a brain root, or CodeGraph. Use `standard`,
290
- `product-planning`, or `strict` only when those surfaces are wanted. The command
291
- is idempotent. `--dry-run --json` lists components to install, skip, and remove;
292
- `--state --json` reads the effective installed state; `--rollback` restores the
293
- previous profile transaction. See
287
+ user-level hook adapters, and records an explicit install profile. The profile
288
+ vocabulary is exactly `minimal|full`: `full` is the default and projects all 11
289
+ Codex routes plus planning, agent-fleet, verifier, cross-model, and release
290
+ surfaces; explicit `--profile minimal` projects the bounded 7-route baseline.
291
+ The retired 5-route tier is not available. The command is idempotent.
292
+ `--dry-run --json` lists components to install, skip, and remove; `--state
293
+ --json` reads the effective installed state; `--rollback` restores the previous
294
+ protocol-2 profile transaction. A protocol-1 state must be replaced explicitly
295
+ with `--migrate-profile-state --profile minimal|full`; normal reads never
296
+ reinterpret its old `minimal` meaning. See
294
297
  [`docs/reference-configs/install-profiles.md`](docs/reference-configs/install-profiles.md).
295
298
 
296
299
  It does not apply repo-local workflow files to the current directory.
@@ -635,8 +638,8 @@ Most common guards:
635
638
 
636
639
  ## Current Release
637
640
 
638
- - npm package: `repo-harness@0.11.0`
639
- - Generated workflow stamp: `repo-harness@0.11.0+template@0.11.0`
641
+ - npm package: `repo-harness@0.11.2`
642
+ - Generated workflow stamp: `repo-harness@0.11.2+template@0.11.2`
640
643
  - GitHub repository: `Ancienttwo/repo-harness`
641
644
  - Release history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
642
645
 
@@ -695,13 +698,13 @@ execution:
695
698
  - Release: `repo-harness-ship`
696
699
  - Architecture: `repo-harness-architecture`
697
700
  - Cross-model review: `repo-harness-cross-review` (host-aware Claude/Codex
698
- provider modes; installed on both hosts for the strict profile)
701
+ provider modes; installed on both hosts for the full profile)
699
702
  - Exact-candidate final gate: `merge-gate` (classification-only row in the
700
- strict-profile discovery matrix; repo-harness ships no merge-gate Skill —
703
+ full-profile discovery matrix; repo-harness ships no merge-gate Skill —
701
704
  see [external tooling](docs/reference-configs/external-tooling.md))
702
705
  - ChatGPT integration: `repo-harness-chatgpt` (Oracle browser/GPT Pro consult
703
706
  and continuation, MCP Connector setup, bridge handoff, and read-back
704
- evidence; explicit setup only, never implied by product planning)
707
+ evidence; explicit setup only, never implied by either install profile)
705
708
 
706
709
  The planning chain is intentionally layered:
707
710
 
package/README.zh-CN.md CHANGED
@@ -71,7 +71,7 @@ review、checks 或 handoff 冲突,以 source artifacts 为准。
71
71
 
72
72
  ## What's New
73
73
 
74
- Release notes 见 [`docs/CHANGELOG.md`](docs/CHANGELOG.md),当前版本线是 `0.11.0`。
74
+ Release notes 见 [`docs/CHANGELOG.md`](docs/CHANGELOG.md),当前版本线是 `0.11.2`。
75
75
 
76
76
  ## 工作原理
77
77
 
@@ -449,8 +449,8 @@ hook block 工作时,先看 terminal 里的结构化输出。核心字段是
449
449
 
450
450
  ## 当前 Release
451
451
 
452
- - npm package:`repo-harness@0.11.0`
453
- - Generated workflow stamp:`repo-harness@0.11.0+template@0.11.0`
452
+ - npm package:`repo-harness@0.11.2`
453
+ - Generated workflow stamp:`repo-harness@0.11.2+template@0.11.2`
454
454
  - GitHub repository:`Ancienttwo/repo-harness`
455
455
  - Release history:[`docs/CHANGELOG.md`](docs/CHANGELOG.md)
456
456
 
package/assets/AGENTS.md CHANGED
@@ -56,16 +56,20 @@ Owns the workflow-engine-contract-assets capability boundary declared in .ai/con
56
56
  ## Active Workstreams
57
57
 
58
58
  - `tasks/workstreams/workflow-engine/contract-assets/20260712-contract-assets.md`
59
- - status: active
60
- - current_slice: todo-01
61
- - source_plan: (none)
59
+ - status: completed
60
+ - current_slice: completed-20260712-repo-owned-agent-fleet
61
+ - source_plan: `plans/archive/plan-20260712-2053-repo-owned-agent-fleet.md`
62
+ - `tasks/workstreams/workflow-engine/contract-assets/20260714-merge-gate-enforcement.md`
63
+ - status: completed
64
+ - current_slice: completed-20260715-merge-gate-enforcement
65
+ - source_plan: `plans/archive/plan-20260714-1713-merge-gate-enforcement.md`
62
66
  - `tasks/workstreams/workflow-engine/contract-assets/agent-fleet-specialists.md`
63
67
  - status: completed
64
68
  - current_slice: completed-20260713-specialist-roles
65
- - source_plan: plans/plan-20260712-2215-agent-fleet-specialists.md
69
+ - source_plan: `plans/archive/plan-20260712-2215-agent-fleet-specialists.md`
66
70
  - `tasks/workstreams/workflow-engine/contract-assets/cleanup-script-policy.md`
67
71
  - status: completed
68
- - current_slice: todo-01
72
+ - current_slice: completed-20260529-cleanup-script-policy
69
73
  - source_plan: (none)
70
74
 
71
75
  ## Current Session Projection
package/assets/CLAUDE.md CHANGED
@@ -56,16 +56,20 @@ Owns the workflow-engine-contract-assets capability boundary declared in .ai/con
56
56
  ## Active Workstreams
57
57
 
58
58
  - `tasks/workstreams/workflow-engine/contract-assets/20260712-contract-assets.md`
59
- - status: active
60
- - current_slice: todo-01
61
- - source_plan: (none)
59
+ - status: completed
60
+ - current_slice: completed-20260712-repo-owned-agent-fleet
61
+ - source_plan: `plans/archive/plan-20260712-2053-repo-owned-agent-fleet.md`
62
+ - `tasks/workstreams/workflow-engine/contract-assets/20260714-merge-gate-enforcement.md`
63
+ - status: completed
64
+ - current_slice: completed-20260715-merge-gate-enforcement
65
+ - source_plan: `plans/archive/plan-20260714-1713-merge-gate-enforcement.md`
62
66
  - `tasks/workstreams/workflow-engine/contract-assets/agent-fleet-specialists.md`
63
67
  - status: completed
64
68
  - current_slice: completed-20260713-specialist-roles
65
- - source_plan: plans/plan-20260712-2215-agent-fleet-specialists.md
69
+ - source_plan: `plans/archive/plan-20260712-2215-agent-fleet-specialists.md`
66
70
  - `tasks/workstreams/workflow-engine/contract-assets/cleanup-script-policy.md`
67
71
  - status: completed
68
- - current_slice: todo-01
72
+ - current_slice: completed-20260529-cleanup-script-policy
69
73
  - source_plan: (none)
70
74
 
71
75
  ## Current Session Projection
@@ -46,6 +46,62 @@ workflow_policy_get() {
46
46
  printf '%s' "$default_value"
47
47
  }
48
48
 
49
+ # Projects lifecycle roles from the single policy-owned ordered status array.
50
+ # The anchors carry semantics; every projected value must be a member of the
51
+ # same array and the lifecycle order must remain coherent or the projection
52
+ # fails closed.
53
+ workflow_plan_status_projection() {
54
+ local projection="$1"
55
+ local policy_file
56
+
57
+ policy_file="$(workflow_policy_file)"
58
+ [[ -f "$policy_file" ]] || return 1
59
+ command -v jq >/dev/null 2>&1 || return 1
60
+ jq -er --arg projection "$projection" '
61
+ .active_plan as $active
62
+ | $active.statuses as $statuses
63
+ | $active.lifecycle as $lifecycle
64
+ | select(($statuses | type) == "array" and ($statuses | length) > 0)
65
+ | select(all($statuses[]; type == "string" and length > 0))
66
+ | select(($statuses | unique | length) == ($statuses | length))
67
+ | select(($lifecycle | type) == "object")
68
+ | $lifecycle.annotation_end as $annotation_end
69
+ | $lifecycle.approved as $approved
70
+ | $lifecycle.executing as $executing
71
+ | $lifecycle.terminal_start as $terminal_start
72
+ | select([$annotation_end, $approved, $executing, $terminal_start] | all(.[]; type == "string"))
73
+ | ($statuses | index($annotation_end)) as $annotation_index
74
+ | ($statuses | index($approved)) as $approved_index
75
+ | ($statuses | index($executing)) as $executing_index
76
+ | ($statuses | index($terminal_start)) as $terminal_index
77
+ | select(
78
+ $annotation_index != null and $annotation_index >= 1
79
+ and $approved_index == ($annotation_index + 1)
80
+ and $executing_index == ($approved_index + 1)
81
+ and $terminal_index > $executing_index
82
+ )
83
+ | if $projection == "known" then $statuses[]
84
+ elif $projection == "pre_approval" then $statuses[0:$approved_index][]
85
+ elif $projection == "terminal" then $statuses[$terminal_index:][]
86
+ elif $projection == "draft" then $statuses[0]
87
+ elif $projection == "annotation_end" then $annotation_end
88
+ elif $projection == "approved" then $approved
89
+ elif $projection == "executing" then $executing
90
+ else empty
91
+ end
92
+ ' "$policy_file" 2>/dev/null
93
+ }
94
+
95
+ workflow_plan_status_is_known() {
96
+ local status="$1"
97
+ workflow_plan_status_projection known | grep -Fqx -- "$status"
98
+ }
99
+
100
+ workflow_plan_status_is_terminal() {
101
+ local status="$1"
102
+ workflow_plan_status_projection terminal | grep -Fqx -- "$status"
103
+ }
104
+
49
105
  workflow_repo_relative_path() {
50
106
  local value="$1"
51
107
  local default_value="$2"
@@ -973,29 +1029,42 @@ validate_plan_transition() {
973
1029
  local current_status="$1"
974
1030
  local next_status="$2"
975
1031
  local note_count="$3"
1032
+ local draft annotation_end approved executing
1033
+
1034
+ draft="$(workflow_plan_status_projection draft)" \
1035
+ && annotation_end="$(workflow_plan_status_projection annotation_end)" \
1036
+ && approved="$(workflow_plan_status_projection approved)" \
1037
+ && executing="$(workflow_plan_status_projection executing)" || {
1038
+ echo "Plan-status authority is unavailable or malformed."
1039
+ return 1
1040
+ }
1041
+ if ! workflow_plan_status_is_known "$current_status" || ! workflow_plan_status_is_known "$next_status"; then
1042
+ echo "Unknown plan status transition ${current_status} -> ${next_status}."
1043
+ return 1
1044
+ fi
976
1045
 
977
1046
  case "${current_status}:${next_status}" in
978
- Draft:Annotating)
1047
+ "${draft}:${annotation_end}")
979
1048
  if [[ "$note_count" -lt 1 ]]; then
980
- echo "Draft -> Annotating requires at least one [NOTE]: annotation."
1049
+ echo "${draft} -> ${annotation_end} requires at least one [NOTE]: annotation."
981
1050
  return 1
982
1051
  fi
983
1052
  ;;
984
- Annotating:Approved)
1053
+ "${annotation_end}:${approved}")
985
1054
  if [[ "$note_count" -gt 0 ]]; then
986
- echo "Annotating -> Approved requires all [NOTE]: annotations to be resolved."
1055
+ echo "${annotation_end} -> ${approved} requires all [NOTE]: annotations to be resolved."
987
1056
  return 1
988
1057
  fi
989
1058
  ;;
990
- Annotating:Draft)
991
- echo "[PlanState] Rollback: Annotating -> Draft (plan direction rethink)."
1059
+ "${annotation_end}:${draft}")
1060
+ echo "[PlanState] Rollback: ${annotation_end} -> ${draft} (plan direction rethink)."
992
1061
  return 0
993
1062
  ;;
994
- Draft:Approved|Draft:Executing|Annotating:Executing)
1063
+ "${draft}:${approved}"|"${draft}:${executing}"|"${annotation_end}:${executing}")
995
1064
  echo "Status jump ${current_status} -> ${next_status} skips required workflow gates."
996
1065
  return 1
997
1066
  ;;
998
- Approved:Draft|Approved:Annotating|Executing:Draft|Executing:Annotating|Executing:Approved)
1067
+ "${approved}:${draft}"|"${approved}:${annotation_end}"|"${executing}:${draft}"|"${executing}:${annotation_end}"|"${executing}:${approved}")
999
1068
  echo "Backward transition ${current_status} -> ${next_status} is not allowed."
1000
1069
  return 1
1001
1070
  ;;
@@ -34,7 +34,7 @@ root prompt concise; this file owns the detailed routing.
34
34
  Use these canonical packages when the work is about installing, migrating,
35
35
  repairing, planning, or verifying this repo-local harness. `assets/skill-commands/manifest.json`
36
36
  is the runtime discovery authority for which profile installs which package;
37
- see [external tooling](external-tooling.md) for the strict-profile
37
+ see [external tooling](external-tooling.md) for the full-profile
38
38
  cross-review/merge-gate rows.
39
39
 
40
40
  | Work type | Command | Boundary |
@@ -53,7 +53,7 @@ cross-review/merge-gate rows.
53
53
  | Check deploy and ops config | `repo-harness-check` (deploy-readiness reference) | Read-only deploy/_ops readiness check without publishing |
54
54
  | Fix broken current harness behavior | `repo-harness-setup` (repair mode) | Task sync, hook routing, handoff, context, policy, or helper drift |
55
55
  | Verify readiness | `repo-harness-check` | Workflow gates, task sync, inspector, migration dry-run, and readiness yellow flags |
56
- | Independent cross-model review | `repo-harness-cross-review` | Host-aware Claude/Codex provider modes; installed on both hosts for strict; never produces a merge-gate receipt |
56
+ | Independent cross-model review | `repo-harness-cross-review` | Host-aware Claude/Codex provider modes; installed on both hosts for full; never produces a merge-gate receipt |
57
57
  | Generate an upper-layer PRD | `repo-harness-product` (PRD mode) | `$geju` direction pass, Claude-first `claude -p --model opus` drafting, Codex fallback only when needed, PRD in `plans/prds/*.prd.md`; geju thesis/falsifier are pre-contract only and freeze into a delegated contract's `## Why`/`## Falsifier` |
58
58
  | Plan and run a program-level sprint | `repo-harness-product` (Sprint mode) | Upper-layer PRD in `plans/prds/`, sprint backlog in `plans/sprints/`; each row expands through `$think` before plan -> contract -> worktree |
59
59
  | Prepare a bounded native goal session | `repo-harness-product` (Goal mode) | Codex/Claude `/goal` prompt from detailed PRD or Sprint artifacts; stops to request those documents when missing |
@@ -52,12 +52,12 @@ host-aware during `repo-harness install`/`init` and explicit external-skill
52
52
  refreshes: it installs into **both** `~/.claude/skills` (a Claude session
53
53
  asking Codex for an independent review, via its Codex provider mode) and
54
54
  `~/.codex/skills` (a Codex session asking Claude for a review, via its Claude
55
- provider mode) for the strict profile. `claude-plan` installs only into
55
+ provider mode) for the full profile. `claude-plan` installs only into
56
56
  `~/.codex/skills` (a Codex session using Claude's headless plan mode for a
57
57
  plan consult on a mid-execution design fork) and is unaffected by this
58
- package's host-aware installation. The harness skills are the self-contained
59
- baseline that always ships with `init` and the peer acceptance gate surface for
60
- the typed `AcceptanceReceipt`; its review section is projection only.
58
+ package's host-aware installation. These harness skills ship with the full
59
+ profile (the default for `init`) and provide the peer acceptance gate surface
60
+ for the typed `AcceptanceReceipt`; the review section is projection only.
61
61
 
62
62
  The review scope is the current reviewable diff, not just committed branch
63
63
  history: branch diff against the default base, staged changes, unstaged tracked
@@ -582,8 +582,29 @@ stale managed target can be deactivated.
582
582
 
583
583
  The installer is **never-clobber by default**: an existing target file that
584
584
  differs from the newly resolved content is reported as `drift` and left
585
- untouched. Pass `--force` to overwrite drifted files. Re-running with no
586
- packaged-source changes reports every file as `up-to-date`.
585
+ untouched. Pass `--force` to overwrite drifted files.
586
+
587
+ An operator who intentionally owns a customized, complete fleet can acknowledge
588
+ the current bytes once:
589
+
590
+ ```bash
591
+ repo-harness run install-agent-fleet --accept-user-managed
592
+ ```
593
+
594
+ The acknowledgement validates all twelve target files before writing
595
+ `~/.repo-harness/agent-fleet-user-managed.json`. Claude files must have
596
+ well-formed frontmatter with the target role identity, model, effort, and body;
597
+ Codex files must be valid TOML with a pinned model, supported reasoning effort,
598
+ and developer instructions. Symlinks, missing files, malformed files, or
599
+ role-name mismatches fail closed without changing the receipt.
600
+
601
+ Only customized files are recorded, by absolute path and SHA-256. Later
602
+ installer and full-profile runs report those exact bytes as `user-managed`
603
+ and do not claim transaction ownership over them. Any subsequent byte change
604
+ invalidates the acknowledgement and returns to `drift` until the operator
605
+ reviews and accepts the new content. `--force` restores packaged content and
606
+ removes the user-managed receipt. Re-running with no packaged-source changes
607
+ reports packaged files as `up-to-date`.
587
608
 
588
609
  ### Readiness
589
610
 
@@ -596,7 +617,7 @@ the deterministic generation.
596
617
 
597
618
  ### Uninstall
598
619
 
599
- There is no uninstall command. Removing the fleet means deleting the eight
620
+ There is no uninstall command. Removing the fleet means deleting the twelve
600
621
  managed files by hand:
601
622
 
602
623
  ```text
@@ -604,10 +625,14 @@ managed files by hand:
604
625
  ~/.claude/agents/deep-reasoner.md
605
626
  ~/.claude/agents/fast-worker.md
606
627
  ~/.claude/agents/gatekeeper.md
628
+ ~/.claude/agents/root-cause-prover.md
629
+ ~/.claude/agents/harness-evaluator.md
607
630
  ~/.codex/agents/explorer.toml
608
631
  ~/.codex/agents/deep-reasoner.toml
609
632
  ~/.codex/agents/fast-worker.toml
610
633
  ~/.codex/agents/gatekeeper.toml
634
+ ~/.codex/agents/root-cause-prover.toml
635
+ ~/.codex/agents/harness-evaluator.toml
611
636
  ```
612
637
 
613
638
  ## Manual Brain Vault Export