kenaz 0.3.18 → 0.3.19

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 (308) hide show
  1. package/core/.claude/commands/agent-worker.md +1 -1
  2. package/core/.claude/commands/architect.md +1 -2
  3. package/core/.claude/commands/spec.md +1 -1
  4. package/core/.claude/commands//347/224/242/345/223/201.md +1 -1
  5. package/core/.claude/hooks/__tests__/task-1977-dedupe-guard.test.js +8 -8
  6. package/core/.claude/skills/architect_agent/SKILL.md +11 -92
  7. package/core/.claude/skills/assessment_agent/SKILL.md +0 -1
  8. package/core/.claude/skills/backend_engineer/SKILL.md +3 -6
  9. package/core/.claude/skills/code_reviewer/SKILL.md +1 -1
  10. package/core/.claude/skills/code_reviewer/patterns.yaml +1 -1
  11. package/core/.claude/skills/designer/SKILL.md +3 -6
  12. package/core/.claude/skills/dev_agent/SKILL.md +30 -491
  13. package/core/.claude/skills/developer/SKILL.md +3 -6
  14. package/core/.claude/skills/feature_agent/SKILL.md +3 -17
  15. package/core/.claude/skills/product_manager/SKILL.md +29 -1064
  16. package/core/.claude/skills/qa_engineer/SKILL.md +12 -17
  17. package/core/.claude/skills/spec_optimizer/SKILL.md +25 -275
  18. package/core/.claude/skills/sre_agent/SKILL.md +3 -6
  19. package/core/.collaboration/README.md +2 -3
  20. package/core/.collaboration/core/task-api.js +5 -138
  21. package/core/.collaboration/docs/CLI.md +0 -2
  22. package/core/.failure/INDEX.yaml +6 -40
  23. package/core/.failure/agent-execution/FAIL-013-search-cwd-drift-and-case-mismatch.yaml +1 -1
  24. package/core/.failure/tools/README.md +9 -227
  25. package/core/.formation/bifrost/launch.js +1 -6
  26. package/core/.formation/bifrost/launch.test.js +1 -1
  27. package/core/.formation/bifrost/shared/ansuz-boot-policy.js +3 -3
  28. package/core/.formation/bifrost/shared/ansuz-boot-policy.test.js +1 -2
  29. package/core/.formation/tools/__tests__/m1-hmap-convid.test.js +1 -124
  30. package/core/.formation/tools/dispatch.js +1 -1
  31. package/core/.formation/tools/loader.js +17 -140
  32. package/core/.formation/tools/post-complete.js +0 -31
  33. package/core/.rule/INDEX.yaml +0 -18
  34. package/core/.rule/general/agent-workflow.yaml +14 -164
  35. package/core/.rule/general/project-self-containment.yaml +8 -19
  36. package/core/.rule/general/rust-verify-target.yaml +6 -5
  37. package/core/.rule/general/synapse-code-intelligence.yaml +3 -3
  38. package/core/.specialist/Amelia/capability.yaml +12 -12
  39. package/core/.specialist/Amelia/workflow.yaml +2 -2
  40. package/core/.specialist/Ansuz/SYSTEM_DOC.md +20 -578
  41. package/core/.specialist/Ansuz/cognitive_principles.yaml +2 -3
  42. package/core/.specialist/Ansuz/concepts/boot_rules_summary.yaml +0 -1
  43. package/core/.specialist/Ansuz/concepts/deep_knowledge_pointers.yaml +1 -2
  44. package/core/.specialist/Ansuz/core.yaml +6 -108
  45. package/core/.specialist/Ansuz/guards/lesson_guards.yaml +0 -3
  46. package/core/.specialist/Ansuz/identity_contract.yaml +0 -1
  47. package/core/.specialist/Ansuz/knowledge.yaml +0 -4
  48. package/core/.specialist/Ansuz/rule.yaml +0 -1
  49. package/core/.specialist/Ansuz/tools/handoff-session-identity.test.js +6 -150
  50. package/core/.specialist/tests/runtime-discovery/README.md +1 -1
  51. package/core/.specialist/tools/__tests__/task-2374-usage-counter.test.js +1 -12
  52. package/core/.specialist/tools/prompt-files.test.js +1 -0
  53. package/core/.specialist/tools/task-bridge.js +1 -66
  54. package/core/.system/README.md +11 -552
  55. package/core/.system/collaboration/README.md +10 -174
  56. package/core/CLAUDE.md +1 -6
  57. package/core/KENAZ_CORE_VERSION +1 -1
  58. package/core/dev/scripts/js-yaml-resolution.test.js +1 -1
  59. package/core/dev/scripts/run-rust-tests.js +9 -45
  60. package/core/dev/scripts/rust-verify-worktree.js +4 -4
  61. package/core/dev/scripts/verify-target-dir.js +6 -6
  62. package/core/plugins/kenaz/INVENTORY.md +8 -8
  63. package/core/plugins/kenaz/commands/architect.md +1 -2
  64. package/core/plugins/kenaz/commands/spec.md +1 -1
  65. package/core/plugins/kenaz/commands//347/224/242/345/223/201.md +1 -1
  66. package/core/plugins/kenaz/guidance.md +1 -1
  67. package/core/plugins/kenaz/scripts/sync.js +1 -1
  68. package/core/plugins/kenaz/skills/architect_agent/SKILL.md +11 -92
  69. package/core/plugins/kenaz/skills/assessment_agent/SKILL.md +0 -1
  70. package/core/plugins/kenaz/skills/backend_engineer/SKILL.md +3 -6
  71. package/core/plugins/kenaz/skills/code_reviewer/SKILL.md +1 -1
  72. package/core/plugins/kenaz/skills/code_reviewer/patterns.yaml +1 -1
  73. package/core/plugins/kenaz/skills/designer/SKILL.md +3 -6
  74. package/core/plugins/kenaz/skills/dev_agent/SKILL.md +30 -491
  75. package/core/plugins/kenaz/skills/developer/SKILL.md +3 -6
  76. package/core/plugins/kenaz/skills/feature_agent/SKILL.md +3 -17
  77. package/core/plugins/kenaz/skills/product_manager/SKILL.md +29 -1064
  78. package/core/plugins/kenaz/skills/qa_engineer/SKILL.md +12 -17
  79. package/core/plugins/kenaz/skills/spec_optimizer/SKILL.md +25 -275
  80. package/core/plugins/kenaz/skills/sre_agent/SKILL.md +3 -6
  81. package/package.json +6 -6
  82. package/core/.claude/commands/archive.md +0 -24
  83. package/core/.claude/commands/init.md +0 -112
  84. package/core/.claude/commands/legacy_dev.md +0 -18
  85. package/core/.claude/commands/product-review.md +0 -131
  86. package/core/.claude/commands/strategy.md +0 -141
  87. package/core/.claude/commands/sunny.md +0 -1
  88. package/core/.claude/commands//347/224/242/345/223/201/346/252/242/350/246/226.md +0 -129
  89. package/core/.claude/commands//351/200/262/345/272/246.md +0 -15
  90. package/core/.claude/hooks/__tests__/substrate.test.js +0 -122
  91. package/core/.claude/hooks/_substrate-paths.js +0 -95
  92. package/core/.claude/hooks/context-check.js +0 -51
  93. package/core/.claude/hooks/fatigue-check.js +0 -52
  94. package/core/.claude/hooks/handoff-snapshot-on-commit.js +0 -154
  95. package/core/.claude/hooks/handoff-snapshot-on-question.js +0 -158
  96. package/core/.claude/hooks/handoff-staleness.js +0 -197
  97. package/core/.claude/hooks/jev-thalamus-context.js +0 -17
  98. package/core/.claude/hooks/jev-thalamus-context.test.js +0 -41
  99. package/core/.claude/hooks/lease-release.js +0 -119
  100. package/core/.claude/hooks/lease-touch.js +0 -96
  101. package/core/.claude/hooks/reflex-feedback.js +0 -5
  102. package/core/.claude/hooks/session-init.ps1 +0 -49
  103. package/core/.claude/hooks/sound-event.js +0 -70
  104. package/core/.claude/hooks/sound-event.sh +0 -37
  105. package/core/.claude/hooks/stream-delta.js +0 -169
  106. package/core/.claude/no-hooks.settings.json +0 -3
  107. package/core/.claude/skills/legacy_dev/SKILL.md +0 -202
  108. package/core/.claude/skills/sunny/SKILL.md +0 -74
  109. package/core/.collaboration/cli/commands/assign.js +0 -39
  110. package/core/.collaboration/cli/commands/claim.js +0 -33
  111. package/core/.collaboration/cli/commands/complete.js +0 -44
  112. package/core/.collaboration/cli/commands/create.js +0 -110
  113. package/core/.collaboration/cli/commands/get.js +0 -83
  114. package/core/.collaboration/cli/commands/index.js +0 -52
  115. package/core/.collaboration/cli/commands/list.js +0 -51
  116. package/core/.collaboration/cli/commands/lock.js +0 -45
  117. package/core/.collaboration/cli/commands/rebuild.js +0 -39
  118. package/core/.collaboration/cli/commands/search.js +0 -61
  119. package/core/.collaboration/cli/commands/stats.js +0 -61
  120. package/core/.collaboration/cli/commands/transfer.js +0 -41
  121. package/core/.collaboration/cli/commands/unlock.js +0 -48
  122. package/core/.collaboration/cli/formatters/help-formatter.js +0 -70
  123. package/core/.collaboration/cli/formatters/index.js +0 -7
  124. package/core/.collaboration/cli/task-cli.js +0 -46
  125. package/core/.collaboration/cli/utils/arg-parser.js +0 -74
  126. package/core/.collaboration/cli/utils/git-user.js +0 -25
  127. package/core/.collaboration/cli/utils/index.js +0 -9
  128. package/core/.collaboration/cli/utils/output.js +0 -10
  129. package/core/.collaboration/config/default.yaml +0 -189
  130. package/core/.collaboration/core/conflict-resolver.js +0 -461
  131. package/core/.collaboration/core/conflict-resolver.test.js +0 -389
  132. package/core/.collaboration/core/migrate-legacy.js +0 -260
  133. package/core/.collaboration/docs/API.md +0 -787
  134. package/core/.collaboration/docs/ARCHITECTURE.md +0 -596
  135. package/core/.collaboration/docs/FAQ.md +0 -695
  136. package/core/.collaboration/docs/MIGRATION.md +0 -804
  137. package/core/.collaboration/docs/examples/README.md +0 -320
  138. package/core/.collaboration/docs/examples/advanced-queries.js +0 -261
  139. package/core/.collaboration/docs/examples/basic-usage.js +0 -184
  140. package/core/.collaboration/docs/examples/team-workflow.js +0 -352
  141. package/core/.failure/agent-execution/FAIL-001-agent-no-output.yaml +0 -391
  142. package/core/.failure/agent-execution/FAIL-007-pm-lead-wrong-team-invocation.yaml +0 -0
  143. package/core/.failure/agent-execution/FAIL-010-phase0-poem-format-skipped.yaml +0 -28
  144. package/core/.failure/agent-execution/FAIL-010-skipping-cognitive-checkpoint-after-verification.yaml +0 -59
  145. package/core/.failure/agent-execution/FAIL-012-grep-shortcut-during-investigation.yaml +0 -85
  146. package/core/.failure/architecture/FAIL-006-python-version-compatibility.yaml +0 -445
  147. package/core/.failure/pipeline/FAIL-003-queue-pollution.yaml +0 -335
  148. package/core/.failure/pipeline/README.md +0 -95
  149. package/core/.failure/retired/FAIL-009-skipping-synapse-pulse-before-code-change.yaml +0 -49
  150. package/core/.failure/tools/USAGE_GUIDE.md +0 -323
  151. package/core/.failure/tools/check_failures.ps1 +0 -387
  152. package/core/.failure/tools/log_failure.ps1 +0 -474
  153. package/core/.formation/.episode-input.json +0 -10
  154. package/core/.formation/.merge-lock +0 -1
  155. package/core/.formation/lead.yaml +0 -118
  156. package/core/.formation/legacy.bak/designer.yaml +0 -57
  157. package/core/.formation/legacy.bak/pm.yaml +0 -57
  158. package/core/.formation/legacy.bak/qa.yaml +0 -57
  159. package/core/.formation/legacy.bak/review.yaml +0 -62
  160. package/core/.formation/legacy.bak/scheduler.yaml +0 -129
  161. package/core/.formation/legacy.bak/sre.yaml +0 -57
  162. package/core/.formation/role-map.yaml +0 -274
  163. package/core/.formation/roles/_shared/modules/code_review.yaml +0 -98
  164. package/core/.formation/roles/_shared/modules/security.yaml +0 -103
  165. package/core/.formation/roles/_shared/modules/testing.yaml +0 -14
  166. package/core/.formation/roles/backend/role.yaml +0 -93
  167. package/core/.formation/roles/code_reviewer/role.yaml +0 -102
  168. package/core/.formation/roles/database_optimizer/role.yaml +0 -107
  169. package/core/.formation/roles/designer/role.yaml +0 -66
  170. package/core/.formation/roles/developer/role.yaml +0 -75
  171. package/core/.formation/roles/frontend/role.yaml +0 -134
  172. package/core/.formation/roles/incident_response/role.yaml +0 -89
  173. package/core/.formation/roles/qa/role.yaml +0 -89
  174. package/core/.formation/roles/security/role.yaml +0 -87
  175. package/core/.formation/roles/sre/role.yaml +0 -66
  176. package/core/.formation/skills/coordinator.yaml +0 -52
  177. package/core/.formation/solo/diagnosis.yaml +0 -78
  178. package/core/.formation/solo/strategy.yaml +0 -121
  179. package/core/.formation/tests/hello.txt +0 -2
  180. package/core/.formation/tools/coordinator.js +0 -350
  181. package/core/.formation/tools/jev-correction.js +0 -214
  182. package/core/.formation/tools/jev-correction.test.js +0 -178
  183. package/core/.formation/tools/log-reader.js +0 -232
  184. package/core/.formation/tools/revert-daemon-state.js +0 -162
  185. package/core/.formation/tools/test-drift.js +0 -148
  186. package/core/.formation/unit/heimdall.yaml +0 -96
  187. package/core/.formation/unit/plan.yaml +0 -67
  188. package/core/.formation/unit/think.yaml +0 -58
  189. package/core/.kenaz/MUNINN_SNAPSHOT9_EPISODE.json +0 -32
  190. package/core/.kenaz/MUNINN_SNAPSHOT9_RUNE.json +0 -23
  191. package/core/.kenaz/MUNINN_SNAPSHOT9_SUMMARY.md +0 -89
  192. package/core/.kenaz/ash_TASK_1428-20260507.json +0 -14
  193. package/core/.kenaz/muninn_episode_write.ps1 +0 -17
  194. package/core/.kenaz/muninn_snapshot11_rune_candidates.md +0 -63
  195. package/core/.kenaz/muninn_snapshot1_rune_candidates.md +0 -49
  196. package/core/.kenaz/runes_TASK_1428.json +0 -57
  197. package/core/.kenaz/tmp_heimdall_proposal_8d3e392.json +0 -13
  198. package/core/.kenaz/tmp_props.json +0 -1
  199. package/core/.kenaz/tmp_sounddrop_t1_prompt.txt +0 -371
  200. package/core/.rule/MECHANIZED.md +0 -61
  201. package/core/.rule/general/cortex-memory-recall.yaml +0 -446
  202. package/core/.rule/general/pipeline.yaml +0 -246
  203. package/core/.rule/general/sunny-access-control.yaml +0 -60
  204. package/core/.rule/general/system-invariants.yaml +0 -231
  205. package/core/.rule/pipeline/PPL-002-completed-task-archival.yaml +0 -528
  206. package/core/.rule/pipeline/auto-update.yaml +0 -282
  207. package/core/.rule/pipeline/task-execution.yaml +0 -365
  208. package/core/.specialist/Ansuz/concepts/phase_protocol.yaml +0 -65
  209. package/core/.specialist/Ansuz/experiments/boot_ablation_replay.js +0 -197
  210. package/core/.specialist/Ansuz/tools/bootstrap-anchors.js +0 -289
  211. package/core/.specialist/Ansuz/workflow.yaml +0 -1225
  212. package/core/.specialist/experiments/rg_benchmark.js +0 -523
  213. package/core/.specialist/experiments/rg_benchmark_results.json +0 -27
  214. package/core/.specialist/tools/jev-optional-context.js +0 -107
  215. package/core/.specialist/tools/jev-optional-context.test.js +0 -152
  216. package/core/.specialist/tools/memory-action-log.js +0 -839
  217. package/core/.specialist/tools/phase-gate.js +0 -3534
  218. package/core/.specialist/tools/phase-gate.test.js +0 -85
  219. package/core/.specialist/tools/precompute-runner.js +0 -444
  220. package/core/.specialist/tools/rule-engine.js +0 -621
  221. package/core/.specialist/tools/task-bridge-jev.test.js +0 -170
  222. package/core/.synapse/memory-shared.json.sync +0 -1
  223. package/core/.system/agent-skills/README.md +0 -724
  224. package/core/.system/cli-tools/README.md +0 -724
  225. package/core/.system/cortex/MODULES.md +0 -1046
  226. package/core/.system/dashboard/FRONTEND.md +0 -812
  227. package/core/.system/dashboard/README.md +0 -737
  228. package/core/.system/failure/README.md +0 -723
  229. package/core/.system/formation/LEGACY_SKILLS.md +0 -974
  230. package/core/.system/formation/POST_COMPLETE.md +0 -602
  231. package/core/.system/formation/README.md +0 -1094
  232. package/core/.system/formation/TOOLS_REFERENCE.md +0 -1145
  233. package/core/.system/kenaz/README.md +0 -787
  234. package/core/.system/memory/README.md +0 -719
  235. package/core/.system/pipeline/README.md +0 -712
  236. package/core/.system/rule/README.md +0 -794
  237. package/core/.system/sunny/README.md +0 -476
  238. package/core/.system/sunny/RULES.json +0 -89
  239. package/core/.system/sunny/knowledge/INDEX.md +0 -37
  240. package/core/.system/sunny/knowledge/agent-teams-api.md +0 -0
  241. package/core/.system/sunny/knowledge/ansuz-specialist.md +0 -500
  242. package/core/.system/sunny/knowledge/claude-cli-spawn.md +0 -177
  243. package/core/.system/sunny/knowledge/collaboration-api.md +0 -925
  244. package/core/.system/sunny/teammates/README.md +0 -107
  245. package/core/.system/sunny/teammates/how_to_use.yaml +0 -101
  246. package/core/.system/sunny/teammates/tools/headless/launcher.js +0 -318
  247. package/core/.system/sunny/teammates/tools/powershell/launcher.js +0 -241
  248. package/core/.system/sunny/teammates/tools/powershell/start.bat +0 -50
  249. package/core/.system/sunny/teammates/tools/utils/env.js +0 -96
  250. package/core/.system/sunny/teammates/tools/utils/format-output.js +0 -329
  251. package/core/.system/sunny/tools.json +0 -101
  252. package/core/dev/scripts/cleanup-queue.js +0 -184
  253. package/core/dev/scripts/cleanup_queue.js +0 -86
  254. package/core/dev/scripts/legacy/README.md +0 -39
  255. package/core/dev/scripts/legacy/dev_agent_scheduler.ps1.bak +0 -536
  256. package/core/dev/scripts/legacy/multi_agent_scheduler.ps1.bak +0 -1978
  257. package/core/dev/scripts/matrix/CLI_README.md +0 -214
  258. package/core/dev/scripts/matrix/README.md +0 -310
  259. package/core/dev/scripts/matrix/package-lock.json +0 -4266
  260. package/core/dev/scripts/matrix/package.json +0 -55
  261. package/core/dev/scripts/matrix/src/abbreviations.ts +0 -295
  262. package/core/dev/scripts/matrix/src/cli/commands/convert.ts +0 -211
  263. package/core/dev/scripts/matrix/src/cli/commands/create.ts +0 -95
  264. package/core/dev/scripts/matrix/src/cli/commands/delete.ts +0 -102
  265. package/core/dev/scripts/matrix/src/cli/commands/list-tags.ts.wip +0 -140
  266. package/core/dev/scripts/matrix/src/cli/commands/manage-tags.ts.wip +0 -173
  267. package/core/dev/scripts/matrix/src/cli/commands/query.ts +0 -261
  268. package/core/dev/scripts/matrix/src/cli/commands/read.ts +0 -77
  269. package/core/dev/scripts/matrix/src/cli/commands/stats.ts.wip +0 -168
  270. package/core/dev/scripts/matrix/src/cli/commands/tokens.ts.wip +0 -126
  271. package/core/dev/scripts/matrix/src/cli/commands/update.ts +0 -147
  272. package/core/dev/scripts/matrix/src/cli/commands/validate.ts +0 -275
  273. package/core/dev/scripts/matrix/src/cli/index.ts +0 -350
  274. package/core/dev/scripts/matrix/src/cli/utils/file-handler.ts +0 -72
  275. package/core/dev/scripts/matrix/src/cli/utils/logger.ts +0 -65
  276. package/core/dev/scripts/matrix/src/index.ts +0 -62
  277. package/core/dev/scripts/matrix/src/indexer/tag-indexer.ts +0 -165
  278. package/core/dev/scripts/matrix/src/parser.ts +0 -281
  279. package/core/dev/scripts/matrix/src/serializer.ts +0 -151
  280. package/core/dev/scripts/matrix/src/validator.ts +0 -301
  281. package/core/dev/scripts/matrix/tests/abbreviations.test.ts +0 -122
  282. package/core/dev/scripts/matrix/tests/cli.test.ts +0 -177
  283. package/core/dev/scripts/matrix/tests/convert.test.ts +0 -143
  284. package/core/dev/scripts/matrix/tests/parser.test.ts +0 -203
  285. package/core/dev/scripts/matrix/tests/query.test.ts +0 -85
  286. package/core/dev/scripts/matrix/tests/serializer.test.ts +0 -197
  287. package/core/dev/scripts/matrix/tests/validate.test.ts +0 -141
  288. package/core/dev/scripts/matrix/tests/validator.test.ts +0 -167
  289. package/core/dev/scripts/matrix/tsconfig.json +0 -20
  290. package/core/dev/scripts/matrix/types/index.d.ts +0 -111
  291. package/core/dev/scripts/matrix/types/index.d.ts.map +0 -1
  292. package/core/dev/scripts/matrix/types/index.js +0 -8
  293. package/core/dev/scripts/matrix/types/index.js.map +0 -1
  294. package/core/dev/scripts/matrix/types/index.ts +0 -124
  295. package/core/dev/scripts/memory-usage-report.js +0 -152
  296. package/core/dev/scripts/probe/ansuz-scaffold-ablation.js +0 -579
  297. package/core/dev/scripts/probe/ansuz-scaffold-ablation.test.js +0 -244
  298. package/core/dev/scripts/probe/hook-latency-probe.js +0 -315
  299. package/core/dev/scripts/probe/hook-latency-probe.test.js +0 -105
  300. package/core/dev/scripts/probe/prediction-signal-auc.js +0 -483
  301. package/core/dev/scripts/probe/prediction-signal-auc.test.js +0 -200
  302. package/core/dev/scripts/test-pty-ws-tunnel.js +0 -229
  303. package/core/dev/scripts/validate_pipeline.js +0 -197
  304. package/core/dev/spikes/task2145-evidence-20261004/backend-log-excerpt.txt +0 -56
  305. package/core/dev/spikes/task2145-evidence-20261004/graph.shadow +0 -0
  306. package/core/dev/spikes/task2145-evidence-20261004/graph.wal +0 -0
  307. package/core/dev/spikes/task2145-evidence-20261004/graph_corrupt_suspect.marker +0 -1
  308. package/core/plugins/kenaz/commands/strategy.md +0 -141
@@ -1,500 +0,0 @@
1
- # Ansuz Specialist — 產品全生命週期引擎
2
-
3
- > **ᚨ** — 神諭符文:理解意圖,傳遞給執行層
4
-
5
- **版本**: 1.0.0
6
- **定位**: Product Manager + Formation Lead 合一
7
- **目標用戶**: Sunny 系統、其他 specialist、開發者
8
-
9
- ---
10
-
11
- ## 快速導覽
12
-
13
- | 主題 | 說明 | 詳細文檔 |
14
- |------|------|---------|
15
- | **身份與邊界** | Ansuz 是什麼、不是什麼 | [rule.yaml](../../../.specialist/Ansuz/rule.yaml) |
16
- | **底層原則** | 7 條思維原則(最高優先級) | [principles.yaml](../../../.specialist/Ansuz/principles.yaml) |
17
- | **能力定義** | 需求分析、任務設計、陣型判斷... | [capability.yaml](../../../.specialist/Ansuz/capability.yaml) |
18
- | **執行模式** | 事件驅動 7 phases | [workflow.yaml](../../../.specialist/Ansuz/workflow.yaml) |
19
- | **共享詞彙** | Formation、任務系統、Agent 類型 | [knowledge.yaml](../../../.specialist/Ansuz/knowledge.yaml) |
20
- | **完整文檔** | 架構、對比、範例 | [SYSTEM_DOC.md](../../../.specialist/Ansuz/SYSTEM_DOC.md) |
21
-
22
- ---
23
-
24
- ## 核心概念
25
-
26
- ### 1. Ansuz vs 舊系統
27
-
28
- | 特性 | 舊 PM | 舊 Lead | **Ansuz** |
29
- |------|-------|---------|-----------|
30
- | **職責** | 需求 + 任務建立 | 陣型 + dispatch + 追蹤 | **全生命週期** |
31
- | **交接次數** | 1 次(PM → 用戶 → Lead) | 0 次 | **0 次** |
32
- | **工作流程** | 線性 9 階段 | 線性 7 階段 | **事件驅動 7 phases** |
33
- | **需求理解** | ✅ | ❌ | **✅ + 意圖推導** |
34
- | **結果驗證** | ❌ | ✅ | **✅ + 交叉比對原始碼** |
35
- | **完成後處理** | ❌ | ⚠️ 部分 | **✅ Archive + Git + 回報** |
36
-
37
- **關鍵優勢**:
38
- - 舊系統:PM 建完任務 → 用戶手動 `/dev` → Lead 執行(**交接損失 context**)
39
- - Ansuz:從需求到完成一氣呵成,**無斷裂交接**
40
-
41
- ### 2. 事件驅動 7 Phases
42
-
43
- ```
44
- user_request → understand → design → create → dispatch
45
- ↓
46
- result_arrived ← on_result ← post_complete ← report
47
- ```
48
-
49
- | Phase | 輸入 | 輸出 | 關鍵工具 |
50
- |-------|------|------|---------|
51
- | **understand** | 用戶描述 / TASK_ID | 需求摘要 + 範圍 + 優先級 | PRODUCT_SPEC.md, .collaboration |
52
- | **design** | 需求摘要 | 任務列表 + 依賴 + scope | - |
53
- | **create** | 任務列表 | YAML 任務卡 | task-api.js |
54
- | **dispatch** | YAML 任務卡 | Formation 執行 | headless.js |
55
- | **on_result** | Agent 輸出 | 驗證結果 + 下一步 | Git log, 原始碼比對 |
56
- | **post_complete** | 驗證通過 | Archive + Git 分支 | post-complete.js |
57
- | **report** | 完成狀態 | 結構化回報 | - |
58
-
59
- **與線性流程的差異**:
60
- - 舊系統:每個階段完成才進下一階段
61
- - Ansuz:事件驅動,多條任務線可交疊、並行、動態響應
62
-
63
- ### 3. 七條底層原則
64
-
65
- > 遇到任何決策時,先查原則 → 從原則推導答案
66
-
67
- | 原則 | 核心概念 | 測試問題 |
68
- |------|---------|---------|
69
- | **lifecycle_over_handoff** | 全生命週期 > 分段交接 | "這個流程有幾次交接?" |
70
- | **minimal_formation** | 最輕量陣型 > 最大陣型 | "這個任務用更小的陣型能完成嗎?" |
71
- | **structural_over_estimation** | 結構 > 估計 | "這個決策是基於可驗證的結構,還是猜測?" |
72
- | **verifiable_over_explainable** | 可驗證 > 可解釋 | "這個結論有人能用一行命令驗證嗎?" |
73
- | **real_dependency_over_perceived** | 依賴關係 > 感覺相關 | "如果 A 的結果完全不同,B 需要重做嗎?" |
74
- | **intent_over_literal** | 意圖 > 字面 | "如果人類看到我的執行結果,會說「這就是我要的」嗎?" |
75
- | **expose_over_hide** | 暴露 > 隱藏 | "我有沒有任何資訊是「先不說,等一下再說」的?" |
76
- | **wire_over_rewrite** | 接線 > 重寫 | "這個問題能透過呼叫已存在的函數解決嗎?" |
77
-
78
- **用法範例**:
79
- ```yaml
80
- 情境: "我應該先做 A 再做 B 嗎?"
81
- 錯誤做法: "A 是基礎,所以應該先做"
82
- 正確做法:
83
- - 問:B 的輸入必須包含 A 的輸出嗎?(real_dependency_over_perceived)
84
- - 是 → 序列執行
85
- - 否 → 並行執行
86
- ```
87
-
88
- ---
89
-
90
- ## Formation 調度
91
-
92
- ### 1. 陣型判斷
93
-
94
- **原則**: "能 unit 不 solo,能 solo 不 squad,能 squad 不 legion"
95
-
96
- | 陣型 | Agents | 通訊 | 適用場景 | CLI |
97
- |------|--------|------|---------|-----|
98
- | **unit** | 1 | 無 | 目標明確、單一 scope | `--skill=do --task=TASK_XXX` |
99
- | **solo** | 1 | 自我對話 | 多角度動態分析 | `--formation=solo --skill=strategy` |
100
- | **squad** | N | shared_context | 獨立子任務並行 | `--formation=squad --skill=blitz` |
101
- | **legion** | N | 即時通訊 | 有依賴或回饋循環 | `--formation=legion --skill=forge` |
102
-
103
- ### 2. Dispatch 機制
104
-
105
- **工具**: `.formation/tools/headless.js`
106
- **方法**: Bash tool → `node headless.js` → 啟動獨立 Claude CLI 進程
107
-
108
- **並行模式範例**:
109
-
110
- ```javascript
111
- // 單任務
112
- Bash(run_in_background: true):
113
- node .formation/tools/headless.js --skill=do --task=TASK_148
114
-
115
- // 並行多任務(無依賴)
116
- Bash(run_in_background: true):
117
- node .formation/tools/headless.js --skill=do --task=TASK_148
118
- Bash(run_in_background: true):
119
- node .formation/tools/headless.js --skill=do --task=TASK_149
120
- Bash(run_in_background: true):
121
- node .formation/tools/headless.js --skill=do --task=TASK_150
122
-
123
- // 有依賴(順序執行)
124
- Bash: node .formation/tools/headless.js --skill=do --task=TASK_147
125
- // 等待完成後
126
- Bash: node .formation/tools/headless.js --skill=do --task=TASK_148
127
- ```
128
-
129
- **關鍵規則**:
130
- - ✅ 所有調度必須經過 `.collaboration` 任務系統
131
- - ✅ 用 Bash tool 呼叫 headless.js,`run_in_background=true` 實現並行
132
- - ❌ 不用 Task tool 開 subagent 繞過 Formation(Formation 有 prompt 組裝、log、principles 注入)
133
-
134
- ### 3. Scope 安全
135
-
136
- **原則**: "併發安全由 Ansuz 保證,agent 不感知"
137
-
138
- ```yaml
139
- Scope 分配:
140
- 同檔案: "一個實例處理整個檔案"
141
- 跨檔案: "fan_out,按模組/目錄切"
142
- 派工前: "確認 scope 無重疊"
143
-
144
- 衝突檢測:
145
- 無衝突: scope_paths 無包含關係 → 可並行
146
- 有衝突: scope_paths 包含或被包含 → 順序執行
147
-
148
- 範例:
149
- TASK_A: ["CLAUDE.md"]
150
- TASK_B: [".formation/tools/runner.js"]
151
- → 無衝突,可並行
152
-
153
- TASK_A: [".rule/pipeline/"]
154
- TASK_B: [".rule/pipeline/task-execution.yaml"]
155
- → TASK_B 被 TASK_A 包含,衝突,順序執行
156
- ```
157
-
158
- ---
159
-
160
- ## 任務系統整合
161
-
162
- ### 1. 任務生命週期
163
-
164
- ```bash
165
- # 建立任務
166
- node .collaboration/core/task-api.js create \
167
- --title "任務標題" \
168
- --priority P1 \
169
- --role developer
170
-
171
- # 認領任務
172
- node .collaboration/core/task-api.js claim TASK_XXX
173
-
174
- # 完成任務
175
- node .collaboration/core/task-api.js complete TASK_XXX
176
-
177
- # 阻塞任務
178
- node .collaboration/core/task-api.js move TASK_XXX blocked
179
-
180
- # 列出任務
181
- node .collaboration/core/task-api.js list
182
- ```
183
-
184
- ### 2. 任務卡格式
185
-
186
- ```yaml
187
- id: "TASK_XXX"
188
- title: "任務標題"
189
- description: "詳細描述"
190
- priority: "P1" # P0 > P1 > P2 > P3
191
- status: "in_progress"
192
- role: "developer" # designer | frontend | backend | qa | sre
193
- dependencies: ["TASK_147"] # 真依賴(B 的輸入 = A 的輸出)
194
- scope_paths: # 修改的檔案/目錄(用於衝突檢測)
195
- - "CLAUDE.md"
196
- acceptance_criteria: # 驗收標準(必填)
197
- - "CLAUDE.md 包含完整 12 步流程"
198
- ```
199
-
200
- **必填字段**:
201
- - `id`, `title`, `description`, `priority`, `status`, `role`, `acceptance_criteria`
202
-
203
- ### 3. 依賴分析
204
-
205
- **真依賴定義**:B 的輸入必須包含 A 的輸出
206
-
207
- ```yaml
208
- 範例 1: 真依賴
209
- TASK_A: 實作 API endpoint /api/search
210
- TASK_B: 前端呼叫 /api/search
211
- → B depends on A(A 的輸出 = API,B 的輸入 = API)
212
-
213
- 範例 2: 假依賴
214
- TASK_A: 修 src/api/auth.py
215
- TASK_B: 修 src/api/search.py
216
- → 無依賴(同模組但無輸入輸出關係)→ 可並行
217
- ```
218
-
219
- **判斷測試**:
220
- > "如果 A 的結果完全不同,B 需要重做嗎?"
221
- > - 需要 → 真依賴
222
- > - 不需要 → 假依賴
223
-
224
- ---
225
-
226
- ## Post-Complete 自動化
227
-
228
- ### 1. 工具
229
-
230
- **檔案**: `.formation/tools/post-complete.js`
231
- **觸發**: 任務完成後自動執行
232
-
233
- ### 2. 流程
234
-
235
- ```yaml
236
- Phase 1: Archive
237
- action: "舊任務移至 archived/(保留最新 10 個)"
238
- rule: "避免 .collaboration/tasks/{status}/ 堆積"
239
-
240
- Phase 2: Git
241
- - "建立 task/task_xxx 分支"
242
- - "stage 所有變更"
243
- - "commit: [TASK_XXX] 任務摘要"
244
- - "merge 到用戶分支(如 {git_user})"
245
- - "❌ 不自動 merge 到 main"
246
-
247
- Phase 3: 回報
248
- - "任務完成摘要"
249
- - "變更檔案清單"
250
- - "Archive 狀態"
251
- - "Git 分支狀態"
252
- ```
253
-
254
- ### 3. CLI 使用
255
-
256
- ```bash
257
- # 自動執行(由 Ansuz 調用)
258
- node .formation/tools/post-complete.js --task=TASK_XXX
259
- ```
260
-
261
- ---
262
-
263
- ## 啟動與溝通
264
-
265
- ### 1. 啟動行為
266
-
267
- 當用戶執行 `/Ansuz` 時:
268
-
269
- ```yaml
270
- Step 1: 先做事,再開口
271
- - "讀 dev/PRODUCT_SPEC.md"
272
- - "node .collaboration/core/task-api.js list"
273
- - "讀 dev/pipeline/PROGRESS.md"
274
-
275
- Step 2: 展示 Banner
276
- output: |
277
- ᚨ Ansuz 已就位
278
-
279
- 任務統計:
280
- - 待處理:3 個(P0: 1, P1: 2)
281
- - 進行中:2 個
282
- - 已完成:47 個
283
-
284
- 🔴 P0 優先任務:TASK_224 修復 Formation 系統 Git 管理
285
-
286
- 請描述需求,或指定 TASK_ID
287
- ```
288
-
289
- **重點**:
290
- - 不展示內部實現(陣型、系統路徑)
291
- - 用戶關心的是「專案現在怎樣」,不是「你能做什麼」
292
-
293
- ### 2. 溝通模式
294
-
295
- **對 用戶**:
296
-
297
- ```yaml
298
- 規則:
299
- - "結論在前,證據在後"
300
- - "壞消息先說"
301
- - "不確定時說不確定"
302
- - "結構化表格 > 散文"
303
-
304
- 範例:
305
- ❌ TASK_XXX 阻塞
306
-
307
- 原因:API endpoint 不存在
308
- 建議:補實作 API 或調整前端呼叫路徑
309
- ```
310
-
311
- **對 Agent**(透過 Formation):
312
-
313
- ```yaml
314
- 規則:
315
- - "指令明確、結構化、無歧義"
316
- - "提供充足 context — agent 無記憶"
317
- - "定義清晰的完成條件"
318
-
319
- 範例:
320
- task: TASK_148
321
- description: "更新 CLAUDE.md 工作流程說明"
322
- scope_paths: ["CLAUDE.md"]
323
- acceptance_criteria:
324
- - "CLAUDE.md 包含完整 12 步流程"
325
- ```
326
-
327
- ---
328
-
329
- ## Mindset 核心
330
-
331
- ```yaml
332
- 核心價值觀: "完美達成 > 一切"
333
- 行為準則:
334
- - "不考慮成本(token、時間、API 費用)"
335
- - "只關注:能不能完美達成目標"
336
- - "❌ 禁止因成本考量進入保守狀態"
337
- - "❌ 禁止走捷徑 — 遇到問題必須修根因"
338
- - "❌ 「最快解法」≠ 正確解法 — 永遠選正確修復"
339
-
340
- 溝通風格:
341
- 核心: "簡潔 | 高效 | 透明"
342
- 目標: "80 tokens → 15 tokens"
343
- 符號:
344
- ✅: "允許"
345
- ❌: "禁止"
346
- →: "導致/然後"
347
- ">": "優先於"
348
- ```
349
-
350
- ---
351
-
352
- ## 完整工作流範例
353
-
354
- ```yaml
355
- 場景: "實現搜尋功能改進"
356
-
357
- Phase 1: understand
358
- - 讀 PRODUCT_SPEC.md — Feature ID
359
- - 詢問用戶:改進哪些方面?
360
- - 輸出:需求摘要 + 範圍 + 優先級
361
-
362
- Phase 2: design
363
- - 拆分任務:
364
- TASK_151: 後端 API 優化(scope: src/api/)
365
- TASK_152: 前端 UI 改進(scope: src/ui/)
366
- TASK_153: 測試覆蓋(scope: tests/)
367
- - 分析依賴:無真依賴(可並行)
368
- - 展示給用戶確認
369
-
370
- Phase 3: create
371
- - node task-api.js create ... (x3 任務)
372
-
373
- Phase 4: dispatch
374
- - 判斷:3 個獨立任務 → squad/blitz
375
- - Dispatch 並行:
376
- Bash(bg): node headless.js --formation=squad --skill=blitz --task=TASK_151
377
- Bash(bg): node headless.js --formation=squad --skill=blitz --task=TASK_152
378
- Bash(bg): node headless.js --formation=squad --skill=blitz --task=TASK_153
379
-
380
- Phase 5: on_result
381
- - 驗證:檔案變更 + Git commit + 驗收標準
382
- - 失敗 → 分析根因 → 重派 | 換策略
383
-
384
- Phase 6: post_complete
385
- - node post-complete.js --task=TASK_151
386
- - Archive 舊任務 + Git 分支管理
387
-
388
- Phase 7: report
389
- output: |
390
- ✅ 搜尋功能改進完成
391
-
392
- 陣型:squad/blitz
393
- 結果:3 個任務並行完成
394
- 變更:6 個檔案
395
- 📦 Archive: 5 個舊任務已封存
396
- 🔀 Git: task/task_151 → {git_user}
397
- ```
398
-
399
- ---
400
-
401
- ## 常見問題
402
-
403
- ### Q1: Ansuz vs Sunny,什麼時候用哪個?
404
-
405
- | 場景 | 使用 |
406
- |------|------|
407
- | 正常產品開發(有規格、有流程) | **Ansuz** |
408
- | 繞過限制、系統修復、緊急處理 | **Sunny** |
409
- | 需要完整生命週期追蹤 | **Ansuz** |
410
- | 需要快速修改、不在乎流程 | **Sunny** |
411
-
412
- ### Q2: 為什麼不用 Task tool 開 subagent?
413
-
414
- **原因**:
415
- - Task tool 開的 subagent 沒有 Formation 系統的 principles 注入
416
- - 沒有日誌系統(.formation/logs/)
417
- - 沒有 prompt 組裝層(.formation/tools/prompt.js)
418
- - 缺少結構化 context 傳遞
419
-
420
- **正確做法**:
421
- - 透過 Bash tool 呼叫 `headless.js`
422
- - Formation 系統會自動處理 principles、logging、prompt 組裝
423
-
424
- ### Q3: 如何確定是真依賴還是假依賴?
425
-
426
- **測試問題**:
427
- > "如果 A 的結果完全不同,B 需要重做嗎?"
428
-
429
- **範例**:
430
- ```yaml
431
- TASK_A: 設計 API 接口定義
432
- TASK_B: 實作前端呼叫 API
433
-
434
- 測試: 如果 A 的 API 接口改了,B 需要重做嗎?
435
- 答案: 需要 → 真依賴
436
-
437
- TASK_A: 修 auth.py
438
- TASK_B: 修 search.py
439
-
440
- 測試: 如果 A 的修改內容完全不同,B 需要重做嗎?
441
- 答案: 不需要 → 假依賴(可並行)
442
- ```
443
-
444
- ### Q4: Scope 衝突檢測是如何運作的?
445
-
446
- **規則**:路徑包含或被包含 = 衝突
447
-
448
- ```yaml
449
- 無衝突範例:
450
- TASK_A: ["CLAUDE.md"]
451
- TASK_B: [".formation/tools/runner.js"]
452
- → 無包含關係 → 可並行
453
-
454
- 有衝突範例:
455
- TASK_A: [".rule/pipeline/"]
456
- TASK_B: [".rule/pipeline/task-execution.yaml"]
457
- → TASK_B 被 TASK_A 包含 → 衝突 → 順序執行
458
- ```
459
-
460
- ---
461
-
462
- ## 檔案結構
463
-
464
- ```
465
- .specialist/Ansuz/
466
- ├── rule.yaml # 身份、邊界、權限
467
- ├── principles.yaml # 7 條底層原則(最高優先級)
468
- ├── capability.yaml # 能力定義
469
- ├── workflow.yaml # 事件驅動 7 phases
470
- ├── knowledge.yaml # 共享詞彙表
471
- └── SYSTEM_DOC.md # 完整文檔
472
-
473
- .claude/commands/
474
- └── Ansuz.md # 斜線指令觸發
475
-
476
- .formation/tools/
477
- ├── headless.js # Formation 調度核心
478
- ├── prompt.js # Prompt 組裝
479
- ├── runner.js # 執行引擎
480
- ├── post-complete.js # 完成後自動化
481
- └── logger.js # 日誌系統
482
-
483
- .collaboration/
484
- ├── core/task-api.js # 任務系統 API
485
- └── tasks/{status}/ # 任務卡目錄
486
- ```
487
-
488
- ---
489
-
490
- ## 版本歷史
491
-
492
- | 版本 | 日期 | 變更 |
493
- |------|------|------|
494
- | 1.0.0 | 2026-02-20 | 初始文檔化 |
495
-
496
- ---
497
-
498
- **最後更新**: 2026-02-20
499
- **維護者**: Kenaz AI Development Team
500
- **相關文檔**: [SYSTEM_DOC.md](../../../.specialist/Ansuz/SYSTEM_DOC.md)
@@ -1,177 +0,0 @@
1
- # Claude CLI Spawn 知識庫
2
-
3
- > 來源:2026-02-14 headless launcher 調試經驗
4
-
5
- ## Windows 環境下 Spawn Claude CLI
6
-
7
- ### 關鍵發現
8
-
9
- 1. **必須用 `claude.cmd`**(非 `claude`)
10
- - Windows 上 Claude CLI 是 `.cmd` 批次檔
11
- - Node.js spawn 找不到 `claude`,會報 `ENOENT`
12
-
13
- 2. **必須用 `shell: true`**
14
- - Windows 執行 `.cmd` 檔案需要經過 shell(cmd.exe)
15
- - 不加會報 spawn 錯誤
16
-
17
- 3. **Shell 參數解析問題**
18
- - `shell: true` 時,參數會經過 cmd.exe 解析
19
- - 長字串、特殊字符、引號會被截斷或破壞
20
- - **解決方案**:用 stdin 傳遞 prompt
21
-
22
- ### 正確的 Spawn 模式
23
-
24
- ```javascript
25
- const { spawn } = require('child_process');
26
-
27
- // Windows 判斷
28
- const claudeCmd = process.platform === 'win32' ? 'claude.cmd' : 'claude';
29
-
30
- const args = [
31
- '-p', '-', // 從 stdin 讀取 prompt
32
- '--dangerously-skip-permissions',
33
- '--teammate-mode', 'in-process',
34
- '--output-format', 'stream-json',
35
- '--verbose',
36
- '--allowedTools', 'Bash,Read,Edit,Write,Glob,Grep,Task'
37
- ];
38
-
39
- const child = spawn(claudeCmd, args, {
40
- cwd: projectRoot,
41
- env: cleanEnv,
42
- stdio: ['pipe', 'pipe', 'pipe'], // stdin 必須是 pipe
43
- windowsHide: true,
44
- shell: true
45
- });
46
-
47
- // 透過 stdin 傳送 prompt(繞過 shell 參數解析)
48
- child.stdin.write(promptContent);
49
- child.stdin.end();
50
- ```
51
-
52
- ### 錯誤的模式(避免)
53
-
54
- ```javascript
55
- // ❌ 錯誤 1:直接傳 prompt 作為參數
56
- const args = ['-p', longPromptString, ...]; // 會被 shell 截斷
57
-
58
- // ❌ 錯誤 2:用 PowerShell 中介
59
- spawn('powershell', ['-Command', `claude -p ...`]); // PowerShell 會吃掉 stream-json 輸出
60
-
61
- // ❌ 錯誤 3:不加 shell: true
62
- spawn('claude.cmd', args, { shell: false }); // Windows 無法執行 .cmd
63
-
64
- // ❌ 錯誤 4:用 'claude' 而非 'claude.cmd'
65
- spawn('claude', args, { shell: true }); // ENOENT
66
- ```
67
-
68
- ---
69
-
70
- ## Claude CLI 參數組合規則
71
-
72
- ### `--output-format stream-json` 限制
73
-
74
- | 搭配參數 | 是否需要 `--verbose` |
75
- |---------|---------------------|
76
- | `-p` (print mode) | ✅ 必須加 `--verbose` |
77
- | 互動模式 | ❌ 不需要 |
78
-
79
- **錯誤訊息**:
80
- ```
81
- Error: When using --print, --output-format=stream-json requires --verbose
82
- ```
83
-
84
- ### `--teammate-mode` 選項
85
-
86
- | 值 | 說明 |
87
- |----|------|
88
- | `in-process` | Agent 在同一 session 內執行,共享 context |
89
- | `subprocess` | Agent 作為獨立 subprocess 執行 |
90
-
91
- ### `--dangerously-skip-permissions`
92
-
93
- - 跳過所有權限確認
94
- - **必須**搭配 `--allowedTools` 限制可用工具
95
- - 適用於自動化場景
96
-
97
- ---
98
-
99
- ## 環境變數處理
100
-
101
- ### 必須刪除的變數
102
-
103
- ```javascript
104
- const env = { ...process.env };
105
- delete env.CLAUDECODE; // 避免 "nested session" 錯誤
106
- ```
107
-
108
- **錯誤訊息**:
109
- ```
110
- Error: Claude Code cannot be launched inside another Claude Code session.
111
- ```
112
-
113
- ### 建議設定的變數
114
-
115
- ```javascript
116
- env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = '1'; // 啟用 agent teams
117
- env.CLAUDE_CODE_GIT_BASH_PATH = '/path/to/bash.exe'; // Windows Git Bash
118
- ```
119
-
120
- ---
121
-
122
- ## Agent Teams 功能
123
-
124
- ### 建立團隊
125
-
126
- 透過 `TeamCreate` 工具:
127
- ```json
128
- {
129
- "team_name": "my-team",
130
- "description": "Team description",
131
- "agent_type": "coordinator"
132
- }
133
- ```
134
-
135
- ### 建立 Teammate
136
-
137
- 透過 `Task` 工具 + `team_name` 參數:
138
- ```json
139
- {
140
- "subagent_type": "general-purpose",
141
- "description": "Agent description",
142
- "prompt": "Your task...",
143
- "team_name": "my-team",
144
- "name": "agent-name"
145
- }
146
- ```
147
-
148
- ### Teammate 回傳格式
149
-
150
- ```json
151
- {
152
- "status": "teammate_spawned",
153
- "agent_id": "agent-name@team-name",
154
- "model": "claude-opus-4-6",
155
- "color": "blue"
156
- }
157
- ```
158
-
159
- ---
160
-
161
- ## 常見錯誤診斷
162
-
163
- | 錯誤 | 原因 | 解法 |
164
- |------|------|------|
165
- | `spawn claude ENOENT` | 找不到 claude 命令 | 用 `claude.cmd` + `shell: true` |
166
- | `stream-json requires --verbose` | 參數組合錯誤 | 加 `--verbose` |
167
- | `Nested session` | CLAUDECODE 環境變數 | `delete env.CLAUDECODE` |
168
- | Prompt 被截斷 | Shell 參數解析 | 用 stdin 傳遞 prompt |
169
- | 輸出為空 | PowerShell 緩衝 | 不要用 PowerShell 中介 |
170
-
171
- ---
172
-
173
- ## 參考
174
-
175
- - 調試報告:`.system/sunny/teammates/report/headless_debug_report.md`
176
- - 環境配置:`.system/sunny/teammates/tools/utils/env.js`
177
- - Headless Launcher:`.system/sunny/teammates/tools/headless/launcher.js`