kenaz 0.3.21 → 0.3.23

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 (481) hide show
  1. package/core/.claude/commands/Ansuz.md +2 -0
  2. package/core/.claude/hooks/__tests__/peer-session-fill.test.js +37 -0
  3. package/core/.claude/hooks/_ansuz-conversation.js +32 -1
  4. package/core/.claude/hooks/_user-scope.js +1 -1
  5. package/core/.claude/hooks/core-resolve.js +1 -1
  6. package/core/.claude/hooks/peer-optin.test.js +74 -0
  7. package/core/.claude/hooks/peer-session-fill.js +38 -0
  8. package/core/.claude/hooks/turn-context.js +5 -4
  9. package/core/.claude/hooks/worktree-create.js +6 -6
  10. package/core/.claude/hooks/worktree-remove.js +4 -4
  11. package/core/.claude/settings.json +9 -0
  12. package/core/.collaboration/core/reconcile.js +16 -1
  13. package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
  14. package/core/.collaboration/core/task-api.js +37 -7
  15. package/core/.formation/bifrost/launch.js +1 -1
  16. package/core/.formation/bifrost/openai/codex-hook-shim.js +21 -4
  17. package/core/.formation/bifrost/openai/codex-peer-pull.test.js +42 -0
  18. package/core/.formation/bifrost/provider-launch.js +2 -1
  19. package/core/.formation/tools/kenaz-stats.js +1 -1
  20. package/core/.formation/tools/post-complete/git-merge.js +1 -1
  21. package/core/.formation/tools/prompt.js +1 -1
  22. package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
  23. package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
  24. package/core/.rule/general/project-self-containment.yaml +2 -2
  25. package/core/.specialist/Amelia/README.md +1 -1
  26. package/core/.specialist/Amelia/rule.yaml +1 -1
  27. package/core/.specialist/Ansuz/RULES.md +1 -1
  28. package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
  29. package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
  30. package/core/.specialist/Ansuz/knowledge.yaml +1 -3
  31. package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
  32. package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
  33. package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
  34. package/core/.specialist/tools/failure-detector.js +4 -4
  35. package/core/.specialist/tools/handoff-doc.js +1 -1
  36. package/core/.specialist/tools/lessons.js +2 -2
  37. package/core/CLAUDE.md +5 -5
  38. package/core/KENAZ_CORE_VERSION +1 -1
  39. package/core/dashboard/scripts/install-kenaz-cli.js +471 -0
  40. package/core/dev/scripts/check-file-size.js +1 -1
  41. package/core/dev/scripts/ci-feedback.js +1 -1
  42. package/core/dev/scripts/gc-agent-worktrees.js +11 -11
  43. package/core/dev/scripts/kenaz-session.js +3 -3
  44. package/core/dev/scripts/peer-identity-e2e.js +3 -3
  45. package/core/dev/scripts/run-rust-tests.js +2 -2
  46. package/core/dev/scripts/skill-routing-replay.js +3 -3
  47. package/core/dev/scripts/task1961/selftest.js +2 -2
  48. package/core/dev/scripts/windows-hide-guard.test.js +97 -0
  49. package/core/plugins/kenaz/commands/Ansuz.md +2 -0
  50. package/core/plugins/kenaz/guidance.md +2 -0
  51. package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
  52. package/core/plugins/kenaz/hooks/hooks.json +9 -0
  53. package/core/plugins/kenaz/hooks/kenaz-hook.js +53 -4
  54. package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
  55. package/core/plugins/kenaz/scripts/ygg.js +40 -4
  56. package/core/plugins/kenaz/scripts/ygg.test.js +63 -3
  57. package/core/plugins/kenaz-peer/hooks/register.test.ts +59 -2
  58. package/core/plugins/kenaz-peer/hooks/register.ts +24 -1
  59. package/lib/cli.js +9 -5
  60. package/package.json +6 -6
  61. package/vendor/install-kenaz-cli.js +21 -6
  62. package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
  63. package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
  64. package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
  65. package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
  66. package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
  67. package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
  68. package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
  69. package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
  70. package/core/.kenaz/main-memory/README.md +0 -230
  71. package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
  72. package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
  73. package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
  74. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
  75. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
  76. package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
  77. package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
  78. package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
  79. package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
  80. package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
  81. package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
  82. package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
  83. package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
  84. package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
  85. package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
  86. package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
  87. package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
  88. package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
  89. package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
  90. package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
  91. package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
  92. package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
  93. package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
  94. package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
  95. package/core/.kenaz/main-memory/registry.json +0 -326
  96. package/core/.kenaz/main-memory/version.yaml +0 -58
  97. package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
  98. package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
  99. package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
  100. package/core/.kenaz/specialist/prompt_1775.txt +0 -317
  101. package/core/.kenaz/specialist/prompt_1776.txt +0 -326
  102. package/core/.kenaz/specialist/prompt_1791.txt +0 -320
  103. package/core/.kenaz/specialist/prompt_1792.txt +0 -320
  104. package/core/.kenaz/specialist/prompt_1795.txt +0 -281
  105. package/core/.kenaz/specialist/prompt_1813.txt +0 -332
  106. package/core/.kenaz/specialist/prompt_1814.txt +0 -401
  107. package/core/.kenaz/specialist/prompt_1815.txt +0 -394
  108. package/core/.kenaz/specialist/prompt_1816.txt +0 -437
  109. package/core/.kenaz/specialist/prompt_1818.txt +0 -361
  110. package/core/.kenaz/specialist/prompt_1819.txt +0 -421
  111. package/core/.kenaz/specialist/prompt_1821.txt +0 -345
  112. package/core/.kenaz/specialist/prompt_1822.txt +0 -313
  113. package/core/.kenaz/specialist/prompt_1824.txt +0 -348
  114. package/core/.kenaz/specialist/prompt_1826.txt +0 -388
  115. package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
  116. package/core/.kenaz/specialist/task1825_update.json +0 -43
  117. package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
  118. package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
  119. package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
  120. package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
  121. package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
  122. package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
  123. package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
  124. package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
  125. package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
  126. package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
  127. package/core/.specialist/ansuz_session_handoff.json +0 -96
  128. package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
  129. package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
  130. package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
  131. package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
  132. package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
  133. package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
  134. package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
  135. package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
  136. package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
  137. package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
  138. package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
  139. package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
  140. package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
  141. package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
  142. package/core/dev/MUNINN_RETIREMENT.md +0 -115
  143. package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
  144. package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
  145. package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
  146. package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
  147. package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
  148. package/core/dev/PRODUCT_SPEC.md +0 -317
  149. package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
  150. package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
  151. package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
  152. package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
  153. package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
  154. package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
  155. package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
  156. package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
  157. package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
  158. package/core/dev/ansuz-eval/README.md +0 -38
  159. package/core/dev/ansuz-eval/build-fixtures.js +0 -87
  160. package/core/dev/ansuz-eval/grade.js +0 -96
  161. package/core/dev/ansuz-eval/grader.test.js +0 -117
  162. package/core/dev/ansuz-eval/tasks.md +0 -32
  163. package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
  164. package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
  165. package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
  166. package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
  167. package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
  168. package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
  169. package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
  170. package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
  171. package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
  172. package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
  173. package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
  174. package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
  175. package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
  176. package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
  177. package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
  178. package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
  179. package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
  180. package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
  181. package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
  182. package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
  183. package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
  184. package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
  185. package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
  186. package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
  187. package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
  188. package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
  189. package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
  190. package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
  191. package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
  192. package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
  193. package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
  194. package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
  195. package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
  196. package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
  197. package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
  198. package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
  199. package/core/dev/design/PHASE4_DESIGN.md +0 -559
  200. package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
  201. package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
  202. package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
  203. package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
  204. package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
  205. package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
  206. package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
  207. package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
  208. package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
  209. package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
  210. package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
  211. package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
  212. package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
  213. package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
  214. package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
  215. package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
  216. package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
  217. package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
  218. package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
  219. package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
  220. package/core/dev/jev-eval/README.md +0 -101
  221. package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
  222. package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
  223. package/core/dev/jev-eval/cli.mjs +0 -50
  224. package/core/dev/jev-eval/context.mjs +0 -183
  225. package/core/dev/jev-eval/corpus.mjs +0 -186
  226. package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
  227. package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
  228. package/core/dev/jev-eval/metrics.mjs +0 -67
  229. package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
  230. package/core/dev/jev-eval/providers.mjs +0 -95
  231. package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
  232. package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
  233. package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
  234. package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
  235. package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
  236. package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
  237. package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
  238. package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
  239. package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
  240. package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
  241. package/core/dev/jev-eval/resilience.mjs +0 -71
  242. package/core/dev/jev-eval/review.mjs +0 -78
  243. package/core/dev/jev-eval/schema.mjs +0 -87
  244. package/core/dev/jev-eval/test/context.test.mjs +0 -95
  245. package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
  246. package/core/dev/jev-eval/test/eval.test.mjs +0 -146
  247. package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
  248. package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
  249. package/core/dev/jev-eval/test/review.test.mjs +0 -61
  250. package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
  251. package/core/dev/pipeline/PROGRESS.md +0 -113
  252. package/core/dev/pipeline/PROGRESS_template.md +0 -860
  253. package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
  254. package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
  255. package/core/dev/pipeline/README.md +0 -210
  256. package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
  257. package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
  258. package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
  259. package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
  260. package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
  261. package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
  262. package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
  263. package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
  264. package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
  265. package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
  266. package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
  267. package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
  268. package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
  269. package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
  270. package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
  271. package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
  272. package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
  273. package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
  274. package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
  275. package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
  276. package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
  277. package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
  278. package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
  279. package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
  280. package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
  281. package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
  282. package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
  283. package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
  284. package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
  285. package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
  286. package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
  287. package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
  288. package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
  289. package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
  290. package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
  291. package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
  292. package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
  293. package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
  294. package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
  295. package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
  296. package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
  297. package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
  298. package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
  299. package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
  300. package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
  301. package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
  302. package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
  303. package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
  304. package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
  305. package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
  306. package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
  307. package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
  308. package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
  309. package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
  310. package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
  311. package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
  312. package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
  313. package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
  314. package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
  315. package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
  316. package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
  317. package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
  318. package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
  319. package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
  320. package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
  321. package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
  322. package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
  323. package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
  324. package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
  325. package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
  326. package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
  327. package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
  328. package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
  329. package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
  330. package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
  331. package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
  332. package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
  333. package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
  334. package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
  335. package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
  336. package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
  337. package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
  338. package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
  339. package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
  340. package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
  341. package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
  342. package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
  343. package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
  344. package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
  345. package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
  346. package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
  347. package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
  348. package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
  349. package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
  350. package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
  351. package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
  352. package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
  353. package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
  354. package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
  355. package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
  356. package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
  357. package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
  358. package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
  359. package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
  360. package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
  361. package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
  362. package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
  363. package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
  364. package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
  365. package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
  366. package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
  367. package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
  368. package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
  369. package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
  370. package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
  371. package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
  372. package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
  373. package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
  374. package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
  375. package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
  376. package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
  377. package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
  378. package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
  379. package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
  380. package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
  381. package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
  382. package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
  383. package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
  384. package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
  385. package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
  386. package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
  387. package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
  388. package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
  389. package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
  390. package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
  391. package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
  392. package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
  393. package/core/dev/pipeline/docs/overview.md +0 -406
  394. package/core/dev/pipeline/docs/task-management.md +0 -412
  395. package/core/dev/pipeline/docs/workflows.md +0 -32
  396. package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
  397. package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
  398. package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
  399. package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
  400. package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
  401. package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
  402. package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
  403. package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
  404. package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
  405. package/core/dev/scripts/README.md +0 -142
  406. package/core/dev/scripts/RUN_ONCE.bat +0 -40
  407. package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
  408. package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
  409. package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
  410. package/core/dev/scripts/init_git.ps1 +0 -396
  411. package/core/dev/scripts/init_git.sh +0 -337
  412. package/core/dev/scripts/init_project.ps1 +0 -851
  413. package/core/dev/scripts/init_project.sh +0 -477
  414. package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
  415. package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
  416. package/core/dev/scripts/run_once.sh +0 -47
  417. package/core/dev/scripts/setup_rag.ps1 +0 -304
  418. package/core/dev/scripts/setup_rag.sh +0 -230
  419. package/core/dev/scripts/start_dev_agent.sh +0 -137
  420. package/core/dev/scripts/start_multi_agent.sh +0 -41
  421. package/core/dev/scripts/sync_task_queue.ps1 +0 -505
  422. package/core/dev/scripts/sync_task_queue.sh +0 -392
  423. package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
  424. package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
  425. package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
  426. package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
  427. package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
  428. package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
  429. package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
  430. package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
  431. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-empty-prompt-no-first-turn.md +0 -77
  432. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
  433. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
  434. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
  435. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
  436. package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
  437. package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
  438. package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
  439. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
  440. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
  441. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
  442. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
  443. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
  444. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
  445. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
  446. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
  447. package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
  448. package/core/dev/specs/agent-connect/history/README.md +0 -47
  449. package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
  450. package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
  451. package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
  452. package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
  453. package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
  454. package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
  455. package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
  456. package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
  457. package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
  458. package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
  459. package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
  460. package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
  461. package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
  462. package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
  463. package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
  464. package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
  465. package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
  466. package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
  467. package/core/dev/spikes/A4-cypher-varlen.md +0 -176
  468. package/core/dev/spikes/bloat-rounds.sh +0 -25
  469. package/core/dev/spikes/mods/clean-claude.js +0 -9
  470. package/core/dev/spikes/mods/drive-probe.js +0 -29
  471. package/core/dev/spikes/mods/e2e-peer.js +0 -71
  472. package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
  473. package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
  474. package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
  475. package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
  476. package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
  477. package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
  478. package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
  479. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
  480. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
  481. package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
@@ -1,361 +0,0 @@
1
- [WORKTREE SUBAGENT MODE]
2
- 你已被 Ansuz 透過 Agent tool 的 worktree isolation 指派任務。規則:
3
- 1. 開始前先輸出一行摘要:「📋 {TASK_ID}: {你準備做什麼}」(一句話,不超過 30 字)。然後再動手。
4
- 2. 直接執行,不要提問。需求已經確認過了。
5
- 3. CLAUDE.md 已啟用 — 遵循其規則(此為互動式 Claude Code 環境)。
6
- 4. 完成後輸出結構化結果。
7
- 5. 遇到無法執行的問題,輸出錯誤描述後結束。
8
- 6. **Git 操作被允許且必要** — 你在隔離的 worktree 中執行,commits 落在 task branch,不影響用戶 branch:
9
- - **COMMIT FIRST(順序不可調換)**:改完程式碼就**立刻** `git add -A && git commit --no-verify -m "[{TASK_ID}] task completed"`,**不要等驗證通過再 commit**。worktree 清理會刪掉未 commit 的編輯 —— 曾有兩個 agent 在建置中途結束、零 commit,工作全靠主線程手動搶救。寧可 commit 三次也不要一次都沒有。
10
- - 禁止 git push 到遠端。不可切換 branch。
11
- 12. **⚠️ 你送出訊息就等於結束本次執行。** 你的最終訊息**就是**回傳值 —— 沒有「稍後回來接手」這回事。不要規劃「先讓出控制權、等背景工作完成再繼續」,那會直接結束你的執行並留下無人收拾的背景行程。
12
- 13. **禁止啟動預期超過數分鐘的建置或測試** —— cold Rust build(kuzu 的 CMake 可跑十幾分鐘)、完整測試套件都屬此類。原因是結構性的:Bash 前景呼叫上限 10 分鐘,超時會被砍;改用背景跑則你沒有同步工作可做,只能送出訊息(見規則 12),於是留下持有 target dir 鎖的孤兒行程,後續建置全部空等。
13
- - **正確做法**:改完程式碼 → commit(規則 6)→ **直接回報結束**。在報告中寫明「未執行建置驗證」。
14
- - **Rust 建置驗證一律由主線程(Ansuz)負責** —— 主線程有熱快取、能跨 turn 輪詢、能診斷並清理孤兒行程。這是分工,不是你偷懶。
15
- - 這**不代表**你不必自我檢查。讀周邊程式碼、確認語法與型別、小範圍 grep 比對既有實作,這些輕量檢查仍然必須做。被禁止的只有「耗時數分鐘以上的建置與完整測試套件」。
16
- 14. **禁止用 `sleep` 迴圈輪詢背景工作。** 這是規則 13 的同一個問題換一種寫法:你排下的 `sleep` 是獨立的 OS 行程,**你結束後它們不會跟著死**。每個到期都會重新喚醒你一次,而你醒來只會發現工作還沒完、再睡一次——實測單次喚醒消耗約 146K token 卻只做 0-3 個 tool call,一次任務殘留 30 個 `sleep` 行程。
17
- - 不要寫 `while ...; do sleep N; done`、不要 `sleep 300 && check`、不要用背景 job 搭配輪詢來等待建置或測試。
18
- - 需要等待就代表這件事不該由你做(見規則 13)。**commit 後直接回報結束**,把工作交給主線程。
19
- 7. **你只負責下方 ## Task 指定的那一個任務。** 不要讀取任務目錄去找其他任務、不要認領其他任務。
20
- 8. 嚴禁直接讀取任務目錄(.collaboration/tasks/ 或 .kenaz/tasks/)。必須透過 task-api.js 操作任務。
21
- 9. 只能操作你自己被指派的任務(見 ## Task 的 Task ID)。不要標記其他任務為完成。
22
- 10. **禁止在 worktree 中執行 task-api.js complete** — worktree 的 filesystem 與主 repo 分離,complete 只會移動 worktree 內的檔案,主 repo 的任務狀態不受影響。任務完成由主 thread(Ansuz)在 merge + 驗證後處理。
23
- 11. **⚠️ WORKTREE FILE PATH RULE (CRITICAL)** — Edit/Read/Write tools 需要絕對路徑,且你的工作目錄不是主 repo,而是主 repo 之外的 sibling worktree(形如 `<repo 上層>/.kenaz-worktrees/<repoName>/wt-xxx/`,TASK_1777)。
24
- - **第一步**:執行 `pwd` 取得你的 worktree 絕對路徑。
25
- - **所有 Edit/Read/Write 操作**:用該 worktree 絕對路徑作為前綴(不是 CLAUDE.md 中的 project root)。
26
- - 例:若 pwd 回傳 `/c/Users/user/Documents/GitHub/.kenaz-worktrees/KenazAI/wt-abc-123/`,則編輯 `dashboard/src/app/page.tsx` 時用 `C:/Users/user/Documents/GitHub/.kenaz-worktrees/KenazAI/wt-abc-123/dashboard/src/app/page.tsx`。
27
- - **絕對禁止**用主 repo 樹內的路徑做 Edit/Write — harness 的 worktree isolation guard 會 deny(任何 shared-checkout 路徑一律拒絕),且那指向用戶的主工作樹,破壞隔離。
28
-
29
- ## Role
30
- 你是執行者。理解需求後直接動手,交付結果。
31
- Priority: 產出可用的變更,而非完美的分析。
32
-
33
- ## Formation Context
34
- Task: TASK_1818 — post-complete 把使用者的 dispatch 設定當成 daemon 暫態狀態還原掉:dashboard-models.json 被列入 daemon-manifest state_files,每次派工後 git checkout HEAD 覆蓋使用者選的模型
35
- Branch: main
36
- Scope: .kenaz/specialist/daemon-manifest.yaml, .formation/tools/post-complete/git-merge.js
37
- Principles: 完美達成>一切|禁止盲寫|露出問題|結構>估計
38
-
39
- ## Code Minimalism — 最省決策階梯 (YAGNI)
40
- 寫任何代碼前,停在第一個成立的階:
41
- 1. 這需要存在嗎?不需要 → 跳過(不臆測未來需求)
42
- 2. stdlib / 語言內建有嗎?→ 用它
43
- 3. 平台 / 框架原生功能?→ 用它,別自己造
44
- 4. 專案已裝依賴有嗎?→ 重用,別加新依賴
45
- 5. 一行能解嗎?→ 一行
46
- 6. 否則:最小可行實作
47
- 規則:不為單一實作建抽象介面;刪除優於新增;最短 diff。
48
- 刻意簡化用 `// thrift:` 標記上限與升級路徑(例:`// thrift: 同步即可,QPS>100 再改 async`)。
49
- 不可簡化掉(lazy ≠ negligent):input validation、error handling、security、accessibility、用戶明確要求的功能。
50
-
51
- ## File Budget & SRP (ARCH-001)
52
- 單檔行數:warn=2000 / hard=4000。接近 warn 就停筆,優先 extraction 而非累加。
53
- 拆分模式:module / hooks/ / components/ / types.ts(依 CODE-STR-002)。
54
- verify 步驟跑:`node dev/scripts/check-file-size.js --staged` — 有 BLOCK 先拆再提交。
55
-
56
- ## Known Failures (避免重蹈覆轍)
57
-
58
- - 🟠 **REVERT — TASK_1427 health regression (delta: -12.9)** — Task TASK_1427 was reverted by Heimdall guardian health check.
59
- - 🟠 **REVERT — TASK_1413 health regression (delta: -13.0)** — Task TASK_1413 was reverted by Heimdall guardian health check.
60
- - 🟠 **REVERT — TASK_904 health regression (delta: -5.9)** — Task TASK_904 was reverted by Heimdall guardian health check.
61
-
62
- ## Project Memory (歷史經驗)
63
-
64
- - ℹ️ [operational_lesson] **Prediction Surprise Signal: Post-Complete Scope Leak Detection** (importance: 4)
65
- - ✅ [pattern] **[FIX-INFRA] Handoff trigger enforcement — PostToolUse hook on dispatch + phase-gate exit nudge (L2.B + L4)** (importance: 3)
66
- - ✅ [pattern] **[FIX-INFRA] Rust MCP server piggyback consumer for .dispatch-notifications.json** (importance: 3)
67
- - ✅ [pattern] **[FIX-INFRA] post-complete — direct-commit fast-path on user branch** (importance: 3)
68
- - ✅ [pattern] **[FIX-INFRA] post-complete ansuz_inbox idempotency + null-null dup guard** (importance: 3)
69
-
70
-
71
- ## Search Tool Selection (SYN-002)
72
- 搜尋前先判斷:精確字串(函數名、error message)→ Grep。概念探索(「有沒有 X 相關的」「怎麼運作」)→ synapse_search。
73
- 判斷標準:如果你需要用 `|` 猜多個可能的關鍵字,那就是語義搜尋 → 用 synapse_search。
74
- 非英文查詢先翻譯成英文再搜尋。
75
-
76
-
77
- ## Cross-Project Context (from Cortex)
78
- Query: "daemon-manifest git-merge post complete dispatch daemon" — 3 runes, 1 sigils.
79
-
80
- ### Runes (cross-project knowledge)
81
- - **decision** [Kenaz] `unknown`: Hippocampus episode integration uses synchronous spawnSync subprocess (same pattern as measureHealthScoreSync) to call hippocampus_episode_start at function entry and hippocampus_episode_close before return. Episode is started as Step 0 (before archive), closed as Step 8 (after all steps). Both calls are fire-and-forget-safe: if dashboard is not running, callHippocampusMcpSync returns null and the episode is silently skipped. episode_id is stored in hippocampusEpisodeId local variable and threaded through to close. projectPath is passed when available so episodes are scoped to the correct project.
82
- - **decision** [Kenaz] `unknown`: Hook install is idempotent (returns early if HOOK_MARKER already present) and non-destructive (backs up foreign hooks to post-commit.bak before overwriting). Remove also restores backup if present. HOOK_MARKER='# kenaz-heimdall-hook'. Tauri commands install_code_watch_hook/remove_code_watch_hook/get_code_watch_hook_status are declared here but must be registered in lib.rs inside generate_handler! — they were NOT registered as of TASK_585.
83
- - **decision** [Kenaz] `unknown`: HOOK_MARKER constant ("# kenaz-heimdall-hook") is embedded in every installed hook. It is the ONLY mechanism to distinguish our hooks from pre-existing foreign hooks. If the marker is absent, remove_hook refuses to delete — this protects user-owned hooks. Foreign hooks are backed up to post-commit.bak before overwrite. Tauri commands (install_code_watch_hook, remove_code_watch_hook, get_code_watch_hook_status) are defined here but NOT yet registered in lib.rs (out of scope for TASK_585). REST equivalents at /api/code_watch/hook/* are the primary UI interface.
84
-
85
- ### Sigils (cross-project concepts)
86
- - **Autonomous Improvement Loop** [Kenaz]: Closed-loop autonomous codebase improvement system with 6 components: (1) loop.js controller (main + helpers) orchestrates iterations — reads .kenaz/loop.json for mode (manual/auto), enforces max_iterations and time_budget_hours guards, coordinates all components; (2) Huginn hypothesis generator (spawnHuginn) writes structured findings to .kenaz/huginn-findings.json; (3) Ansuz lifecycle delegate (spawnAnsuz via buildAnsuzPrompt) creates tasks, audits, dispatches, and self-repairs; (4) Heimdall measurement (triggerGuardianHealthCheck + save_health_snapshot) emits KEEP/REVERT verdict; (5) Wishing Well human input channel (wishes_router + frontend API); (6) Dispatch Lock Guard (isProcessAlive + launch lock section in headless.js) — per-project atomic lock file with PID liveness check prevents parallel dispatch on same working directory. Three production failure modes fixed (2026-03-23): stale locks (PID check), premature stop (countRemainingHighPriorityTasks), duplicate dispatch (prompt-level anti-duplicate in buildAnsuzPrompt). Heartbeat system (added post 2026-03-23): loop.js writes heartbeat every 10s to .kenaz/loop-heartbeat.json via startHeartbeat()/stopHeartbeat()/writeHeartbeat(); heartbeat path passed to Huginn and Ansuz sub-processes via --loop-heartbeat=HEARTBEAT_PATH flag for child process lifecycle tracking; heartbeatTimer uses .unref() so it does not prevent Node.js exit. Loop config in .kenaz/loop.json, logs in .kenaz/logs/loop/ and .kenaz/loop-log.jsonl.
87
-
88
- ## Behavior
89
- - 先讀再改,理解現有結構後才動手
90
- - 遵循 codebase 現有風格,不引入新慣例
91
- - 只改必要的部分,不順便重構
92
- - 發現超出範圍的問題,在摘要中回報,不擅自處理
93
- - 如有測試,執行確認不破壞現有功能
94
-
95
- ## Task
96
- **Task ID**: TASK_1818
97
- **Title**: post-complete 把使用者的 dispatch 設定當成 daemon 暫態狀態還原掉:dashboard-models.json 被列入 daemon-manifest state_files,每次派工後 git checkout HEAD 覆蓋使用者選的模型
98
- **Task File**: C:\Users\user\Documents\GitHub\KenazAI\.kenaz\tasks\active\TASK_1818_post_complete_把使用者的_dispatch_設定當成_daemon_xyz951610.yaml
99
- **Description**: 來源:外部 bug 回報 formation-dispatch-issues-20260726.md 的問題 6(子專案 Ashfall,另一台機器)。回報者已重現,本地已由主線程獨立定位到確切根因 —— 且根因與回報者的推論不同,其建議修法會造成新的問題。
100
-
101
- 回報者觀察(可信,證據充分):
102
- 派工前 .kenaz/dashboard-models.json 為 dispatchFamily=bifrost / dispatchAdapter=openai,派工確實以該設定送出(回傳 adapter=openai, adapterSource=dashboard-models),但 post-complete merge 之後該檔變回 dispatchModel=claude-fable-5[1m] / dispatchFamily=claude / dispatchAdapter=null,且 updatedAt 回到舊值 2026-07-18T19:15:41.688Z。是「還原舊副本」而非重新寫入。被還原的共三個檔案,全在 .kenaz/ 底下:dashboard-models.json、specialist/turn_context_state.json、transcripts/index.json;Assets/ 底下五個他人未提交的修改全部存活。
103
-
104
- 回報者的推論(不正確):merge 流程對工作樹做破壞性操作,PRESERVE_WORKING_TREE 白名單只有一個條目所以其餘 .kenaz/ 檔案兩邊都不覆蓋而遺失。建議修法是「保留 .kenaz/ 下所有未提交修改」。
105
-
106
- 實際根因(主線程讀碼定位):
107
- .kenaz/specialist/daemon-manifest.yaml 的 state_files 區段明確列出 .kenaz/dashboard-models.json(該檔第 46 行附近,與 transcripts/index.json、specialist/turn_context_state.json 相鄰)。git-merge.js 的 revertDaemonManagedFiles(約 605-619 行)對清單中每個路徑執行 git checkout HEAD -- "<path>",並印出「Reverted N daemon-managed file(s) to HEAD」。
108
-
109
- 也就是說這不是覆蓋不到,是**刻意還原**。三個被還原的檔案剛好就是 manifest 裡的三個;Assets/ 存活是因為不在 manifest 裡。觀察與機制完全吻合。
110
-
111
- 真正的缺陷是分類錯誤:dashboard-models.json 不是 daemon 寫的暫態狀態,它是使用者透過 dashboard UI 選擇模型時編輯的設定檔,經 dashboard_settings.rs 的 post_models 寫入。把使用者設定檔放進「派工後一律還原成 HEAD」的清單,等於每次派工都靜默丟棄使用者的選擇。
112
-
113
- 為什麼回報者的建議修法不能採用:
114
- daemon-manifest 的存在有明確理由,檔頭寫著「These must be excluded from task commits and reverted before git merge operations to prevent conflicts」,清單內註解記載 2026-05-01 因觀察到 daemon-drift 而建、TASK_1416 因 handoff snapshot 造成 unmerged_index 而擴充。若改成「保留 .kenaz/ 下所有未提交修改」,等於停用整個 daemon-drift 防護,會讓 TASK_1416 修掉的 unmerged_index 回歸。
115
-
116
- 正確的方向在 manifest 檔頭自己的措辭裡:它同時承擔兩件可分離的職責 —— (a) 排除在任務提交之外,(b) merge 前還原成 HEAD。dashboard-models.json 需要 (a),不需要 (b)。目前的資料結構把兩者綁死成同一份清單,這才是要修的地方。
117
-
118
- 嚴重性理由(回報者的三點成立):
119
- 1. 還原後的值指向 claude-fable-5,回報者說那正是先前秒死於額度耗盡的模型。使用者以為自己設了 GPT,下次派工卻打到一個已知會失敗的模型,且完全無提示。
120
- 2. 這不是「設定沒存檔」,是使用者的未提交修改被無聲丟棄。
121
- 3. 只在 session 開頭讀一次設定無法防禦。
122
-
123
- 附帶事實,供評估但不必然在本卡處理:回報者稱 post-complete 全數混淆、無法逐行閱讀。在 KenazAI 原始碼倉庫中為假 —— git-merge.js 是完全可讀且註解詳盡的原始碼。回報者的環境是 D:\...\BLOCK ACTION\kenaz-core 且自述「非 git repo」,讀的是打包出貨的產物。一個會對使用者工作樹執行 git checkout 的元件以不可讀形式出貨,使得這類缺陷只能靠事後比對快照發現,這是獨立議題。
124
- **Priority**: P1
125
- **Complexity**: medium
126
- **Role**: developer
127
-
128
- **Scope Paths** (你只能操作這些路徑):
129
- - .kenaz/specialist/daemon-manifest.yaml
130
- - .formation/tools/post-complete/git-merge.js
131
-
132
- **Requirements**:
133
- - 讓「排除在任務提交之外」與「merge 前還原成 HEAD」成為兩個可分離的分類,而非共用同一份 state_files 清單
134
- - dashboard-models.json 改成「不進任務提交、但也不被還原」;使用者在 dashboard 選的模型必須存活過一次完整的 post-complete
135
- - 檢查 state_files 清單中是否還有其他使用者可編輯的設定檔被誤分類,逐項判斷並在筆記中列出判斷結果(不要只改 dashboard-models.json 就收工)
136
- - revertDaemonManagedFiles 還原任何檔案時必須留下可追溯的紀錄,至少列出被還原的路徑而非只印數量;目前只印 Reverted N file(s),使用者無法從日誌得知自己的哪一個檔被丟
137
- - 不得採用回報者建議的「保留 .kenaz/ 下所有未提交修改」—— 那會停用 daemon-drift 防護並讓 TASK_1416 修掉的 unmerged_index 回歸
138
- - 保留 PRESERVE_WORKING_TREE 對 ansuz_session_handoff.json 的現有行為(TASK_1627 live-doc 契約),不要在本卡重構它
139
-
140
- **Acceptance Criteria**:
141
- - 實測:手動把 dashboard-models.json 改成一個與 HEAD 不同的值,跑完一次完整的 post-complete(含 merge),該值仍存活且 updatedAt 未回退
142
- - 實測:daemon 寫的真正暫態檔(例如 turn_context_state.json)仍然會被正確還原,防護未因本卡而失效
143
- - dashboard-models.json 仍不會被掃進任務 commit(以一次實跑的 commit 檔案清單為證)
144
- - 還原動作的日誌列出具體路徑,而非只有數量
145
- - 筆記列出 state_files 清單中每一項是否為使用者可編輯設定檔的逐項判斷
146
- - CARGO_TARGET_DIR=C:/t/mainverify node dev/scripts/run-rust-tests.js 全綠(BARE 呼叫,讀 N passed 數字,基線 1356);若本卡未動 Rust 則註明不適用
147
- - 現有 post-complete 相關測試(task1536.test.js、task1543.test.js、worktree-rescue.test.js)仍綠
148
-
149
- **Technical Notes**:
150
- - 根因精確位置:.kenaz/specialist/daemon-manifest.yaml state_files 區段列有 .kenaz/dashboard-models.json(約第 46 行,與 .kenaz/transcripts/index.json 相鄰);git-merge.js 約 605-619 行 revertDaemonManagedFiles 對每個路徑執行 git checkout HEAD -- "<path>",呼叮點在 619 行 revertDaemonManagedFiles(projectRoot, '0.45')。
151
- - manifest 檔頭明寫「No code change required — post-complete.js reads this manifest at runtime」。若新增分類需要改 code,該句註解也要一併更新,否則它本身變成下一個講錯話的文件。
152
- - PRESERVE_WORKING_TREE(git-merge.js 約 29-31 行)的註解明訂「Do NOT generalize to other daemon files here — use daemon-manifest.yaml for non-live-doc daemon exclusions」。本卡的修法應該落在 manifest 側,而不是把 dashboard-models.json 塞進 PRESERVE_WORKING_TREE —— 後者正是註解明文禁止的做法。
153
- - git checkout HEAD -- <path> 靜默吞掉未提交修改是本 repo 反覆出現的陷阱(本 session 合併任務分支時也遇到 scoped checkout 會自動暫存的相關行為)。修改這區時先確認你理解該指令對工作樹與 index 兩者的影響。
154
- - 本卡改的是會對使用者工作樹執行破壞性操作的程式碼。驗證必須在可拋棄的環境或先做完整快照,不要拿使用者的主工作樹做第一次實驗。
155
-
156
- ## Workflow
157
- ### 認知 recall
158
- Note: 跳過此步 = 可能重複踩坑。Synapse 是預設搜尋工具,Grep 只用於精確字串匹配。
159
- - 用 ToolSearch 確認 synapse MCP tools 可用
160
- - 對 scope_paths 涉及的 symbol 呼叫 synapse_recall,了解已知的 risk/decision/fix
161
- - 如有相關 rune,在執行時避免踩已知地雷或破壞已記錄的設計意圖
162
-
163
- ### 執行任務
164
- - 根據 scope_paths 讀取相關檔案
165
- - 根據 requirements 逐一實作
166
- - 根據 acceptance_criteria 驗證成果
167
-
168
- ### 提交變更
169
- Command: git add -A && (git commit --no-verify -m "[TASK_1818] task completed" || true)
170
- Note: worktree 內顯式提交確保 post-complete 只需 merge 不需 recovery commit。
171
- nothing to commit 時靜默跳過,不報錯。
172
- ⚠️ 若前一步有 Edit 但 git add -A 找不到變更,代表路徑用錯了(用了主 repo 路徑)。
173
- 修復方式:先 echo $PWD 確認 worktree root,再用 worktree 絕對路徑重新 Edit。
174
-
175
-
176
- ### 認知 inscribe
177
- Note: 你的發現會在對話結束時消失。Inscribe 讓未來 agent 不必重新探索。
178
- - 回顧工作中是否發現 non-obvious 的知識(bug 根因、隱藏約束、設計決策理由)
179
- - 如有,用 synapse_inscribe 記錄(confidence >= 0.6,英文撰寫)
180
- - 如發現 3+ symbol 構成未命名的概念,考慮用 synapse_forge 建立 Sigil
181
- - inscribe 後,用 synapse_rune_conflicts({ scope: '<你改的檔案路徑>' }) 檢查是否與已有 rune 矛盾
182
-
183
- ### 完成任務
184
- Note: ⚠️ Worktree mode — 禁止執行 task-api.js complete。主 thread 在 merge + 驗證後處理。
185
-
186
- ### On Blocked
187
- Command: node .collaboration/core/task-api.js move TASK_1818 blocked
188
- Note: 遇到無法解決的阻礙時,移至 blocked/ 並在摘要中說明原因
189
-
190
- ## Expected Output
191
- Primary: 程式碼變更或檔案修改
192
- Secondary: 完成摘要(做了什麼、改了哪些檔案、需要注意的事)
193
-
194
- ## Progress Note (mandatory — write before finishing)
195
-
196
- When you finish your work, **before your final response**, write a structured progress note to the chart.
197
-
198
- **Chart path (for reference only — do NOT use the Write tool on this path)**: `C:/Users/user/Documents/GitHub/KenazAI/.specialist/sessions/chart_TASK_1818.json`
199
-
200
- **Steps** (avoids cross-workspace permission prompts — works for same-repo and cross-project workers):
201
- 1. Write the note JSON to a **project-local** file inside your own workspace (safe — no cross-boundary write):
202
- File: `.kenaz/specialist/progress_note_TASK_1818.json`
203
- Use the Write tool to create that file (it is inside your cwd, so no permission prompt occurs).
204
- Ensure `.kenaz/specialist/` directory exists first (create it if absent).
205
-
206
- 2. Run the phase-gate note subcommand via **Bash** to merge it into the core chart:
207
- ```bash
208
- node "C:/Users/user/Documents/GitHub/KenazAI/.specialist/tools/phase-gate.js" note --task=TASK_1818 --from-file=".kenaz/specialist/progress_note_TASK_1818.json"
209
- ```
210
- *(The note file is in your local workspace — no cross-workspace Write; phase-gate note merges it into the core chart atomically)*
211
-
212
- **Progress Note Schema** (ONE entry to append to `progress_notes`):
213
-
214
- ```json
215
- {
216
- "task_id": "TASK_1818",
217
- "timestamp": "<ISO-8601>",
218
- "changes": { "files_modified": ["<paths>"], "files_created": [], "files_deleted": [], "total_lines": 0 },
219
- "acceptance_criteria": [
220
- { "criterion": "實測:手動把 dashboard-models.json 改成一個與 HEAD 不同的值,跑完一次完整的 post-complete(含 merge),該值仍存活且 updatedAt 未回退", "status": "pass|fail|partial", "evidence": "<brief>" },
221
- { "criterion": "實測:daemon 寫的真正暫態檔(例如 turn_context_state.json)仍然會被正確還原,防護未因本卡而失效", "status": "pass|fail|partial", "evidence": "<brief>" },
222
- { "criterion": "dashboard-models.json 仍不會被掃進任務 commit(以一次實跑的 commit 檔案清單為證)", "status": "pass|fail|partial", "evidence": "<brief>" },
223
- { "criterion": "還原動作的日誌列出具體路徑,而非只有數量", "status": "pass|fail|partial", "evidence": "<brief>" },
224
- { "criterion": "筆記列出 state_files 清單中每一項是否為使用者可編輯設定檔的逐項判斷", "status": "pass|fail|partial", "evidence": "<brief>" },
225
- { "criterion": "CARGO_TARGET_DIR=C:/t/mainverify node dev/scripts/run-rust-tests.js 全綠(BARE 呼叫,讀 N passed 數字,基線 1356);若本卡未動 Rust 則註明不適用", "status": "pass|fail|partial", "evidence": "<brief>" },
226
- { "criterion": "現有 post-complete 相關測試(task1536.test.js、task1543.test.js、worktree-rescue.test.js)仍綠", "status": "pass|fail|partial", "evidence": "<brief>" },
227
- ],
228
- "findings": ["<non-obvious discoveries, traps, design decisions>"],
229
- "deviations": ["<anything done differently from the plan; REQUIRED to document a skipped inscribe>"],
230
- "cognitive_output": { "runes": ["<rune_ids -- [] if none>"], "sigils": ["<sigil_ids -- [] if none>"] }
231
- }
232
- ```
233
-
234
- **Rules**:
235
- - Evaluate EVERY Acceptance Criterion; use exact criterion text from the task.
236
- - `changes`: list ALL files touched (created/modified/deleted).
237
- - `findings`: non-obvious constraints, design traps, discoveries -- [] if none.
238
- - `cognitive_output.runes/sigils` = IDs from synapse calls ([] if none); if you skip inscribe, say why in `deviations` (verify-identity reads it as the skip explanation).
239
- - If the chart file does not exist, the note subcommand creates it automatically -- NEVER use the Write tool on the chart path directly.
240
-
241
-
242
- ## Before You Start — Cognitive Recall (mandatory verdict)
243
- Before writing any code, you MUST perform a cognitive recall (synapse_recall or synapse_pulse) on the symbols you are about to modify.
244
-
245
- Output exactly one of these lines before you start coding:
246
-
247
- ```
248
- 📡 Cognitive Recall: {one-line summary of what pulse/recall revealed}
249
- ```
250
-
251
- Or, if you consciously decide to skip:
252
-
253
- ```
254
- 📡 Cognitive Recall: SKIP — {reason why recall is unnecessary}
255
- ```
256
-
257
- You may SKIP, but you must say why. Silence is not allowed.
258
-
259
- ## Before You Finish — Don't Let Your Discovery Die
260
- You just spent real effort understanding this code. When this conversation ends, everything you learned disappears — unless you write it down.
261
-
262
- Ask yourself:
263
- - Did you trace a bug to a root cause that wasn't obvious from the code? → The next agent will waste hours rediscovering it. **inscribe type=fix**
264
- - Did you find a function that behaves differently than its name suggests, or has a hidden constraint? → That's a trap waiting to spring. **inscribe type=risk**
265
- - Did you choose approach A over B for a reason that isn't obvious? → Without your reasoning, someone will undo your work. **inscribe type=decision**
266
- - Did you realize that 3+ symbols are actually part of the same concept? → Give it a name. **synapse_forge** a Sigil.
267
-
268
- If none of these apply, skip. Don't write for the sake of writing.
269
-
270
- When you do write:
271
- - **English only** — code is English, runes should be too. This is mandatory: all memory write fields (synapse_inscribe content/context, hippocampus episode scope/lesson/summary) MUST be in English. SQLite FTS5 tokenizer does not handle CJK — Chinese content will return 0 results on recall. (Rule: MEM-LANG-001)
272
- - confidence >= 0.6 — if you're guessing, don't inscribe.
273
- - One good rune > three mediocre ones.
274
- - ⚠️ **Always pass `projectPath` to all Synapse tool calls** — use the projectPath determined in Phase 0. Multi-session collisions occur when concurrent sessions omit projectPath and fall back to the global default project.
275
-
276
- Every rune you inscribe will be recalled by the next agent who touches the same symbol. Your insight becomes their head start.
277
-
278
- ## Cognitive Checkpoint (mandatory — include in your final output)
279
- At the very end of your response, output this block exactly:
280
-
281
- ```
282
- ## Cognitive Checkpoint
283
- Pre-code: RECALLED — {what you found} | or SKIP — {reason}
284
- Post-code: INSCRIBED — {rune_id} | or SKIP — {reason}
285
- ```
286
-
287
- Both verdicts are required. You may SKIP either, but you must state why.
288
-
289
-
290
- ## Cortex Context (Related Files Preview)
291
- The following files are in your scope. Review them before making changes.
292
-
293
- ### .kenaz/specialist/daemon-manifest.yaml (79 lines)
294
- ```
295
- # Daemon-Managed Paths Manifest
296
- # Files and directories written by background daemons (Ansuz, Muninn, Thalamus, etc.)
297
- # during active sessions. These must be excluded from task commits and reverted
298
- # before git merge operations to prevent conflicts.
299
- #
300
- # To add a new daemon-managed path: add it to the appropriate list below.
301
- # No code change required — post-complete.js reads this manifest at runtime.
302
- #
303
- # See: structural audit SECTION D.2 in post-complete.js
304
-
305
- # Files written by specialist daemons during active sessions
306
- state_files:
307
- - .kenaz/specialist/turn_context_state.json
308
- - .kenaz/specialist/ansuz_rules.yaml
309
- - .kenaz/specialist/ansuz_session.json
310
- - .kenaz/specialist/ansuz_state.json
311
- - .kenaz/specialist/ansuz_inbox.json
312
- - .kenaz/specialist/ansuz_predictions.json
313
- - .kenaz/specialist/ansuz_skill_matrix.json
314
- - .kenaz/specialist/attention_buffer.json
315
- - .kenaz/specialist/cognitive_health.json
316
- - .kenaz/specialist/daemon_outbox.json
317
- - .kenaz/specialist/muninn_observations.json
318
- - .kenaz/specialist/ambient_signals.json
319
- - .kenaz/huginn-attention.json
320
- - .kenaz/specialist/ansuz_ritual_log.jsonl
321
- - .kenaz/specialist/ritual_state.json
322
- - .kenaz/specialist/turn_feedback.jsonl
323
- - .kenaz/specialist/ansuz_motivational_state.json
324
- - .kenaz/specialist/ansuz_self_model.json
325
- ... (truncated)
326
- ```
327
-
328
- ### .formation/tools/post-complete/git-merge.js (2329 lines)
329
- ```
330
- /**
331
- * GIT_MERGE — extracted from post-complete.js (D.4 refactor)
332
- *
333
- * Git branch management flow: task branch creation, commit, merge to user
334
- * branch. Supports both direct mode (gitBranchAndMerge) and worktree-isolated
335
- * mode (_gitMergeFromWorktree) with rebase-under-lock, conflict detection,
336
- * salvage branch preservation, and daemon-managed path handling.
337
- */
338
-
339
- const path = require('path');
340
- const fs = require('fs');
341
- const { execSync, spawnSync } = require('child_process');
342
- const { ROOT, COLLABORATION_API } = require('../utils');
343
- const { verify: verifyAcceptance } = require('../verify-acceptance');
344
- // TASK_1530: salvageWorkingTreePaths extracted to a shared module so runner.js's
345
- // worktree-leak detector can reuse the exact same plumbing (no duplicate impl).
346
- // TASK_1785: readDispatchDirtySnapshot — pre-dispatch dirty snapshot so the rescue
347
- // scan never sweeps the user's PRE-EXISTING WIP into the worktree/merge.
348
- const { salvageWorkingTreePaths, readDispatchDirtySnapshot } = require('../git-salvage');
349
-
350
- // TASK_1627: Files that are daemon-managed (reverted by revertDaemonManagedFiles)
351
- // but are ALSO live-doc authored by the main thread (HANDOFF LIVE DOC mandate).
352
- // These must be saved before step-0.45 revert and restored after the merge flow
353
- // on ALL exit paths (try/finally). The revert keeps the merge window clean; the
354
- // restore ensures the next session boot inherits the most recent working-tree state,
355
- // not the last committed version. Do NOT generalize to other daemon files here —
356
- // use daemon-manifest.yaml for non-live-doc daemon exclusions. If a second live-doc
357
- // appears, extend this array; do NOT remove the comment explaining why.
358
- const PRESERVE_WORKING_TREE = [
359
- '.kenaz/specialist/ansuz_session_handoff.json', // live-doc: updated each session turn
360
- ... (truncated)
361
- ```