dev-harness-cli 1.0.5 → 1.2.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.
Files changed (45) hide show
  1. package/README.md +158 -230
  2. package/cli/commands/checkpoint.mjs +2 -2
  3. package/cli/commands/config.mjs +12 -12
  4. package/cli/commands/contract.mjs +10 -10
  5. package/cli/commands/detect-tool.mjs +5 -4
  6. package/cli/commands/init.mjs +10 -10
  7. package/cli/commands/learn.mjs +3 -3
  8. package/cli/commands/pause.mjs +1 -1
  9. package/cli/commands/phase.mjs +6 -6
  10. package/cli/commands/resume.mjs +3 -3
  11. package/cli/commands/rollback.mjs +9 -9
  12. package/cli/commands/set-mode.mjs +5 -5
  13. package/cli/commands/status.mjs +9 -9
  14. package/cli/commands/validate.mjs +7 -7
  15. package/cli/commands/worktree.mjs +6 -6
  16. package/cli/{harness-dev.mjs → dev-harness.mjs} +2 -2
  17. package/cli/lib/config-registry.mjs +2 -2
  18. package/cli/lib/contract.mjs +3 -3
  19. package/cli/lib/gates.mjs +11 -9
  20. package/cli/lib/help.mjs +28 -28
  21. package/cli/lib/paths.mjs +87 -8
  22. package/cli/lib/ralph-inner.mjs +2 -2
  23. package/cli/lib/ralph-outer.mjs +3 -3
  24. package/cli/lib/ralph-output.mjs +1 -1
  25. package/cli/lib/scaffold.mjs +18 -18
  26. package/cli/lib/state.mjs +1 -1
  27. package/cli/lib/templates.mjs +38 -1
  28. package/package.json +8 -4
  29. package/schema/feature-list.schema.json +63 -0
  30. package/templates/AGENTS.md +19 -15
  31. package/templates/ci/github-actions.yml +2 -2
  32. package/templates/ci/gitlab-ci.yml +2 -2
  33. package/templates/docs/agents/generator.md +1 -1
  34. package/templates/docs/agents/planner.md +1 -1
  35. package/templates/docs/agents/simplifier.md +1 -1
  36. package/templates/docs/phases/build.md +3 -3
  37. package/templates/docs/phases/define.md +3 -3
  38. package/templates/docs/phases/plan.md +3 -3
  39. package/templates/docs/phases/review.md +2 -2
  40. package/templates/docs/phases/ship.md +3 -3
  41. package/templates/docs/phases/simplify.md +3 -3
  42. package/templates/docs/phases/verify.md +2 -2
  43. package/templates/harness-config.json +42 -0
  44. package/templates/init.ps1 +1 -1
  45. package/templates/progress.md +18 -0
@@ -74,5 +74,5 @@ jobs:
74
74
  runs-on: ubuntu-latest
75
75
  steps:
76
76
  - uses: actions/checkout@v4
77
- - run: npm install -g @dev-harness/cli
78
- - run: harness-dev validate --json
77
+ - run: npm install -g dev-harness-cli
78
+ - run: dev-harness validate --json
@@ -54,6 +54,6 @@ gate:
54
54
  stage: gate
55
55
  image: node:lts
56
56
  script:
57
- - npm install -g @dev-harness/cli
58
- - harness-dev validate --json
57
+ - npm install -g dev-harness-cli
58
+ - dev-harness validate --json
59
59
  needs: [coverage]
@@ -10,4 +10,4 @@ You implement. You produce artifacts. You self-check.
10
10
  - In BUILD: implement ONE task at a time, then validate
11
11
  - In VERIFY: run the full test suite
12
12
  - In SIMPLIFY: adopt the Simplifier persona (see simplifier.md)
13
- - When done: call `harness-dev validate`
13
+ - When done: call `dev-harness validate`
@@ -9,5 +9,5 @@ You design the approach. You write criteria. You set scope.
9
9
  - Set exclusions explicitly ("We will NOT build X")
10
10
  - Hand off to Generator when criteria are clear
11
11
  - In DEFINE: interview the user, write PRD in specs/*.md
12
- - In PLAN: decompose features into tasks in feature_list.json
12
+ - In PLAN: decompose features into tasks in harness/features/feature-list.json
13
13
  - Review gate criteria with Evaluator before proceeding
@@ -10,4 +10,4 @@ You refactor. You clean. You never change behavior.
10
10
  - Break long functions (~40 line threshold)
11
11
  - Rename unclear variables
12
12
  - ⚠ All tests must still pass after your changes
13
- - Run `harness-dev validate` after each feature to confirm gate
13
+ - Run `dev-harness validate` after each feature to confirm gate
@@ -21,14 +21,14 @@ fresh context. Only when all features pass does the phase gate run.
21
21
  1. Read `progress.md`, `AGENTS.md`, `sprint-contract.md`.
22
22
  2. Pick next feature where `passes === false`.
23
23
  3. Implement the feature's tasks.
24
- 4. Run `harness-dev validate --feature <name> --task <id>` per task.
24
+ 4. Run `dev-harness validate --feature <name> --task <id>` per task.
25
25
  5. On pass: mark feature `passes: true`, commit, append lesson to `progress.md`.
26
26
  6. On fail (≤ `maxRetries`): retry with fresh context (git reset if `--git-ops`).
27
27
  7. On fail (> `maxRetries`): escalate to human.
28
28
 
29
29
  ## Exit Gate
30
30
 
31
- Run `harness-dev validate` — checks:
31
+ Run `dev-harness validate` — checks:
32
32
 
33
33
  - `config-exists`
34
34
  - `git-repo`
@@ -38,4 +38,4 @@ Run `harness-dev validate` — checks:
38
38
 
39
39
  ## Handoff
40
40
 
41
- On gate pass: `harness-dev phase verify` (Generator → Evaluator).
41
+ On gate pass: `dev-harness phase verify` (Generator → Evaluator).
@@ -12,7 +12,7 @@ feature list.
12
12
 
13
13
  ## Entry
14
14
 
15
- - `harness-config.json` exists (created by `harness-dev init`)
15
+ - `harness-config.json` exists (created by `dev-harness init`)
16
16
  - `AGENTS.md` present in project root
17
17
 
18
18
  ## Work
@@ -40,7 +40,7 @@ feature list.
40
40
 
41
41
  ## Exit Gate
42
42
 
43
- Run `harness-dev validate` — checks:
43
+ Run `dev-harness validate` — checks:
44
44
 
45
45
  - `config-exists`
46
46
  - `git-repo`
@@ -48,4 +48,4 @@ Run `harness-dev validate` — checks:
48
48
 
49
49
  ## Handoff
50
50
 
51
- On gate pass: `harness-dev phase plan` (Planner → continues as Planner for decomposition).
51
+ On gate pass: `dev-harness phase plan` (Planner → continues as Planner for decomposition).
@@ -20,11 +20,11 @@ verifiable acceptance criteria. The Sprint Contract is negotiated here.
20
20
  2. Decompose into features → tasks in `feature_list.json`.
21
21
  3. Planner proposes `sprint-contract.md` (scope, criteria, exclusions).
22
22
  4. Evaluator reviews; iterate until `**Status:** Agreed`.
23
- 5. Use `harness-dev contract propose` / `contract review --decision <agreed|needs-revision>`.
23
+ 5. Use `dev-harness contract propose` / `contract review --decision <agreed|needs-revision>`.
24
24
 
25
25
  ## Exit Gate
26
26
 
27
- Run `harness-dev validate` — checks:
27
+ Run `dev-harness validate` — checks:
28
28
 
29
29
  - `config-exists`
30
30
  - `git-repo`
@@ -33,4 +33,4 @@ Run `harness-dev validate` — checks:
33
33
 
34
34
  ## Handoff
35
35
 
36
- On gate pass: `harness-dev phase build` (Planner → Generator).
36
+ On gate pass: `dev-harness phase build` (Planner → Generator).
@@ -27,7 +27,7 @@ overall verdict: Accept / Revise / Block.
27
27
 
28
28
  ## Exit Gate
29
29
 
30
- Run `harness-dev validate` — checks:
30
+ Run `dev-harness validate` — checks:
31
31
 
32
32
  - `config-exists`
33
33
  - `git-repo`
@@ -39,4 +39,4 @@ Run `harness-dev validate` — checks:
39
39
 
40
40
  ## Handoff
41
41
 
42
- On gate pass: `harness-dev phase ship` (committee → release).
42
+ On gate pass: `dev-harness phase ship` (committee → release).
@@ -17,13 +17,13 @@ The release must be reproducible from a clean checkout.
17
17
 
18
18
  1. Update `CHANGELOG.md` with version, date, summary.
19
19
  2. Bump version in `package.json` / equivalent manifest.
20
- 3. Run full `harness-dev validate` — all gates must pass.
20
+ 3. Run full `dev-harness validate` — all gates must pass.
21
21
  4. Tag the release: `git tag -a v<x.y.z> -m "Release x.y.z"`.
22
22
  5. Open or merge the PR per project workflow.
23
23
 
24
24
  ## Exit Gate
25
25
 
26
- Run `harness-dev validate` — checks:
26
+ Run `dev-harness validate` — checks:
27
27
 
28
28
  - `config-exists`
29
29
  - `git-repo`
@@ -38,6 +38,6 @@ Run `harness-dev validate` — checks:
38
38
 
39
39
  ## Handoff
40
40
 
41
- On gate pass: pipeline complete. `harness-dev status` reports
41
+ On gate pass: pipeline complete. `dev-harness status` reports
42
42
  `Pipeline complete after "ship"`. Increment `pipelineIteration` and loop back
43
43
  to DEFINE for the next sprint, or stop if the project is done.
@@ -20,14 +20,14 @@ must not break the feature's acceptance criteria.
20
20
  1. Read `progress.md` and `AGENTS.md`.
21
21
  2. For each feature: review the implementation, propose deletions/renames.
22
22
  3. Apply simplifications.
23
- 4. Re-run `harness-dev validate --feature <name>` — criteria must still pass.
23
+ 4. Re-run `dev-harness validate --feature <name>` — criteria must still pass.
24
24
  5. On pass: commit, append lesson.
25
25
  6. On fail (≤ `maxRetries`): revert and retry.
26
26
  7. On fail (> `maxRetries`): escalate.
27
27
 
28
28
  ## Exit Gate
29
29
 
30
- Run `harness-dev validate` — checks:
30
+ Run `dev-harness validate` — checks:
31
31
 
32
32
  - `config-exists`
33
33
  - `git-repo`
@@ -37,4 +37,4 @@ Run `harness-dev validate` — checks:
37
37
 
38
38
  ## Handoff
39
39
 
40
- On gate pass: `harness-dev phase review` (Simplifier → multi-agent committee).
40
+ On gate pass: `dev-harness phase review` (Simplifier → multi-agent committee).
@@ -26,7 +26,7 @@ feature's acceptance criteria from the sprint contract and scores it against
26
26
 
27
27
  ## Exit Gate
28
28
 
29
- Run `harness-dev validate` — checks:
29
+ Run `dev-harness validate` — checks:
30
30
 
31
31
  - `config-exists`
32
32
  - `git-repo`
@@ -35,4 +35,4 @@ Run `harness-dev validate` — checks:
35
35
 
36
36
  ## Handoff
37
37
 
38
- On gate pass: `harness-dev phase simplify` (Evaluator → Simplifier).
38
+ On gate pass: `dev-harness phase simplify` (Evaluator → Simplifier).
@@ -0,0 +1,42 @@
1
+ {
2
+ "version": "1.0",
3
+ "stack": "{{stack}}",
4
+ "stackMeta": null,
5
+ "agentTool": null,
6
+ "mode": "copilot",
7
+ "currentPhase": null,
8
+ "paused": false,
9
+ "features": {
10
+ "remaining": 0,
11
+ "passing": 0,
12
+ "total": 0
13
+ },
14
+ "gates": {
15
+ "enabled": false,
16
+ "checks": ["all"]
17
+ },
18
+ "git": {
19
+ "autoCommit": false,
20
+ "autoTag": false,
21
+ "resetOnRetry": false,
22
+ "branch": null,
23
+ "clean": true,
24
+ "hasUpstream": false,
25
+ "lastCommitMessage": null
26
+ },
27
+ "phases": {
28
+ "enabled": ["define", "plan", "build", "verify", "review", "ship"]
29
+ },
30
+ "agents": {
31
+ "tone": {
32
+ "planner": "Analytical and precise. Define clear boundaries.",
33
+ "generator": "Focused and practical. Build what's specified, nothing more.",
34
+ "evaluator": "Skeptical and thorough. Accept only compelling evidence.",
35
+ "simplifier": "Relentless about clarity. Delete more than you add."
36
+ }
37
+ },
38
+ "maxRetries": 3,
39
+ "retryCount": 0,
40
+ "pipelineIteration": 0,
41
+ "gateHistory": []
42
+ }
@@ -94,4 +94,4 @@ switch ($Stack) {
94
94
  Write-Host " ✓ Setup verified" -ForegroundColor Green
95
95
 
96
96
  # ── Start ────────────────────────────────────────────────────────────────────
97
- Write-Host "`nSetup complete. Run: harness-dev phase define" -ForegroundColor Cyan
97
+ Write-Host "`nSetup complete. Run: dev-harness phase define" -ForegroundColor Cyan
@@ -0,0 +1,18 @@
1
+ # Progress: {{stackLabel}}
2
+
3
+ ## Session State
4
+
5
+ Current Phase: not started
6
+ Current Feature: —
7
+ Gate Status: pending
8
+ Next Action: —
9
+ Retry Count: 0/{{maxRetries}}
10
+
11
+ ## Lessons
12
+
13
+ <!-- Use \`dev-harness learn "lesson here"\` to add lessons. -->
14
+
15
+ ## Checkpoints
16
+
17
+ | Tag | Phase | Date | Notes |
18
+ |-----|-------|------|-------|