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.
- package/README.md +3 -0
- package/dist/cli.mjs +1119 -745
- package/dist/cli.mjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/workflows/auto/SKILL.md +10 -4
- package/workflows/capabilities.yaml +18 -19
- package/workflows/disciplines/karpathy.yaml +1 -1
- package/workflows/disciplines/language.yaml +1 -1
- package/workflows/disciplines/operational.yaml +2 -2
- package/workflows/disciplines/output-style.yaml +1 -1
- package/workflows/disciplines/priority.yaml +1 -1
- package/workflows/disciplines/protocols.yaml +1 -1
- package/workflows/discuss/auto/SKILL.md +10 -6
- package/workflows/discuss/auto/workflow.yaml +1 -2
- package/workflows/discuss/phase/SKILL.md +11 -30
- package/workflows/discuss/phase/workflow.yaml +1 -1
- package/workflows/discuss/strategic/SKILL.md +12 -33
- package/workflows/discuss/strategic/workflow.yaml +2 -3
- package/workflows/discuss/subtask/SKILL.md +11 -30
- package/workflows/discuss/subtask/workflow.yaml +1 -1
- package/workflows/execute-task/SKILL.md +7 -6
- package/workflows/execute-task/workflow.yaml +93 -0
- package/workflows/judgments/fallback.yaml +1 -1
- package/workflows/judgments/parallelism-gate.yaml +4 -3
- package/workflows/judgments/phase-gate.yaml +2 -2
- package/workflows/judgments/strategic-gate.yaml +2 -2
- package/workflows/judgments/subtask-gate.yaml +2 -2
- package/workflows/judgments/tdd-gate.yaml +2 -2
- package/workflows/judgments/web-design-routing.yaml +1 -1
- package/workflows/judgments/web-search-routing.yaml +1 -1
- package/workflows/judgments/web-testing-routing.yaml +1 -1
- package/workflows/plan/architecture/SKILL.md +13 -34
- package/workflows/plan/architecture/workflow.yaml +2 -2
- package/workflows/plan/auto/SKILL.md +10 -6
- package/workflows/plan/auto/workflow.yaml +1 -2
- package/workflows/plan/phase/SKILL.md +14 -35
- package/workflows/plan/phase/workflow.yaml +3 -3
- package/workflows/plan-feature/SKILL.md +4 -4
- package/workflows/research/SKILL.md +19 -6
- package/workflows/research/workflow.yaml +4 -4
- package/workflows/retro/SKILL.md +13 -32
- package/workflows/retro/workflow.yaml +1 -2
- package/workflows/role-prompts.yaml +4 -3
- package/workflows/task/auto/SKILL.md +11 -7
- package/workflows/task/auto/workflow.yaml +2 -3
- package/workflows/task/clarify/SKILL.md +11 -30
- package/workflows/task/code/SKILL.md +14 -35
- package/workflows/task/code/workflow.yaml +0 -1
- package/workflows/task/deliver/SKILL.md +15 -38
- package/workflows/task/deliver/workflow.yaml +7 -6
- package/workflows/task/test/SKILL.md +11 -32
- package/workflows/task/test/workflow.yaml +1 -2
- package/workflows/verify/auto/SKILL.md +14 -10
- package/workflows/verify/auto/workflow.yaml +4 -5
- package/workflows/verify/code-review/SKILL.md +14 -38
- package/workflows/verify/code-review/workflow.yaml +1 -3
- package/workflows/verify/design/SKILL.md +14 -38
- package/workflows/verify/design/workflow.yaml +4 -5
- package/workflows/verify/multispec/SKILL.md +17 -39
- package/workflows/verify/multispec/workflow.yaml +5 -8
- package/workflows/verify/paranoid/SKILL.md +13 -38
- package/workflows/verify/paranoid/workflow.yaml +1 -2
- package/workflows/verify/progress/SKILL.md +13 -32
- package/workflows/verify/progress/workflow.yaml +0 -1
- package/workflows/verify/qa/SKILL.md +15 -36
- package/workflows/verify/qa/workflow.yaml +1 -2
- package/workflows/verify/security/SKILL.md +12 -35
- package/workflows/verify/security/workflow.yaml +1 -2
- package/workflows/verify/simplify/SKILL.md +13 -34
- package/workflows/verify/simplify/workflow.yaml +1 -2
- package/workflows/verify-work/SKILL.md +5 -7
- package/workflows/verify-work/workflow.yaml +5 -7
- package/workflows/execute-task/phases.yaml +0 -73
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,OA8Fb,CAAA;;;AC3FO,IAAM,UAAU,eAAA,CAAI","file":"index.mjs","sourcesContent":["{\n \"name\": \"harnessed\",\n \"version\": \"3.
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,OA8Fb,CAAA;;;AC3FO,IAAM,UAAU,eAAA,CAAI","file":"index.mjs","sourcesContent":["{\n \"name\": \"harnessed\",\n \"version\": \"3.5.0\",\n \"description\": \"AI coding harness package manager + composition orchestrator\",\n \"type\": \"module\",\n \"license\": \"Apache-2.0\",\n \"author\": \"easyinplay\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/easyinplay/harnessed.git\"\n },\n \"homepage\": \"https://github.com/easyinplay/harnessed#readme\",\n \"bugs\": \"https://github.com/easyinplay/harnessed/issues\",\n \"keywords\": [\n \"claude-code\",\n \"ai-harness\",\n \"package-manager\",\n \"composition\",\n \"skill-pack\",\n \"mcp\",\n \"orchestrator\"\n ],\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"packageManager\": \"pnpm@10.12.0\",\n \"bin\": {\n \"harnessed\": \"./dist/cli.mjs\"\n },\n \"main\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./schemas\": {\n \"types\": \"./dist/schemas/index.d.ts\",\n \"import\": \"./dist/schemas/index.mjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"manifests\",\n \"workflows\",\n \"routing\",\n \"config-templates\",\n \"schemas\",\n \"README.md\",\n \"LICENSE\",\n \"NOTICE\"\n ],\n \"scripts\": {\n \"dev\": \"tsup --watch\",\n \"build\": \"tsc --noEmit && tsup\",\n \"build:schema\": \"node ./scripts/build-schema.mjs\",\n \"validate:schema\": \"node ./scripts/validate-schema.mjs\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run --passWithNoTests\",\n \"test:watch\": \"vitest\",\n \"test:coverage\": \"vitest run --coverage --passWithNoTests\",\n \"bench\": \"vitest bench --run\",\n \"lint\": \"biome check .\",\n \"lint:fix\": \"biome check --write .\",\n \"format\": \"biome format --write .\"\n },\n \"dependencies\": {\n \"@anthropic-ai/claude-agent-sdk\": \"0.3.142\",\n \"@clack/prompts\": \"^0.10.1\",\n \"@sinclair/typebox\": \"^0.34.49\",\n \"ajv\": \"^8.20.0\",\n \"ajv-errors\": \"^3.0.0\",\n \"ajv-formats\": \"^3.0.1\",\n \"commander\": \"^13.0.0\",\n \"diff\": \"^9.0.0\",\n \"expr-eval\": \"^2.0.2\",\n \"picocolors\": \"^1.1.1\",\n \"proper-lockfile\": \"^4.1.2\",\n \"yaml\": \"^2.9.0\"\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"^2.0.0\",\n \"@types/node\": \"^22.10.0\",\n \"@types/proper-lockfile\": \"^4.1.4\",\n \"@vitest/coverage-v8\": \"^4.0.0\",\n \"tsup\": \"^8.3.0\",\n \"typescript\": \"^5.6.0\",\n \"vitest\": \"^4.0.0\"\n },\n \"pnpm\": {\n \"onlyBuiltDependencies\": [\n \"esbuild\"\n ]\n }\n}\n","// Main library entry — re-exports public APIs.\n// phase 1.1 batch 1: skeleton only; schema validator wired in batch 2 (T3+).\n\nimport pkg from '../package.json' with { type: 'json' }\n\nexport const VERSION = pkg.version\n"]}
|
package/package.json
CHANGED
package/workflows/auto/SKILL.md
CHANGED
|
@@ -103,14 +103,20 @@ Sister `workflows/capabilities.yaml`:
|
|
|
103
103
|
- 4 stage-master `/discuss /plan /task /verify` 仍可独立 invoke — `/auto` 是 opt-in NEW workflow
|
|
104
104
|
- `--staged` opt-in for stage gate UX (每 stage 完停 user review)
|
|
105
105
|
|
|
106
|
-
<!-- v3.4.3-dual-path-invocation -->
|
|
107
106
|
## How to invoke
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
Use the Bash tool to run:
|
|
110
109
|
|
|
111
|
-
|
|
110
|
+
```bash
|
|
111
|
+
echo "$ARGUMENTS" | harnessed run auto --task-stdin
|
|
112
|
+
```
|
|
112
113
|
|
|
113
|
-
|
|
114
|
+
If `$ARGUMENTS` is empty, run `harnessed run auto` (no stdin pipe).
|
|
115
|
+
|
|
116
|
+
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.
|
|
117
|
+
- For stage-by-stage review, append `--staged` (pauses between stages for user review).
|
|
118
|
+
|
|
119
|
+
<!-- harnessed-generated:v3.4.4 -->
|
|
114
120
|
|
|
115
121
|
## References
|
|
116
122
|
|
|
@@ -70,9 +70,9 @@ capabilities:
|
|
|
70
70
|
|
|
71
71
|
caveman:
|
|
72
72
|
# v3.4.2: dual-install ("互为补充") — caveman ships BOTH as user-skill
|
|
73
|
-
# (git clone caveman repo into
|
|
74
|
-
# plugin (`caveman@caveman` in installed_plugins.json). Resolver
|
|
75
|
-
# either; emits combined warning only if BOTH are missing.
|
|
73
|
+
# (git clone caveman repo into <claude-home>/skills/caveman/) AND as Claude
|
|
74
|
+
# Code plugin (`caveman@caveman` in installed_plugins.json). Resolver
|
|
75
|
+
# detects either; emits combined warning only if BOTH are missing.
|
|
76
76
|
impl: caveman
|
|
77
77
|
install_type: [user-skill, plugin]
|
|
78
78
|
skill_dir: caveman
|
|
@@ -179,7 +179,7 @@ capabilities:
|
|
|
179
179
|
cmd: /ui-ux-pro-max
|
|
180
180
|
since: v2.0
|
|
181
181
|
category: tool-slash-cmd
|
|
182
|
-
description: UI/UX 默认主方案 数据驱动
|
|
182
|
+
description: UI/UX 默认主方案 数据驱动
|
|
183
183
|
fires_when:
|
|
184
184
|
- phase.has_ui_changes == true
|
|
185
185
|
- subtask.type == 'ui_polish'
|
|
@@ -192,7 +192,7 @@ capabilities:
|
|
|
192
192
|
cmd: /frontend-design
|
|
193
193
|
since: v2.0
|
|
194
194
|
category: tool-slash-cmd
|
|
195
|
-
description: UI 创意/装饰补充
|
|
195
|
+
description: UI 创意/装饰补充
|
|
196
196
|
fires_when:
|
|
197
197
|
- phase.has_ui_changes == true AND phase.requires_creative_polish == true
|
|
198
198
|
|
|
@@ -201,7 +201,7 @@ capabilities:
|
|
|
201
201
|
cmd: playwright
|
|
202
202
|
since: v2.0
|
|
203
203
|
category: tool-bundled-skill
|
|
204
|
-
description: AI 实时操作浏览器 一行 Bash (
|
|
204
|
+
description: "AI 实时操作浏览器 一行 Bash (手层 — 探查 / 调试 / 一次性交互)"
|
|
205
205
|
fires_when:
|
|
206
206
|
- subtask.type == 'browser_probe'
|
|
207
207
|
|
|
@@ -210,7 +210,7 @@ capabilities:
|
|
|
210
210
|
cmd: "@playwright/test"
|
|
211
211
|
since: v2.0
|
|
212
212
|
category: tool-plugin
|
|
213
|
-
description: E2E test framework TypeScript (
|
|
213
|
+
description: "E2E test framework TypeScript (脑层 — 写测试 / 跑 CI / 断言 / fixtures / reporter)"
|
|
214
214
|
fires_when:
|
|
215
215
|
- subtask.type == 'e2e_test' AND subtask.language == 'typescript'
|
|
216
216
|
|
|
@@ -221,7 +221,7 @@ capabilities:
|
|
|
221
221
|
cmd: /webapp-testing
|
|
222
222
|
since: v2.0
|
|
223
223
|
category: tool-bundled-skill
|
|
224
|
-
description: Python 后端联动 E2E (
|
|
224
|
+
description: "Python 后端联动 E2E (筋骨层 — Python Playwright + with_server.py)"
|
|
225
225
|
fires_when:
|
|
226
226
|
- subtask.type == 'e2e_test' AND subtask.language == 'python'
|
|
227
227
|
|
|
@@ -230,7 +230,7 @@ capabilities:
|
|
|
230
230
|
cmd: chrome-devtools
|
|
231
231
|
since: v2.0
|
|
232
232
|
category: tool-mcp
|
|
233
|
-
description: 性能/a11y/内存泄漏诊断 (
|
|
233
|
+
description: 性能/a11y/内存泄漏诊断 (非功能性 only; NOT for E2E test)
|
|
234
234
|
fires_when:
|
|
235
235
|
- subtask.type in ['perf_diagnose', 'a11y_audit', 'memory_leak']
|
|
236
236
|
|
|
@@ -239,7 +239,7 @@ capabilities:
|
|
|
239
239
|
cmd: ctx7
|
|
240
240
|
since: v2.0
|
|
241
241
|
category: tool-cli
|
|
242
|
-
description: 库 API/框架/SDK 文档抓取
|
|
242
|
+
description: 库 API/框架/SDK 文档抓取
|
|
243
243
|
fires_when:
|
|
244
244
|
- subtask.needs_library_docs == true
|
|
245
245
|
|
|
@@ -248,7 +248,7 @@ capabilities:
|
|
|
248
248
|
cmd: tavily_search
|
|
249
249
|
since: v2.0
|
|
250
250
|
category: tool-mcp
|
|
251
|
-
description: Web 搜索默认 (关键词/库 API/时效)
|
|
251
|
+
description: Web 搜索默认 (关键词/库 API/时效)
|
|
252
252
|
fires_when:
|
|
253
253
|
- subtask.needs_web_search == true
|
|
254
254
|
|
|
@@ -257,7 +257,7 @@ capabilities:
|
|
|
257
257
|
cmd: web_fetch_exa
|
|
258
258
|
since: v2.0
|
|
259
259
|
category: tool-mcp
|
|
260
|
-
description: 描述式/学术 Web 搜索
|
|
260
|
+
description: "描述式/学术 Web 搜索 (覆盖默认 Tavily 的场景 — 描述式查询 / 学术 / 批量抓多 URL)"
|
|
261
261
|
fires_when:
|
|
262
262
|
- subtask.needs_web_search == true AND subtask.search_type in ['descriptive', 'academic']
|
|
263
263
|
|
|
@@ -432,7 +432,6 @@ capabilities:
|
|
|
432
432
|
description: Manus-style persistent markdown planning (Claude Code plugin slash cmd)
|
|
433
433
|
requires:
|
|
434
434
|
plugin: planning-with-files >=2.2.0
|
|
435
|
-
plugin_path: ~/.claude/plugins/cache/planning-with-files/planning-with-files/2.34.0
|
|
436
435
|
outputs:
|
|
437
436
|
- task_plan.md
|
|
438
437
|
- progress.md
|
|
@@ -451,7 +450,7 @@ capabilities:
|
|
|
451
450
|
since: v2.0
|
|
452
451
|
category: tool-bundled-skill
|
|
453
452
|
description: Sub-task completion gate (verbatim COMPLETE; max-iterations fallback)
|
|
454
|
-
sdk_ref: src/
|
|
453
|
+
sdk_ref: src/workflow/lib/ralphLoop.ts
|
|
455
454
|
fires_when:
|
|
456
455
|
- subtask.completion_required == true
|
|
457
456
|
|
|
@@ -469,14 +468,14 @@ capabilities:
|
|
|
469
468
|
|
|
470
469
|
# ============================================================================
|
|
471
470
|
# Bucket 5 — Agent Teams 3 升级触发 (per D-11 + Q-AUDIT-5b schema fix +
|
|
472
|
-
#
|
|
471
|
+
# bundled Agent Teams prerequisite: CC 2.1.133+ + env var)
|
|
473
472
|
# ============================================================================
|
|
474
473
|
#
|
|
475
474
|
# Q-AUDIT-5b 2026-05-20 fix: settings_env_var root-level `env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`
|
|
476
475
|
# (NOT nested experimental.* — Wave A 本地 settings.json 实证修正 prior schema 错误)。
|
|
477
476
|
# Per Q-AUDIT-2 D-11: harnessed doctor + setup 检查 env var present + cc_version ≥2.1.133。
|
|
478
477
|
#
|
|
479
|
-
# 5 fires_when OR-chain (multi-select
|
|
478
|
+
# 5 fires_when OR-chain (multi-select; Agent Teams upgrade triggers):
|
|
480
479
|
# 1. teammate_send_message_needed — teammate 间需 SendMessage 互通 (NOT fire-and-forget)
|
|
481
480
|
# 2. subagent_context_overflow — 某 subagent 撞 context 上限需分担
|
|
482
481
|
# 3. shared_task_list — 多 teammate 共享 task list 自协调
|
|
@@ -487,7 +486,7 @@ capabilities:
|
|
|
487
486
|
cmd: TeamCreate
|
|
488
487
|
since: v2.0
|
|
489
488
|
category: agent-platform
|
|
490
|
-
description: Agent Teams team 创建 (CC 2.1.133+ experimental
|
|
489
|
+
description: Agent Teams team 创建 (CC 2.1.133+ experimental)
|
|
491
490
|
requires:
|
|
492
491
|
settings_env_var: env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS == "1"
|
|
493
492
|
cc_version: ">=2.1.133"
|
|
@@ -513,7 +512,7 @@ capabilities:
|
|
|
513
512
|
cmd: TeamDelete
|
|
514
513
|
since: v2.0
|
|
515
514
|
category: agent-platform
|
|
516
|
-
description: Agent Teams cleanup (shutdown_request 之后 TeamDelete;
|
|
515
|
+
description: Agent Teams cleanup (shutdown_request 之后 TeamDelete; mandatory cleanup discipline)
|
|
517
516
|
requires:
|
|
518
517
|
settings_env_var: env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS == "1"
|
|
519
518
|
cc_version: ">=2.1.133"
|
|
@@ -993,7 +992,7 @@ capabilities:
|
|
|
993
992
|
- subtask.parallel_count <= 3
|
|
994
993
|
- subtask.communication_needed == false
|
|
995
994
|
|
|
996
|
-
# D-11 NEW google-workspace.yaml (gws CLI
|
|
995
|
+
# D-11 NEW google-workspace.yaml (gws CLI — Google Workspace OAuth2 keyring auth)
|
|
997
996
|
gws:
|
|
998
997
|
impl: cli
|
|
999
998
|
cmd: gws
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# workflows/disciplines/karpathy.yaml
|
|
2
|
-
# karpathy 心法 + 编码硬限 —
|
|
2
|
+
# karpathy 心法 + 编码硬限 — bundled discipline (think-before-coding / simplicity-first / surgical-changes / goal-driven)
|
|
3
3
|
# Phase v3.0-3.3 W0.4 ship per D-09 (L0 Discipline Substrate)
|
|
4
4
|
# Snapshot of CLAUDE.md as of v3.0 ship date (K7 mitigation, verbatim)
|
|
5
5
|
|
|
@@ -20,7 +20,7 @@ rules:
|
|
|
20
20
|
stay consistent with CLI tone.
|
|
21
21
|
enforcement: info
|
|
22
22
|
trigger: every Claude response
|
|
23
|
-
check_method: read
|
|
23
|
+
check_method: read env.HARNESSED_USER_LANG, validate output lang matches
|
|
24
24
|
|
|
25
25
|
- id: preserve-english-categories
|
|
26
26
|
description: 8 类强制保留英文原文,不翻译不音译 (语言无关 — 任何 user_lang 都适用)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# workflows/disciplines/operational.yaml
|
|
2
|
-
# 操作纪律 —
|
|
3
|
-
#
|
|
2
|
+
# 操作纪律 — bundled discipline (biome preempt + commit safety +
|
|
3
|
+
# A7 ADR + no-skip-hooks + authorization-not-transitive + destructive-ops-explicit)
|
|
4
4
|
# Phase v3.0-3.3 W0.4 ship per D-09
|
|
5
5
|
# Snapshot of CLAUDE.md as of v3.0 ship date (K7 mitigation, verbatim)
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# workflows/disciplines/output-style.yaml
|
|
2
|
-
# 对话回答风格 —
|
|
2
|
+
# 对话回答风格 — bundled discipline (BLUF + no-sycophantic + no-emoji + no-em-dash + 量词精确 + no-end-recap + no-empty-continuation-question)
|
|
3
3
|
# Phase v3.0-3.3 W0.4 ship per D-09
|
|
4
4
|
# Snapshot of CLAUDE.md as of v3.0 ship date (K7 mitigation, verbatim)
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# workflows/disciplines/priority.yaml
|
|
2
|
-
# 优先级仲裁 —
|
|
2
|
+
# 优先级仲裁 — bundled discipline (7-tier hierarchy: gstack > gsd > superpowers > planning-with-files > karpathy > mattpocock > parallel)
|
|
3
3
|
# Phase v3.0-3.3 W0.4 ship per D-09
|
|
4
4
|
# Snapshot of CLAUDE.md as of v3.0 ship date (K7 mitigation, verbatim)
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# workflows/disciplines/protocols.yaml
|
|
2
|
-
# 跨 CC instance 协议 —
|
|
2
|
+
# 跨 CC instance 协议 — bundled cc-handoff protocols (Ideation→Onboarding +
|
|
3
3
|
# Plan→Execute) + 写入边界表
|
|
4
4
|
# Phase v3.0-3.3 W0.4 ship per D-09
|
|
5
5
|
# Snapshot of CLAUDE.md as of v3.0 ship date (K7 mitigation, verbatim)
|
|
@@ -20,7 +20,7 @@ trigger_phrases:
|
|
|
20
20
|
## Overview
|
|
21
21
|
|
|
22
22
|
4-stage cadence Stage ① master orchestrator delegating to 3 independent sub-workflows
|
|
23
|
-
(
|
|
23
|
+
(bundled 3-tier independent clarification: strategic / phase / subtask):
|
|
24
24
|
|
|
25
25
|
| sub | gate ref | mode | when fires |
|
|
26
26
|
| --- | -------- | ---- | ---------- |
|
|
@@ -51,21 +51,25 @@ Sister `workflows/capabilities.yaml`:
|
|
|
51
51
|
|
|
52
52
|
- Slash command: `/discuss <text>` (bare per ADR 0030 namespace policy D-02 LOCK after `harnessed setup`)
|
|
53
53
|
|
|
54
|
-
<!-- v3.4.3-dual-path-invocation -->
|
|
55
54
|
## How to invoke
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
Use the Bash tool to run:
|
|
58
57
|
|
|
59
|
-
|
|
58
|
+
```bash
|
|
59
|
+
echo "$ARGUMENTS" | harnessed run discuss --task-stdin
|
|
60
|
+
```
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
If `$ARGUMENTS` is empty, run `harnessed run discuss` (no stdin pipe).
|
|
63
|
+
|
|
64
|
+
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.
|
|
65
|
+
|
|
66
|
+
<!-- harnessed-generated:v3.4.4 -->
|
|
62
67
|
|
|
63
68
|
## References
|
|
64
69
|
|
|
65
70
|
- D-01 master orchestrator delegation pattern
|
|
66
71
|
- D-02 bare slash cmd convention (ADR 0030 namespace policy LOCK)
|
|
67
72
|
- D-04 Stage ① Discuss 三层独立判
|
|
68
|
-
- ~/.claude/CLAUDE.md "澄清/审查触发判据" 节 verbatim
|
|
69
73
|
- workflows/judgments/stage-routing.yaml — discuss-{strategic,phase,subtask}-delegate triggers
|
|
70
74
|
- workflows/discuss/{strategic,phase,subtask}/workflow.yaml — 3 sub-workflow Phase 3.4 SHIPPED
|
|
71
75
|
- workflows/judgments/fallback.yaml — 链式互不前置 chain-isolation 铁律
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# workflows/discuss/auto/workflow.yaml — Phase v3.0-3.5 W1 T3.5.W1.1
|
|
2
2
|
#
|
|
3
3
|
# Stage ① Discuss master orchestrator — 3 sub-workflow parallel gate-eval (chain-isolation 铁律
|
|
4
|
-
# per
|
|
4
|
+
# per bundled 3-tier clarification gate + fallback.yaml "链式互不前置")。
|
|
5
5
|
# 3 sub 独立判 gate, 可能全跑 / 1-2 个 / 全跳 + 透明声明。
|
|
6
6
|
#
|
|
7
7
|
# Sister refs:
|
|
8
|
-
# - ~/.claude/CLAUDE.md "澄清/审查触发判据" 节 (战略 / Phase / 子任务三层独立判)
|
|
9
8
|
# - workflows/judgments/stage-routing.yaml — discuss-{strategic,phase,subtask}-delegate triggers
|
|
10
9
|
# - workflows/discuss/{strategic,phase,subtask}/workflow.yaml — 3 sub-workflow Phase 3.4 SHIPPED
|
|
11
10
|
# - workflows/capabilities.yaml — planning-with-files (discuss sink findings.md)
|
|
@@ -51,42 +51,23 @@ Sister `workflows/judgments/phase-gate.yaml`:
|
|
|
51
51
|
- < 1 天工作量
|
|
52
52
|
- bug 修复且已有最小复现
|
|
53
53
|
|
|
54
|
-
<!-- v3.4.3-dual-path-invocation -->
|
|
55
54
|
## How to invoke
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
> 1. List every open decision as a single question (1 line each)
|
|
69
|
-
>
|
|
70
|
-
> 2. For each, list 2-4 candidate answers with one-line tradeoffs
|
|
71
|
-
>
|
|
72
|
-
> 3. Identify cross-phase contracts (data flow / API shape / migration order)
|
|
73
|
-
>
|
|
74
|
-
> 4. Flag decisions blocking start (must answer before plan) vs. deferrable
|
|
75
|
-
>
|
|
76
|
-
> 5. Persist to `.planning/<phase>/findings.md` + `knowledge.md` for hand-off
|
|
77
|
-
>
|
|
78
|
-
> 6. If the layer is genuinely clear, say 'no clarification needed' and exit
|
|
79
|
-
>
|
|
80
|
-
> **Output format**: structured report with severity-classified findings (blocking / deferrable / resolved). 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 `gsd-discuss-phase` user-skill / plugin isn't installed.)
|
|
83
|
-
|
|
84
|
-
(Sister `~/.claude/commands/discuss-phase.md` is also generated by `harnessed setup` so `/discuss-phase` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed discuss-phase --apply` CLI claims are removed; that subcommand was never implemented.)
|
|
56
|
+
Use the Bash tool to run:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
echo "$ARGUMENTS" | harnessed run discuss-phase --task-stdin
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If `$ARGUMENTS` is empty, run `harnessed run discuss-phase` (no stdin pipe).
|
|
63
|
+
|
|
64
|
+
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.
|
|
65
|
+
|
|
66
|
+
<!-- harnessed-generated:v3.4.4 -->
|
|
85
67
|
|
|
86
68
|
## References
|
|
87
69
|
|
|
88
70
|
- D-04 Stage ① Discuss 三层 (战略 / phase / 子任务)
|
|
89
|
-
- ~/.claude/CLAUDE.md "Phase 层: GSD /gsd-discuss-phase"
|
|
90
71
|
- workflows/capabilities.yaml — gsd-discuss-phase / planning-with-files
|
|
91
72
|
- workflows/judgments/phase-gate.yaml — gsd-discuss-phase trigger
|
|
92
73
|
- workflows/defaults.yaml — ralph_max_iterations.discuss-phase.* values (W2.2 backfill)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# workflows/discuss/phase/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.2
|
|
2
2
|
#
|
|
3
3
|
# Stage ①.b Phase 层 sub-workflow — GSD /gsd-discuss-phase 灰色澄清
|
|
4
|
-
# (
|
|
4
|
+
# (bundled 3-tier clarification — phase layer).
|
|
5
5
|
#
|
|
6
6
|
# Sister refs:
|
|
7
7
|
# - workflows/judgments/phase-gate.yaml — gsd-discuss-phase trigger
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: discuss-strategic
|
|
3
3
|
description: |
|
|
4
4
|
Stage ①.a 战略层 discuss sub-workflow — gstack /office-hours + /plan-ceo-review 新功能 / 新
|
|
5
|
-
milestone / 新产品方向启动前强制治理关卡 (
|
|
5
|
+
milestone / 新产品方向启动前强制治理关卡 (bundled gstack governance gate, mandatory before new-feature)。
|
|
6
6
|
schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
|
|
7
7
|
(gstack-office-hours + gstack-plan-ceo-review + planning-with-files) + 3 phases (gate
|
|
8
8
|
judgments.strategic-gate.* fires + planning-with-files /plan findings.md 持久化)。
|
|
@@ -55,45 +55,24 @@ Sister `workflows/judgments/strategic-gate.yaml`:
|
|
|
55
55
|
- continuing 已有 phase 的执行
|
|
56
56
|
- 用户已给明确 ticket / spec
|
|
57
57
|
|
|
58
|
-
<!-- v3.4.3-dual-path-invocation -->
|
|
59
58
|
## How to invoke
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
> 1. What user problem does this solve? Who specifically experiences it today?
|
|
73
|
-
>
|
|
74
|
-
> 2. Why this, why now? (alternative cost of working on something else)
|
|
75
|
-
>
|
|
76
|
-
> 3. What does success look like — measurable, not vibes (1 metric, not 5)?
|
|
77
|
-
>
|
|
78
|
-
> 4. Is the scope MVP-able? What's the smallest cut that still proves the bet?
|
|
79
|
-
>
|
|
80
|
-
> 5. What assumptions are load-bearing? Which would kill the feature if wrong?
|
|
81
|
-
>
|
|
82
|
-
> 6. Who pays the maintenance cost after ship — same team, or a hand-off?
|
|
83
|
-
>
|
|
84
|
-
> 7. Decision: ship / iterate / kill / table — with one-line reason
|
|
85
|
-
>
|
|
86
|
-
> **Output format**: structured report with severity-classified findings (ship / iterate / kill / table (each with reason)). 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.
|
|
87
|
-
|
|
88
|
-
(Role prompt is self-contained — works even when the upstream `gstack-office-hours` user-skill / plugin isn't installed.)
|
|
89
|
-
|
|
90
|
-
(Sister `~/.claude/commands/discuss-strategic.md` is also generated by `harnessed setup` so `/discuss-strategic` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed discuss-strategic --apply` CLI claims are removed; that subcommand was never implemented.)
|
|
60
|
+
Use the Bash tool to run:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
echo "$ARGUMENTS" | harnessed run discuss-strategic --task-stdin
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If `$ARGUMENTS` is empty, run `harnessed run discuss-strategic` (no stdin pipe).
|
|
67
|
+
|
|
68
|
+
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.
|
|
69
|
+
|
|
70
|
+
<!-- harnessed-generated:v3.4.4 -->
|
|
91
71
|
|
|
92
72
|
## References
|
|
93
73
|
|
|
94
74
|
- D-04 Stage ① Discuss 三层 (战略 / phase / 子任务)
|
|
95
75
|
- D-12 gstack 治理关卡强制
|
|
96
|
-
- ~/.claude/CLAUDE.md "gstack 治理关卡 🔒 新功能启动前强制"
|
|
97
76
|
- workflows/capabilities.yaml — gstack-office-hours / gstack-plan-ceo-review / planning-with-files
|
|
98
77
|
- workflows/judgments/strategic-gate.yaml — office-hours / plan-ceo-review triggers
|
|
99
78
|
- workflows/defaults.yaml — ralph_max_iterations.discuss-strategic.* values (W2.2 backfill)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# workflows/discuss/strategic/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.1
|
|
2
2
|
#
|
|
3
3
|
# Stage ①.a 战略层 sub-workflow — gstack 治理关卡 /office-hours + /plan-ceo-review
|
|
4
|
-
# 新功能 / 新 milestone / 新产品方向启动前强制 (
|
|
5
|
-
#
|
|
4
|
+
# 新功能 / 新 milestone / 新产品方向启动前强制 (bundled gstack governance gate —
|
|
5
|
+
# mandatory before new-project / new-milestone / new-feature phases).
|
|
6
6
|
#
|
|
7
7
|
# Sister refs:
|
|
8
|
-
# - ~/.claude/CLAUDE.md "澄清/审查触发判据 — 战略层" 章节
|
|
9
8
|
# - workflows/judgments/strategic-gate.yaml — office-hours / plan-ceo-review triggers
|
|
10
9
|
# - workflows/capabilities.yaml — gstack-office-hours / gstack-plan-ceo-review / planning-with-files
|
|
11
10
|
# - src/workflow/schema/workflow.ts WorkflowSchemaV3 (Phase 3.3 W0.5 SHIPPED)
|
|
@@ -56,43 +56,24 @@ Sister `workflows/judgments/subtask-gate.yaml`:
|
|
|
56
56
|
- 标准库直接调用
|
|
57
57
|
- bug 修复且已知根因
|
|
58
58
|
|
|
59
|
-
<!-- v3.4.3-dual-path-invocation -->
|
|
60
59
|
## How to invoke
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
> 1. State the subtask in one sentence; confirm scope with user if ambiguous
|
|
74
|
-
>
|
|
75
|
-
> 2. Produce 2-4 distinct approaches (not just '2 flavors of the same idea')
|
|
76
|
-
>
|
|
77
|
-
> 3. For each: complexity, perf, failure modes, test surface, future change cost
|
|
78
|
-
>
|
|
79
|
-
> 4. Recommend one with 1-2 line reason; flag risks of the chosen path
|
|
80
|
-
>
|
|
81
|
-
> 5. Output a `findings.md` block the implementer can paste into the task
|
|
82
|
-
>
|
|
83
|
-
> 6. If options collapse to one (others clearly bad), say so and exit fast
|
|
84
|
-
>
|
|
85
|
-
> **Output format**: structured report with severity-classified findings (recommended / acceptable / rejected). 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 `superpowers-brainstorming` user-skill / plugin isn't installed.)
|
|
88
|
-
|
|
89
|
-
(Sister `~/.claude/commands/discuss-subtask.md` is also generated by `harnessed setup` so `/discuss-subtask` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed discuss-subtask --apply` CLI claims are removed; that subcommand was never implemented.)
|
|
61
|
+
Use the Bash tool to run:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
echo "$ARGUMENTS" | harnessed run discuss-subtask --task-stdin
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If `$ARGUMENTS` is empty, run `harnessed run discuss-subtask` (no stdin pipe).
|
|
68
|
+
|
|
69
|
+
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.
|
|
70
|
+
|
|
71
|
+
<!-- harnessed-generated:v3.4.4 -->
|
|
90
72
|
|
|
91
73
|
## References
|
|
92
74
|
|
|
93
75
|
- D-04 Stage ① Discuss 三层 (战略 / phase / 子任务)
|
|
94
76
|
- D-05 phase.invokes_tools conditional fire (NEW v3)
|
|
95
|
-
- ~/.claude/CLAUDE.md "子任务层: superpowers:brainstorming"
|
|
96
77
|
- workflows/capabilities.yaml — superpowers-brainstorming / grill-with-docs / grill-me
|
|
97
78
|
- workflows/judgments/subtask-gate.yaml — brainstorming trigger
|
|
98
79
|
- workflows/defaults.yaml — ralph_max_iterations.discuss-subtask.* values (W2.2 backfill)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# workflows/discuss/subtask/workflow.yaml — Phase v3.0-3.4 W0 T3.4.W0.3
|
|
2
2
|
#
|
|
3
3
|
# Stage ①.c 子任务层 sub-workflow — superpowers brainstorming (≥2 approach / 核心算法 /
|
|
4
|
-
# API contract / 错误成本高)
|
|
4
|
+
# API contract / 错误成本高). Bundled 3-tier clarification — subtask layer.
|
|
5
5
|
#
|
|
6
6
|
# Sister refs:
|
|
7
7
|
# - workflows/judgments/subtask-gate.yaml — brainstorming trigger
|
|
@@ -38,10 +38,11 @@ v2 schema fields per `src/workflow/schema/workflow.ts` (T2.4.W0.1 16th surface
|
|
|
38
38
|
- `parallelism: judgments.parallelism-gate.<route>.fires` (D-11 subagent / Agent Teams / main session route)
|
|
39
39
|
- `fallback.max_iterations_exceeded: {action, message, exit_code}` (R20.10 acceptance c "explicit NOT silent")
|
|
40
40
|
|
|
41
|
-
Per-phase models load from `workflows/execute-task/
|
|
42
|
-
spawns each phase as a
|
|
41
|
+
Per-phase models load from `workflows/execute-task/workflow.yaml` (v3 SoT post
|
|
42
|
+
v3.4.4 Phase 6 — v2 phases.yaml deleted); runWorkflow spawns each phase as a
|
|
43
|
+
sub-agent via `@anthropic-ai/claude-agent-sdk` 0.3.142+
|
|
43
44
|
(`AgentDefinition` 5-字段 unpack — ADR 0011 § 4). ralph-loop SDK wrapper at 04-deliver
|
|
44
|
-
reuses sister Phase 2.2 v0.2.0 ship: `src/
|
|
45
|
+
reuses sister Phase 2.2 v0.2.0 ship: `src/workflow/lib/ralphLoop.ts` (54L) + `sdkSpawn.ts` (91L)
|
|
45
46
|
+ 4-layer dual-signal `isComplete` (NOT 重写 — per RESEARCH § 3.1).
|
|
46
47
|
|
|
47
48
|
## CLI invocation (the only enforced entry — B-28)
|
|
@@ -78,6 +79,6 @@ the CLI subcommand above (B-28 single-entry contract).
|
|
|
78
79
|
- ADR 0011 — execute-task SDK + ralph-loop integration (phase 2.2 W6 — finalize)
|
|
79
80
|
- `.planning/intel/omc-comparison.md` § CD-2 — per-phase model tier defaults
|
|
80
81
|
- `src/cli/execute-task.ts` — CLI implementation (T5.1)
|
|
81
|
-
- `workflows/execute-task/
|
|
82
|
-
- `src/
|
|
83
|
-
- `src/
|
|
82
|
+
- `workflows/execute-task/workflow.yaml` — 4-phase config (v3 SoT; v3.4.4 Phase 6 ship — v2 phases.yaml deleted)
|
|
83
|
+
- `src/workflow/lib/sdkSpawn.ts` — SDK query() consumer (T4.1)
|
|
84
|
+
- `src/workflow/lib/ralphLoop.ts` — verbatim COMPLETE round-trip
|