repo-harness 0.2.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +8 -6
- package/CLAUDE.md +8 -6
- package/README.es.md +8 -9
- package/README.fr.md +8 -9
- package/README.ja.md +9 -9
- package/README.md +103 -70
- package/README.zh-CN.md +65 -43
- package/SKILL.md +8 -9
- package/assets/hooks/codex.hooks.template.json +9 -13
- package/assets/hooks/hook-input.sh +14 -2
- package/assets/hooks/lib/session-state.sh +4 -1
- package/assets/hooks/lib/workflow-state.sh +132 -19
- package/assets/hooks/post-bash.sh +6 -0
- package/assets/hooks/post-edit-guard.sh +59 -14
- package/assets/hooks/{context-pressure-hook.sh → post-tool-observer.sh} +100 -19
- package/assets/hooks/pre-edit-guard.sh +80 -0
- package/assets/hooks/prompt-guard.sh +455 -902
- package/assets/hooks/run-hook.sh +26 -26
- package/assets/hooks/session-start-context.sh +111 -4
- package/assets/hooks/settings.template.json +9 -13
- package/assets/partials/04-project-structure.partial.md +1 -1
- package/assets/partials/05-workflow.partial.md +3 -3
- package/assets/partials/07-footer.partial.md +2 -2
- package/assets/partials/08-orchestration.partial.md +2 -2
- package/assets/partials-agents/02-operating-mode.partial.md +3 -3
- package/assets/partials-agents/03-orchestration.partial.md +3 -3
- package/assets/partials-agents/04-task-protocol.partial.md +4 -4
- package/assets/partials-agents/08-deep-docs.partial.md +2 -2
- package/assets/reference-configs/agentic-development-flow.md +2 -1
- package/assets/reference-configs/external-tooling.md +2 -2
- package/assets/reference-configs/harness-overview.md +4 -2
- package/assets/reference-configs/heartbeat-triage.md +57 -0
- package/assets/reference-configs/hook-operations.md +33 -49
- package/assets/reference-configs/sprint-contracts.md +25 -0
- package/assets/skill-commands/manifest.json +7 -0
- package/assets/skill-commands/repo-harness-architecture/SKILL.md +2 -0
- package/assets/skill-commands/repo-harness-migrate/SKILL.md +1 -1
- package/assets/skill-commands/repo-harness-sprint/SKILL.md +39 -0
- package/assets/skill-version.json +9 -7
- package/assets/templates/contract.template.md +18 -0
- package/assets/templates/helpers/architecture-event.ts +373 -4
- package/assets/templates/helpers/architecture-queue.sh +647 -0
- package/assets/templates/helpers/archive-architecture-request.sh +40 -8
- package/assets/templates/helpers/archive-workflow.sh +49 -16
- package/assets/templates/helpers/capability-resolver.ts +35 -4
- package/assets/templates/helpers/capture-plan.sh +2 -2
- package/assets/templates/helpers/check-architecture-sync.sh +287 -0
- package/assets/templates/helpers/check-skill-version.ts +24 -5
- package/assets/templates/helpers/check-task-sync.sh +5 -2
- package/assets/templates/helpers/check-task-workflow.sh +127 -5
- package/assets/templates/helpers/codex-handoff-resume.sh +4 -4
- package/assets/templates/helpers/context-contract-sync.sh +23 -4
- package/assets/templates/helpers/contract-run.ts +402 -0
- package/assets/templates/helpers/contract-worktree.sh +66 -0
- package/assets/templates/helpers/ensure-task-workflow.sh +50 -31
- package/assets/templates/helpers/heartbeat-triage.sh +317 -0
- package/assets/templates/helpers/inspect-project-state.ts +2 -2
- package/assets/templates/helpers/migrate-project-template.sh +0 -3
- package/assets/templates/helpers/migrate-workflow-docs.ts +64 -31
- package/assets/templates/helpers/new-plan.sh +1 -1
- package/assets/templates/helpers/plan-to-todo.sh +21 -3
- package/assets/templates/helpers/refresh-current-status.sh +59 -1
- package/assets/templates/helpers/select-agent-context-blocks.sh +2 -2
- package/assets/templates/helpers/sprint-backlog.sh +815 -0
- package/assets/templates/helpers/sync-brain-docs.sh +74 -4
- package/assets/templates/helpers/workflow-contract.ts +1 -8
- package/assets/templates/implementation-notes.template.md +1 -1
- package/assets/templates/plan.template.md +1 -1
- package/assets/templates/sprint.template.md +66 -0
- package/assets/workflow-contract.v1.json +63 -10
- package/docs/reference-configs/agentic-development-flow.md +2 -1
- package/docs/reference-configs/external-tooling.md +2 -2
- package/docs/reference-configs/harness-overview.md +4 -2
- package/docs/reference-configs/heartbeat-triage.md +57 -0
- package/docs/reference-configs/hook-operations.md +33 -49
- package/docs/reference-configs/loop-engine-cutover-gate.md +39 -0
- package/docs/reference-configs/loop-engine-nl-decision-table.md +137 -0
- package/docs/reference-configs/sprint-contracts.md +25 -0
- package/package.json +2 -1
- package/scripts/architecture-event.ts +373 -4
- package/scripts/architecture-queue.sh +647 -0
- package/scripts/archive-architecture-request.sh +40 -8
- package/scripts/archive-workflow.sh +49 -16
- package/scripts/capability-resolver.ts +35 -4
- package/scripts/capture-plan.sh +2 -2
- package/scripts/check-architecture-sync.sh +287 -0
- package/scripts/check-npm-release.sh +1 -0
- package/scripts/check-skill-version.ts +24 -5
- package/scripts/check-task-sync.sh +5 -2
- package/scripts/check-task-workflow.sh +127 -5
- package/scripts/codex-handoff-resume.sh +4 -4
- package/scripts/context-contract-sync.sh +23 -4
- package/scripts/contract-run.ts +402 -0
- package/scripts/contract-worktree.sh +66 -0
- package/scripts/create-project-dirs.sh +8 -21
- package/scripts/ensure-task-workflow.sh +50 -31
- package/scripts/heartbeat-triage.sh +317 -0
- package/scripts/hook-dispatch-diet-report.ts +234 -0
- package/scripts/hook-shim.sh +60 -4
- package/scripts/init-project.sh +8 -28
- package/scripts/inspect-project-state.ts +2 -2
- package/scripts/lib/project-init-lib.sh +103 -45
- package/scripts/loop-engine-cutover-gate.ts +324 -0
- package/scripts/migrate-project-template.sh +35 -36
- package/scripts/migrate-workflow-docs.ts +64 -31
- package/scripts/new-plan.sh +1 -1
- package/scripts/plan-to-todo.sh +21 -3
- package/scripts/refresh-current-status.sh +59 -1
- package/scripts/repo-harness.sh +152 -20
- package/scripts/route-nl-vs-ts-eval.ts +679 -0
- package/scripts/select-agent-context-blocks.sh +2 -2
- package/scripts/sprint-backlog.sh +815 -0
- package/scripts/sync-brain-docs.sh +74 -4
- package/scripts/sync-codex-installed-copies.sh +9 -64
- package/scripts/workflow-contract.ts +1 -8
- package/src/cli/commands/doctor.ts +52 -0
- package/src/cli/commands/hook.ts +2 -1
- package/src/cli/commands/prompt-guard-decision.ts +150 -0
- package/src/cli/commands/status.ts +1 -1
- package/src/cli/hook/prompt-intents.ts +534 -0
- package/src/cli/hook/route-registry.ts +1 -1
- package/src/cli/hook/runtime.ts +98 -6
- package/src/cli/hook/state-snapshot.ts +388 -0
- package/src/cli/hook-entry.ts +10 -2
- package/src/cli/index.ts +8 -10
- package/src/cli/installer/managed-entries.ts +2 -1
- package/assets/hooks/atomic-commit.sh +0 -78
- package/assets/hooks/atomic-pending.sh +0 -22
- package/assets/hooks/finalize-handoff.sh +0 -12
- package/assets/hooks/pre-code-change.sh +0 -33
- package/assets/hooks/tdd-guard-hook.sh +0 -78
- package/assets/hooks/trace-event.sh +0 -76
- package/assets/templates/helpers/architecture-drift.sh +0 -435
- package/scripts/architecture-drift.sh +0 -435
- package/scripts/check-versions.ts +0 -488
package/AGENTS.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# repo-harness AGENTS.md
|
|
2
2
|
|
|
3
|
-
This repository self-hosts the `repo-harness` contract
|
|
3
|
+
This repository self-hosts the `repo-harness` contract; the former `repo-harness-skill` and `project-initializer` names are retired and removed by installed-copy sync. Claude and Codex should follow the same repo-local workflow surface.
|
|
4
4
|
|
|
5
5
|
## Canonical Workflow Files
|
|
6
6
|
|
|
7
7
|
- `tasks/current.md` for the tracked current-status snapshot derived from workflow artifacts
|
|
8
8
|
- `tasks/todo.md` for deferred medium/long-term goals, not active execution checklists
|
|
9
|
+
- `tasks/sprints/` for program-level sprint PRDs and ordered backlogs, operated by `scripts/sprint-backlog.sh` (Sprint = program layer; task contracts stay the execution slices)
|
|
9
10
|
- `.ai/context/capabilities.json` for the capability registry and longest-prefix context boundaries
|
|
10
11
|
- `tasks/workstreams/` for capability long-running workstreams that project durable progress into local contracts
|
|
11
12
|
- `tasks/lessons.md` for correction-derived rules
|
|
12
|
-
- `
|
|
13
|
+
- `docs/researches/` for deep repo knowledge
|
|
13
14
|
- `tasks/notes/` for task-local implementation decisions, deviations, tradeoffs, and open questions
|
|
14
15
|
- `plans/` for timestamped plans, with `plans/archive/` for history
|
|
15
16
|
- `.ai/harness/workflow-contract.json` for the installed workflow contract manifest
|
|
@@ -22,14 +23,14 @@ This repository self-hosts the `repo-harness` contract, formerly `repo-harness-s
|
|
|
22
23
|
|
|
23
24
|
- Sync `tasks/` whenever substantive repo changes are made.
|
|
24
25
|
- Use `tasks/notes/<plan-stem>.notes.md` only for non-obvious slice decisions, deviations, tradeoffs, and open questions; `<plan-stem>` is the active plan filename without `plan-` and `.md` (for example `20260531-0045-governance-workflow`). Do not use notes as durable memory or a task log, and archive/promote them deliberately when the slice closes.
|
|
25
|
-
- Treat `.ai/hooks/` as the
|
|
26
|
+
- Treat hook execution as central-first: trusted repos run `~/.repo-harness/hooks/` (bash shim) or the packaged CLI copy; this self-host repo pins `"hook_source": "repo"` in `.ai/harness/policy.json` so `.ai/hooks/` stays the live development runtime, with `assets/hooks/` as the product source mirrored on install. User-level `~/.claude/settings.json` and `~/.codex/hooks.json` are the host adapters.
|
|
26
27
|
- Keep the umbrella hierarchy explicit: architecture owns stable truth, capability contracts own local agent context, `tasks/workstreams/<domain>/<capability>/` owns durable progress, and `tasks/todo.md` owns only deferred medium/long-term goals with tradeoff and revisit trigger.
|
|
27
28
|
- Treat `.ai/context/capabilities.json` as the source of truth for capability prefixes; `agent-context-blocks.txt` and nested agent files are compatibility inputs only.
|
|
28
|
-
- Keep architecture drift handling split: `architecture-
|
|
29
|
+
- Keep architecture drift handling split: `architecture-queue.sh` writes architecture requests/events, `workstream-sync.sh` maintains durable capability workstreams, and `context-contract-sync.sh` only updates controlled local `CLAUDE.md`/`AGENTS.md` architecture blocks.
|
|
29
30
|
- Keep `assets/workflow-contract.v1.json` and `.ai/harness/workflow-contract.json` in sync.
|
|
30
31
|
- Keep `CLAUDE.md` and `AGENTS.md` short; put detailed guidance in `docs/reference-configs/`.
|
|
31
32
|
- Treat Codex auto-compact as a fallback only; use `.ai/harness/handoff/current.md` and `.ai/harness/handoff/resume.md` for long-task rollover.
|
|
32
|
-
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `
|
|
33
|
+
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `docs/researches/`.
|
|
33
34
|
- Treat `deploy/` as the trackable deployment and operations surface for runbooks, submission materials, release checklists, helper scripts, ordered SQL files under `deploy/sql/`, and env examples.
|
|
34
35
|
- Treat `_ops/` as ignored local operations state for secrets, real env files, provider state, artifacts, logs, and scratch files; do not commit or agent-edit `_ops/*`.
|
|
35
36
|
- Treat contract-level task execution as worktree-first: `scripts/plan-to-todo.sh --plan <approved-plan>` starts `scripts/contract-worktree.sh start --plan <approved-plan>` when policy enables it, and completed blocks finish through Waza `/check` plus `scripts/contract-worktree.sh finish`.
|
|
@@ -49,6 +50,7 @@ This repository self-hosts the `repo-harness` contract, formerly `repo-harness-s
|
|
|
49
50
|
```bash
|
|
50
51
|
bun test
|
|
51
52
|
bash scripts/check-deploy-sql-order.sh
|
|
53
|
+
bash scripts/check-architecture-sync.sh
|
|
52
54
|
bash scripts/check-task-sync.sh
|
|
53
55
|
bash scripts/check-task-workflow.sh --strict
|
|
54
56
|
bun scripts/inspect-project-state.ts --repo . --format text
|
|
@@ -78,7 +80,7 @@ bash scripts/migrate-project-template.sh --repo . --dry-run
|
|
|
78
80
|
- Latest snapshot: `(none yet)`
|
|
79
81
|
- Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
80
82
|
- Latest human diagram: `(none yet)`
|
|
81
|
-
- Pending architecture request: `
|
|
83
|
+
- Pending architecture request: `(none)`
|
|
82
84
|
|
|
83
85
|
## Active Workstreams
|
|
84
86
|
|
package/CLAUDE.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# repo-harness AGENTS.md
|
|
2
2
|
|
|
3
|
-
This repository self-hosts the `repo-harness` contract
|
|
3
|
+
This repository self-hosts the `repo-harness` contract; the former `repo-harness-skill` and `project-initializer` names are retired and removed by installed-copy sync. Claude and Codex should follow the same repo-local workflow surface.
|
|
4
4
|
|
|
5
5
|
## Canonical Workflow Files
|
|
6
6
|
|
|
7
7
|
- `tasks/current.md` for the tracked current-status snapshot derived from workflow artifacts
|
|
8
8
|
- `tasks/todo.md` for deferred medium/long-term goals, not active execution checklists
|
|
9
|
+
- `tasks/sprints/` for program-level sprint PRDs and ordered backlogs, operated by `scripts/sprint-backlog.sh` (Sprint = program layer; task contracts stay the execution slices)
|
|
9
10
|
- `.ai/context/capabilities.json` for the capability registry and longest-prefix context boundaries
|
|
10
11
|
- `tasks/workstreams/` for capability long-running workstreams that project durable progress into local contracts
|
|
11
12
|
- `tasks/lessons.md` for correction-derived rules
|
|
12
|
-
- `
|
|
13
|
+
- `docs/researches/` for deep repo knowledge
|
|
13
14
|
- `tasks/notes/` for task-local implementation decisions, deviations, tradeoffs, and open questions
|
|
14
15
|
- `plans/` for timestamped plans, with `plans/archive/` for history
|
|
15
16
|
- `.ai/harness/workflow-contract.json` for the installed workflow contract manifest
|
|
@@ -22,14 +23,14 @@ This repository self-hosts the `repo-harness` contract, formerly `repo-harness-s
|
|
|
22
23
|
|
|
23
24
|
- Sync `tasks/` whenever substantive repo changes are made.
|
|
24
25
|
- Use `tasks/notes/<plan-stem>.notes.md` only for non-obvious slice decisions, deviations, tradeoffs, and open questions; `<plan-stem>` is the active plan filename without `plan-` and `.md` (for example `20260531-0045-governance-workflow`). Do not use notes as durable memory or a task log, and archive/promote them deliberately when the slice closes.
|
|
25
|
-
- Treat `.ai/hooks/` as the
|
|
26
|
+
- Treat hook execution as central-first: trusted repos run `~/.repo-harness/hooks/` (bash shim) or the packaged CLI copy; this self-host repo pins `"hook_source": "repo"` in `.ai/harness/policy.json` so `.ai/hooks/` stays the live development runtime, with `assets/hooks/` as the product source mirrored on install. User-level `~/.claude/settings.json` and `~/.codex/hooks.json` are the host adapters.
|
|
26
27
|
- Keep the umbrella hierarchy explicit: architecture owns stable truth, capability contracts own local agent context, `tasks/workstreams/<domain>/<capability>/` owns durable progress, and `tasks/todo.md` owns only deferred medium/long-term goals with tradeoff and revisit trigger.
|
|
27
28
|
- Treat `.ai/context/capabilities.json` as the source of truth for capability prefixes; `agent-context-blocks.txt` and nested agent files are compatibility inputs only.
|
|
28
|
-
- Keep architecture drift handling split: `architecture-
|
|
29
|
+
- Keep architecture drift handling split: `architecture-queue.sh` writes architecture requests/events, `workstream-sync.sh` maintains durable capability workstreams, and `context-contract-sync.sh` only updates controlled local `CLAUDE.md`/`AGENTS.md` architecture blocks.
|
|
29
30
|
- Keep `assets/workflow-contract.v1.json` and `.ai/harness/workflow-contract.json` in sync.
|
|
30
31
|
- Keep `CLAUDE.md` and `AGENTS.md` short; put detailed guidance in `docs/reference-configs/`.
|
|
31
32
|
- Treat Codex auto-compact as a fallback only; use `.ai/harness/handoff/current.md` and `.ai/harness/handoff/resume.md` for long-task rollover.
|
|
32
|
-
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `
|
|
33
|
+
- Treat `_ref/` as an occasional ignored external reference checkout cache, not a commit surface or daily workflow. Agents may read or refresh it for comparison; when it influences a decision, cite the source repo plus commit/tag and path in `tasks/notes/` or `docs/researches/`.
|
|
33
34
|
- Treat `deploy/` as the trackable deployment and operations surface for runbooks, submission materials, release checklists, helper scripts, ordered SQL files under `deploy/sql/`, and env examples.
|
|
34
35
|
- Treat `_ops/` as ignored local operations state for secrets, real env files, provider state, artifacts, logs, and scratch files; do not commit or agent-edit `_ops/*`.
|
|
35
36
|
- Treat contract-level task execution as worktree-first: `scripts/plan-to-todo.sh --plan <approved-plan>` starts `scripts/contract-worktree.sh start --plan <approved-plan>` when policy enables it, and completed blocks finish through Waza `/check` plus `scripts/contract-worktree.sh finish`.
|
|
@@ -49,6 +50,7 @@ This repository self-hosts the `repo-harness` contract, formerly `repo-harness-s
|
|
|
49
50
|
```bash
|
|
50
51
|
bun test
|
|
51
52
|
bash scripts/check-deploy-sql-order.sh
|
|
53
|
+
bash scripts/check-architecture-sync.sh
|
|
52
54
|
bash scripts/check-task-sync.sh
|
|
53
55
|
bash scripts/check-task-workflow.sh --strict
|
|
54
56
|
bun scripts/inspect-project-state.ts --repo . --format text
|
|
@@ -78,7 +80,7 @@ bash scripts/migrate-project-template.sh --repo . --dry-run
|
|
|
78
80
|
- Latest snapshot: `(none yet)`
|
|
79
81
|
- Semantic diagram source: `docs/architecture/modules/runtime-harness/hook-adapters.md`
|
|
80
82
|
- Latest human diagram: `(none yet)`
|
|
81
|
-
- Pending architecture request: `
|
|
83
|
+
- Pending architecture request: `(none)`
|
|
82
84
|
|
|
83
85
|
## Active Workstreams
|
|
84
86
|
|
package/README.es.md
CHANGED
|
@@ -186,8 +186,8 @@ adoptar este workflow.
|
|
|
186
186
|
npx -y repo-harness init
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
-
La npm package release line
|
|
190
|
-
|
|
189
|
+
La npm package release line y el generated workflow stamp usan ahora la misma
|
|
190
|
+
línea `0.4.x`. `repo-harness init` es el bootstrap
|
|
191
191
|
global y `repo-harness update` es el refresco repo-local. `repo-harness init`
|
|
192
192
|
configura el CLI, los hook adapters de nivel usuario, Waza, Mermaid, el brain
|
|
193
193
|
root y CodeGraph MCP; el viejo camino Claude plugin `scripts/setup-plugins.sh`
|
|
@@ -204,14 +204,13 @@ bun src/cli/index.ts init
|
|
|
204
204
|
Modelo de rutas locales:
|
|
205
205
|
|
|
206
206
|
- Repositorio fuente: `~/Projects/repo-harness`
|
|
207
|
-
- Claude skill
|
|
207
|
+
- Claude skill alias: `~/.claude/skills/repo-harness`
|
|
208
208
|
- Codex discoverable skill alias: `~/.codex/skills/repo-harness`
|
|
209
|
-
- Codex compatibility fallback alias: `~/.codex/skills/repo-harness-skill`
|
|
210
209
|
|
|
211
210
|
`~/Projects/repo-harness` es la única source of truth editable. Las rutas locales
|
|
212
211
|
de Claude/Codex son runtime entrypoints respaldados por symlinks. Los directorios
|
|
213
|
-
|
|
214
|
-
`scripts/sync-codex-installed-copies.sh`.
|
|
212
|
+
de los runtimes ya retirados `repo-harness-skill` y `project-initializer` los
|
|
213
|
+
elimina `scripts/sync-codex-installed-copies.sh`.
|
|
215
214
|
|
|
216
215
|
### Prerrequisitos mínimos
|
|
217
216
|
|
|
@@ -326,12 +325,12 @@ Guards habituales:
|
|
|
326
325
|
|
|
327
326
|
## Release actual
|
|
328
327
|
|
|
329
|
-
- npm package: `repo-harness@0.
|
|
330
|
-
- Generated workflow
|
|
328
|
+
- npm package: `repo-harness@0.4.0`
|
|
329
|
+
- Generated workflow stamp: `repo-harness@0.4.0+template@0.4.0`
|
|
331
330
|
- GitHub repository: `Ancienttwo/repo-harness`
|
|
332
331
|
- Release history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
333
332
|
|
|
334
|
-
## Current Model
|
|
333
|
+
## Current Model
|
|
335
334
|
|
|
336
335
|
- El question flow usa **12 grouped decision points**, infiriendo primero los harness defaults.
|
|
337
336
|
- El plan menu está por capas: los **Core Plans (A-F)** primero, los **Custom Presets (G-K)** solo cuando hace falta.
|
package/README.fr.md
CHANGED
|
@@ -190,8 +190,8 @@ de ce workflow.
|
|
|
190
190
|
npx -y repo-harness init
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
-
La release line du package npm
|
|
194
|
-
|
|
193
|
+
La release line du package npm et le generated workflow stamp utilisent
|
|
194
|
+
désormais la même ligne `0.4.x`. `repo-harness init`
|
|
195
195
|
sert au bootstrap global et `repo-harness update` sert au rafraîchissement
|
|
196
196
|
repo-local. `repo-harness init` configure le CLI, les hook adapters de niveau
|
|
197
197
|
utilisateur, Waza, Mermaid, le brain root et CodeGraph MCP ; l'ancien chemin
|
|
@@ -208,14 +208,13 @@ bun src/cli/index.ts init
|
|
|
208
208
|
Modèle de chemins locaux :
|
|
209
209
|
|
|
210
210
|
- Dépôt source : `~/Projects/repo-harness`
|
|
211
|
-
- Claude skill
|
|
211
|
+
- Claude skill alias : `~/.claude/skills/repo-harness`
|
|
212
212
|
- Codex discoverable skill alias : `~/.codex/skills/repo-harness`
|
|
213
|
-
- Codex compatibility fallback alias : `~/.codex/skills/repo-harness-skill`
|
|
214
213
|
|
|
215
214
|
`~/Projects/repo-harness` est l'unique source of truth éditable. Les chemins
|
|
216
215
|
Claude/Codex locaux sont des runtime entrypoints adossés à des symlinks. Les
|
|
217
|
-
répertoires
|
|
218
|
-
`scripts/sync-codex-installed-copies.sh`.
|
|
216
|
+
répertoires des runtimes retirés `repo-harness-skill` et `project-initializer`
|
|
217
|
+
sont supprimés par `scripts/sync-codex-installed-copies.sh`.
|
|
219
218
|
|
|
220
219
|
### Prérequis minimaux
|
|
221
220
|
|
|
@@ -330,12 +329,12 @@ Guards courants :
|
|
|
330
329
|
|
|
331
330
|
## Release actuelle
|
|
332
331
|
|
|
333
|
-
- npm package : `repo-harness@0.
|
|
334
|
-
- Generated workflow
|
|
332
|
+
- npm package : `repo-harness@0.4.0`
|
|
333
|
+
- Generated workflow stamp : `repo-harness@0.4.0+template@0.4.0`
|
|
335
334
|
- GitHub repository : `Ancienttwo/repo-harness`
|
|
336
335
|
- Release history : [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
337
336
|
|
|
338
|
-
## Current Model
|
|
337
|
+
## Current Model
|
|
339
338
|
|
|
340
339
|
- Le question flow utilise **12 grouped decision points**, en inférant d'abord les harness defaults.
|
|
341
340
|
- Le plan menu est hiérarchisé : **Core Plans (A-F)** en priorité, **Custom Presets (G-K)** uniquement quand c'est nécessaire.
|
package/README.ja.md
CHANGED
|
@@ -159,8 +159,8 @@ flowchart TD
|
|
|
159
159
|
npx -y repo-harness init
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
npm package
|
|
163
|
-
|
|
162
|
+
npm package と generated workflow stamp は現在同じ `0.4.x` release line を使います。
|
|
163
|
+
`repo-harness init` は global bootstrap、`repo-harness update` は
|
|
164
164
|
repo-local refresh です。`repo-harness init` は CLI、user-level hook adapters、Waza、Mermaid、
|
|
165
165
|
brain root、CodeGraph MCP を設定し、退役した `scripts/setup-plugins.sh` の Claude plugin path は使いません。
|
|
166
166
|
|
|
@@ -175,13 +175,13 @@ bun src/cli/index.ts init
|
|
|
175
175
|
ローカルパスのモデル:
|
|
176
176
|
|
|
177
177
|
- ソースリポジトリ:`~/Projects/repo-harness`
|
|
178
|
-
- Claude skill
|
|
178
|
+
- Claude skill alias:`~/.claude/skills/repo-harness`
|
|
179
179
|
- Codex discoverable skill alias:`~/.codex/skills/repo-harness`
|
|
180
|
-
- Codex compatibility fallback alias:`~/.codex/skills/repo-harness-skill`
|
|
181
180
|
|
|
182
181
|
`~/Projects/repo-harness` が唯一の編集可能な source of truth です。ローカルの Claude/Codex パスは
|
|
183
|
-
symlink に裏打ちされた runtime entrypoint です。退役した `
|
|
184
|
-
`
|
|
182
|
+
symlink に裏打ちされた runtime entrypoint です。退役した `repo-harness-skill` と
|
|
183
|
+
`project-initializer` の runtime ディレクトリは
|
|
184
|
+
`scripts/sync-codex-installed-copies.sh` によって削除されます。
|
|
185
185
|
|
|
186
186
|
### 最小の前提条件
|
|
187
187
|
|
|
@@ -293,12 +293,12 @@ hook がブロックしたときは、まず terminal の構造化された出
|
|
|
293
293
|
|
|
294
294
|
## 現在の Release
|
|
295
295
|
|
|
296
|
-
- npm package:`repo-harness@0.
|
|
297
|
-
- Generated workflow
|
|
296
|
+
- npm package:`repo-harness@0.4.0`
|
|
297
|
+
- Generated workflow stamp:`repo-harness@0.4.0+template@0.4.0`
|
|
298
298
|
- GitHub repository:`Ancienttwo/repo-harness`
|
|
299
299
|
- Release history:[`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
300
300
|
|
|
301
|
-
## Current Model
|
|
301
|
+
## Current Model
|
|
302
302
|
|
|
303
303
|
- Question flow は **12 grouped decision points** を使い、まず harness defaults を推論します。
|
|
304
304
|
- Plan menu は階層化されています。**Core Plans (A-F)** を優先し、**Custom Presets (G-K)** は必要なときだけ現れます。
|
package/README.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
Repo-local agentic development harness CLI and skill runtime for Claude/Codex
|
|
8
8
|
workflows. The npm package and primary command are now `repo-harness`.
|
|
9
|
-
`repo-harness-skill`
|
|
10
|
-
|
|
9
|
+
The legacy `repo-harness-skill` and `project-initializer` install paths are
|
|
10
|
+
retired and removed by installed-copy sync.
|
|
11
11
|
Repository: `https://github.com/Ancienttwo/repo-harness`
|
|
12
12
|
|
|
13
13
|
[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md) | [Español](README.es.md)
|
|
@@ -34,30 +34,25 @@ This repository now dogfoods its own tasks-first contract. It is both:
|
|
|
34
34
|
read a 1KB capability contract or query the index instead of spending thousands of
|
|
35
35
|
tokens rediscovering structure.
|
|
36
36
|
|
|
37
|
-
## What's New in 0.
|
|
38
|
-
|
|
39
|
-
- **
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- **
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- **
|
|
55
|
-
|
|
56
|
-
`effectiveness_authority`, so dry-run smoke output cannot be mistaken for
|
|
57
|
-
release-grade skill effectiveness proof.
|
|
58
|
-
- **Tooling freshness.** The self-host CodeGraph dev dependency is refreshed to
|
|
59
|
-
`0.9.9`, and gbrain readiness probes try `doctor --json --fast` before the
|
|
60
|
-
full doctor path.
|
|
37
|
+
## What's New in 0.4.0
|
|
38
|
+
|
|
39
|
+
- **Loop-engine evidence surfaces.** `repo-harness-hook state-snapshot --json`,
|
|
40
|
+
the NL decision-table reference, route A/B evals, and the cutover gate make
|
|
41
|
+
prompt-routing experiments measurable while keeping the TypeScript classifier
|
|
42
|
+
authoritative until evidence says otherwise.
|
|
43
|
+
- **Architecture queue gate.** `scripts/architecture-queue.sh`,
|
|
44
|
+
`scripts/check-architecture-sync.sh`, and the expanded architecture event
|
|
45
|
+
helper replace the retired append-only drift script with a derived request
|
|
46
|
+
index that can gate stale architecture state.
|
|
47
|
+
- **Contract delegation pilot.** Contract templates now include
|
|
48
|
+
`budget`, `permission_scope`, and `roles`, and `scripts/contract-run.ts`
|
|
49
|
+
can run explicit worker/verifier child commands against contract exit
|
|
50
|
+
criteria.
|
|
51
|
+
- **Heartbeat triage.** `scripts/heartbeat-triage.sh` records scheduled
|
|
52
|
+
workflow checks, sprint-next signals, and architecture request state into the
|
|
53
|
+
repo-local triage inbox.
|
|
54
|
+
- **Workflow asset sync.** New helpers, docs, tests, and generated-repo assets
|
|
55
|
+
keep the self-host runtime and installed template copies aligned.
|
|
61
56
|
|
|
62
57
|
## What repo-harness Does
|
|
63
58
|
|
|
@@ -87,19 +82,28 @@ The design has three layers:
|
|
|
87
82
|
`.ai/harness/`, helper scripts, and `.ai/hooks/`.
|
|
88
83
|
3. **Host adapters**: user-level `~/.claude/settings.json` and
|
|
89
84
|
`~/.codex/hooks.json` route Claude/Codex events into `repo-harness-hook`.
|
|
90
|
-
The hook entrypoint exits silently for non-opt-in repos
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
The hook entrypoint exits silently for non-opt-in repos. For opted-in repos,
|
|
86
|
+
it resolves hooks central-first through the packaged install or
|
|
87
|
+
`~/.repo-harness/hooks/`, with repo policy able to pin self-host development
|
|
88
|
+
back to `.ai/hooks/*`.
|
|
93
89
|
|
|
94
90
|
For `UserPromptSubmit`, the public adapter contract stays
|
|
95
91
|
`repo-harness-hook UserPromptSubmit --route default`. The CLI route registry
|
|
96
92
|
dispatches that route to `.ai/hooks/prompt-guard.sh`. The shell hook remains the
|
|
97
93
|
repo-local adapter for host JSON parsing, workflow file reads, capture side
|
|
98
|
-
effects,
|
|
99
|
-
|
|
100
|
-
`
|
|
101
|
-
|
|
102
|
-
the
|
|
94
|
+
effects, and host-safe stdout/stderr. It pipes the prompt text into
|
|
95
|
+
`repo-harness-hook prompt-guard-decide`, where every prompt-text intent
|
|
96
|
+
classifier (Unicode-aware, `src/cli/hook/prompt-intents.ts`) and the
|
|
97
|
+
`intent x plan state` decision table live; the engine returns one verdict JSON
|
|
98
|
+
line with the action, the classified intent facts, and derived strings. The
|
|
99
|
+
shell keeps no duplicate classifier or fallback decision table — when the
|
|
100
|
+
engine is unreachable the prompt layer degrades to a one-shot advisory.
|
|
101
|
+
|
|
102
|
+
Prompt-layer plan/spec/contract gates are advisory routing. Hard enforcement
|
|
103
|
+
lives at the edit boundary: `pre-edit-guard.sh` blocks implementation edits
|
|
104
|
+
unless the active plan is Approved/Executing (policy
|
|
105
|
+
`.guards.edit_plan_gate`: enforce | advice | off). Done-claim gates keep
|
|
106
|
+
blocking because they verify file-backed completion evidence, not language.
|
|
103
107
|
|
|
104
108
|
The core invariant is that durable truth lives in the repo, not in a chat
|
|
105
109
|
thread. Hooks are accelerators and guardrails; the authority remains the
|
|
@@ -108,14 +112,26 @@ file-backed plan, contract, review, checks, and handoff artifacts.
|
|
|
108
112
|
## Task Workflow: Plan to Closeout
|
|
109
113
|
|
|
110
114
|
The diagram below assumes the harness is already installed in the repo. It shows
|
|
111
|
-
the normal
|
|
115
|
+
the normal lifecycle from a program sprint backlog down to one contract task:
|
|
116
|
+
draft or select the task, project it into execution files, check out the
|
|
112
117
|
contract worktree when policy requires it, implement under hooks, verify, review,
|
|
113
|
-
and close out.
|
|
118
|
+
complete the sprint task when applicable, and close out. The 0.4.0 loop-system
|
|
119
|
+
surfaces add scheduled heartbeat discovery, state-snapshot/eval evidence for
|
|
120
|
+
routing changes, architecture queue freshness, and optional contract-run
|
|
121
|
+
delegation without changing the file-backed authority model.
|
|
114
122
|
|
|
115
123
|
```mermaid
|
|
116
124
|
flowchart TD
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
Program["Program goal or release theme"] --> Sprint{"Sprint layer needed?"}
|
|
126
|
+
Sprint -->|yes| SprintDoc["Sprint PRD + backlog<br/>tasks/sprints/*.sprint.md"]
|
|
127
|
+
SprintDoc --> NextTask["Select next sprint task<br/>sprint-backlog.sh next"]
|
|
128
|
+
Sprint -->|no| UserTask["User task or planning prompt"]
|
|
129
|
+
Heartbeat["Heartbeat triage<br/>scripts/heartbeat-triage.sh<br/>.ai/harness/triage/"] --> UserTask
|
|
130
|
+
NextTask --> UserTask
|
|
131
|
+
|
|
132
|
+
UserTask --> Discovery["Due diligence<br/>P1 map, P2 trace, P3 decision"]
|
|
133
|
+
Discovery --> LoopEvidence["Loop evidence when routing changes<br/>state-snapshot --json<br/>route-nl-vs-ts / cutover gate"]
|
|
134
|
+
LoopEvidence --> PlanDraft["Draft plan<br/>plans/plan-*.md"]
|
|
119
135
|
PlanDraft --> PlanReview{"Plan ready for execution?"}
|
|
120
136
|
PlanReview -->|no| Refine["Refine plan, scope, evidence contract"]
|
|
121
137
|
Refine --> PlanDraft
|
|
@@ -123,22 +139,28 @@ flowchart TD
|
|
|
123
139
|
|
|
124
140
|
Approve --> Project["Project plan into execution<br/>capture-plan.sh --execute<br/>or plan-to-todo.sh --plan"]
|
|
125
141
|
Project --> Active["Active markers<br/>.ai/harness/active-plan<br/>.ai/harness/active-worktree"]
|
|
142
|
+
Project --> SprintActive["Sprint projection<br/>active-sprint marker<br/>tasks/current.md"]
|
|
126
143
|
Project --> Contract["Sprint contract<br/>tasks/contracts/YYYYMMDD-HHMM-task-slug.contract.md"]
|
|
127
144
|
Project --> ReviewFile["Review file<br/>tasks/reviews/YYYYMMDD-HHMM-task-slug.review.md"]
|
|
128
145
|
Project --> Notes["Task notes<br/>tasks/notes/YYYYMMDD-HHMM-task-slug.notes.md"]
|
|
129
146
|
|
|
130
|
-
Contract -->
|
|
147
|
+
Contract --> Delegation["Delegation contract<br/>budget / permission_scope / roles"]
|
|
148
|
+
Delegation --> Delegate{"Use contract-run delegation?"}
|
|
149
|
+
Delegate -->|yes| ContractRun["Worker/verifier child run<br/>scripts/contract-run.ts"]
|
|
150
|
+
Delegate -->|no| WorktreePolicy{"Contract worktree required?"}
|
|
131
151
|
WorktreePolicy -->|yes| Checkout["Checkout isolated worktree<br/>contract-worktree.sh start --plan<br/>branch codex/task-slug"]
|
|
132
152
|
WorktreePolicy -->|no| CurrentTree["Use current worktree<br/>small or explicitly allowed slice"]
|
|
133
153
|
Checkout --> Implement
|
|
134
154
|
CurrentTree --> Implement
|
|
155
|
+
ContractRun --> Changes
|
|
135
156
|
|
|
136
157
|
Implement["Edit and run commands"] --> PreHooks["Pre-edit guards<br/>PlanStatusGuard, ContractScopeGuard, WorktreeGuard"]
|
|
137
158
|
PreHooks -->|blocked| ScopeFix["Fix plan, contract, worktree, or scope"]
|
|
138
159
|
ScopeFix --> Implement
|
|
139
160
|
PreHooks -->|allowed| Changes["Code, docs, tests, or config changes"]
|
|
140
161
|
Changes --> PostHooks["Post-edit and post-bash hooks<br/>trace, drift request, handoff, check evidence"]
|
|
141
|
-
PostHooks -->
|
|
162
|
+
PostHooks --> ArchQueue["Architecture queue<br/>architecture-queue.sh record/reindex<br/>check-architecture-sync.sh"]
|
|
163
|
+
ArchQueue --> Verify["Run verification<br/>tests plus repo workflow checks"]
|
|
142
164
|
|
|
143
165
|
Verify --> Checks["Structured evidence<br/>.ai/harness/checks/latest.json<br/>.ai/harness/runs/*.json"]
|
|
144
166
|
Checks --> CheckReview["Evaluator review<br/>Waza /check -> review file"]
|
|
@@ -146,7 +168,10 @@ flowchart TD
|
|
|
146
168
|
External --> DoneGate{"Contract, checks, review, and acceptance pass?"}
|
|
147
169
|
DoneGate -->|no| Repair["Repair failing evidence or implementation"]
|
|
148
170
|
Repair --> Implement
|
|
149
|
-
DoneGate -->|yes|
|
|
171
|
+
DoneGate -->|yes| SprintComplete{"Sprint task active?"}
|
|
172
|
+
SprintComplete -->|yes| MarkSprint["Mark backlog item complete<br/>sprint-backlog.sh complete-task"]
|
|
173
|
+
SprintComplete -->|no| Closeout["Closeout<br/>scripts/contract-worktree.sh finish"]
|
|
174
|
+
MarkSprint --> Closeout
|
|
150
175
|
|
|
151
176
|
Closeout --> Commit["Commit contract branch"]
|
|
152
177
|
Commit --> Merge["Fast-forward target branch"]
|
|
@@ -183,14 +208,12 @@ npx -y repo-harness update
|
|
|
183
208
|
repository to install or refresh workflow files, hook assets, host adapters,
|
|
184
209
|
skill aliases, and repo-local verification surfaces from the current npm package.
|
|
185
210
|
|
|
186
|
-
The npm package
|
|
187
|
-
|
|
211
|
+
The npm package and generated workflow stamp now share the `0.4.x` release line.
|
|
212
|
+
The `0.4.0` package keeps first-run
|
|
188
213
|
global bootstrap (`repo-harness init`) separate from repo-local refresh
|
|
189
|
-
(`repo-harness update`)
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
being mistaken for execution, and adds copied-hook fallback, readiness checks,
|
|
193
|
-
and skill-eval authority reporting.
|
|
214
|
+
(`repo-harness update`) while adding the loop-engine state snapshot, architecture
|
|
215
|
+
queue gate, contract delegation pilot, heartbeat triage helper, and generated
|
|
216
|
+
asset sync for those workflow surfaces.
|
|
194
217
|
These sit on top of the renamed `repo-harness` CLI, user-level hook
|
|
195
218
|
adapter bootstrap, AI-native scaffold overlays, the typed prompt-guard decision
|
|
196
219
|
engine, plan-stem task artifact naming, `REPO_HARNESS_*` runtime aliases, Waza
|
|
@@ -207,16 +230,14 @@ bun src/cli/index.ts update
|
|
|
207
230
|
Local path model:
|
|
208
231
|
|
|
209
232
|
- Source repo: `~/Projects/repo-harness`
|
|
210
|
-
- Claude skill
|
|
233
|
+
- Claude skill alias: `~/.claude/skills/repo-harness`
|
|
211
234
|
- Codex discoverable skill alias: `~/.codex/skills/repo-harness`
|
|
212
|
-
- Codex compatibility fallback alias: `~/.codex/skills/repo-harness-skill`
|
|
213
235
|
|
|
214
236
|
The `~/Projects/repo-harness` repo is the only editable source of truth. Local
|
|
215
237
|
Claude/Codex paths are symlink-backed runtime entrypoints. Only
|
|
216
238
|
`~/.codex/skills/repo-harness` should expose `SKILL.md` and
|
|
217
|
-
`assets/skill-commands
|
|
218
|
-
|
|
219
|
-
The retired `project-initializer` directories under `~/.codex/skills` and
|
|
239
|
+
`assets/skill-commands/`. The retired `repo-harness-skill` and
|
|
240
|
+
`project-initializer` directories under `~/.codex/skills` and
|
|
220
241
|
`~/.claude/skills` are deleted by `scripts/sync-codex-installed-copies.sh`.
|
|
221
242
|
|
|
222
243
|
### Minimum prerequisites
|
|
@@ -274,16 +295,29 @@ before applying anything.
|
|
|
274
295
|
- Repo-local `.claude/settings.json` and `.codex/hooks.json` hook adapters are legacy project-level config and should be retired during migration.
|
|
275
296
|
- Codex must mark `~/.codex/hooks.json` as trusted in Codex Settings before those hooks run.
|
|
276
297
|
- Debug in this order: user-level adapter config -> `repo-harness-hook` (or fallback `repo-harness hook`) -> route registry -> `.ai/hooks/*`.
|
|
298
|
+
- If `repo-harness-hook` reports `.ai/hooks` drift, refresh the repo-local copy with `repo-harness update --repo <root>`.
|
|
277
299
|
|
|
278
|
-
`SessionStart` runs two ordered scripts before
|
|
300
|
+
`SessionStart` resolves hooks central-first, then runs two ordered scripts before
|
|
301
|
+
work begins:
|
|
279
302
|
|
|
280
303
|
```mermaid
|
|
281
304
|
flowchart LR
|
|
282
|
-
SessionStart["Claude/Codex SessionStart"] -->
|
|
305
|
+
SessionStart["Claude/Codex SessionStart"] --> Adapter["user-level adapter"]
|
|
306
|
+
Adapter --> Entry["repo-harness-hook SessionStart --route default"]
|
|
307
|
+
Entry --> Source{"hook source"}
|
|
308
|
+
Source -->|central default| Central["packaged hooks<br/>or ~/.repo-harness/hooks"]
|
|
309
|
+
Source -->|repo policy pin| Repo["repo .ai/hooks<br/>self-host development"]
|
|
310
|
+
Central --> Ctx["session-start-context.sh<br/>resume + sprint + handoff context"]
|
|
311
|
+
Repo --> Ctx
|
|
283
312
|
Ctx --> Sec["security-sentinel.sh<br/>read-only config scan, fingerprint-gated"]
|
|
284
313
|
Sec --> SSOut["SessionStart additionalContext<br/>prior-session state + SecurityConfig findings"]
|
|
285
314
|
```
|
|
286
315
|
|
|
316
|
+
`SessionStart` and `Stop` hooks are advisory for missing repo-local scripts: stale
|
|
317
|
+
repos get a drift warning instead of a startup failure. Required guard routes,
|
|
318
|
+
including edit and prompt gates, still fail closed when their scripts are
|
|
319
|
+
missing.
|
|
320
|
+
|
|
287
321
|
Prompt guard has one extra internal step:
|
|
288
322
|
|
|
289
323
|
```mermaid
|
|
@@ -292,15 +326,15 @@ flowchart LR
|
|
|
292
326
|
Adapter --> CLI["repo-harness-hook UserPromptSubmit --route default"]
|
|
293
327
|
CLI --> Route["route registry"]
|
|
294
328
|
Route --> Shell[".ai/hooks/prompt-guard.sh"]
|
|
295
|
-
Shell
|
|
296
|
-
Decision
|
|
297
|
-
Action --> Shell
|
|
329
|
+
Shell -->|"stdin {prompt}"| Decision["repo-harness-hook prompt-guard-decide<br/>TypeScript classifiers + decision table"]
|
|
330
|
+
Decision -->|"verdict JSON<br/>action + intent facts + derived"| Shell
|
|
298
331
|
Shell --> RouteHint["Waza route hint<br/>explicit think/planning matched first → /think"]
|
|
299
|
-
Shell --> HostOutput["host-safe
|
|
332
|
+
Shell --> HostOutput["host-safe advice, done gate, or capture output"]
|
|
300
333
|
```
|
|
301
334
|
|
|
302
|
-
The shell layer
|
|
303
|
-
|
|
335
|
+
The shell layer owns filesystem authority and side effects. TypeScript owns all
|
|
336
|
+
prompt-text classification plus the `intent x plan state` decision table.
|
|
337
|
+
Plan-state blocks render at the PreToolUse edit layer, not here.
|
|
304
338
|
|
|
305
339
|
## Hook Failure Playbook
|
|
306
340
|
|
|
@@ -313,7 +347,7 @@ fields are `guard`, `reason`, `fix`, `failure_class`, and `run_id`.
|
|
|
313
347
|
|
|
314
348
|
Most common guards:
|
|
315
349
|
|
|
316
|
-
- `PlanStatusGuard
|
|
350
|
+
- `PlanStatusGuard` (edit layer): an implementation edit was attempted with no active plan, or the plan is not ready to execute; the prompt layer emits the same guard name as advisory guidance
|
|
317
351
|
- `ContractGuard`: approved execution has not yet produced the contract/review/notes scaffold
|
|
318
352
|
- `ContractGuard`: completion was claimed before the task contract passed
|
|
319
353
|
- `WorktreeGuard`: writes were attempted in the primary worktree while linked worktrees are enforced
|
|
@@ -330,12 +364,12 @@ Most common guards:
|
|
|
330
364
|
|
|
331
365
|
## Current Release
|
|
332
366
|
|
|
333
|
-
- npm package: `repo-harness@0.
|
|
334
|
-
- Generated workflow
|
|
367
|
+
- npm package: `repo-harness@0.4.0`
|
|
368
|
+
- Generated workflow stamp: `repo-harness@0.4.0+template@0.4.0`
|
|
335
369
|
- GitHub repository: `Ancienttwo/repo-harness`
|
|
336
370
|
- Release history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
337
371
|
|
|
338
|
-
## Current Model
|
|
372
|
+
## Current Model
|
|
339
373
|
|
|
340
374
|
- Question flow uses **12 grouped decision points** with harness defaults inferred first.
|
|
341
375
|
- Plan menu is tiered:
|
|
@@ -402,6 +436,7 @@ Source-owned command facades live in `assets/skill-commands/`. They keep host
|
|
|
402
436
|
skill discovery compatible while the CLI and hooks own execution:
|
|
403
437
|
|
|
404
438
|
- Planning and review: `repo-harness-plan`, `repo-harness-review`, `repo-harness-autoplan`
|
|
439
|
+
- Sprint program layer: `repo-harness-sprint` (PRD + ordered backlog in `tasks/sprints/`, executed task-by-task through the contract flow)
|
|
405
440
|
- Repo workflow actions: `repo-harness-ship`, `repo-harness-init`, `repo-harness-migrate`, `repo-harness-upgrade`, `repo-harness-capability`, `repo-harness-architecture`, `repo-harness-handoff`, `repo-harness-deploy`, `repo-harness-repair`, `repo-harness-check`
|
|
406
441
|
- Branch project creation command: `repo-harness-scaffold`
|
|
407
442
|
|
|
@@ -435,11 +470,9 @@ passes. These commands call existing repo-local helpers and keep their scope
|
|
|
435
470
|
narrow instead of refreshing the full harness.
|
|
436
471
|
|
|
437
472
|
Codex installed-copy rule: only `~/.codex/skills/repo-harness` exposes the root
|
|
438
|
-
skill and `repo-harness-*` command facades. The
|
|
439
|
-
`~/.codex/skills
|
|
440
|
-
|
|
441
|
-
`~/.codex/skills/project-initializer` and `~/.claude/skills/project-initializer`
|
|
442
|
-
directories are removed during sync.
|
|
473
|
+
skill and `repo-harness-*` command facades. The retired `repo-harness-skill`
|
|
474
|
+
and `project-initializer` directories under `~/.codex/skills` and
|
|
475
|
+
`~/.claude/skills` are removed during sync.
|
|
443
476
|
|
|
444
477
|
After cloning or moving this source repo, rebuild the local runtime aliases with:
|
|
445
478
|
|