@pieerry/harness-kit 3.1.0 → 3.1.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.
@@ -30,4 +30,13 @@ Sensors: .claude/plugins/product-manager/sensors/prd-structure.md, .claude/plugi
30
30
 
31
31
  Evals: .claude/plugins/product-manager/evals/prd-quality.md, .claude/plugins/product-manager/evals/prd-readiness.md.
32
32
 
33
- After save reply: PRD saved at {path}. Score: {N}/10.
33
+ After save, reply with this exact shape (name the actual sensors/evals/guides that ran, do not abbreviate):
34
+
35
+ ```
36
+ PRD saved at {path}.
37
+ sensors: prd-structure ok, prd-acceptance-criteria ok
38
+ eval: prd-quality {N}/10, prd-readiness {N}/10
39
+ guides: product-guidelines.md, prd-guidelines.md, writing-style.md, templates/prd.md
40
+ refs: business-info.md, squads/{squad}/context.md
41
+ next: /product-manager:prp
42
+ ```
@@ -34,4 +34,13 @@ Sensors: .claude/plugins/product-manager/sensors/prp-structure.md, .claude/plugi
34
34
 
35
35
  Evals: .claude/plugins/product-manager/evals/prp-quality.md, .claude/plugins/product-manager/evals/prp-context-readiness.md.
36
36
 
37
- After save reply: PRP saved at {path}. Score: {N}/10. Ready for handoff.
37
+ After save, reply with this exact shape (name the actual sensors/evals/guides that ran):
38
+
39
+ ```
40
+ PRP saved at {path}.
41
+ sensors: prp-structure ok, prp-context-quality ok, prp-links ok
42
+ eval: prp-quality {N}/10, prp-context-readiness {N}/10
43
+ guides: prp-guidelines.md, writing-style.md, templates/prp.md
44
+ refs: prd/{feature_id}.md, {target repo paths probed}
45
+ next: /sse:plan (ready for handoff)
46
+ ```
@@ -11,21 +11,27 @@ Run end to end.
11
11
 
12
12
  Follow .claude/plugins/product-manager/guides/pipeline.md. Read .claude/agents/product-manager.md for inputs and rules.
13
13
 
14
- Return format:
14
+ Return format. Name every sensor, eval, and guide that ran. Generic summaries are not acceptable — list specifics so the user sees what was checked and what was loaded.
15
15
 
16
16
  ```
17
17
  Pipeline complete.
18
18
 
19
19
  PRD: .claude/plugins/product-manager/outputs/prd/{path}
20
- sensors: passed (attempts: N)
21
- eval: {score}/10
20
+ sensors: prd-structure ok, prd-acceptance-criteria ok ({sub-checks})
21
+ eval: prd-quality {score}/10, prd-readiness {score}/10 (attempts: N)
22
+ guides: product-guidelines.md, prd-guidelines.md, writing-style.md, templates/prd.md
23
+ refs: business-info.md, squads/{squad}/context.md
22
24
 
23
25
  PRP: .claude/plugins/product-manager/outputs/prp/{path}
24
- sensors: passed (attempts: N)
25
- eval: {score}/10
26
+ sensors: prp-structure ok, prp-context-quality ok, prp-links ok
27
+ eval: prp-quality {score}/10, prp-context-readiness {score}/10 (attempts: N)
28
+ guides: prp-guidelines.md, writing-style.md, templates/prp.md
29
+ refs: prd/{feature_id}.md, target repo paths probed
26
30
 
27
- Confluence: {published | skipped, reason}
31
+ Confluence: {published to {space-key}: {url} | skipped, reason}
28
32
 
29
33
  Blockers:
30
34
  - {file:line, issue, fix}
31
35
  ```
36
+
37
+ If a phase has no sensors/eval/guides/refs, omit that line rather than printing an empty one.
@@ -46,4 +46,14 @@ Append approval marker when all gates pass:
46
46
  <!-- approved: {YYYY-MM-DD} -->
47
47
  ```
48
48
 
49
- Reply: Dev complete. {N} files changed, {M} commits. Next /sse:test.
49
+ After approval, reply with this exact shape (name the actual sensors/guides that ran):
50
+
51
+ ```
52
+ Dev complete. branch {branch}.
53
+ files changed: {N}
54
+ commits: {M} ({short-sha}, {short-sha}, ...)
55
+ sensors: code-conventions ok, test-coverage ok
56
+ guides: coding-style.md, commit-style.md, skills/{area}/SKILL.md
57
+ refs: plan/{feature_id}.md, conventions/{area}.md
58
+ next: /sse:test
59
+ ```
@@ -32,4 +32,13 @@ Sensors: .claude/plugins/staff-software-engineer/sensors/plan-structure.md.
32
32
 
33
33
  Evals: .claude/plugins/staff-software-engineer/evals/plan-quality.md.
34
34
 
35
- After save reply: Plan saved at {path}. Score: {N}/10.
35
+ After save, reply with this exact shape (name the actual sensors/evals/guides that ran):
36
+
37
+ ```
38
+ Plan saved at {path}.
39
+ sensors: plan-structure ok ({sub-checks: problem, files, gates, scope})
40
+ eval: plan-quality {N}/10
41
+ guides: pipeline.md, coding-style.md, skills/{area}/SKILL.md
42
+ refs: prp/{feature_id}.md, conventions/{area}.md
43
+ next: /sse:dev
44
+ ```
@@ -42,4 +42,13 @@ Append approval marker:
42
42
  <!-- approved: {YYYY-MM-DD} ready-for-handoff: true -->
43
43
  ```
44
44
 
45
- Reply: PR opened: {url}.
45
+ Reply with this exact shape:
46
+
47
+ ```
48
+ PR opened: {url}
49
+ title: {title}
50
+ draft: {yes|no}
51
+ guides: pr-template.md, commit-style.md
52
+ refs: plan/{feature_id}.md, dev/{feature_id}.md
53
+ next: request review (if draft, mark ready when checks pass)
54
+ ```
@@ -12,28 +12,39 @@ Run end to end.
12
12
 
13
13
  Follow .claude/plugins/staff-software-engineer/guides/pipeline.md for retry, approval markers, token accounting, and publish behavior.
14
14
 
15
- Return format:
15
+ Return format. Name every sensor, eval, and guide that ran. Generic summaries are not acceptable — list specifics so the user sees what was checked and what was loaded.
16
16
 
17
17
  ```
18
18
  Engineering pipeline complete.
19
19
 
20
20
  Plan: .claude/plugins/staff-software-engineer/outputs/plan/{path}
21
- sensors: passed (attempts: N)
22
- eval: {score}/10
21
+ sensors: {sensor-name} ok ({sub-check, sub-check, ...}), {sensor-name} ok
22
+ eval: {eval-name} {score}/10 (attempts: N)
23
+ guides: {guide-1.md}, {guide-2.md}, skills/{area}/SKILL.md
24
+ refs: prp/{feature_id}.md, conventions/{area}.md
23
25
 
24
26
  Dev: branch {branch}
25
27
  files changed: N
26
- commits: N
27
- gates: code-style ok, conventions ok
28
+ commits: N ({short-sha}, {short-sha}, ...)
29
+ sensors: code-conventions ok, test-coverage ok
30
+ guides: coding-style.md, commit-style.md, skills/{area}/SKILL.md
31
+ refs: plan/{feature_id}.md, conventions/{area}.md
28
32
 
29
33
  Test: .claude/plugins/staff-software-engineer/outputs/test/{path}
30
- passed: N, failed: M
34
+ command: {detected-test-command}
35
+ passed: N, failed: M
36
+ duration: {seconds}s
31
37
 
32
38
  PR: {url}
39
+ title: {title}
33
40
  draft: yes|no
41
+ guides: pr-template.md, commit-style.md
42
+ refs: plan/{feature_id}.md, dev/{feature_id}.md
34
43
 
35
- Confluence: {published | skipped, reason}
44
+ Confluence: {published to {space-key}: {url} | skipped, reason}
36
45
 
37
46
  Blockers:
38
47
  - {file:line, issue, fix}
39
48
  ```
49
+
50
+ If a phase has no sensors/eval/guides/refs, omit that line for that phase rather than printing an empty one.
@@ -37,4 +37,16 @@ Append approval marker when exit code is 0:
37
37
 
38
38
  If tests fail, return a blocker with the failing test names and a snippet of the failure output. Do not retry automatically; let the user decide.
39
39
 
40
- Reply: Tests {passed/failed}. {summary}.
40
+ Reply with this exact shape:
41
+
42
+ ```
43
+ Tests {passed|failed}.
44
+ command: {detected-test-command}
45
+ passed: {N}
46
+ failed: {M}
47
+ duration: {seconds}s
48
+ output: {path/to/test/output.md}
49
+ next: /sse:pr (if passed) | fix failing tests (if failed)
50
+ ```
51
+
52
+ If failed, append a `failures:` block listing each failing test name with a one-line snippet from the failure output.
@@ -162,6 +162,16 @@ def render_line():
162
162
  next_cmd = STAGE_TO_COMMAND.get(current, "?")
163
163
 
164
164
  shape = "+".join(pipeline)
165
+
166
+ # No work started yet: show full menu instead of locking to next stage
167
+ no_work_started = (
168
+ not fid
169
+ and not prev
170
+ and all(stages.get(s) == "pending" for s in pipeline)
171
+ )
172
+ if no_work_started:
173
+ return f"{name} [{shape}] · /product-manager:run · /sse:run · /pipeline:continue · /pipeline:reset"
174
+
165
175
  if prev:
166
176
  return f"{name} [{shape}] · {prev} approved · {current} {cur_state} · next {next_cmd}"
167
177
  return f"{name} [{shape}] · {current} {cur_state} · next {next_cmd}"
@@ -71,7 +71,8 @@
71
71
  "Bash(git -C /Users/pierryborges/Development/harness-kit diff --stat)",
72
72
  "Bash(rm -rf /tmp/hk-fresh /tmp/hk-existing)",
73
73
  "Bash(npm whoami *)",
74
- "Bash(npm publish *)"
74
+ "Bash(npm publish *)",
75
+ "Bash(git tag *)"
75
76
  ]
76
77
  }
77
78
  }
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Claude Code harness for product + engineering delivery.
6
6
  From idea to merged PR, one pipeline.
7
7
 
8
- [![Version](https://img.shields.io/badge/version-3.1.0-blue.svg)](VERSION)
8
+ [![Version](https://img.shields.io/badge/version-3.1.2-blue.svg)](VERSION)
9
9
  [![Claude Code](https://img.shields.io/badge/Claude%20Code-plugin-8b5cf6.svg)](https://claude.ai/code)
10
10
  [![Plugins](https://img.shields.io/badge/plugins-2-success.svg)](#layout)
11
11
  [![Pipeline](https://img.shields.io/badge/stages-6-informational.svg)](#usage)
@@ -15,7 +15,7 @@ From idea to merged PR, one pipeline.
15
15
 
16
16
  ![harness-kit demo](demo/preview.gif)
17
17
 
18
- <sub>100s walkthrough · install → 6 commands → PR → resume. Each command scene shows the active **guide · ref · sensor · eval**. Dedicated scenes for the dynamic status bar and `/pipeline:continue` resume flow.</sub>
18
+ <sub>110s walkthrough · install → 6 commands → final summary → resume. Each command scene shows the active **guide · ref · sensor · eval**. Dedicated scenes for the dynamic status bar, the named-everything final summary, and `/pipeline:continue` resume flow.</sub>
19
19
 
20
20
  </div>
21
21
 
@@ -46,7 +46,9 @@ npm i -g @pieerry/harness-kit
46
46
  hk install
47
47
  ```
48
48
 
49
- `hk install` writes plugins into `.claude/plugins/`, drops the status-line hook in `.claude/hooks/`, generates `.claude/settings.json`, and scaffolds `.claude/conventions/` for your project overrides. Run it from the target repo (or pass an explicit `[target]`). Restart Claude Code after.
49
+ `hk install` writes plugins into `.claude/plugins/`, drops the status-line + pipeline-tracking hooks in `.claude/hooks/`, copies the pipeline state manager to `.claude/scripts/`, registers slash commands under `.claude/commands/`, generates `.claude/settings.json`, and scaffolds `.claude/conventions/` for your project overrides. Run it from the target repo (or pass an explicit `[target]`). Restart Claude Code after.
50
+
51
+ Reinstalling on top of an existing setup backs up the previous `settings.json` to `.claude/settings.json.bak.{timestamp}` before overwriting, so manual customizations are recoverable.
50
52
 
51
53
  CLI subcommands:
52
54
 
@@ -67,11 +69,20 @@ bash ~/.harness-kit/setup/install.sh
67
69
 
68
70
  ### Update
69
71
 
72
+ For npm installs:
73
+
70
74
  ```bash
75
+ npm i -g @pieerry/harness-kit@latest
71
76
  hk update
72
77
  ```
73
78
 
74
- Pulls latest source and reinstalls. Idempotent. Version is read from the package `VERSION` and recorded in your target at `.claude/.hk-version`.
79
+ For git-clone installs:
80
+
81
+ ```bash
82
+ hk update
83
+ ```
84
+
85
+ `hk update` pulls latest source (git installs only) and reinstalls. Idempotent. Version is read from the package `VERSION` and recorded in your target at `.claude/.hk-version`. npm users must bump the package first — `hk update` alone won't reach the registry.
75
86
 
76
87
  ### Usage
77
88
 
@@ -107,8 +118,19 @@ $ /product-manager:run
107
118
  > squad? billing
108
119
  > problem? invoice generation fails for multi-currency customers
109
120
  > ...
110
- PRD saved at outputs/prd/2026-05-12-billing-multi-currency.md. Score: 8.6/10.
111
- PRP saved at outputs/prp/2026-05-12-billing-multi-currency.md. Score: 8.4/10.
121
+ PRD saved at outputs/prd/2026-05-12-billing-multi-currency.md.
122
+ sensors: prd-structure ok, prd-acceptance-criteria ok
123
+ eval: prd-quality 8.6/10, prd-readiness 8.9/10
124
+ guides: prd-guidelines.md, writing-style.md, templates/prd.md
125
+ refs: business-info.md, squads/billing/context.md
126
+ next: /product-manager:prp
127
+
128
+ PRP saved at outputs/prp/2026-05-12-billing-multi-currency.md.
129
+ sensors: prp-structure ok, prp-context-quality ok, prp-links ok
130
+ eval: prp-quality 8.4/10, prp-context-readiness 9.0/10
131
+ guides: prp-guidelines.md, templates/prp.md
132
+ refs: prd/2026-05-12-billing-multi-currency.md
133
+ next: /sse:plan (ready for handoff)
112
134
  ```
113
135
 
114
136
  Engineering session in the target service repo:
@@ -117,12 +139,34 @@ Engineering session in the target service repo:
117
139
  $ /sse:run
118
140
  > source PRP? outputs/prp/2026-05-12-billing-multi-currency.md
119
141
  > area? backend
120
- Plan saved at outputs/plan/2026-05-12-billing-multi-currency.md. Score: 8.3/10.
121
- Dev complete. 5 files changed, 3 commits.
122
- Tests: 24 passed, 0 failed.
142
+ Plan saved at outputs/plan/2026-05-12-billing-multi-currency.md.
143
+ sensors: plan-structure ok (problem, files, gates, scope)
144
+ eval: plan-quality 8.3/10
145
+ guides: pipeline.md, coding-style.md, skills/backend/SKILL.md
146
+ refs: prp/2026-05-12-billing-multi-currency.md, conventions/backend.md
147
+ next: /sse:dev
148
+
149
+ Dev complete. branch feat/PROJ-123-multi-currency.
150
+ files changed: 5
151
+ commits: 3 (a1b2c3d, d4e5f6g, h7i8j9k)
152
+ sensors: code-conventions ok, test-coverage ok
153
+ guides: coding-style.md, commit-style.md, skills/backend/SKILL.md
154
+ next: /sse:test
155
+
156
+ Tests passed.
157
+ command: ./mvnw test
158
+ passed: 24, failed: 0
159
+ duration: 12.4s
160
+ next: /sse:pr
161
+
123
162
  PR opened: https://github.com/your-org/billing-service/pull/567
163
+ title: feat(PROJ-123): timezone-aware deadline check
164
+ draft: yes
165
+ guides: pr-template.md, commit-style.md
124
166
  ```
125
167
 
168
+ Every reply names the actual sensors that ran, evals with scores, and guides loaded — no generic "ok" lines. The `/sse:run` and `/product-manager:run` summaries aggregate the same shape across phases.
169
+
126
170
  Token usage is logged per phase to a shared JSON across both plugins. See the [product-manager README](.claude/plugins/product-manager/README.md#token-accounting) for the schema and query examples.
127
171
 
128
172
  ### Samples
@@ -197,7 +241,7 @@ Every stage in the pipeline runs the same loop. Same four ingredients, every tim
197
241
 
198
242
  Sensors are pass/fail (deterministic, fast). Evals are scored (LLM-judged, retried until ≥ threshold or max attempts). Approval markers (`<!-- approved: -->`) gate the next stage.
199
243
 
200
- The 85s demo above shows every command running with these artifacts loading live on the right panel.
244
+ The 110s demo above shows every command running with these artifacts loading live on the right panel — plus the final summary scene that names every sensor, eval, and guide per phase.
201
245
 
202
246
  ---
203
247
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.1.2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pieerry/harness-kit",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "Claude Code harness for product + engineering delivery. From idea to merged PR, one pipeline.",
5
5
  "author": "Space Metrics AI",
6
6
  "license": "MIT",