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
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var package_default = {
3
- version: "3.4.3"};
3
+ version: "3.5.0"};
4
4
 
5
5
  // src/index.ts
6
6
  var VERSION = package_default.version;
@@ -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.4.3\",\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"]}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harnessed",
3
- "version": "3.4.3",
3
+ "version": "3.5.0",
4
4
  "description": "AI coding harness package manager + composition orchestrator",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -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
- **Preferred path** (master orchestrator): dispatch to the per-sub-workflow slash commands in the order this stage prescribes. Each sub command lives at `~/.claude/commands/<sub-name>.md` with its own dual-path fallback.
108
+ Use the Bash tool to run:
110
109
 
111
- **Fallback path** (when no slash command from the sub-list resolves): run each missing sub-workflow inline using its own role prompt from `~/.claude/skills/<sub-name>/SKILL.md`. Do NOT skip stages silently — each sub either runs or is logged as "skipped: <reason>".
110
+ ```bash
111
+ echo "$ARGUMENTS" | harnessed run auto --task-stdin
112
+ ```
112
113
 
113
- (Sister `~/.claude/commands/auto.md` is also generated by `harnessed setup` so `/auto` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed auto --apply` CLI claims are removed; that subcommand was never implemented.)
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 ~/.claude/skills/caveman/) AND as Claude Code
74
- # plugin (`caveman@caveman` in installed_plugins.json). Resolver detects
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 默认主方案 数据驱动 (per ~/.claude/rules/web-design.md L5)
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 创意/装饰补充 (per ~/.claude/rules/web-design.md L11)
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 (per ~/.claude/rules/web-testing.md L8 手)
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 (per ~/.claude/rules/web-testing.md L8 )
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 (per ~/.claude/rules/web-testing.md L11 筋骨)
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/内存泄漏诊断 (per ~/.claude/rules/web-testing.md L45 非功能性)
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 文档抓取 (per ~/.claude/rules/context7.md)
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/时效) per ~/.claude/rules/web-search.md L17
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 搜索 per ~/.claude/rules/web-search.md L24
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/routing/lib/ralphLoop.ts
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
- # ~/.claude/rules/agent-teams.md L7 prereq)
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 per ~/.claude/rules/agent-teams.md 升级触发):
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; per agent-teams.md L7)
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; sister agent-teams.md 防呆清单)
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 per ~/.claude/rules/google-workspace.md)
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 心法 + 编码硬限 — 机器化 ~/.claude/CLAUDE.md 「andrej-karpathy-skills」
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 ~/.claude/settings.json env.HARNESSED_USER_LANG, validate output lang matches
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
- # 操作纪律 — 机器化 project CLAUDE.md (biome preempt + commit safety) +
3
- # ~/.claude/CLAUDE.md (A7 ADR / no-skip-hooks / authorization-not-transitive)
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
- # 对话回答风格 — 机器化 ~/.claude/CLAUDE.md 「对话回答风格」
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
- # 优先级仲裁 — 机器化 ~/.claude/CLAUDE.md 「响应规范与优先级」
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 协议 — 机器化 ~/.claude/rules/cc-handoff.md (Ideation→Onboarding +
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
- (per ~/.claude/CLAUDE.md "澄清/审查触发判据" 三层独立判断):
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
- **Preferred path** (master orchestrator): dispatch to the per-sub-workflow slash commands in the order this stage prescribes. Each sub command lives at `~/.claude/commands/<sub-name>.md` with its own dual-path fallback.
56
+ Use the Bash tool to run:
58
57
 
59
- **Fallback path** (when no slash command from the sub-list resolves): run each missing sub-workflow inline using its own role prompt from `~/.claude/skills/<sub-name>/SKILL.md`. Do NOT skip stages silently — each sub either runs or is logged as "skipped: <reason>".
58
+ ```bash
59
+ echo "$ARGUMENTS" | harnessed run discuss --task-stdin
60
+ ```
60
61
 
61
- (Sister `~/.claude/commands/discuss.md` is also generated by `harnessed setup` so `/discuss` is a real platform slash command — both files carry the same dual-path instruction. Previous v3.4.x `harnessed discuss --apply` CLI claims are removed; that subcommand was never implemented.)
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 ~/.claude/CLAUDE.md "澄清/审查触发判据" + fallback.yaml "链式互不前置")。
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
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gsd-discuss-phase.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 **Phase clarification analyst**.
62
- >
63
- > **Mission**: Surface and resolve gray-area implementation decisions BEFORE a phase enters planning. Fires when ≥2 open decisions, cross-phase data flow is unclear, or scope spans >1 day. Adapted from GSD `/gsd-discuss-phase`.
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. 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
- # (sister ~/.claude/CLAUDE.md "澄清/审查触发判据Phase 层")
4
+ # (bundled 3-tier clarificationphase 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 / 新产品方向启动前强制治理关卡 (sister ~/.claude/CLAUDE.md "🔒 新功能启动前强制")。
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
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.gstack-office-hours.cmd }}` — the upstream specialist takes over.
62
-
63
- **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:
64
-
65
- > You are a **Strategic Office-Hours advisor (CEO + Product lens)**.
66
- >
67
- > **Mission**: Stress-test the product / scope / business value of a new feature, milestone, or project BEFORE engineering investment. Adapted from gstack `/office-hours` + `/plan-ceo-review`.
68
- >
69
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
70
- >
71
- > **Review checklist**:
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 / 新产品方向启动前强制 (sister ~/.claude/CLAUDE.md
5
- # "gstack 治理关卡 🔒 新功能启动前强制" verbatim)
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
- **Preferred path** (when the upstream specialist is installed): use the SlashCommand tool to run `{{ capabilities.superpowers-brainstorming.cmd }}` — the upstream specialist takes over.
63
-
64
- **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:
65
-
66
- > You are a **Subtask brainstormer**.
67
- >
68
- > **Mission**: Generate ≥2 implementation approaches for a single subtask and compare tradeoffs. Fires when core algorithm / data structure / API contract / high error-cost. Skip pure CRUD or single-obvious-path tasks.
69
- >
70
- > **Default-suspect mode**: assume the change is broken / risky / incomplete until proven otherwise. Cite `file:line` for every finding; do not generalize.
71
- >
72
- > **Review checklist**:
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 / 错误成本高)。Sister ~/.claude/CLAUDE.md "澄清/审查触发判据子任务层"。
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/phases.yaml`; engine.runRouting
42
- spawns each phase as a sub-agent via `@anthropic-ai/claude-agent-sdk` 0.3.142+
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/routing/lib/ralphLoop.ts` (54L) + `sdkSpawn.ts` (91L)
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/phases.yaml` — 4-phase config (T3.3)
82
- - `src/routing/lib/sdkSpawn.ts` — SDK query() consumer (T4.1)
83
- - `src/routing/lib/ralphLoop.ts` — verbatim COMPLETE round-trip
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