@pieerry/harness-kit 3.3.1 → 4.0.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 (87) hide show
  1. package/.claude/{plugins → agents}/product-manager/README.md +32 -30
  2. package/.claude/{plugins → agents}/product-manager/guides/examples/good-prp-example.md +2 -2
  3. package/.claude/{plugins → agents}/product-manager/guides/pipeline.md +7 -7
  4. package/.claude/{plugins → agents}/product-manager/sensors/prp-links.md +1 -1
  5. package/.claude/{plugins → agents}/product-manager/skills/prd/SKILL.md +2 -2
  6. package/.claude/{plugins → agents}/product-manager/skills/prp/SKILL.md +4 -4
  7. package/.claude/agents/product-manager.md +2 -2
  8. package/.claude/agents/staff-software-engineer/README.md +87 -0
  9. package/.claude/{plugins → agents}/staff-software-engineer/guides/conventions-override.md +3 -3
  10. package/.claude/{plugins → agents}/staff-software-engineer/guides/pipeline.md +4 -4
  11. package/.claude/{plugins → agents}/staff-software-engineer/sensors/dev-structure.md +2 -2
  12. package/.claude/{plugins → agents}/staff-software-engineer/sensors/pr-structure.md +3 -3
  13. package/.claude/{plugins → agents}/staff-software-engineer/sensors/test-structure.md +2 -2
  14. package/.claude/agents/staff-software-engineer.md +4 -4
  15. package/.claude/commands/pipeline/reset.md +1 -1
  16. package/.claude/commands/product-manager/prd.md +11 -11
  17. package/.claude/commands/product-manager/prp.md +12 -12
  18. package/.claude/commands/product-manager/run.md +4 -4
  19. package/.claude/commands/sse/dev.md +11 -11
  20. package/.claude/commands/sse/plan.md +11 -12
  21. package/.claude/commands/sse/pr.md +6 -7
  22. package/.claude/commands/sse/run.md +4 -4
  23. package/.claude/commands/sse/test.md +5 -5
  24. package/.claude/conventions/README.md +1 -1
  25. package/.claude/hooks/activity-pre-read.sh +4 -4
  26. package/.claude/hooks/status-line.sh +11 -11
  27. package/.claude/{plugins/product-manager/hooks → runtime/hooks/product-manager}/post-eval-prd.sh +11 -9
  28. package/.claude/{plugins/product-manager/hooks → runtime/hooks/product-manager}/post-eval-prp.sh +11 -9
  29. package/.claude/{plugins/product-manager/hooks → runtime/hooks/product-manager}/post-write-prd.sh +7 -5
  30. package/.claude/{plugins/product-manager/hooks → runtime/hooks/product-manager}/post-write-prp.sh +8 -6
  31. package/.claude/{plugins/product-manager/hooks → runtime/hooks/product-manager}/pre-prp-check.sh +5 -3
  32. package/.claude/{plugins/staff-software-engineer/hooks → runtime/hooks/staff-software-engineer}/post-eval-sse.sh +13 -11
  33. package/.claude/{plugins/staff-software-engineer/hooks → runtime/hooks/staff-software-engineer}/post-write-sse.sh +11 -9
  34. package/.claude/runtime/scripts/product-manager/__pycache__/confluence-publish.cpython-314.pyc +0 -0
  35. package/.claude/runtime/scripts/product-manager/__pycache__/link-validator.cpython-314.pyc +0 -0
  36. package/.claude/runtime/scripts/product-manager/__pycache__/sensor-runner.cpython-314.pyc +0 -0
  37. package/.claude/runtime/scripts/product-manager/__pycache__/token-phase.cpython-314.pyc +0 -0
  38. package/.claude/runtime/scripts/product-manager/confluence-publish.py +206 -0
  39. package/.claude/{plugins/product-manager/scripts → runtime/scripts/product-manager}/link-validator.py +1 -1
  40. package/.claude/{plugins/product-manager/scripts → runtime/scripts/product-manager}/token-phase.py +2 -2
  41. package/.claude/scripts/__pycache__/activity.cpython-314.pyc +0 -0
  42. package/.claude/scripts/__pycache__/pipeline.cpython-314.pyc +0 -0
  43. package/.claude/scripts/__pycache__/pr-monitor.cpython-314.pyc +0 -0
  44. package/.claude/scripts/pipeline.py +6 -6
  45. package/.claude/settings.json +7 -7
  46. package/.claude/settings.local.json +11 -3
  47. package/AGENTS.md +141 -0
  48. package/CLAUDE.md +9 -7
  49. package/README.md +88 -290
  50. package/VERSION +1 -1
  51. package/bin/hk.js +16 -8
  52. package/package.json +5 -3
  53. package/setup/install.sh +59 -40
  54. package/setup/update.sh +5 -0
  55. package/.claude/plugins/product-manager/scripts/confluence-publish.py +0 -205
  56. package/.claude/plugins/staff-software-engineer/README.md +0 -90
  57. /package/.claude/{plugins → agents}/product-manager/evals/prd-quality.md +0 -0
  58. /package/.claude/{plugins → agents}/product-manager/evals/prd-readiness.md +0 -0
  59. /package/.claude/{plugins → agents}/product-manager/evals/prp-context-readiness.md +0 -0
  60. /package/.claude/{plugins → agents}/product-manager/evals/prp-quality.md +0 -0
  61. /package/.claude/{plugins → agents}/product-manager/guides/examples/good-prd-example.md +0 -0
  62. /package/.claude/{plugins → agents}/product-manager/guides/prd-guidelines.md +0 -0
  63. /package/.claude/{plugins → agents}/product-manager/guides/product-guidelines.md +0 -0
  64. /package/.claude/{plugins → agents}/product-manager/guides/prp-guidelines.md +0 -0
  65. /package/.claude/{plugins → agents}/product-manager/guides/templates/prd.md +0 -0
  66. /package/.claude/{plugins → agents}/product-manager/guides/templates/prp.md +0 -0
  67. /package/.claude/{plugins → agents}/product-manager/guides/writing-style.md +0 -0
  68. /package/.claude/{plugins → agents}/product-manager/sensors/prd-acceptance-criteria.md +0 -0
  69. /package/.claude/{plugins → agents}/product-manager/sensors/prd-structure.md +0 -0
  70. /package/.claude/{plugins → agents}/product-manager/sensors/prp-context-quality.md +0 -0
  71. /package/.claude/{plugins → agents}/product-manager/sensors/prp-structure.md +0 -0
  72. /package/.claude/{plugins → agents}/staff-software-engineer/evals/dev-quality.md +0 -0
  73. /package/.claude/{plugins → agents}/staff-software-engineer/evals/plan-quality.md +0 -0
  74. /package/.claude/{plugins → agents}/staff-software-engineer/evals/pr-quality.md +0 -0
  75. /package/.claude/{plugins → agents}/staff-software-engineer/evals/test-quality.md +0 -0
  76. /package/.claude/{plugins → agents}/staff-software-engineer/guides/coding-style.md +0 -0
  77. /package/.claude/{plugins → agents}/staff-software-engineer/guides/commit-style.md +0 -0
  78. /package/.claude/{plugins → agents}/staff-software-engineer/sensors/code-conventions.md +0 -0
  79. /package/.claude/{plugins → agents}/staff-software-engineer/sensors/plan-structure.md +0 -0
  80. /package/.claude/{plugins → agents}/staff-software-engineer/sensors/test-coverage.md +0 -0
  81. /package/.claude/{plugins → agents}/staff-software-engineer/skills/backend/SKILL.md +0 -0
  82. /package/.claude/{plugins → agents}/staff-software-engineer/skills/devops/SKILL.md +0 -0
  83. /package/.claude/{plugins → agents}/staff-software-engineer/skills/mobile/SKILL.md +0 -0
  84. /package/.claude/{plugins → agents}/staff-software-engineer/skills/web/SKILL.md +0 -0
  85. /package/.claude/{plugins/product-manager/outputs → runtime/outputs/pm}/.markers/.gitkeep +0 -0
  86. /package/.claude/{plugins/staff-software-engineer/outputs → runtime/outputs/sse}/.markers/.gitkeep +0 -0
  87. /package/.claude/{plugins/product-manager/scripts → runtime/scripts/product-manager}/sensor-runner.py +0 -0
@@ -1,6 +1,8 @@
1
- # Product Manager Plugin
1
+ # Product Manager Agent
2
2
 
3
- Native Claude Code plugin for the product team. Drafts PRDs and PRPs with sensor + eval gates, retry loop, token accounting per phase, and optional Confluence publish via hooks.
3
+ Drafts PRDs and PRPs with sensor + eval gates, retry loop, token accounting per phase, and optional Confluence publish via hooks.
4
+
5
+ Registered in [`AGENTS.md`](../../../AGENTS.md). Agent definition: [`product-manager.md`](../product-manager.md).
4
6
 
5
7
  ## Slash commands
6
8
 
@@ -13,30 +15,30 @@ Also invokable as sub-agent via Task tool with `subagent_type: "product-manager"
13
15
  ## Tree
14
16
 
15
17
  ```
16
- .claude/plugins/product-manager/
17
- ├── .claude-plugin/plugin.json
18
- ├── agents/product-manager.md sub-agent
19
- ├── commands/run.md orchestrator (calls the two skills)
18
+ .claude/agents/product-manager/ ← definitions
19
+ ├── README.md this file
20
20
  ├── skills/
21
- ├── prd/SKILL.md workflow PRD
22
- └── prp/SKILL.md workflow PRP
23
- ├── hooks/ 5 .sh, registered in .claude/settings.json
24
- ├── scripts/ 4 .py, called by hooks
21
+ ├── prd/SKILL.md workflow PRD
22
+ └── prp/SKILL.md workflow PRP
25
23
  ├── guides/
26
- ├── pipeline.md retry, approval marker, publish, token accounting
27
- ├── product-guidelines.md team product rules
28
- ├── prd-guidelines.md PRD-specific rules
29
- ├── prp-guidelines.md PRP-specific rules
30
- ├── writing-style.md voice, banned words
31
- ├── templates/{prd,prp}.md artifact templates
32
- └── examples/ reference PRDs and PRPs
33
- ├── sensors/ deterministic checks (markdown)
34
- ├── evals/ LLM-judge rubrics (markdown)
35
- └── outputs/
36
- ├── prd/ generated PRDs
37
- ├── prp/ generated PRPs
38
- ├── tokens/ per-feature phase tokens JSON
39
- └── .markers/ phase start/end markers (transient)
24
+ ├── pipeline.md retry, approval marker, publish, token accounting
25
+ ├── product-guidelines.md team product rules
26
+ ├── prd-guidelines.md PRD-specific rules
27
+ ├── prp-guidelines.md PRP-specific rules
28
+ ├── writing-style.md voice, banned words
29
+ ├── templates/{prd,prp}.md artifact templates
30
+ └── examples/ reference PRDs and PRPs
31
+ ├── sensors/ deterministic checks (markdown)
32
+ └── evals/ LLM-judge rubrics (markdown)
33
+
34
+ .claude/runtime/ ← state + outputs
35
+ ├── hooks/product-manager/ 5 .sh, registered in .claude/settings.json
36
+ ├── scripts/product-manager/ 4 .py, called by hooks
37
+ └── outputs/pm/
38
+ ├── prd/ generated PRDs
39
+ ├── prp/ generated PRPs
40
+ ├── tokens/ per-feature phase tokens JSON
41
+ └── .markers/ phase start/end markers (transient)
40
42
  ```
41
43
 
42
44
  ## Where to edit
@@ -63,30 +65,30 @@ Also invokable as sub-agent via Task tool with `subagent_type: "product-manager"
63
65
  4. PostToolUse hook fires sensor-runner.py with real regex. Blocks on failure, returns feedback. On pass, writes `prd-generate.end` and `prd-validate.start` markers.
64
66
  5. Claude applies eval rubric. Retry up to 3 times if score below threshold (rules in guides/pipeline.md).
65
67
  6. On pass, Claude appends approval marker. Hook fires: writes `prd-validate.end`, calls token-phase.py for both phases, then confluence-publish.py if creds set.
66
- 7. Token data lands in outputs/tokens/{feature_id}.json. Inline summary comment is appended to the artifact.
68
+ 7. Token data lands in .claude/runtime/outputs/pm/tokens/{feature_id}.json. Inline summary comment is appended to the artifact.
67
69
 
68
70
  ## Token accounting
69
71
 
70
72
  Per phase: prd-generate, prd-validate, prp-generate, prp-validate.
71
73
 
72
- Per feature, a single file `outputs/tokens/{feature_id}.json` collects all phase entries, with `totals` aggregated. Future workflows (dev, code review) can append their own phases to the same file by reusing feature_id.
74
+ Per feature, a single file `.claude/runtime/outputs/pm/tokens/{feature_id}.json` collects all phase entries, with `totals` aggregated. Future workflows (dev, code review) can append their own phases to the same file by reusing feature_id.
73
75
 
74
76
  Query examples:
75
77
 
76
78
  ```
77
79
  # total tokens across all features
78
- jq -s 'map(.totals.input + .totals.output) | add' outputs/tokens/*.json
80
+ jq -s 'map(.totals.input + .totals.output) | add' .claude/runtime/outputs/pm/tokens/*.json
79
81
 
80
82
  # tokens for one feature, by phase
81
- jq '.phases[] | {phase, tokens}' outputs/tokens/2026-05-12-billing-tz-fix.json
83
+ jq '.phases[] | {phase, tokens}' .claude/runtime/outputs/pm/tokens/2026-05-12-billing-tz-fix.json
82
84
 
83
85
  # features touched by dispatch squad
84
- jq -s '.[] | select(.feature_id | contains("dispatch"))' outputs/tokens/*.json
86
+ jq -s '.[] | select(.feature_id | contains("dispatch"))' .claude/runtime/outputs/pm/tokens/*.json
85
87
  ```
86
88
 
87
89
  ## Engineering handoff
88
90
 
89
- After a PRP is approved, engineering picks it up via the [staff-software-engineer plugin](../staff-software-engineer/README.md). The SSE plugin reads `outputs/prp/{feature_id}.md` and runs plan → dev → test → pr stages, all writing to the same `outputs/tokens/{feature_id}.json` file. Full feature lifecycle in one token log.
91
+ After a PRP is approved, engineering picks it up via the [staff-software-engineer plugin](../staff-software-engineer/README.md). The SSE plugin reads `.claude/runtime/outputs/pm/prp/{feature_id}.md` and runs plan → dev → test → pr stages, all writing to the same `.claude/runtime/outputs/pm/tokens/{feature_id}.json` file. Full feature lifecycle in one token log.
90
92
 
91
93
  ## Status bar
92
94
 
@@ -1,6 +1,6 @@
1
1
  # PRP: Invoice Deadline Timezone Fix
2
2
 
3
- **Source PRD:** `outputs/prd/2026-05-08-billing-invoice-deadline-tz-fix.md`
3
+ **Source PRD:** `.claude/runtime/outputs/pm/prd/2026-05-08-billing-invoice-deadline-tz-fix.md`
4
4
  **Target executor:** coding-agent
5
5
  **Squad:** Billing | **Tech lead:** @tech-lead | **Date:** 2026-05-10
6
6
 
@@ -122,7 +122,7 @@ psql $STAGING_DB_URL -f src/main/resources/scripts/backfill/invoice_deadline_tz_
122
122
 
123
123
  ## 9) References
124
124
 
125
- - PRD: `outputs/prd/2026-05-08-billing-invoice-deadline-tz-fix.md`
125
+ - PRD: `.claude/runtime/outputs/pm/prd/2026-05-08-billing-invoice-deadline-tz-fix.md`
126
126
  - ADR feature flags: `docs/adr/0014-feature-flags.md`
127
127
  - Deadline dashboard: https://grafana.example.com/d/billing-deadline-health
128
128
  - Pattern reference: `billing-service/src/main/java/com/example/billing/dunning/DunningService.java:67`
@@ -40,7 +40,7 @@ Triggers hooks/post-eval-{prd|prp}.sh.
40
40
 
41
41
  ## Publish
42
42
 
43
- Local: file stays in outputs/{prd|prp}/.
43
+ Local: file stays in .claude/runtime/outputs/pm/{prd|prp}/.
44
44
 
45
45
  Confluence: fires if JIRA_USERNAME and JIRA_API_TOKEN set. Calls scripts/confluence-publish.py. Missing creds skips silently.
46
46
 
@@ -52,21 +52,21 @@ After publish, hook appends:
52
52
  ## Token accounting
53
53
 
54
54
  Each phase brackets measurable token window. Phases:
55
- - prd-generate: from skill invocation to first save in outputs/prd/
55
+ - prd-generate: from skill invocation to first save in .claude/runtime/outputs/pm/prd/
56
56
  - prd-validate: from first save to approval marker (sensors + evals)
57
- - prp-generate: from skill invocation to first save in outputs/prp/
57
+ - prp-generate: from skill invocation to first save in .claude/runtime/outputs/pm/prp/
58
58
  - prp-validate: from first save to approval marker
59
59
 
60
- Markers in outputs/.markers/{feature_id}.{phase}.{start|end}, each `{"timestamp": ISO, "session_id": ""}`. Skill writes .start; hooks write .end.
60
+ Markers in .claude/runtime/outputs/pm/.markers/{feature_id}.{phase}.{start|end}, each `{"timestamp": ISO, "session_id": ""}`. Skill writes .start; hooks write .end.
61
61
 
62
- After eval passes, publish hook runs scripts/token-phase.py for both phases. Script reads Claude transcript JSONL, sums usage tokens (input, output, cache_read, cache_creation) within each window, appends phase entry to outputs/tokens/{feature_id}.json. Markers deleted after consumption.
62
+ After eval passes, publish hook runs scripts/token-phase.py for both phases. Script reads Claude transcript JSONL, sums usage tokens (input, output, cache_read, cache_creation) within each window, appends phase entry to .claude/runtime/outputs/pm/tokens/{feature_id}.json. Markers deleted after consumption.
63
63
 
64
64
  Post-eval hook also appends inline summary to artifact:
65
65
  ```
66
- <!-- tokens: outputs/tokens/{feature_id}.json in={N} out={N} cache_r={N} -->
66
+ <!-- tokens: .claude/runtime/outputs/pm/tokens/{feature_id}.json in={N} out={N} cache_r={N} -->
67
67
  ```
68
68
 
69
- Future phases (dev, code review, launch) append entries to same outputs/tokens/{feature_id}.json by reusing feature_id slug.
69
+ Future phases (dev, code review, launch) append entries to same .claude/runtime/outputs/pm/tokens/{feature_id}.json by reusing feature_id slug.
70
70
 
71
71
  If transcript not readable, script logs warning and exits 0. Token accounting never blocks publish.
72
72
 
@@ -7,7 +7,7 @@ Implemented in scripts/link-validator.py. Same rules when agent self-checks.
7
7
 
8
8
  ## Hard checks (block)
9
9
 
10
- Source PRD resolvable. "Source PRD:" line must point to path existing under outputs/prd/, relative to PRP file, or relative to repo root.
10
+ Source PRD resolvable. "Source PRD:" line must point to path existing under .claude/runtime/outputs/pm/prd/, relative to PRP file, or relative to repo root.
11
11
 
12
12
  No localhost URLs. `http://localhost` or `http://127.0.0.1` not allowed as pinned references.
13
13
 
@@ -11,7 +11,7 @@ Ask once if missing: squad, problem in 1-2 sentences, customers, hypothesis, bet
11
11
  Compute feature_id = {YYYY-MM-DD}-{squad}-{slug}. Before generating, write the phase start marker:
12
12
 
13
13
  ```
14
- outputs/.markers/{feature_id}.prd-generate.start
14
+ .claude/runtime/outputs/pm/.markers/{feature_id}.prd-generate.start
15
15
  ```
16
16
 
17
17
  Content: `{"timestamp": "<ISO-8601 UTC now>", "session_id": ""}`
@@ -24,7 +24,7 @@ Read:
24
24
  - guides/pipeline.md
25
25
  - guides/examples/good-prd-example.md
26
26
 
27
- Save to outputs/prd/{feature_id}.md.
27
+ Save to .claude/runtime/outputs/pm/prd/{feature_id}.md.
28
28
 
29
29
  Sensors: sensors/prd-structure.md, sensors/prd-acceptance-criteria.md.
30
30
 
@@ -6,14 +6,14 @@ user_invocable: true
6
6
 
7
7
  Generate a PRP. Follow guides/pipeline.md for retry, approval, and publish.
8
8
 
9
- Source PRD: if user passes a path, use it. Else pick the most recent in outputs/prd/. None found, abort. Tell user to run /product-manager:prd first. hooks/pre-prp-check.sh blocks if the PRD lacks the approved marker.
9
+ Source PRD: if user passes a path, use it. Else pick the most recent in .claude/runtime/outputs/pm/prd/. None found, abort. Tell user to run /product-manager:prd first. hooks/pre-prp-check.sh blocks if the PRD lacks the approved marker.
10
10
 
11
- Compute feature_id from the source PRD filename (basename without .md). Save the PRP to outputs/prp/{feature_id}.md so it matches.
11
+ Compute feature_id from the source PRD filename (basename without .md). Save the PRP to .claude/runtime/outputs/pm/prp/{feature_id}.md so it matches.
12
12
 
13
13
  Before generating, write the phase start marker:
14
14
 
15
15
  ```
16
- outputs/.markers/{feature_id}.prp-generate.start
16
+ .claude/runtime/outputs/pm/.markers/{feature_id}.prp-generate.start
17
17
  ```
18
18
 
19
19
  Content: `{"timestamp": "<ISO-8601 UTC now>", "session_id": ""}`
@@ -28,7 +28,7 @@ Read:
28
28
 
29
29
  Explore target repos. Ask user for repo paths if not provided. Use Grep and Read to map files. Capture file:line. Never invent paths.
30
30
 
31
- Save to outputs/prp/{feature_id}.md.
31
+ Save to .claude/runtime/outputs/pm/prp/{feature_id}.md.
32
32
 
33
33
  Sensors: sensors/prp-structure.md, sensors/prp-context-quality.md, sensors/prp-links.md.
34
34
 
@@ -7,14 +7,14 @@ model: opus
7
7
 
8
8
  Product Manager.
9
9
 
10
- When invoked, run /product-manager:run end to end. Follow .claude/plugins/product-manager/guides/pipeline.md.
10
+ When invoked, run /product-manager:run end to end. Follow .claude/agents/product-manager/guides/pipeline.md.
11
11
 
12
12
  Ask once if missing: team or squad, problem in 1-2 sentences, customers, hypothesis, bet link.
13
13
 
14
14
  Operating rules:
15
15
  - English by default. Domain terms stay native if team uses them.
16
16
  - Never invent. Mark gaps with `NOT FOUND - NEEDS REVIEW: {detail}`.
17
- - Voice: read .claude/plugins/product-manager/guides/writing-style.md. No em-dashes. Mermaid not ASCII.
17
+ - Voice: read .claude/agents/product-manager/guides/writing-style.md. No em-dashes. Mermaid not ASCII.
18
18
  - Specific over generic. Real numbers, names, quotes.
19
19
 
20
20
  Return format: see .claude/commands/product-manager/run.md. Include paths, scores, attempts, publish status, blockers.
@@ -0,0 +1,87 @@
1
+ # Staff Software Engineer Agent
2
+
3
+ Drives plan, dev, test, and pr stages across backend, web, mobile, and devops. Per-project conventions in each repo's `.claude/conventions/` override defaults.
4
+
5
+ Registered in [`AGENTS.md`](../../../AGENTS.md). Agent definition: [`staff-software-engineer.md`](../staff-software-engineer.md).
6
+
7
+ ## Slash commands
8
+
9
+ - `/sse:plan`: generate an implementation plan from an approved PRP
10
+ - `/sse:dev`: implement the plan in code, run convention gates
11
+ - `/sse:test`: run the project test suite
12
+ - `/sse:pr`: open the draft PR
13
+ - `/sse:run`: full pipeline, plan to pr
14
+
15
+ Also invokable as sub-agent via Task tool with `subagent_type: "staff-software-engineer"`.
16
+
17
+ ## Tree
18
+
19
+ ```
20
+ .claude/agents/staff-software-engineer/ ← definitions
21
+ ├── README.md this file
22
+ ├── skills/
23
+ │ ├── backend/SKILL.md Java/Spring defaults
24
+ │ ├── web/SKILL.md Vue/React defaults
25
+ │ ├── mobile/SKILL.md iOS/Android defaults
26
+ │ └── devops/SKILL.md CI/IaC defaults
27
+ ├── guides/
28
+ │ ├── pipeline.md retry, approval, token accounting
29
+ │ ├── coding-style.md team code style
30
+ │ ├── commit-style.md Conventional Commits with TICKET
31
+ │ └── conventions-override.md how project overrides work
32
+ ├── sensors/ plan, dev, test, pr structure + conventions
33
+ └── evals/ plan/dev/test/pr quality rubrics
34
+
35
+ .claude/runtime/ ← state + outputs
36
+ ├── hooks/staff-software-engineer/ phase markers, sensor gates
37
+ ├── scripts/staff-software-engineer/ symlinks to PM scripts (sensor-runner, token-phase)
38
+ └── outputs/sse/
39
+ ├── plan/ generated plans
40
+ ├── dev/ dev summaries
41
+ ├── test/ test results
42
+ ├── pr/ opened PR records
43
+ ├── tokens/ per-feature phase tokens JSON
44
+ └── .markers/ phase start/end markers (transient)
45
+ ```
46
+
47
+ ## How conventions work
48
+
49
+ The plugin holds team defaults per area. Each project repo can override by adding:
50
+
51
+ ```
52
+ {repo-root}/.claude/conventions/{area}.md
53
+ ```
54
+
55
+ Example for the `recon-service` repo:
56
+
57
+ ```
58
+ recon-service/.claude/conventions/backend.md
59
+ ```
60
+
61
+ Plugin skills read both. Project rules win. See `guides/conventions-override.md`.
62
+
63
+ ## Where to edit
64
+
65
+ | Change | File |
66
+ |--------|------|
67
+ | Pipeline order | guides/pipeline.md |
68
+ | Retry count | guides/pipeline.md (Max attempts) |
69
+ | Plan template/rules | skills/backend/SKILL.md (etc per area), commands/plan.md |
70
+ | Eval threshold | evals/plan-quality.md (Threshold) |
71
+ | Code style | guides/coding-style.md |
72
+ | Commit format | guides/commit-style.md |
73
+ | Test command detection | commands/test.md |
74
+ | PR template | commands/pr.md, hooks/post-eval-pr.sh |
75
+ | Sensors | sensors/*.md |
76
+
77
+ ## Connects to PM plugin
78
+
79
+ `/sse:run` reads the latest approved PRP from `.claude/runtime/outputs/pm/prp/`. The feature_id flows through: PM plugin creates `2026-05-12-billing-tz-fix`, SSE plugin reuses the same id and writes its phases to the same `.claude/runtime/outputs/sse/tokens/{feature_id}.json` file (per `guides/pipeline.md`).
80
+
81
+ Full lifecycle in one JSON: PRD generate, PRD validate, PRP generate, PRP validate, plan generate, plan validate, dev, test, pr.
82
+
83
+ ## Setup
84
+
85
+ Hooks registered in `.claude/settings.json` under PostToolUse. Token script reused from the PM plugin via symlinks in `scripts/`.
86
+
87
+ PR opening requires the `gh` CLI authenticated. `pr.md` command details ticket detection and template.
@@ -1,6 +1,6 @@
1
1
  # Conventions Override
2
2
 
3
- How project-specific conventions override plugin defaults.
3
+ How project-specific conventions override agent defaults.
4
4
 
5
5
  ## Path
6
6
 
@@ -26,7 +26,7 @@ When skill or command generates code:
26
26
  2. Check if `cwd/.claude/conventions/{area}.md` exists.
27
27
  3. If yes, read it. Rules override or add to defaults.
28
28
  4. On conflict, project wins.
29
- 5. No project file, use plugin defaults only.
29
+ 5. No project file, use agent defaults only.
30
30
 
31
31
  ## What goes in project conventions file
32
32
 
@@ -58,7 +58,7 @@ Keep short. Document what is DIFFERENT, not what is shared with defaults.
58
58
 
59
59
  ## Avoiding drift
60
60
 
61
- If convention you wrote for repo applies to others, consider promoting to plugin defaults (skills/{area}/SKILL.md). Per-repo files hold genuine repo-specific decisions.
61
+ If convention you wrote for repo applies to others, consider promoting to agent defaults (skills/{area}/SKILL.md). Per-repo files hold genuine repo-specific decisions.
62
62
 
63
63
  ## Versioning
64
64
 
@@ -44,15 +44,15 @@ Phases tracked per feature_id (matches PRD/PRP feature_id from PM plugin):
44
44
  - test-generate, test-validate
45
45
  - pr-generate, pr-validate
46
46
 
47
- Markers in outputs/.markers/{feature_id}.{phase}.{start|end}, each `{"timestamp": ISO, "session_id": ""}`.
47
+ Markers in .claude/runtime/outputs/sse/.markers/{feature_id}.{phase}.{start|end}, each `{"timestamp": ISO, "session_id": ""}`.
48
48
  Flow per stage:
49
49
  1. Skill writes `{stage}-generate.start` before drafting artifact.
50
50
  2. Write tool fires post-write-sse.sh → writes `{stage}-generate.end` + `{stage}-validate.start`.
51
51
  3. Skill appends approval marker via Edit → fires post-eval-sse.sh → writes `{stage}-validate.end` + runs scripts/token-phase.py for both phases.
52
52
 
53
- Tokens land in shared file with PM plugin: `outputs/tokens/{feature_id}.json`. Same file collects PM phases (prd-generate, prd-validate, prp-generate, prp-validate) and SSE phases (plan-generate, plan-validate, dev, test, pr). Totals cover full feature lifecycle.
53
+ Tokens land in shared file with PM plugin: `.claude/runtime/outputs/sse/tokens/{feature_id}.json`. Same file collects PM phases (prd-generate, prd-validate, prp-generate, prp-validate) and SSE phases (plan-generate, plan-validate, dev, test, pr). Totals cover full feature lifecycle.
54
54
 
55
- To merge with PM tokens file, SSE token-phase.py writes to same path under this plugin's outputs/tokens/, then small step in commands/run.md syncs (or symlinks) with PM tokens dir. v1: SSE keeps own outputs/tokens/{feature_id}.json. v2: merge.
55
+ To merge with PM tokens file, SSE token-phase.py writes to same path under this plugin's .claude/runtime/outputs/sse/tokens/, then small step in commands/run.md syncs (or symlinks) with PM tokens dir. v1: SSE keeps own .claude/runtime/outputs/sse/tokens/{feature_id}.json. v2: merge.
56
56
 
57
57
  ## Orchestrator order
58
58
 
@@ -70,4 +70,4 @@ To merge with PM tokens file, SSE token-phase.py writes to same path under this
70
70
 
71
71
  ## Conventions override
72
72
 
73
- Before any code generation, read `guides/conventions-override.md` and check `cwd/.claude/conventions/{area}.md`. Project-specific rules win over plugin defaults.
73
+ Before any code generation, read `guides/conventions-override.md` and check `cwd/.claude/conventions/{area}.md`. Project-specific rules win over agent defaults.
@@ -3,7 +3,7 @@
3
3
  Type: deterministic
4
4
  Mode: hard gate
5
5
 
6
- Validates dev summary doc at `outputs/dev/{feature_id}.md`.
6
+ Validates dev summary doc at `.claude/runtime/outputs/sse/dev/{feature_id}.md`.
7
7
 
8
8
  ## Required sections
9
9
 
@@ -30,7 +30,7 @@ Validates dev summary doc at `outputs/dev/{feature_id}.md`.
30
30
  ## Required metadata
31
31
 
32
32
  Header must declare:
33
- - Source plan (path to `outputs/plan/{feature_id}.md`)
33
+ - Source plan (path to `.claude/runtime/outputs/sse/plan/{feature_id}.md`)
34
34
  - Branch
35
35
  - Area (backend | web | mobile | devops)
36
36
  - Date
@@ -3,7 +3,7 @@
3
3
  Type: deterministic
4
4
  Mode: hard gate
5
5
 
6
- Validates PR record at `outputs/pr/{feature_id}.md`.
6
+ Validates PR record at `.claude/runtime/outputs/sse/pr/{feature_id}.md`.
7
7
 
8
8
  ## Required sections
9
9
 
@@ -29,8 +29,8 @@ Validates PR record at `outputs/pr/{feature_id}.md`.
29
29
  ## Required metadata
30
30
 
31
31
  Header must declare:
32
- - Source plan (path to `outputs/plan/{feature_id}.md`)
33
- - Source dev (path to `outputs/dev/{feature_id}.md`)
32
+ - Source plan (path to `.claude/runtime/outputs/sse/plan/{feature_id}.md`)
33
+ - Source dev (path to `.claude/runtime/outputs/sse/dev/{feature_id}.md`)
34
34
  - Branch
35
35
  - Date
36
36
 
@@ -3,7 +3,7 @@
3
3
  Type: deterministic
4
4
  Mode: hard gate
5
5
 
6
- Validates test report at `outputs/test/{feature_id}.md`.
6
+ Validates test report at `.claude/runtime/outputs/sse/test/{feature_id}.md`.
7
7
 
8
8
  ## Required sections
9
9
 
@@ -28,7 +28,7 @@ Validates test report at `outputs/test/{feature_id}.md`.
28
28
  ## Required metadata
29
29
 
30
30
  Header must declare:
31
- - Source dev (path to `outputs/dev/{feature_id}.md`)
31
+ - Source dev (path to `.claude/runtime/outputs/sse/dev/{feature_id}.md`)
32
32
  - Framework (maven | gradle | npm | pytest | other)
33
33
  - Date
34
34
 
@@ -7,19 +7,19 @@ model: opus
7
7
 
8
8
  Staff Software Engineer.
9
9
 
10
- When invoked, run /sse:run end to end. Follow .claude/plugins/staff-software-engineer/guides/pipeline.md.
10
+ When invoked, run /sse:run end to end. Follow .claude/agents/staff-software-engineer/guides/pipeline.md.
11
11
 
12
12
  Ask once if missing:
13
- - source PRP path (or read latest from .claude/plugins/product-manager/outputs/prp/)
13
+ - source PRP path (or read latest from .claude/runtime/outputs/pm/prp/)
14
14
  - target repo path
15
15
  - area: backend, web, mobile, or devops (auto-detect from repo files if possible)
16
16
 
17
17
  Operating rules:
18
18
  - English by default. Domain terms stay native if team uses them.
19
- - Read project conventions first. Repo's .claude/conventions/{area}.md (if present) overrides plugin defaults. See .claude/plugins/staff-software-engineer/guides/conventions-override.md.
19
+ - Read project conventions first. Repo's .claude/conventions/{area}.md (if present) overrides agent defaults. See .claude/agents/staff-software-engineer/guides/conventions-override.md.
20
20
  - Match repo style. Read 3+ similar files before writing.
21
21
  - Never invent class names, file paths, helpers. If unknown, `TBD - verify with tech lead`.
22
- - Voice: read .claude/plugins/staff-software-engineer/guides/coding-style.md and .claude/plugins/staff-software-engineer/guides/commit-style.md. No em-dashes. Mermaid not ASCII.
22
+ - Voice: read .claude/agents/staff-software-engineer/guides/coding-style.md and .claude/agents/staff-software-engineer/guides/commit-style.md. No em-dashes. Mermaid not ASCII.
23
23
  - Tests for every feature/bugfix.
24
24
 
25
25
  Return format: see .claude/commands/sse/run.md. Include paths, scores, gates, PR url, blockers.
@@ -6,6 +6,6 @@ Reset pipeline.
6
6
 
7
7
  1. Confirm user wants to abandon active pipeline. Show `python3 .claude/scripts/pipeline.py render` so they see what they drop.
8
8
  2. On confirmation: `python3 .claude/scripts/pipeline.py clear`.
9
- 3. Output files under `.claude/plugins/*/outputs/` not deleted. Only in-memory state cleared.
9
+ 3. Output files under `.claude/runtime/outputs/` not deleted. Only in-memory state cleared.
10
10
 
11
11
  Status bar returns to idle after reset.
@@ -2,7 +2,7 @@
2
2
  description: Generate a Product Requirements Document for an team squad. Business-facing artifact. Sensors and evals gate.
3
3
  ---
4
4
 
5
- Generate PRD. Follow .claude/plugins/product-manager/guides/pipeline.md for retry, approval, publish.
5
+ Generate PRD. Follow .claude/agents/product-manager/guides/pipeline.md for retry, approval, publish.
6
6
 
7
7
  Print header card before drafting and footer card after gates run. Format: .claude/scripts/stage-card.md.
8
8
 
@@ -11,24 +11,24 @@ Ask once if missing: squad, problem in 1-2 sentences, customers, hypothesis, bet
11
11
  Compute feature_id = {YYYY-MM-DD}-{squad}-{slug}. Before generating, write phase start marker:
12
12
 
13
13
  ```
14
- .claude/plugins/product-manager/outputs/.markers/{feature_id}.prd-generate.start
14
+ .claude/runtime/outputs/pm/.markers/{feature_id}.prd-generate.start
15
15
  ```
16
16
 
17
17
  Content: `{"timestamp": "<ISO-8601 UTC now>", "session_id": ""}`
18
18
 
19
19
  Read:
20
- - .claude/plugins/product-manager/guides/product-guidelines.md
21
- - .claude/plugins/product-manager/guides/prd-guidelines.md
22
- - .claude/plugins/product-manager/guides/writing-style.md
23
- - .claude/plugins/product-manager/guides/templates/prd.md
24
- - .claude/plugins/product-manager/guides/pipeline.md
25
- - .claude/plugins/product-manager/guides/examples/good-prd-example.md
20
+ - .claude/agents/product-manager/guides/product-guidelines.md
21
+ - .claude/agents/product-manager/guides/prd-guidelines.md
22
+ - .claude/agents/product-manager/guides/writing-style.md
23
+ - .claude/agents/product-manager/guides/templates/prd.md
24
+ - .claude/agents/product-manager/guides/pipeline.md
25
+ - .claude/agents/product-manager/guides/examples/good-prd-example.md
26
26
 
27
- Save to .claude/plugins/product-manager/outputs/prd/{feature_id}.md.
27
+ Save to .claude/runtime/outputs/pm/prd/{feature_id}.md.
28
28
 
29
- Sensors: .claude/plugins/product-manager/sensors/prd-structure.md, .claude/plugins/product-manager/sensors/prd-acceptance-criteria.md.
29
+ Sensors: .claude/agents/product-manager/sensors/prd-structure.md, .claude/agents/product-manager/sensors/prd-acceptance-criteria.md.
30
30
 
31
- Evals: .claude/plugins/product-manager/evals/prd-quality.md, .claude/plugins/product-manager/evals/prd-readiness.md.
31
+ Evals: .claude/agents/product-manager/evals/prd-quality.md, .claude/agents/product-manager/evals/prd-readiness.md.
32
32
 
33
33
  After save, reply with this exact shape (name actual sensors/evals/guides that ran, don't abbreviate):
34
34
 
@@ -2,37 +2,37 @@
2
2
  description: Generate a Product Requirements Prompt for engineering handoff. Needs an approved PRD. Sensors, link validation, and eval gates.
3
3
  ---
4
4
 
5
- Generate PRP. Follow .claude/plugins/product-manager/guides/pipeline.md for retry, approval, publish.
5
+ Generate PRP. Follow .claude/agents/product-manager/guides/pipeline.md for retry, approval, publish.
6
6
 
7
7
  Print header card before drafting and footer card after gates run. Format: .claude/scripts/stage-card.md.
8
8
 
9
- Source PRD: user passes path, use it. Else pick most recent in .claude/plugins/product-manager/outputs/prd/. None found, abort. Tell user to run /product-manager:prd first. .claude/plugins/product-manager/hooks/pre-prp-check.sh blocks if PRD lacks approved marker.
9
+ Source PRD: user passes path, use it. Else pick most recent in .claude/runtime/outputs/pm/prd/. None found, abort. Tell user to run /product-manager:prd first. .claude/runtime/hooks/product-manager/pre-prp-check.sh blocks if PRD lacks approved marker.
10
10
 
11
- Compute feature_id from source PRD filename (basename without .md). Save PRP to .claude/plugins/product-manager/outputs/prp/{feature_id}.md so it matches.
11
+ Compute feature_id from source PRD filename (basename without .md). Save PRP to .claude/runtime/outputs/pm/prp/{feature_id}.md so it matches.
12
12
 
13
13
  Before generating, write phase start marker:
14
14
 
15
15
  ```
16
- .claude/plugins/product-manager/outputs/.markers/{feature_id}.prp-generate.start
16
+ .claude/runtime/outputs/pm/.markers/{feature_id}.prp-generate.start
17
17
  ```
18
18
 
19
19
  Content: `{"timestamp": "<ISO-8601 UTC now>", "session_id": ""}`
20
20
 
21
21
  Read:
22
22
  - source PRD
23
- - .claude/plugins/product-manager/guides/prp-guidelines.md
24
- - .claude/plugins/product-manager/guides/writing-style.md
25
- - .claude/plugins/product-manager/guides/templates/prp.md
26
- - .claude/plugins/product-manager/guides/pipeline.md
27
- - .claude/plugins/product-manager/guides/examples/good-prp-example.md
23
+ - .claude/agents/product-manager/guides/prp-guidelines.md
24
+ - .claude/agents/product-manager/guides/writing-style.md
25
+ - .claude/agents/product-manager/guides/templates/prp.md
26
+ - .claude/agents/product-manager/guides/pipeline.md
27
+ - .claude/agents/product-manager/guides/examples/good-prp-example.md
28
28
 
29
29
  Explore target repos. Ask user for repo paths if not provided. Use Grep and Read to map files. Capture file:line. Never invent paths.
30
30
 
31
- Save to .claude/plugins/product-manager/outputs/prp/{feature_id}.md.
31
+ Save to .claude/runtime/outputs/pm/prp/{feature_id}.md.
32
32
 
33
- Sensors: .claude/plugins/product-manager/sensors/prp-structure.md, .claude/plugins/product-manager/sensors/prp-context-quality.md, .claude/plugins/product-manager/sensors/prp-links.md.
33
+ Sensors: .claude/agents/product-manager/sensors/prp-structure.md, .claude/agents/product-manager/sensors/prp-context-quality.md, .claude/agents/product-manager/sensors/prp-links.md.
34
34
 
35
- Evals: .claude/plugins/product-manager/evals/prp-quality.md, .claude/plugins/product-manager/evals/prp-context-readiness.md.
35
+ Evals: .claude/agents/product-manager/evals/prp-quality.md, .claude/agents/product-manager/evals/prp-context-readiness.md.
36
36
 
37
37
  After save, reply with this exact shape (name actual sensors/evals/guides that ran):
38
38
 
@@ -5,24 +5,24 @@ description: Run the full PM pipeline. PRD then PRP, with sensor and eval gates
5
5
  Run end to end.
6
6
 
7
7
  1. Invoke /product-manager:prd. Wait for approval marker.
8
- 2. .claude/plugins/product-manager/hooks/pre-prp-check.sh validates PRD.
8
+ 2. .claude/runtime/hooks/product-manager/pre-prp-check.sh validates PRD.
9
9
  3. Invoke /product-manager:prp using just-approved PRD.
10
10
  4. Return summary.
11
11
 
12
- Follow .claude/plugins/product-manager/guides/pipeline.md. Read .claude/agents/product-manager.md for inputs and rules.
12
+ Follow .claude/agents/product-manager/guides/pipeline.md. Read .claude/agents/product-manager.md for inputs and rules.
13
13
 
14
14
  Return format. Name every sensor, eval, guide that ran. Generic summaries not acceptable — list specifics so user sees what was checked and loaded.
15
15
 
16
16
  ```
17
17
  Pipeline complete.
18
18
 
19
- PRD: .claude/plugins/product-manager/outputs/prd/{path}
19
+ PRD: .claude/runtime/outputs/pm/prd/{path}
20
20
  sensors: prd-structure ok, prd-acceptance-criteria ok ({sub-checks})
21
21
  eval: prd-quality {score}/10, prd-readiness {score}/10 (attempts: N)
22
22
  guides: product-guidelines.md, prd-guidelines.md, writing-style.md, templates/prd.md
23
23
  refs: business-info.md, squads/{squad}/context.md
24
24
 
25
- PRP: .claude/plugins/product-manager/outputs/prp/{path}
25
+ PRP: .claude/runtime/outputs/pm/prp/{path}
26
26
  sensors: prp-structure ok, prp-context-quality ok, prp-links ok
27
27
  eval: prp-quality {score}/10, prp-context-readiness {score}/10 (attempts: N)
28
28
  guides: prp-guidelines.md, writing-style.md, templates/prp.md