kenaz 0.3.18 → 0.3.20

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 (329) 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__/arms.test.js +41 -0
  30. package/core/.formation/tools/__tests__/diagnose-bug.test.js +10 -0
  31. package/core/.formation/tools/__tests__/m1-hmap-convid.test.js +1 -124
  32. package/core/.formation/tools/arms.js +48 -0
  33. package/core/.formation/tools/dispatch.js +24 -15
  34. package/core/.formation/tools/kenaz-stats.js +32 -8
  35. package/core/.formation/tools/kenaz-stats.test.js +15 -2
  36. package/core/.formation/tools/loader.js +17 -140
  37. package/core/.formation/tools/post-complete.js +0 -31
  38. package/core/.formation/tools/prompt.js +16 -1
  39. package/core/.formation/tools/prompt.test.js +20 -0
  40. package/core/.rule/INDEX.yaml +0 -18
  41. package/core/.rule/general/agent-workflow.yaml +14 -164
  42. package/core/.rule/general/project-self-containment.yaml +8 -19
  43. package/core/.rule/general/rust-verify-target.yaml +6 -5
  44. package/core/.rule/general/synapse-code-intelligence.yaml +3 -3
  45. package/core/.specialist/Amelia/capability.yaml +12 -12
  46. package/core/.specialist/Amelia/workflow.yaml +2 -2
  47. package/core/.specialist/Ansuz/SYSTEM_DOC.md +20 -578
  48. package/core/.specialist/Ansuz/cognitive_principles.yaml +2 -3
  49. package/core/.specialist/Ansuz/concepts/boot_rules_summary.yaml +0 -1
  50. package/core/.specialist/Ansuz/concepts/deep_knowledge_pointers.yaml +1 -2
  51. package/core/.specialist/Ansuz/core.yaml +6 -108
  52. package/core/.specialist/Ansuz/guards/lesson_guards.yaml +0 -3
  53. package/core/.specialist/Ansuz/identity_contract.yaml +0 -1
  54. package/core/.specialist/Ansuz/knowledge.yaml +0 -4
  55. package/core/.specialist/Ansuz/rule.yaml +0 -1
  56. package/core/.specialist/Ansuz/tools/handoff-session-identity.test.js +6 -150
  57. package/core/.specialist/tests/runtime-discovery/README.md +1 -1
  58. package/core/.specialist/tools/__tests__/task-2374-usage-counter.test.js +1 -12
  59. package/core/.specialist/tools/ansuz-boot-fast.js +7 -4
  60. package/core/.specialist/tools/ansuz-boot-fast.test.js +10 -3
  61. package/core/.specialist/tools/prompt-files.test.js +1 -0
  62. package/core/.specialist/tools/task-bridge.js +1 -66
  63. package/core/.system/README.md +11 -552
  64. package/core/.system/collaboration/README.md +10 -174
  65. package/core/CLAUDE.md +1 -6
  66. package/core/KENAZ_CORE_VERSION +1 -1
  67. package/core/dev/scripts/js-yaml-resolution.test.js +1 -1
  68. package/core/dev/scripts/peer-identity-e2e.js +402 -0
  69. package/core/dev/scripts/peer-identity-e2e.md +47 -0
  70. package/core/dev/scripts/relay-admin.js +94 -0
  71. package/core/dev/scripts/relay-admin.test.js +131 -0
  72. package/core/dev/scripts/run-rust-tests.js +9 -45
  73. package/core/dev/scripts/rust-verify-worktree.js +4 -4
  74. package/core/dev/scripts/verify-target-dir.js +6 -6
  75. package/core/plugins/kenaz/INVENTORY.md +8 -8
  76. package/core/plugins/kenaz/README.md +10 -0
  77. package/core/plugins/kenaz/commands/architect.md +1 -2
  78. package/core/plugins/kenaz/commands/spec.md +1 -1
  79. package/core/plugins/kenaz/commands//347/224/242/345/223/201.md +1 -1
  80. package/core/plugins/kenaz/guidance.md +1 -1
  81. package/core/plugins/kenaz/hooks/kenaz-hook.js +2 -1
  82. package/core/plugins/kenaz/hooks/sdk-gate.js +9 -0
  83. package/core/plugins/kenaz/scripts/kenaz.test.js +15 -3
  84. package/core/plugins/kenaz/scripts/sync.js +1 -1
  85. package/core/plugins/kenaz/scripts/ygg.js +8 -0
  86. package/core/plugins/kenaz/scripts/ygg.test.js +72 -0
  87. package/core/plugins/kenaz/skills/architect_agent/SKILL.md +11 -92
  88. package/core/plugins/kenaz/skills/assessment_agent/SKILL.md +0 -1
  89. package/core/plugins/kenaz/skills/backend_engineer/SKILL.md +3 -6
  90. package/core/plugins/kenaz/skills/code_reviewer/SKILL.md +1 -1
  91. package/core/plugins/kenaz/skills/code_reviewer/patterns.yaml +1 -1
  92. package/core/plugins/kenaz/skills/designer/SKILL.md +3 -6
  93. package/core/plugins/kenaz/skills/dev_agent/SKILL.md +30 -491
  94. package/core/plugins/kenaz/skills/developer/SKILL.md +3 -6
  95. package/core/plugins/kenaz/skills/feature_agent/SKILL.md +3 -17
  96. package/core/plugins/kenaz/skills/product_manager/SKILL.md +29 -1064
  97. package/core/plugins/kenaz/skills/qa_engineer/SKILL.md +12 -17
  98. package/core/plugins/kenaz/skills/spec_optimizer/SKILL.md +25 -275
  99. package/core/plugins/kenaz/skills/sre_agent/SKILL.md +3 -6
  100. package/core/plugins/kenaz-peer/hooks/register.test.ts +32 -0
  101. package/core/plugins/kenaz-peer/hooks/register.ts +9 -0
  102. package/package.json +6 -6
  103. package/core/.claude/commands/archive.md +0 -24
  104. package/core/.claude/commands/init.md +0 -112
  105. package/core/.claude/commands/legacy_dev.md +0 -18
  106. package/core/.claude/commands/product-review.md +0 -131
  107. package/core/.claude/commands/strategy.md +0 -141
  108. package/core/.claude/commands/sunny.md +0 -1
  109. package/core/.claude/commands//347/224/242/345/223/201/346/252/242/350/246/226.md +0 -129
  110. package/core/.claude/commands//351/200/262/345/272/246.md +0 -15
  111. package/core/.claude/hooks/__tests__/substrate.test.js +0 -122
  112. package/core/.claude/hooks/_substrate-paths.js +0 -95
  113. package/core/.claude/hooks/context-check.js +0 -51
  114. package/core/.claude/hooks/fatigue-check.js +0 -52
  115. package/core/.claude/hooks/handoff-snapshot-on-commit.js +0 -154
  116. package/core/.claude/hooks/handoff-snapshot-on-question.js +0 -158
  117. package/core/.claude/hooks/handoff-staleness.js +0 -197
  118. package/core/.claude/hooks/jev-thalamus-context.js +0 -17
  119. package/core/.claude/hooks/jev-thalamus-context.test.js +0 -41
  120. package/core/.claude/hooks/lease-release.js +0 -119
  121. package/core/.claude/hooks/lease-touch.js +0 -96
  122. package/core/.claude/hooks/reflex-feedback.js +0 -5
  123. package/core/.claude/hooks/session-init.ps1 +0 -49
  124. package/core/.claude/hooks/sound-event.js +0 -70
  125. package/core/.claude/hooks/sound-event.sh +0 -37
  126. package/core/.claude/hooks/stream-delta.js +0 -169
  127. package/core/.claude/no-hooks.settings.json +0 -3
  128. package/core/.claude/skills/legacy_dev/SKILL.md +0 -202
  129. package/core/.claude/skills/sunny/SKILL.md +0 -74
  130. package/core/.collaboration/cli/commands/assign.js +0 -39
  131. package/core/.collaboration/cli/commands/claim.js +0 -33
  132. package/core/.collaboration/cli/commands/complete.js +0 -44
  133. package/core/.collaboration/cli/commands/create.js +0 -110
  134. package/core/.collaboration/cli/commands/get.js +0 -83
  135. package/core/.collaboration/cli/commands/index.js +0 -52
  136. package/core/.collaboration/cli/commands/list.js +0 -51
  137. package/core/.collaboration/cli/commands/lock.js +0 -45
  138. package/core/.collaboration/cli/commands/rebuild.js +0 -39
  139. package/core/.collaboration/cli/commands/search.js +0 -61
  140. package/core/.collaboration/cli/commands/stats.js +0 -61
  141. package/core/.collaboration/cli/commands/transfer.js +0 -41
  142. package/core/.collaboration/cli/commands/unlock.js +0 -48
  143. package/core/.collaboration/cli/formatters/help-formatter.js +0 -70
  144. package/core/.collaboration/cli/formatters/index.js +0 -7
  145. package/core/.collaboration/cli/task-cli.js +0 -46
  146. package/core/.collaboration/cli/utils/arg-parser.js +0 -74
  147. package/core/.collaboration/cli/utils/git-user.js +0 -25
  148. package/core/.collaboration/cli/utils/index.js +0 -9
  149. package/core/.collaboration/cli/utils/output.js +0 -10
  150. package/core/.collaboration/config/default.yaml +0 -189
  151. package/core/.collaboration/core/conflict-resolver.js +0 -461
  152. package/core/.collaboration/core/conflict-resolver.test.js +0 -389
  153. package/core/.collaboration/core/migrate-legacy.js +0 -260
  154. package/core/.collaboration/docs/API.md +0 -787
  155. package/core/.collaboration/docs/ARCHITECTURE.md +0 -596
  156. package/core/.collaboration/docs/FAQ.md +0 -695
  157. package/core/.collaboration/docs/MIGRATION.md +0 -804
  158. package/core/.collaboration/docs/examples/README.md +0 -320
  159. package/core/.collaboration/docs/examples/advanced-queries.js +0 -261
  160. package/core/.collaboration/docs/examples/basic-usage.js +0 -184
  161. package/core/.collaboration/docs/examples/team-workflow.js +0 -352
  162. package/core/.failure/agent-execution/FAIL-001-agent-no-output.yaml +0 -391
  163. package/core/.failure/agent-execution/FAIL-007-pm-lead-wrong-team-invocation.yaml +0 -0
  164. package/core/.failure/agent-execution/FAIL-010-phase0-poem-format-skipped.yaml +0 -28
  165. package/core/.failure/agent-execution/FAIL-010-skipping-cognitive-checkpoint-after-verification.yaml +0 -59
  166. package/core/.failure/agent-execution/FAIL-012-grep-shortcut-during-investigation.yaml +0 -85
  167. package/core/.failure/architecture/FAIL-006-python-version-compatibility.yaml +0 -445
  168. package/core/.failure/pipeline/FAIL-003-queue-pollution.yaml +0 -335
  169. package/core/.failure/pipeline/README.md +0 -95
  170. package/core/.failure/retired/FAIL-009-skipping-synapse-pulse-before-code-change.yaml +0 -49
  171. package/core/.failure/tools/USAGE_GUIDE.md +0 -323
  172. package/core/.failure/tools/check_failures.ps1 +0 -387
  173. package/core/.failure/tools/log_failure.ps1 +0 -474
  174. package/core/.formation/.episode-input.json +0 -10
  175. package/core/.formation/.merge-lock +0 -1
  176. package/core/.formation/lead.yaml +0 -118
  177. package/core/.formation/legacy.bak/designer.yaml +0 -57
  178. package/core/.formation/legacy.bak/pm.yaml +0 -57
  179. package/core/.formation/legacy.bak/qa.yaml +0 -57
  180. package/core/.formation/legacy.bak/review.yaml +0 -62
  181. package/core/.formation/legacy.bak/scheduler.yaml +0 -129
  182. package/core/.formation/legacy.bak/sre.yaml +0 -57
  183. package/core/.formation/role-map.yaml +0 -274
  184. package/core/.formation/roles/_shared/modules/code_review.yaml +0 -98
  185. package/core/.formation/roles/_shared/modules/security.yaml +0 -103
  186. package/core/.formation/roles/_shared/modules/testing.yaml +0 -14
  187. package/core/.formation/roles/backend/role.yaml +0 -93
  188. package/core/.formation/roles/code_reviewer/role.yaml +0 -102
  189. package/core/.formation/roles/database_optimizer/role.yaml +0 -107
  190. package/core/.formation/roles/designer/role.yaml +0 -66
  191. package/core/.formation/roles/developer/role.yaml +0 -75
  192. package/core/.formation/roles/frontend/role.yaml +0 -134
  193. package/core/.formation/roles/incident_response/role.yaml +0 -89
  194. package/core/.formation/roles/qa/role.yaml +0 -89
  195. package/core/.formation/roles/security/role.yaml +0 -87
  196. package/core/.formation/roles/sre/role.yaml +0 -66
  197. package/core/.formation/skills/coordinator.yaml +0 -52
  198. package/core/.formation/solo/diagnosis.yaml +0 -78
  199. package/core/.formation/solo/strategy.yaml +0 -121
  200. package/core/.formation/tests/hello.txt +0 -2
  201. package/core/.formation/tools/coordinator.js +0 -350
  202. package/core/.formation/tools/jev-correction.js +0 -214
  203. package/core/.formation/tools/jev-correction.test.js +0 -178
  204. package/core/.formation/tools/log-reader.js +0 -232
  205. package/core/.formation/tools/revert-daemon-state.js +0 -162
  206. package/core/.formation/tools/test-drift.js +0 -148
  207. package/core/.formation/unit/heimdall.yaml +0 -96
  208. package/core/.formation/unit/plan.yaml +0 -67
  209. package/core/.formation/unit/think.yaml +0 -58
  210. package/core/.kenaz/MUNINN_SNAPSHOT9_EPISODE.json +0 -32
  211. package/core/.kenaz/MUNINN_SNAPSHOT9_RUNE.json +0 -23
  212. package/core/.kenaz/MUNINN_SNAPSHOT9_SUMMARY.md +0 -89
  213. package/core/.kenaz/ash_TASK_1428-20260507.json +0 -14
  214. package/core/.kenaz/muninn_episode_write.ps1 +0 -17
  215. package/core/.kenaz/muninn_snapshot11_rune_candidates.md +0 -63
  216. package/core/.kenaz/muninn_snapshot1_rune_candidates.md +0 -49
  217. package/core/.kenaz/runes_TASK_1428.json +0 -57
  218. package/core/.kenaz/tmp_heimdall_proposal_8d3e392.json +0 -13
  219. package/core/.kenaz/tmp_props.json +0 -1
  220. package/core/.kenaz/tmp_sounddrop_t1_prompt.txt +0 -371
  221. package/core/.rule/MECHANIZED.md +0 -61
  222. package/core/.rule/general/cortex-memory-recall.yaml +0 -446
  223. package/core/.rule/general/pipeline.yaml +0 -246
  224. package/core/.rule/general/sunny-access-control.yaml +0 -60
  225. package/core/.rule/general/system-invariants.yaml +0 -231
  226. package/core/.rule/pipeline/PPL-002-completed-task-archival.yaml +0 -528
  227. package/core/.rule/pipeline/auto-update.yaml +0 -282
  228. package/core/.rule/pipeline/task-execution.yaml +0 -365
  229. package/core/.specialist/Ansuz/concepts/phase_protocol.yaml +0 -65
  230. package/core/.specialist/Ansuz/experiments/boot_ablation_replay.js +0 -197
  231. package/core/.specialist/Ansuz/tools/bootstrap-anchors.js +0 -289
  232. package/core/.specialist/Ansuz/workflow.yaml +0 -1225
  233. package/core/.specialist/experiments/rg_benchmark.js +0 -523
  234. package/core/.specialist/experiments/rg_benchmark_results.json +0 -27
  235. package/core/.specialist/tools/jev-optional-context.js +0 -107
  236. package/core/.specialist/tools/jev-optional-context.test.js +0 -152
  237. package/core/.specialist/tools/memory-action-log.js +0 -839
  238. package/core/.specialist/tools/phase-gate.js +0 -3534
  239. package/core/.specialist/tools/phase-gate.test.js +0 -85
  240. package/core/.specialist/tools/precompute-runner.js +0 -444
  241. package/core/.specialist/tools/rule-engine.js +0 -621
  242. package/core/.specialist/tools/task-bridge-jev.test.js +0 -170
  243. package/core/.synapse/memory-shared.json.sync +0 -1
  244. package/core/.system/agent-skills/README.md +0 -724
  245. package/core/.system/cli-tools/README.md +0 -724
  246. package/core/.system/cortex/MODULES.md +0 -1046
  247. package/core/.system/dashboard/FRONTEND.md +0 -812
  248. package/core/.system/dashboard/README.md +0 -737
  249. package/core/.system/failure/README.md +0 -723
  250. package/core/.system/formation/LEGACY_SKILLS.md +0 -974
  251. package/core/.system/formation/POST_COMPLETE.md +0 -602
  252. package/core/.system/formation/README.md +0 -1094
  253. package/core/.system/formation/TOOLS_REFERENCE.md +0 -1145
  254. package/core/.system/kenaz/README.md +0 -787
  255. package/core/.system/memory/README.md +0 -719
  256. package/core/.system/pipeline/README.md +0 -712
  257. package/core/.system/rule/README.md +0 -794
  258. package/core/.system/sunny/README.md +0 -476
  259. package/core/.system/sunny/RULES.json +0 -89
  260. package/core/.system/sunny/knowledge/INDEX.md +0 -37
  261. package/core/.system/sunny/knowledge/agent-teams-api.md +0 -0
  262. package/core/.system/sunny/knowledge/ansuz-specialist.md +0 -500
  263. package/core/.system/sunny/knowledge/claude-cli-spawn.md +0 -177
  264. package/core/.system/sunny/knowledge/collaboration-api.md +0 -925
  265. package/core/.system/sunny/teammates/README.md +0 -107
  266. package/core/.system/sunny/teammates/how_to_use.yaml +0 -101
  267. package/core/.system/sunny/teammates/tools/headless/launcher.js +0 -318
  268. package/core/.system/sunny/teammates/tools/powershell/launcher.js +0 -241
  269. package/core/.system/sunny/teammates/tools/powershell/start.bat +0 -50
  270. package/core/.system/sunny/teammates/tools/utils/env.js +0 -96
  271. package/core/.system/sunny/teammates/tools/utils/format-output.js +0 -329
  272. package/core/.system/sunny/tools.json +0 -101
  273. package/core/dev/scripts/cleanup-queue.js +0 -184
  274. package/core/dev/scripts/cleanup_queue.js +0 -86
  275. package/core/dev/scripts/legacy/README.md +0 -39
  276. package/core/dev/scripts/legacy/dev_agent_scheduler.ps1.bak +0 -536
  277. package/core/dev/scripts/legacy/multi_agent_scheduler.ps1.bak +0 -1978
  278. package/core/dev/scripts/matrix/CLI_README.md +0 -214
  279. package/core/dev/scripts/matrix/README.md +0 -310
  280. package/core/dev/scripts/matrix/package-lock.json +0 -4266
  281. package/core/dev/scripts/matrix/package.json +0 -55
  282. package/core/dev/scripts/matrix/src/abbreviations.ts +0 -295
  283. package/core/dev/scripts/matrix/src/cli/commands/convert.ts +0 -211
  284. package/core/dev/scripts/matrix/src/cli/commands/create.ts +0 -95
  285. package/core/dev/scripts/matrix/src/cli/commands/delete.ts +0 -102
  286. package/core/dev/scripts/matrix/src/cli/commands/list-tags.ts.wip +0 -140
  287. package/core/dev/scripts/matrix/src/cli/commands/manage-tags.ts.wip +0 -173
  288. package/core/dev/scripts/matrix/src/cli/commands/query.ts +0 -261
  289. package/core/dev/scripts/matrix/src/cli/commands/read.ts +0 -77
  290. package/core/dev/scripts/matrix/src/cli/commands/stats.ts.wip +0 -168
  291. package/core/dev/scripts/matrix/src/cli/commands/tokens.ts.wip +0 -126
  292. package/core/dev/scripts/matrix/src/cli/commands/update.ts +0 -147
  293. package/core/dev/scripts/matrix/src/cli/commands/validate.ts +0 -275
  294. package/core/dev/scripts/matrix/src/cli/index.ts +0 -350
  295. package/core/dev/scripts/matrix/src/cli/utils/file-handler.ts +0 -72
  296. package/core/dev/scripts/matrix/src/cli/utils/logger.ts +0 -65
  297. package/core/dev/scripts/matrix/src/index.ts +0 -62
  298. package/core/dev/scripts/matrix/src/indexer/tag-indexer.ts +0 -165
  299. package/core/dev/scripts/matrix/src/parser.ts +0 -281
  300. package/core/dev/scripts/matrix/src/serializer.ts +0 -151
  301. package/core/dev/scripts/matrix/src/validator.ts +0 -301
  302. package/core/dev/scripts/matrix/tests/abbreviations.test.ts +0 -122
  303. package/core/dev/scripts/matrix/tests/cli.test.ts +0 -177
  304. package/core/dev/scripts/matrix/tests/convert.test.ts +0 -143
  305. package/core/dev/scripts/matrix/tests/parser.test.ts +0 -203
  306. package/core/dev/scripts/matrix/tests/query.test.ts +0 -85
  307. package/core/dev/scripts/matrix/tests/serializer.test.ts +0 -197
  308. package/core/dev/scripts/matrix/tests/validate.test.ts +0 -141
  309. package/core/dev/scripts/matrix/tests/validator.test.ts +0 -167
  310. package/core/dev/scripts/matrix/tsconfig.json +0 -20
  311. package/core/dev/scripts/matrix/types/index.d.ts +0 -111
  312. package/core/dev/scripts/matrix/types/index.d.ts.map +0 -1
  313. package/core/dev/scripts/matrix/types/index.js +0 -8
  314. package/core/dev/scripts/matrix/types/index.js.map +0 -1
  315. package/core/dev/scripts/matrix/types/index.ts +0 -124
  316. package/core/dev/scripts/memory-usage-report.js +0 -152
  317. package/core/dev/scripts/probe/ansuz-scaffold-ablation.js +0 -579
  318. package/core/dev/scripts/probe/ansuz-scaffold-ablation.test.js +0 -244
  319. package/core/dev/scripts/probe/hook-latency-probe.js +0 -315
  320. package/core/dev/scripts/probe/hook-latency-probe.test.js +0 -105
  321. package/core/dev/scripts/probe/prediction-signal-auc.js +0 -483
  322. package/core/dev/scripts/probe/prediction-signal-auc.test.js +0 -200
  323. package/core/dev/scripts/test-pty-ws-tunnel.js +0 -229
  324. package/core/dev/scripts/validate_pipeline.js +0 -197
  325. package/core/dev/spikes/task2145-evidence-20261004/backend-log-excerpt.txt +0 -56
  326. package/core/dev/spikes/task2145-evidence-20261004/graph.shadow +0 -0
  327. package/core/dev/spikes/task2145-evidence-20261004/graph.wal +0 -0
  328. package/core/dev/spikes/task2145-evidence-20261004/graph_corrupt_suspect.marker +0 -1
  329. 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`