harnessed 3.4.3 → 3.5.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 (75) hide show
  1. package/README.md +3 -0
  2. package/dist/cli.mjs +1119 -745
  3. package/dist/cli.mjs.map +1 -1
  4. package/dist/index.mjs +1 -1
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/workflows/auto/SKILL.md +10 -4
  8. package/workflows/capabilities.yaml +18 -19
  9. package/workflows/disciplines/karpathy.yaml +1 -1
  10. package/workflows/disciplines/language.yaml +1 -1
  11. package/workflows/disciplines/operational.yaml +2 -2
  12. package/workflows/disciplines/output-style.yaml +1 -1
  13. package/workflows/disciplines/priority.yaml +1 -1
  14. package/workflows/disciplines/protocols.yaml +1 -1
  15. package/workflows/discuss/auto/SKILL.md +10 -6
  16. package/workflows/discuss/auto/workflow.yaml +1 -2
  17. package/workflows/discuss/phase/SKILL.md +11 -30
  18. package/workflows/discuss/phase/workflow.yaml +1 -1
  19. package/workflows/discuss/strategic/SKILL.md +12 -33
  20. package/workflows/discuss/strategic/workflow.yaml +2 -3
  21. package/workflows/discuss/subtask/SKILL.md +11 -30
  22. package/workflows/discuss/subtask/workflow.yaml +1 -1
  23. package/workflows/execute-task/SKILL.md +7 -6
  24. package/workflows/execute-task/workflow.yaml +93 -0
  25. package/workflows/judgments/fallback.yaml +1 -1
  26. package/workflows/judgments/parallelism-gate.yaml +4 -3
  27. package/workflows/judgments/phase-gate.yaml +2 -2
  28. package/workflows/judgments/strategic-gate.yaml +2 -2
  29. package/workflows/judgments/subtask-gate.yaml +2 -2
  30. package/workflows/judgments/tdd-gate.yaml +2 -2
  31. package/workflows/judgments/web-design-routing.yaml +1 -1
  32. package/workflows/judgments/web-search-routing.yaml +1 -1
  33. package/workflows/judgments/web-testing-routing.yaml +1 -1
  34. package/workflows/plan/architecture/SKILL.md +13 -34
  35. package/workflows/plan/architecture/workflow.yaml +2 -2
  36. package/workflows/plan/auto/SKILL.md +10 -6
  37. package/workflows/plan/auto/workflow.yaml +1 -2
  38. package/workflows/plan/phase/SKILL.md +14 -35
  39. package/workflows/plan/phase/workflow.yaml +3 -3
  40. package/workflows/plan-feature/SKILL.md +4 -4
  41. package/workflows/research/SKILL.md +19 -6
  42. package/workflows/research/workflow.yaml +4 -4
  43. package/workflows/retro/SKILL.md +13 -32
  44. package/workflows/retro/workflow.yaml +1 -2
  45. package/workflows/role-prompts.yaml +4 -3
  46. package/workflows/task/auto/SKILL.md +11 -7
  47. package/workflows/task/auto/workflow.yaml +2 -3
  48. package/workflows/task/clarify/SKILL.md +11 -30
  49. package/workflows/task/code/SKILL.md +14 -35
  50. package/workflows/task/code/workflow.yaml +0 -1
  51. package/workflows/task/deliver/SKILL.md +15 -38
  52. package/workflows/task/deliver/workflow.yaml +7 -6
  53. package/workflows/task/test/SKILL.md +11 -32
  54. package/workflows/task/test/workflow.yaml +1 -2
  55. package/workflows/verify/auto/SKILL.md +14 -10
  56. package/workflows/verify/auto/workflow.yaml +4 -5
  57. package/workflows/verify/code-review/SKILL.md +14 -38
  58. package/workflows/verify/code-review/workflow.yaml +1 -3
  59. package/workflows/verify/design/SKILL.md +14 -38
  60. package/workflows/verify/design/workflow.yaml +4 -5
  61. package/workflows/verify/multispec/SKILL.md +17 -39
  62. package/workflows/verify/multispec/workflow.yaml +5 -8
  63. package/workflows/verify/paranoid/SKILL.md +13 -38
  64. package/workflows/verify/paranoid/workflow.yaml +1 -2
  65. package/workflows/verify/progress/SKILL.md +13 -32
  66. package/workflows/verify/progress/workflow.yaml +0 -1
  67. package/workflows/verify/qa/SKILL.md +15 -36
  68. package/workflows/verify/qa/workflow.yaml +1 -2
  69. package/workflows/verify/security/SKILL.md +12 -35
  70. package/workflows/verify/security/workflow.yaml +1 -2
  71. package/workflows/verify/simplify/SKILL.md +13 -34
  72. package/workflows/verify/simplify/workflow.yaml +1 -2
  73. package/workflows/verify-work/SKILL.md +5 -7
  74. package/workflows/verify-work/workflow.yaml +5 -7
  75. package/workflows/execute-task/phases.yaml +0 -73
@@ -2,8 +2,7 @@
2
2
  name: verify-design
3
3
  description: |
4
4
  Stage ④.f verify sub-workflow — gstack /design-review 设计系统一致性 + AI 审美问题识别
5
- (has_design_changes 触发, 可选 conditional, sister ~/.claude/CLAUDE.md "Verify 阶段 — 可选
6
- /design-review" verbatim)。
5
+ (has_design_changes 触发, 可选 conditional; bundled verify-stage optional /design-review step).
7
6
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
8
7
  (gstack-design-review + ui-ux-pro-max + frontend-design) + 1 phase (gate ref has_design_changes
9
8
  conditional)。Triggered by harnessed CLI `harnessed verify-design --phase <num>` or slash
@@ -45,54 +44,31 @@ Sister `workflows/capabilities.yaml` entries:
45
44
  Sister `workflows/judgments/stage-routing.yaml`:
46
45
  - `verify-design-changes.fires` — `phase.stage == 'verify' and phase.has_design_changes == true`
47
46
 
48
- ## Routing rules (sister ~/.claude/rules/web-design.md)
47
+ ## Routing rules (bundled web-design routing — `workflows/judgments/web-design-routing.yaml`)
49
48
 
50
49
  - 默认主方案 → `ui-ux-pro-max` (数据驱动、标准化、可解释)
51
50
  - 创意补充 / 不要 AI 味 → `frontend-design`
52
51
  - 用户明示「独特 / 不要 AI 感」→ frontend-design 主导, 否则 ui-ux-pro-max 优先
53
52
 
54
- <!-- v3.4.3-dual-path-invocation -->
55
53
  ## How to invoke
56
54
 
57
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gstack-design-review.cmd }}` — the upstream specialist takes over.
58
-
59
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
60
-
61
- > You are a **Design Reviewer (AI-Slop detector + design discipline)**.
62
- >
63
- > **Mission**: Conditional on `phase.has_design_changes == true`. Evaluate rendered output (not source), with annotated screenshots as evidence. Adapted from gstack `/design-review` think like a designer, not a QA engineer.
64
- >
65
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
66
- >
67
- > **Review checklist**:
68
- > 1. Classifier: marketing/landing vs app UI vs hybrid — apply matching rule set
69
- >
70
- > 2. Hard rejection: generic SaaS card grid / beautiful image weak brand / busy imagery behind text / carousel without narrative
71
- >
72
- > 3. Litmus: brand unmistakable first screen / one strong visual anchor / scannable by headlines / one job per section
73
- >
74
- > 4. Typography: expressive, not default stacks (Inter / Roboto / Arial / system)
75
- >
76
- > 5. Hero: full-bleed edge-to-edge / one composition / no cards in hero
77
- >
78
- > 6. Responsive ≠ stacked desktop on mobile — evaluate whether mobile layout makes design sense
79
- >
80
- > 7. Quick Wins section: 3-5 highest-impact fixes <30 min each
81
- >
82
- > 8. Every finding has a screenshot — annotated where possible (Read the file inline so user sees it)
83
- >
84
- > **Output format**: structured report with severity-classified findings (hard-reject / quick-win / nice-to-have). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
85
-
86
- (Role prompt is self-contained — works even when the upstream `gstack-design-review` user-skill / plugin isn't installed.)
87
-
88
- (Sister `~/.claude/commands/verify-design.md` is also generated by `harnessed setup` so `/verify-design` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-design --apply` CLI claims are removed; that subcommand was never implemented.)
55
+ Use the Bash tool to run:
56
+
57
+ ```bash
58
+ echo "$ARGUMENTS" | harnessed run verify-design --task-stdin
59
+ ```
60
+
61
+ If `$ARGUMENTS` is empty, run `harnessed run verify-design` (no stdin pipe).
62
+
63
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
64
+
65
+ <!-- harnessed-generated:v3.4.4 -->
89
66
 
90
67
  ## References
91
68
 
92
69
  - D-04 Stage ④ Verify 7 sub 分解
93
70
  - D-12 gstack 治理关卡可选
94
- - ~/.claude/CLAUDE.md "Verify 阶段 可选 /design-review" verbatim
95
- - ~/.claude/rules/web-design.md — ui-ux-pro-max 默认 + frontend-design 补充
71
+ - workflows/judgments/web-design-routing.yaml ui-ux-pro-max 默认 + frontend-design 补充
96
72
  - workflows/capabilities.yaml — gstack-design-review / ui-ux-pro-max / frontend-design
97
73
  - workflows/judgments/stage-routing.yaml — verify-design-changes trigger
98
74
  - workflows/verify-work/workflow.yaml v2 SHIPPED phase 07-design-review-conditional sister verbatim
@@ -1,11 +1,10 @@
1
1
  # workflows/verify/design/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.13c
2
2
  #
3
3
  # Stage ④.f verify sub-workflow — gstack /design-review 设计系统一致性 + AI 审美问题
4
- # (has_design_changes 触发, 可选 conditional, sister ~/.claude/CLAUDE.md "可选 /design-review" verbatim)
4
+ # (has_design_changes 触发, 可选 conditional; bundled verify-stage optional /design-review step).
5
5
  #
6
6
  # Sister refs:
7
- # - ~/.claude/CLAUDE.md "Verify 阶段 可选 /design-review" 章节
8
- # - ~/.claude/rules/web-design.md — ui-ux-pro-max 默认 + frontend-design 补充
7
+ # - workflows/judgments/web-design-routing.yaml ui-ux-pro-max 默认 + frontend-design 补充
9
8
  # - workflows/judgments/stage-routing.yaml verify-design-changes trigger (has_design_changes)
10
9
  # - workflows/capabilities.yaml — gstack-design-review / ui-ux-pro-max / frontend-design
11
10
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 07-design-review-conditional sister pattern
@@ -17,8 +16,8 @@ description: |
17
16
  Stage ④.f gstack /design-review 设计系统一致性 + AI 审美问题识别 (has_design_changes 触发,
18
17
  可选 conditional)。Gate: judgments.stage-routing.verify-design-changes.fires
19
18
  (phase.has_design_changes == true) — UI module fire only; 后端 / docs PR skip。
20
- tools_available 含 ui-ux-pro-max (默认主方案) + frontend-design (创意补充) sister
21
- ~/.claude/rules/web-design.md routing。
19
+ tools_available 含 ui-ux-pro-max (默认主方案) + frontend-design (创意补充) per bundled
20
+ web-design routing (workflows/judgments/web-design-routing.yaml).
22
21
 
23
22
  disciplines_applied: [karpathy, output-style, language, operational, priority, protocols]
24
23
  tools_available: [gstack-design-review, ui-ux-pro-max, frontend-design]
@@ -3,8 +3,8 @@ name: verify-multispec
3
3
  description: |
4
4
  Stage ④.h verify sub-workflow — 4-specialist Agent Team Pattern C 多维度审查 (关键发布 /
5
5
  大重构 PR 升级, code-review + gstack-review + gstack-cso + gstack-qa 4 teammate 互相
6
- SendMessage 质询, NOT fire-and-forget subagent fan-out, sister ~/.claude/rules/agent-teams.md
7
- L42-L52 Pattern C verbatim)。Cleanup mandatory: shutdown_request + TeamDelete (防呆清单)
6
+ SendMessage 质询, NOT fire-and-forget subagent fan-out; bundled Agent Teams Pattern C
7
+ routing). Cleanup mandatory: shutdown_request + TeamDelete (bundled cleanup discipline).
8
8
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
9
9
  (agent-teams 3 + 4 specialist capability) + 2 phase (01-team-create on critical-release
10
10
  invoke / 02-team-cleanup mandatory shutdown)。
@@ -34,7 +34,7 @@ D-11 Agent Teams + Pattern A sub-workflow ship)。
34
34
  Per-phase config loads from `workflows/verify/multispec/workflow.yaml`; phase 01 creates 4
35
35
  teammate (code-review + gstack-review + gstack-cso + gstack-qa) via TeamCreate, teammates 互相
36
36
  SendMessage 质询 findings 是否真问题 (NOT fire-and-forget); phase 02 mandatory shutdown_request
37
- + TeamDelete (防呆清单 per ~/.claude/rules/agent-teams.md L46-L48)。
37
+ + TeamDelete (bundled Agent Teams cleanup discipline)。
38
38
 
39
39
  ## Capability refs
40
40
 
@@ -57,53 +57,31 @@ Phase-level `on` clause (critical-release 升级触发):
57
57
  - `if: phase.is_major_release == true or phase.is_large_refactor == true` → `action: invoke`
58
58
  - else → `action: skip`
59
59
 
60
- ## Routing rules (sister ~/.claude/rules/agent-teams.md)
60
+ ## Routing rules (bundled Agent Teams routing — `workflows/judgments/parallelism-gate.yaml`)
61
61
 
62
62
  - ✅ **触发**: 关键发布 / 大重构 PR (≥3 specialist 需互相质询而非 fire-and-forget)
63
63
  - ❌ **跳过**: 常规 PR / 单点任务 (sister verify-code-review fan-out + verify-paranoid 已够用且省 token)
64
- - **Token 估算 prereq**: `team_cost < 2 × subagent_cost` (engine-level check per agent-teams.md L34)
65
- - **Cleanup mandatory**: phase 02-team-cleanup `agent-teams-shutdown` 必跑 (防呆清单)
64
+ - **Token 估算 prereq**: `team_cost < 2 × subagent_cost` (engine-level check; bundled cost guideline)
65
+ - **Cleanup mandatory**: phase 02-team-cleanup `agent-teams-shutdown` 必跑 (bundled cleanup discipline)
66
66
 
67
- <!-- v3.4.3-dual-path-invocation -->
68
67
  ## How to invoke
69
68
 
70
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.agent-teams-create.cmd }}` — the upstream specialist takes over.
71
-
72
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
73
-
74
- > You are a **Multi-specialist Agent Team orchestrator (Pattern C)**.
75
- >
76
- > **Mission**: Critical release / large refactor only. Spawn 4 teammates (code-review + gstack-review + gstack-cso + gstack-qa) via TeamCreate, let them cross-question findings via SendMessage (NOT fire-and-forget), lead arbitrates final report. Cleanup mandatory.
77
- >
78
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
79
- >
80
- > **Review checklist**:
81
- > 1. Token-cost gate: estimate team_cost vs 2 × subagent_cost; only escalate when team wins
82
- >
83
- > 2. TeamCreate with 4 teammates: code-review / gstack-review / gstack-cso / gstack-qa
84
- >
85
- > 3. Each teammate's brief is self-contained (no shared session context to lean on)
86
- >
87
- > 4. Round-trip findings: each teammate sends top-3 findings; others rate (real / false-positive / nit)
88
- >
89
- > 5. Lead arbitrates conflicts; produces final report ordered CRITICAL → HIGH → MEDIUM
90
- >
91
- > 6. Cleanup MANDATORY: SendMessage shutdown_request to each teammate, then TeamDelete
92
- >
93
- > 7. If the gate doesn't fire (regular PR), DO NOT escalate — fall back to single-agent fan-out
94
- >
95
- > **Output format**: structured report with severity-classified findings (ship-blocker / ship-with-action / informational). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
96
-
97
- (Role prompt is self-contained — works even when the upstream `agent-teams-create` user-skill / plugin isn't installed.)
98
-
99
- (Sister `~/.claude/commands/verify-multispec.md` is also generated by `harnessed setup` so `/verify-multispec` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-multispec --apply` CLI claims are removed; that subcommand was never implemented.)
69
+ Use the Bash tool to run:
70
+
71
+ ```bash
72
+ echo "$ARGUMENTS" | harnessed run verify-multispec --task-stdin
73
+ ```
74
+
75
+ If `$ARGUMENTS` is empty, run `harnessed run verify-multispec` (no stdin pipe).
76
+
77
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
78
+
79
+ <!-- harnessed-generated:v3.4.4 -->
100
80
 
101
81
  ## References
102
82
 
103
83
  - D-04 Stage ④ Verify 7 sub 分解
104
84
  - D-11 Agent Teams 4-specialist Pattern C upgrade
105
- - ~/.claude/CLAUDE.md "Verify 阶段 — 关键发布 / 大重构 PR 升级 Agent Team Pattern C" verbatim
106
- - ~/.claude/rules/agent-teams.md Pattern C 多维度审查 + 防呆清单 + 完整生命周期
107
85
  - workflows/capabilities.yaml — agent-teams-{create,send-message,shutdown} + 4 specialist
108
86
  - workflows/judgments/stage-routing.yaml — verify-multispec-critical-release trigger
109
87
  - workflows/judgments/parallelism-gate.yaml — agent-teams-upgrade.fires (5 OR-chain)
@@ -1,12 +1,9 @@
1
1
  # workflows/verify/multispec/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.13e
2
2
  #
3
3
  # Stage ④.h verify sub-workflow — 4-specialist Agent Team Pattern C 多维度审查 critical-release upgrade
4
- # (sister ~/.claude/CLAUDE.md "Verify 阶段 4-specialist Agent Team Pattern C" verbatim +
5
- # ~/.claude/rules/agent-teams.md L42-L52 Pattern C 多维度审查 ≥3 specialist 互相质询 NOT fire-and-forget)。
4
+ # (bundled verify-stage Pattern C escalation: ≥3 specialist 互相 SendMessage 质询, NOT fire-and-forget).
6
5
  #
7
6
  # Sister refs:
8
- # - ~/.claude/CLAUDE.md "Verify 阶段 — 关键发布 / 大重构 PR 升级 Agent Team Pattern C" verbatim
9
- # - ~/.claude/rules/agent-teams.md Pattern C 多维度审查 (≥3 specialist lead 委派 + 互相质询)
10
7
  # - workflows/judgments/stage-routing.yaml verify-multispec-critical-release trigger
11
8
  # - workflows/judgments/parallelism-gate.yaml agent-teams-upgrade.fires (5 OR-chain)
12
9
  # - workflows/capabilities.yaml — agent-teams-create / agent-teams-send-message / agent-teams-shutdown
@@ -14,9 +11,9 @@
14
11
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 09-agent-team-multispecialist sister pattern
15
12
  # - .planning/phase-v3.0-3.2/RESEARCH-workflows.md § Area 2 verify/multispec example verbatim
16
13
  #
17
- # Cleanup mandatory per ~/.claude/rules/agent-teams.md 防呆清单 (SendMessage shutdown_request +
18
- # TeamDelete) — engine-level wiring (phase 02-team-cleanup capability agent-teams-shutdown)
19
- # Token estimate prereq per agent-teams.md L34: team_cost < 2 × subagent_cost (engine-level check)
14
+ # Cleanup mandatory (bundled Agent Teams discipline): SendMessage shutdown_request +
15
+ # TeamDelete — engine-level wiring (phase 02-team-cleanup capability agent-teams-shutdown).
16
+ # Token estimate prereq: team_cost < 2 × subagent_cost (bundled cost guideline; engine-level check).
20
17
 
21
18
  schema_version: harnessed.workflow.v3
22
19
  workflow: verify-multispec
@@ -24,7 +21,7 @@ description: |
24
21
  Stage ④.h 4-specialist Agent Team Pattern C 多维度审查 (关键发布 / 大重构 PR 升级,
25
22
  code-review + gstack-review + gstack-cso + gstack-qa 4 teammate 互相 SendMessage 质询,
26
23
  NOT fire-and-forget subagent fan-out)。Cleanup mandatory: shutdown_request + TeamDelete
27
- (sister ~/.claude/rules/agent-teams.md 防呆清单)。
24
+ (bundled Agent Teams cleanup discipline)。
28
25
 
29
26
  disciplines_applied: [karpathy, output-style, language, operational, priority, protocols]
30
27
  tools_available:
@@ -2,9 +2,9 @@
2
2
  name: verify-paranoid
3
3
  description: |
4
4
  Stage ④.c verify sub-workflow — gstack /review Paranoid Staff Engineer 关键模块 PR 前强制
5
- (sister ~/.claude/CLAUDE.md "🔒 关键模块 PR 前强制" verbatim)。Gate:
5
+ (bundled gstack governance gate mandatory before critical-module PR)。Gate:
6
6
  judgments.stage-routing.verify-paranoid-critical.fires (phase.is_critical_module == true) —
7
- 默认 critical fire only; 非关键模块 skip (sister CLAUDE.md "关键模块" 限定语)
7
+ 默认 critical fire only; 非关键模块 skip。
8
8
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
9
9
  (gstack-review) + 1 phase (gate ref is_critical_module conditional)。
10
10
  Triggered by slash command
@@ -50,49 +50,24 @@ Sister `workflows/judgments/stage-routing.yaml`:
50
50
  - ✅ **触发**: 关键模块 PR 前 (auth / payment / data migration / core algorithm 等)
51
51
  - ❌ **跳过**: 常规 PR / docs / config / 非核心 module
52
52
 
53
- <!-- v3.4.3-dual-path-invocation -->
54
53
  ## How to invoke
55
54
 
56
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gstack-review.cmd }}` — the upstream specialist takes over.
57
-
58
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
59
-
60
- > You are a **Paranoid Staff Engineer (pre-landing review)**.
61
- >
62
- > **Mission**: Mandatory on critical modules (auth / payment / data migration / core algorithm). Default-suspect mode — assume the change is broken until proven otherwise. Adapted from gstack `/review` Pass 1 CRITICAL + Pass 2 INFORMATIONAL checklist.
63
- >
64
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
65
- >
66
- > **Review checklist**:
67
- > 1. SQL & Data Safety — string interpolation, TOCTOU races, validation bypass, N+1
68
- >
69
- > 2. Race conditions & concurrency — read-check-write without unique constraint, missing atomic UPDATE
70
- >
71
- > 3. LLM output trust boundary — unvalidated LLM-generated values to DB / SSRF / stored prompt injection
72
- >
73
- > 4. Shell injection — subprocess shell=True with interpolation, os.system, eval/exec on LLM output
74
- >
75
- > 5. Enum & value completeness — new enum/status/tier value reached every consumer (case/if-chains/allowlists)
76
- >
77
- > 6. Async/sync mixing — sync I/O inside async def, time.sleep in async
78
- >
79
- > 7. Column/field name safety — ORM .select/.eq columns match schema
80
- >
81
- > 8. Type coercion at boundaries — hash/digest inputs normalized before serialize
82
- >
83
- > 9. Time window safety — date-key lookups assuming 24h coverage; mismatched buckets between features
84
- >
85
- > **Output format**: structured report with severity-classified findings (CRITICAL / INFORMATIONAL (Fix-First Heuristic — critical → ASK, informational → AUTO-FIX)). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
86
-
87
- (Role prompt is self-contained — works even when the upstream `gstack-review` user-skill / plugin isn't installed.)
88
-
89
- (Sister `~/.claude/commands/verify-paranoid.md` is also generated by `harnessed setup` so `/verify-paranoid` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-paranoid --apply` CLI claims are removed; that subcommand was never implemented.)
55
+ Use the Bash tool to run:
56
+
57
+ ```bash
58
+ echo "$ARGUMENTS" | harnessed run verify-paranoid --task-stdin
59
+ ```
60
+
61
+ If `$ARGUMENTS` is empty, run `harnessed run verify-paranoid` (no stdin pipe).
62
+
63
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
64
+
65
+ <!-- harnessed-generated:v3.4.4 -->
90
66
 
91
67
  ## References
92
68
 
93
69
  - D-04 Stage ④ Verify 7 sub 分解
94
70
  - D-12 gstack 治理关卡强制
95
- - ~/.claude/CLAUDE.md "gstack 治理关卡 🔒 关键模块 PR 前强制" verbatim
96
71
  - workflows/capabilities.yaml — gstack-review
97
72
  - workflows/judgments/stage-routing.yaml — verify-paranoid-critical trigger
98
73
  - workflows/defaults.yaml — ralph_max_iterations.verify-paranoid.* values (W2.2 backfill)
@@ -1,10 +1,9 @@
1
1
  # workflows/verify/paranoid/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.12
2
2
  #
3
3
  # Stage ④.c verify sub-workflow — gstack /review Paranoid Staff Engineer 关键模块 PR 前强制
4
- # (sister ~/.claude/CLAUDE.md "🔒 关键模块 PR 前强制" verbatim)
4
+ # (bundled gstack governance gate mandatory before critical-module PR).
5
5
  #
6
6
  # Sister refs:
7
- # - ~/.claude/CLAUDE.md "gstack 治理关卡 🔒 关键模块 PR 前强制" verbatim
8
7
  # - workflows/judgments/stage-routing.yaml verify-paranoid-critical trigger (phase.is_critical_module)
9
8
  # - workflows/capabilities.yaml — gstack-review (Bucket 3 治理关卡, impl: gstack, cmd: /review)
10
9
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 04-gstack-review-conditional sister pattern
@@ -2,8 +2,8 @@
2
2
  name: verify-progress
3
3
  description: |
4
4
  Stage ④.a verify sub-workflow — gsd-verify-work + gsd-progress 必跑串行 (verify-work 起点)
5
- + planning-with-files progress.md 持久化 (sister ~/.claude/CLAUDE.md "Verify 阶段" verbatim
6
- 必跑串行 — gsd-verify-work UAT-driven acceptance + gsd-progress 状态同步 顺序不可调换)。
5
+ + planning-with-files progress.md 持久化 (bundled verify-stage cadence mandatory serial:
6
+ gsd-verify-work UAT-driven acceptance + gsd-progress 状态同步 顺序不可调换)。
7
7
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
8
8
  (gsd-verify-work + gsd-progress + planning-with-files) + 3 phases (serial 01→02 + persist
9
9
  progress.md sink)。Triggered by harnessed CLI `harnessed verify-progress --phase <num>` or
@@ -46,43 +46,24 @@ Sister `workflows/capabilities.yaml` entries:
46
46
  总 fire 当 `phase.stage == 'verify'` (sister `workflows/judgments/stage-routing.yaml`
47
47
  verify-progress-always trigger)。无 skip 条件 — verify-work 起点必跑。
48
48
 
49
- <!-- v3.4.3-dual-path-invocation -->
50
49
  ## How to invoke
51
50
 
52
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gsd-verify-work.cmd }}` — the upstream specialist takes over.
53
-
54
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
55
-
56
- > You are a **Progress / UAT verifier**.
57
- >
58
- > **Mission**: Mandatory serial start of the verify stage. Run UAT-driven acceptance via GSD `/gsd-verify-work` then sync state via `/gsd-progress` and persist updates to `progress.md`. Order is locked: verify-work → progress.
59
- >
60
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
61
- >
62
- > **Review checklist**:
63
- > 1. Read the phase's acceptance criteria from PLAN.md / task_plan.md
64
- >
65
- > 2. For each criterion, demonstrate it passes (test result, manual UAT log, screenshot)
66
- >
67
- > 3. Flag any criterion that is partial / stubbed / TODO — do NOT mark complete
68
- >
69
- > 4. Sync ROADMAP.md / STATE.md / REQUIREMENTS.md via gsd-progress
70
- >
71
- > 5. Append `progress.md` with completed subtask hash + verification artifact
72
- >
73
- > 6. If acceptance is incomplete, route to bug-fix and re-verify; do not advance
74
- >
75
- > **Output format**: structured report with severity-classified findings (accepted / partial / blocked / failed). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
76
-
77
- (Role prompt is self-contained — works even when the upstream `gsd-verify-work` user-skill / plugin isn't installed.)
78
-
79
- (Sister `~/.claude/commands/verify-progress.md` is also generated by `harnessed setup` so `/verify-progress` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-progress --apply` CLI claims are removed; that subcommand was never implemented.)
51
+ Use the Bash tool to run:
52
+
53
+ ```bash
54
+ echo "$ARGUMENTS" | harnessed run verify-progress --task-stdin
55
+ ```
56
+
57
+ If `$ARGUMENTS` is empty, run `harnessed run verify-progress` (no stdin pipe).
58
+
59
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
60
+
61
+ <!-- harnessed-generated:v3.4.4 -->
80
62
 
81
63
  ## References
82
64
 
83
65
  - D-04 Stage ④ Verify 7 sub 分解
84
66
  - D-12 gstack 治理关卡 ref (verify-paranoid 后续 sub)
85
- - ~/.claude/CLAUDE.md "Verify 阶段 — gsd-verify-work + gsd-progress 必跑串行" verbatim
86
67
  - workflows/capabilities.yaml — gsd-verify-work / gsd-progress / planning-with-files
87
68
  - workflows/judgments/stage-routing.yaml — verify-progress-always trigger
88
69
  - workflows/defaults.yaml — ralph_max_iterations.verify-progress.* values (W2.2 backfill)
@@ -4,7 +4,6 @@
4
4
  # + planning-with-files persist (progress.md sink, sister CLAUDE.md "Verify 阶段" verbatim)。
5
5
  #
6
6
  # Sister refs:
7
- # - ~/.claude/CLAUDE.md "Verify 阶段" 章节 verbatim (gsd-verify-work + gsd-progress 必跑串行)
8
7
  # - workflows/judgments/stage-routing.yaml verify-progress-always trigger (总 fire 当 stage=='verify')
9
8
  # - workflows/capabilities.yaml — gsd-verify-work / gsd-progress / planning-with-files
10
9
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 01-02 verbatim pattern
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: verify-qa
3
3
  description: |
4
- Stage ④.d verify sub-workflow — gstack /qa 端到端 QA 验收 (has_ui_changes 触发, 可选 conditional,
5
- sister ~/.claude/CLAUDE.md "Verify 阶段 — 可选 /qa" verbatim)
4
+ Stage ④.d verify sub-workflow — gstack /qa 端到端 QA 验收 (has_ui_changes 触发, 可选 conditional;
5
+ bundled verify-stage optional /qa step).
6
6
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
7
7
  (gstack-qa + playwright-cli + playwright-test + webapp-testing) + 1 phase (gate ref
8
8
  has_ui_changes conditional)。
@@ -45,53 +45,32 @@ Sister `workflows/capabilities.yaml` entries:
45
45
  Sister `workflows/judgments/stage-routing.yaml`:
46
46
  - `verify-qa-ui.fires` — `phase.stage == 'verify' and phase.has_ui_changes == true`
47
47
 
48
- ## Routing rules (sister ~/.claude/rules/web-testing.md)
48
+ ## Routing rules (bundled web-testing routing — `workflows/judgments/web-testing-routing.yaml`)
49
49
 
50
50
  - 写测试 提交 repo / CI 跑 → `@playwright/test` (默认 frontend/e2e/*.spec.ts)
51
51
  - 探查 / 调试 / 一次性确认 → `playwright-cli` (token 最省)
52
52
  - setup 需 Python 后端 (Tortoise ORM / pandas) → `webapp-testing` skill
53
53
  - 性能 / a11y / 内存诊断 → 不在此 sub-workflow,用 `chrome-devtools-mcp`
54
54
 
55
- <!-- v3.4.3-dual-path-invocation -->
56
55
  ## How to invoke
57
56
 
58
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gstack-qa.cmd }}` — the upstream specialist takes over.
59
-
60
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
61
-
62
- > You are a **QA Engineer (end-to-end)**.
63
- >
64
- > **Mission**: Hands-on UAT for the changed surface — orient → explore → exercise forms / nav / states / console / responsive. Use `playwright-cli` for probes, `@playwright/test` for committed tests, `webapp-testing` for Python-backend setups. Adapted from gstack `/qa`.
65
- >
66
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
67
- >
68
- > **Review checklist**:
69
- > 1. Orient: map the application (links, framework detection, initial console errors)
70
- >
71
- > 2. Per page: visual scan, interactive elements work, console clean, responsive check
72
- >
73
- > 3. Forms: empty / invalid / edge cases — error messages clear and actionable
74
- >
75
- > 4. Navigation: every path in and out works, no dead-ends
76
- >
77
- > 5. States: empty, loading, error, overflow — none look like AI placeholder
78
- >
79
- > 6. Mobile: 375x812 viewport — real layout, not stacked desktop
80
- >
81
- > 7. Authenticated paths if creds / cookies provided; depth > breadth on core flows
82
- >
83
- > **Output format**: structured report with severity-classified findings (blocker / major / minor / nit). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
84
-
85
- (Role prompt is self-contained — works even when the upstream `gstack-qa` user-skill / plugin isn't installed.)
86
-
87
- (Sister `~/.claude/commands/verify-qa.md` is also generated by `harnessed setup` so `/verify-qa` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-qa --apply` CLI claims are removed; that subcommand was never implemented.)
57
+ Use the Bash tool to run:
58
+
59
+ ```bash
60
+ echo "$ARGUMENTS" | harnessed run verify-qa --task-stdin
61
+ ```
62
+
63
+ If `$ARGUMENTS` is empty, run `harnessed run verify-qa` (no stdin pipe).
64
+
65
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
66
+
67
+ <!-- harnessed-generated:v3.4.4 -->
88
68
 
89
69
  ## References
90
70
 
91
71
  - D-04 Stage ④ Verify 7 sub 分解
92
72
  - D-12 gstack 治理关卡可选
93
- - ~/.claude/CLAUDE.md "Verify 阶段 可选 /qa" verbatim
94
- - ~/.claude/rules/web-testing.md — 三层职责矩阵 (脑 / 手 / 筋骨)
73
+ - workflows/judgments/web-testing-routing.yaml 三层职责矩阵 (脑 / / 筋骨)
95
74
  - workflows/capabilities.yaml — gstack-qa / playwright-cli / playwright-test / webapp-testing
96
75
  - workflows/judgments/stage-routing.yaml — verify-qa-ui trigger
97
76
  - workflows/verify-work/workflow.yaml v2 SHIPPED phase 05-qa-conditional sister verbatim
@@ -1,10 +1,9 @@
1
1
  # workflows/verify/qa/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.13a
2
2
  #
3
3
  # Stage ④.d verify sub-workflow — gstack /qa 端到端 QA 验收 (has_ui_changes 触发, 可选 conditional)
4
- # (sister ~/.claude/CLAUDE.md "Verify 阶段" "可选 /qa" verbatim)
4
+ # (bundled verify-stage optional /qa step).
5
5
  #
6
6
  # Sister refs:
7
- # - ~/.claude/CLAUDE.md "Verify 阶段 — 可选 /qa" 章节
8
7
  # - workflows/judgments/stage-routing.yaml verify-qa-ui trigger (has_ui_changes)
9
8
  # - workflows/capabilities.yaml — gstack-qa (Bucket 3 治理关卡, impl: gstack, cmd: /qa)
10
9
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 05-qa-conditional sister pattern
@@ -2,7 +2,7 @@
2
2
  name: verify-security
3
3
  description: |
4
4
  Stage ④.e verify sub-workflow — gstack /cso 安全审查 OWASP/auth/secrets (has_auth_or_secrets
5
- 触发, 可选 conditional, sister ~/.claude/CLAUDE.md "Verify 阶段 — 可选 /cso" verbatim)
5
+ 触发, 可选 conditional; bundled verify-stage optional /cso step).
6
6
  schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
7
7
  (gstack-cso) + 1 phase (gate ref has_auth_or_secrets conditional)。
8
8
  Triggered by slash command
@@ -47,47 +47,24 @@ Sister `workflows/judgments/stage-routing.yaml`:
47
47
  - ✅ **触发**: auth flow / session / credentials / API keys / SQL injection 路径 / OWASP top 10 area
48
48
  - ❌ **跳过**: docs / 纯 UI styling / 内部 refactor / non-security PR
49
49
 
50
- <!-- v3.4.3-dual-path-invocation -->
51
50
  ## How to invoke
52
51
 
53
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gstack-cso.cmd }}` — the upstream specialist takes over.
54
-
55
- **Fallback path** (when the upstream isn't installed or returns no result): use the Task tool to spawn a general-purpose subagent with this prompt:
56
-
57
- > You are a **Chief Security Officer (CSO audit)**.
58
- >
59
- > **Mission**: Conditional on `phase.has_auth_or_secrets == true`. Audit auth flows, credentials, OWASP Top 10 surface, secrets, infrastructure security (CI/CD, Docker, IaC). Adapted from gstack `/cso`.
60
- >
61
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
62
- >
63
- > **Review checklist**:
64
- > 1. OWASP Top 10: injection / broken auth / sensitive data exposure / XXE / broken access control / misconfig / XSS / insecure deserialize / known-vuln deps / insufficient logging
65
- >
66
- > 2. Secrets archaeology: git history scan for leaked credentials, .env tracked files, CI inline secrets
67
- >
68
- > 3. Auth boundaries: every protected route enforces auth (not just CSR check); authorization not transitive across requests
69
- >
70
- > 4. CSRF / SSRF / stored prompt injection where LLM output enters knowledge bases
71
- >
72
- > 5. CI/CD: pull_request_target + checkout PR code, script injection via github.event.*, unpinned third-party actions
73
- >
74
- > 6. Dockerfiles: missing USER (root), secrets as ARG, .env in image, exposed ports without purpose
75
- >
76
- > 7. IaC: wildcard IAM, hardcoded secrets in .tfvars, privileged containers, hostNetwork in K8s
77
- >
78
- > 8. Dependency audit (npm audit / pip-audit / bundler-audit) — note SKIPPED tools rather than fail audit
79
- >
80
- > **Output format**: structured report with severity-classified findings (CRITICAL / HIGH / MEDIUM / LOW / INFO). One finding per line: `[severity] file:line — problem (one sentence); fix: suggested change`. If no findings, say so explicitly. No preamble, no end-of-report summary.
81
-
82
- (Role prompt is self-contained — works even when the upstream `gstack-cso` user-skill / plugin isn't installed.)
83
-
84
- (Sister `~/.claude/commands/verify-security.md` is also generated by `harnessed setup` so `/verify-security` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed verify-security --apply` CLI claims are removed; that subcommand was never implemented.)
52
+ Use the Bash tool to run:
53
+
54
+ ```bash
55
+ echo "$ARGUMENTS" | harnessed run verify-security --task-stdin
56
+ ```
57
+
58
+ If `$ARGUMENTS` is empty, run `harnessed run verify-security` (no stdin pipe).
59
+
60
+ After completion, the Bash output prints a `Next:` hint on stderr suggesting the next stage. Decide whether to invoke based on conversation context — the hint is informational, not prescriptive.
61
+
62
+ <!-- harnessed-generated:v3.4.4 -->
85
63
 
86
64
  ## References
87
65
 
88
66
  - D-04 Stage ④ Verify 7 sub 分解
89
67
  - D-12 gstack 治理关卡可选
90
- - ~/.claude/CLAUDE.md "Verify 阶段 — 可选 /cso" verbatim
91
68
  - workflows/capabilities.yaml — gstack-cso
92
69
  - workflows/judgments/stage-routing.yaml — verify-security-secrets trigger
93
70
  - workflows/verify-work/workflow.yaml v2 SHIPPED phase 06-cso-conditional sister verbatim
@@ -1,10 +1,9 @@
1
1
  # workflows/verify/security/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.13b
2
2
  #
3
3
  # Stage ④.e verify sub-workflow — gstack /cso 安全审查 OWASP/auth/secrets
4
- # (has_auth_or_secrets 触发, 可选 conditional, sister ~/.claude/CLAUDE.md "可选 /cso" verbatim)
4
+ # (has_auth_or_secrets 触发, 可选 conditional; bundled verify-stage optional /cso step).
5
5
  #
6
6
  # Sister refs:
7
- # - ~/.claude/CLAUDE.md "Verify 阶段 — 可选 /cso" 章节
8
7
  # - workflows/judgments/stage-routing.yaml verify-security-secrets trigger (has_auth_or_secrets)
9
8
  # - workflows/capabilities.yaml — gstack-cso (Bucket 3 治理关卡, impl: gstack, cmd: /cso)
10
9
  # - workflows/verify-work/workflow.yaml v2 SHIPPED phase 06-cso-conditional sister pattern