kenaz 0.3.22 → 0.3.24

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 (474) hide show
  1. package/core/.claude/hooks/_user-scope.js +1 -1
  2. package/core/.claude/hooks/core-resolve.js +1 -1
  3. package/core/.claude/hooks/worktree-create.js +11 -29
  4. package/core/.claude/hooks/worktree-remove.js +12 -38
  5. package/core/.collaboration/core/reconcile.js +16 -1
  6. package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
  7. package/core/.collaboration/core/task-api.js +37 -7
  8. package/core/.formation/bifrost/launch.js +1 -1
  9. package/core/.formation/tools/dispatch-detail/worktree-subagent-mode.md +6 -1
  10. package/core/.formation/tools/kenaz-stats.js +1 -1
  11. package/core/.formation/tools/post-complete/git-merge.js +1 -1
  12. package/core/.formation/tools/prompt.js +1 -1
  13. package/core/.formation/tools/utils.js +5 -5
  14. package/core/.formation/tools/worktree-reclaim.js +73 -2
  15. package/core/.formation/tools/worktree-reclaim.test.js +113 -0
  16. package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
  17. package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
  18. package/core/.rule/general/project-self-containment.yaml +2 -2
  19. package/core/.specialist/Amelia/README.md +1 -1
  20. package/core/.specialist/Amelia/rule.yaml +1 -1
  21. package/core/.specialist/Ansuz/RULES.md +6 -2
  22. package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
  23. package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
  24. package/core/.specialist/Ansuz/knowledge.yaml +1 -3
  25. package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
  26. package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
  27. package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
  28. package/core/.specialist/tools/failure-detector.js +4 -4
  29. package/core/.specialist/tools/handoff-doc.js +1 -1
  30. package/core/.specialist/tools/lessons.js +2 -2
  31. package/core/CLAUDE.md +5 -5
  32. package/core/KENAZ_CORE_VERSION +1 -1
  33. package/core/dashboard/scripts/install-kenaz-cli.js +56 -30
  34. package/core/dev/scripts/check-file-size.js +1 -1
  35. package/core/dev/scripts/ci-feedback.js +1 -1
  36. package/core/dev/scripts/gc-agent-worktrees.js +13 -12
  37. package/core/dev/scripts/kenaz-session.js +3 -3
  38. package/core/dev/scripts/peer-identity-e2e.js +6 -4
  39. package/core/dev/scripts/run-rust-tests.js +2 -2
  40. package/core/dev/scripts/skill-routing-replay.js +3 -3
  41. package/core/dev/scripts/task1961/selftest.js +2 -2
  42. package/core/dev/scripts/windows-hide-guard.test.js +112 -0
  43. package/core/plugins/kenaz/guidance.md +1 -0
  44. package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
  45. package/core/plugins/kenaz/hooks/hooks.json +9 -0
  46. package/core/plugins/kenaz/hooks/kenaz-hook.js +58 -4
  47. package/core/plugins/kenaz/hooks/worktree-guard.js +121 -0
  48. package/core/plugins/kenaz/hooks/worktree-guard.test.js +75 -0
  49. package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
  50. package/core/plugins/kenaz-peer/hooks/register.test.ts +14 -2
  51. package/core/plugins/kenaz-peer/hooks/register.ts +6 -1
  52. package/lib/cli.js +9 -5
  53. package/package.json +6 -6
  54. package/vendor/install-kenaz-cli.js +56 -30
  55. package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
  56. package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
  57. package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
  58. package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
  59. package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
  60. package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
  61. package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
  62. package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
  63. package/core/.kenaz/main-memory/README.md +0 -230
  64. package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
  65. package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
  66. package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
  67. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
  68. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
  69. package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
  70. package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
  71. package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
  72. package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
  73. package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
  74. package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
  75. package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
  76. package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
  77. package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
  78. package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
  79. package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
  80. package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
  81. package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
  82. package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
  83. package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
  84. package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
  85. package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
  86. package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
  87. package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
  88. package/core/.kenaz/main-memory/registry.json +0 -326
  89. package/core/.kenaz/main-memory/version.yaml +0 -58
  90. package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
  91. package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
  92. package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
  93. package/core/.kenaz/specialist/prompt_1775.txt +0 -317
  94. package/core/.kenaz/specialist/prompt_1776.txt +0 -326
  95. package/core/.kenaz/specialist/prompt_1791.txt +0 -320
  96. package/core/.kenaz/specialist/prompt_1792.txt +0 -320
  97. package/core/.kenaz/specialist/prompt_1795.txt +0 -281
  98. package/core/.kenaz/specialist/prompt_1813.txt +0 -332
  99. package/core/.kenaz/specialist/prompt_1814.txt +0 -401
  100. package/core/.kenaz/specialist/prompt_1815.txt +0 -394
  101. package/core/.kenaz/specialist/prompt_1816.txt +0 -437
  102. package/core/.kenaz/specialist/prompt_1818.txt +0 -361
  103. package/core/.kenaz/specialist/prompt_1819.txt +0 -421
  104. package/core/.kenaz/specialist/prompt_1821.txt +0 -345
  105. package/core/.kenaz/specialist/prompt_1822.txt +0 -313
  106. package/core/.kenaz/specialist/prompt_1824.txt +0 -348
  107. package/core/.kenaz/specialist/prompt_1826.txt +0 -388
  108. package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
  109. package/core/.kenaz/specialist/task1825_update.json +0 -43
  110. package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
  111. package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
  112. package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
  113. package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
  114. package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
  115. package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
  116. package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
  117. package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
  118. package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
  119. package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
  120. package/core/.specialist/ansuz_session_handoff.json +0 -96
  121. package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
  122. package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
  123. package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
  124. package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
  125. package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
  126. package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
  127. package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
  128. package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
  129. package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
  130. package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
  131. package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
  132. package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
  133. package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
  134. package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
  135. package/core/dev/MUNINN_RETIREMENT.md +0 -115
  136. package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
  137. package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
  138. package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
  139. package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
  140. package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
  141. package/core/dev/PRODUCT_SPEC.md +0 -317
  142. package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
  143. package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
  144. package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
  145. package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
  146. package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
  147. package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
  148. package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
  149. package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
  150. package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
  151. package/core/dev/ansuz-eval/README.md +0 -38
  152. package/core/dev/ansuz-eval/build-fixtures.js +0 -87
  153. package/core/dev/ansuz-eval/grade.js +0 -96
  154. package/core/dev/ansuz-eval/grader.test.js +0 -117
  155. package/core/dev/ansuz-eval/tasks.md +0 -32
  156. package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
  157. package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
  158. package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
  159. package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
  160. package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
  161. package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
  162. package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
  163. package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
  164. package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
  165. package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
  166. package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
  167. package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
  168. package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
  169. package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
  170. package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
  171. package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
  172. package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
  173. package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
  174. package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
  175. package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
  176. package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
  177. package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
  178. package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
  179. package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
  180. package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
  181. package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
  182. package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
  183. package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
  184. package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
  185. package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
  186. package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
  187. package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
  188. package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
  189. package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
  190. package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
  191. package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
  192. package/core/dev/design/PHASE4_DESIGN.md +0 -559
  193. package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
  194. package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
  195. package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
  196. package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
  197. package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
  198. package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
  199. package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
  200. package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
  201. package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
  202. package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
  203. package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
  204. package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
  205. package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
  206. package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
  207. package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
  208. package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
  209. package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
  210. package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
  211. package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
  212. package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
  213. package/core/dev/jev-eval/README.md +0 -101
  214. package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
  215. package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
  216. package/core/dev/jev-eval/cli.mjs +0 -50
  217. package/core/dev/jev-eval/context.mjs +0 -183
  218. package/core/dev/jev-eval/corpus.mjs +0 -186
  219. package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
  220. package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
  221. package/core/dev/jev-eval/metrics.mjs +0 -67
  222. package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
  223. package/core/dev/jev-eval/providers.mjs +0 -95
  224. package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
  225. package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
  226. package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
  227. package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
  228. package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
  229. package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
  230. package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
  231. package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
  232. package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
  233. package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
  234. package/core/dev/jev-eval/resilience.mjs +0 -71
  235. package/core/dev/jev-eval/review.mjs +0 -78
  236. package/core/dev/jev-eval/schema.mjs +0 -87
  237. package/core/dev/jev-eval/test/context.test.mjs +0 -95
  238. package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
  239. package/core/dev/jev-eval/test/eval.test.mjs +0 -146
  240. package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
  241. package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
  242. package/core/dev/jev-eval/test/review.test.mjs +0 -61
  243. package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
  244. package/core/dev/pipeline/PROGRESS.md +0 -113
  245. package/core/dev/pipeline/PROGRESS_template.md +0 -860
  246. package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
  247. package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
  248. package/core/dev/pipeline/README.md +0 -210
  249. package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
  250. package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
  251. package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
  252. package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
  253. package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
  254. package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
  255. package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
  256. package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
  257. package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
  258. package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
  259. package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
  260. package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
  261. package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
  262. package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
  263. package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
  264. package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
  265. package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
  266. package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
  267. package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
  268. package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
  269. package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
  270. package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
  271. package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
  272. package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
  273. package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
  274. package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
  275. package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
  276. package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
  277. package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
  278. package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
  279. package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
  280. package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
  281. package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
  282. package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
  283. package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
  284. package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
  285. package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
  286. package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
  287. package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
  288. package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
  289. package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
  290. package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
  291. package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
  292. package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
  293. package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
  294. package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
  295. package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
  296. package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
  297. package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
  298. package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
  299. package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
  300. package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
  301. package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
  302. package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
  303. package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
  304. package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
  305. package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
  306. package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
  307. package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
  308. package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
  309. package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
  310. package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
  311. package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
  312. package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
  313. package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
  314. package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
  315. package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
  316. package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
  317. package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
  318. package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
  319. package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
  320. package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
  321. package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
  322. package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
  323. package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
  324. package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
  325. package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
  326. package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
  327. package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
  328. package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
  329. package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
  330. package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
  331. package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
  332. package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
  333. package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
  334. package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
  335. package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
  336. package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
  337. package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
  338. package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
  339. package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
  340. package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
  341. package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
  342. package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
  343. package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
  344. package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
  345. package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
  346. package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
  347. package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
  348. package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
  349. package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
  350. package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
  351. package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
  352. package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
  353. package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
  354. package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
  355. package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
  356. package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
  357. package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
  358. package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
  359. package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
  360. package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
  361. package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
  362. package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
  363. package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
  364. package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
  365. package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
  366. package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
  367. package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
  368. package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
  369. package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
  370. package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
  371. package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
  372. package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
  373. package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
  374. package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
  375. package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
  376. package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
  377. package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
  378. package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
  379. package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
  380. package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
  381. package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
  382. package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
  383. package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
  384. package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
  385. package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
  386. package/core/dev/pipeline/docs/overview.md +0 -406
  387. package/core/dev/pipeline/docs/task-management.md +0 -412
  388. package/core/dev/pipeline/docs/workflows.md +0 -32
  389. package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
  390. package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
  391. package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
  392. package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
  393. package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
  394. package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
  395. package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
  396. package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
  397. package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
  398. package/core/dev/scripts/README.md +0 -142
  399. package/core/dev/scripts/RUN_ONCE.bat +0 -40
  400. package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
  401. package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
  402. package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
  403. package/core/dev/scripts/init_git.ps1 +0 -396
  404. package/core/dev/scripts/init_git.sh +0 -337
  405. package/core/dev/scripts/init_project.ps1 +0 -851
  406. package/core/dev/scripts/init_project.sh +0 -477
  407. package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
  408. package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
  409. package/core/dev/scripts/run_once.sh +0 -47
  410. package/core/dev/scripts/setup_rag.ps1 +0 -304
  411. package/core/dev/scripts/setup_rag.sh +0 -230
  412. package/core/dev/scripts/start_dev_agent.sh +0 -137
  413. package/core/dev/scripts/start_multi_agent.sh +0 -41
  414. package/core/dev/scripts/sync_task_queue.ps1 +0 -505
  415. package/core/dev/scripts/sync_task_queue.sh +0 -392
  416. package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
  417. package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
  418. package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
  419. package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
  420. package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
  421. package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
  422. package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
  423. package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
  424. 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
  425. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
  426. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
  427. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
  428. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
  429. package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
  430. package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
  431. package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
  432. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
  433. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
  434. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
  435. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
  436. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
  437. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
  438. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
  439. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
  440. package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
  441. package/core/dev/specs/agent-connect/history/README.md +0 -47
  442. package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
  443. package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
  444. package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
  445. package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
  446. package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
  447. package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
  448. package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
  449. package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
  450. package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
  451. package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
  452. package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
  453. package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
  454. package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
  455. package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
  456. package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
  457. package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
  458. package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
  459. package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
  460. package/core/dev/spikes/A4-cypher-varlen.md +0 -176
  461. package/core/dev/spikes/bloat-rounds.sh +0 -25
  462. package/core/dev/spikes/mods/clean-claude.js +0 -9
  463. package/core/dev/spikes/mods/drive-probe.js +0 -29
  464. package/core/dev/spikes/mods/e2e-peer.js +0 -71
  465. package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
  466. package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
  467. package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
  468. package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
  469. package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
  470. package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
  471. package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
  472. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
  473. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
  474. package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
@@ -1,401 +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_1814 — 「B/2」dispatchMode override 通道從未接上:dispatch.js 讀它,但 StoredModels 無此欄位、post_models 從不寫入、UI 無從設定
35
- Branch: main
36
- Scope: dashboard/src-tauri/src/infrastructure/http_server/routes/dashboard_settings.rs, dashboard/src/components/model-selection/ModelSelectionPanel.tsx, .specialist/Ansuz/elixir.yaml
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
- - 🟠 **Ansuz 跳過 Phase 9 cognitive checkpoint — 多任務並行時遺忘認知融合** — Ansuz 在 Phase 9 驗證通過後直接 complete + post-complete, 跳過 cognitive_checkpoint(rune/sigil 評估)。 三個任務全部未寫入任何 rune 或 sigil,直到用戶指出才補做。
59
- - 🟡 **FAIL-005: 背景 Agent 無寫入權限 🤖** — - **ID**: FAIL-005 - **分類**: agent-execution(Agent 執行失敗) - **嚴重程度**: Critical 🔴
60
- - 🟠 **並發 Agent worktree 共用路徑被提前清理 + 沉默誤判死亡 → 重複派工** — 同 session 並發兩個 Agent tool worktree isolation sub-agent(TASK_1610 + TASK_1611), 兩者共用同一個 worktree 路徑 `wt-<conversationId>`(harness 設計,本身可存活)。 TASK_1610 先完成後,主 thread(Ansuz)立即清理了該 worktree —— 但 TASK_1611
61
-
62
- ## Project Memory (歷史經驗)
63
-
64
- - ✅ [pattern] **[FIX-MEMORY] use-kenaz-bridge sessionBuffers LRU + pendingEvents cap** (importance: 4)
65
- - ✅ [pattern] **[FIX-ROOT] relationships_count post-commit regression — incremental path sums only 4 of 26 rel types, clobbers full count** (importance: 4)
66
- - ✅ [pattern] **[FIX-CRITICAL-ANSUZ] ansuz-sdk-runner inbox protocol alignment** (importance: 4)
67
- - ℹ️ [design_decision] **Autonomous Agenda Synthesis from Multi-Signal Fusion** (importance: 4)
68
- - ℹ️ [operational_lesson] **Prediction Surprise Signal: Post-Complete Scope Leak Detection** (importance: 4)
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: "dashboard_settings ModelSelectionPanel elixir dispatchMode override dispatch StoredModels" — 3 runes, 2 sigils.
79
-
80
- ### Runes (cross-project knowledge)
81
- - **risk** [Kenaz] `unknown`: gcloud run deploy --source=. silently overrides existing Cloud Run env vars; --update-env-vars flag must be explicitly used to preserve them during redeployment, otherwise startup probes fail.
82
- - **risk** [Kenaz] `unknown`: Sequential task dispatch in the same git working directory requires explicit branch checkout between dispatch cycles. Tasks TASK_763 and TASK_764 demonstrated: dispatch task1 (background), wait completion, checkout xyz951610, then dispatch task2. Omitting checkout causes git state pollution and breaks subsequent task execution in the same project context.
83
- - **risk** [KenazAI] `unknown`: Sequential task dispatch in the same git working directory requires explicit branch checkout between dispatch cycles. Tasks TASK_763 and TASK_764 demonstrated: dispatch task1 (background), wait completion, checkout xyz951610, then dispatch task2. Omitting checkout causes git state pollution and breaks subsequent task execution in the same project context.
84
-
85
- ### Sigils (cross-project concepts)
86
- - **Model Override Pipeline** [Kenaz]: Pattern for routing model configuration from specialist observe.yaml through runner.js spawnClaude() to headless.js runHeadless(). Demonstrates explicit parameter threading across process/module boundaries for config distribution in Formation dispatch.
87
- - **Worktree-Isolated Parallel Task Dispatch** [KenazAI]: Multi-task parallel dispatch pipeline using per-task worktree isolation and file-based semaphore coordination. Each task gets isolated .formation/worktrees/task_{id}/ sandbox with max 5 concurrent executions. Pipeline: createWorktree(task-specific branch) → _decrementParallelCount(semaphore management) → launchUnit(isolated execution) → postComplete(merge into original projectPath). Eliminates shared working directory race conditions inherent in dispatch-lock model.
88
-
89
- ## Behavior
90
- - 先讀再改,理解現有結構後才動手
91
- - 遵循 codebase 現有風格,不引入新慣例
92
- - 只改必要的部分,不順便重構
93
- - 發現超出範圍的問題,在摘要中回報,不擅自處理
94
- - 如有測試,執行確認不破壞現有功能
95
-
96
- ## Task
97
- **Task ID**: TASK_1814
98
- **Title**: 「B/2」dispatchMode override 通道從未接上:dispatch.js 讀它,但 StoredModels 無此欄位、post_models 從不寫入、UI 無從設定
99
- **Task File**: C:\Users\user\Documents\GitHub\KenazAI\.kenaz\tasks\active\TASK_1814_b_2_dispatchmode_override_通道從未接上_dispatc_xyz951610.yaml
100
- **Description**: 一個被讀取、被寫進指令文件、但從來不存在的設定欄位。
101
-
102
- 現況(已讀碼確認):
103
- - .formation/tools/dispatch.js:1171 執行 `const dispatchMode = models?.dispatchMode || 'formation';`
104
- - .kenaz/dashboard-models.json 實際內容沒有 dispatchMode 鍵
105
- - dashboard_settings.rs 的 StoredModels struct(36-56 行)沒有 dispatch_mode 欄位
106
- - post_models handler 從不寫入它
107
- - ModelSelectionPanel.tsx 沒有對應的選擇 UI
108
-
109
- 所以那行讀取永遠取到 undefined,永遠 fallback 成 'formation'。
110
-
111
- 更嚴重的是它已經進了 Ansuz 的指令文件。.specialist/Ansuz/elixir.yaml 的 dispatch_routing.mandate 寫著:「Check .kenaz/dashboard-models.json dispatchMode for user override ('formation'|'subagent'|'auto')」。Ansuz 每個 session 都被告知有這個 override 可查,而它從來沒有接上過 —— 指令描述了一個不存在的功能。
112
-
113
- 使用者已明確決定要接上這個通道(而非移除死讀取),因為它是路由層重做的一部分:使用者需要能從 dashboard 指定 Formation / subagent / auto。
114
-
115
- 契約(與姊妹卡 TASK_1813 共用,兩邊必須一致):
116
- - JSON 鍵名 dispatchMode(camelCase,與 dispatchModel / dispatchFamily / dispatchAdapter 同一風格)
117
- - 合法值 formation | subagent | auto
118
- - 欄位缺失時消費端 fallback 到 formation,維持現行行為不變
119
-
120
- 檔案所有權互斥:本卡擁有 dashboard/ 與 .specialist/ 下的檔案,完全不得碰 .formation/tools/dispatch.js —— 那是 TASK_1813 的專屬範圍。兩張卡並行於各自 worktree。
121
-
122
- 注意 auto 的語義需要定義清楚並寫進筆記:auto 是指「依 rigor / 跨專案與否自動選路」,那正是 elixir.yaml dispatch_routing.mandate 現在描述的啟發式。若本卡只做欄位傳輸而不實作 auto 的決策邏輯,必須在筆記中明說 auto 目前等同哪個行為,不得讓 UI 出現一個選了沒作用的選項。
123
- **Priority**: P2
124
- **Complexity**: medium
125
- **Role**: developer
126
-
127
- **Scope Paths** (你只能操作這些路徑):
128
- - dashboard/src-tauri/src/infrastructure/http_server/routes/dashboard_settings.rs
129
- - dashboard/src/components/model-selection/ModelSelectionPanel.tsx
130
- - .specialist/Ansuz/elixir.yaml
131
-
132
- **Requirements**:
133
- - StoredModels struct 新增 dispatch_mode 欄位,使用 serde 的 camelCase rename 規則序列化成 dispatchMode,並以 #[serde(default, skip_serializing_if) ] 保持向後相容 —— 現有 dashboard-models.json 沒有該鍵,反序列化不得因此失敗
134
- - post_models handler 將 payload 的 dispatch_mode 寫入,並沿用現有「payload 缺少則保留 existing」的模式,與 huginn_model / muninn_model 等欄位一致
135
- - 寫入前驗證值屬於 formation|subagent|auto,非法值回傳錯誤而非靜默接受或靜默改寫
136
- - ModelSelectionPanel.tsx 新增對應的選擇 UI,與現有 Default Models 區塊風格一致
137
- - 定義並在筆記中明記 auto 的語義;若本卡不實作 auto 的決策邏輯,必須說明 auto 目前等同於哪個行為,且 UI 不得出現選了沒作用的選項
138
- - 修正 .specialist/Ansuz/elixir.yaml 的 dispatch_routing.mandate,讓它描述的 override 通道與實際行為一致
139
- - 不得修改 .formation/tools/dispatch.js —— 讀取端是姊妹卡 TASK_1813 的專屬範圍,檔案所有權必須互斥
140
-
141
- **Acceptance Criteria**:
142
- - 以現有、沒有 dispatchMode 鍵的 .kenaz/dashboard-models.json 反序列化成功,不因新欄位而失敗(向後相容)
143
- - 透過 post_models 寫入 dispatchMode=subagent 後,.kenaz/dashboard-models.json 確實出現該鍵且值正確
144
- - 寫入非法值(例如 dispatchMode=banana)被拒絕並回傳錯誤,不得靜默接受
145
- - 未提供 dispatch_mode 的 payload 不會清掉磁碟上已有的值(沿用 existing 保留模式)
146
- - CARGO_TARGET_DIR=C:/t/mainverify node dev/scripts/run-rust-tests.js 全綠,讀 N passed 數字(基線 1356 passed / 0 failed),不得只看 ok/FAILED 字樣;此驗證由主線執行
147
- - elixir.yaml 的 dispatch_routing.mandate 文字與實際行為一致
148
- - git diff --name-only 顯示本卡零個 .formation/tools/ 檔案變更
149
- - 筆記載明 auto 的語義與目前實際行為
150
-
151
- **Technical Notes**:
152
- - TASK_1805 規則:agent 禁止等待長時間建置。本卡改 Rust,但不要在 worktree 裡跑 cargo build —— kuzu 是 [patch] path dep,worktree 的 source root 會重觸發 CMake 冷建置(約 20 分鐘、數十 GB),這是過去弄死兩個 agent 的原因。做輕量檢查後立即 commit 並回報,由主線在暖目錄集中驗證。
153
- - 驗證指令必須 BARE 呼叫:node dev/scripts/run-rust-tests.js。加上 `--` 會讓 libtest 把後續參數當成 POSITIONAL FILTER,印出 'ok. 0 passed; 1354 filtered out' 並 exit 0 —— 一個跑了零個測試的綠燈。
154
- - StoredModels 現有的選填欄位(huginn_model / muninn_model / forseti_model / heimdall_model / ember_autonomous_dispatch / ansuz_autonomous_wakeup)已經示範了正確寫法:#[serde(default, skip_serializing_if = "Option::is_none")] 加 Option<T>。直接沿用。
155
- - post_models 有 stale_snapshot 衝突偵測(比對 payload.updated_at 與磁碟上的 updated_at,舊的直接 409)。手改 dashboard-models.json 做測試後若要讓 dashboard 寫入,需注意這個閘門。
156
- - dashboard-models.json 的候選檔案解析順序為 project-first 再 core(TASK_1776,與 load_dashboard_model 同一組候選)。新欄位的讀寫必須走同一條解析造成的同一個檔,否則設定會寫到 A 檔而讀自 B 檔。
157
- - 本卡與 TASK_1813 是同一批次的姊妹卡,檔案所有權互斥。合併時不得分別驗證兩條分支:按 rune_bc54722b,逐分支驗證對 merge-interaction 失敗是結構性盲的(TASK_1797+1798 各自綠燈、合併後三個測試紅)。主線需 file-scoped 合併兩者後驗證一次。
158
- - dashboard/package.json、src-tauri/Cargo.toml、src-tauri/tauri.conf.json 常態性地以未 commit 狀態停在版本 0.2.218。scoped checkout 會静默吞掉這些修改(回復方式:node dashboard/scripts/sync-version.js)。主線合併前先跑 git status --porcelain 檢查這三個路徑。
159
-
160
- ## Workflow
161
- ### 認知 recall
162
- Note: 跳過此步 = 可能重複踩坑。Synapse 是預設搜尋工具,Grep 只用於精確字串匹配。
163
- - 用 ToolSearch 確認 synapse MCP tools 可用
164
- - 對 scope_paths 涉及的 symbol 呼叫 synapse_recall,了解已知的 risk/decision/fix
165
- - 如有相關 rune,在執行時避免踩已知地雷或破壞已記錄的設計意圖
166
-
167
- ### 執行任務
168
- - 根據 scope_paths 讀取相關檔案
169
- - 根據 requirements 逐一實作
170
- - 根據 acceptance_criteria 驗證成果
171
-
172
- ### 提交變更
173
- Command: git add -A && (git commit --no-verify -m "[TASK_1814] task completed" || true)
174
- Note: worktree 內顯式提交確保 post-complete 只需 merge 不需 recovery commit。
175
- nothing to commit 時靜默跳過,不報錯。
176
- ⚠️ 若前一步有 Edit 但 git add -A 找不到變更,代表路徑用錯了(用了主 repo 路徑)。
177
- 修復方式:先 echo $PWD 確認 worktree root,再用 worktree 絕對路徑重新 Edit。
178
-
179
-
180
- ### 認知 inscribe
181
- Note: 你的發現會在對話結束時消失。Inscribe 讓未來 agent 不必重新探索。
182
- - 回顧工作中是否發現 non-obvious 的知識(bug 根因、隱藏約束、設計決策理由)
183
- - 如有,用 synapse_inscribe 記錄(confidence >= 0.6,英文撰寫)
184
- - 如發現 3+ symbol 構成未命名的概念,考慮用 synapse_forge 建立 Sigil
185
- - inscribe 後,用 synapse_rune_conflicts({ scope: '<你改的檔案路徑>' }) 檢查是否與已有 rune 矛盾
186
-
187
- ### 完成任務
188
- Note: ⚠️ Worktree mode — 禁止執行 task-api.js complete。主 thread 在 merge + 驗證後處理。
189
-
190
- ### On Blocked
191
- Command: node .collaboration/core/task-api.js move TASK_1814 blocked
192
- Note: 遇到無法解決的阻礙時,移至 blocked/ 並在摘要中說明原因
193
-
194
- ## Expected Output
195
- Primary: 程式碼變更或檔案修改
196
- Secondary: 完成摘要(做了什麼、改了哪些檔案、需要注意的事)
197
-
198
- ## Progress Note (mandatory — write before finishing)
199
-
200
- When you finish your work, **before your final response**, write a structured progress note to the chart.
201
-
202
- **Chart path (for reference only — do NOT use the Write tool on this path)**: `C:/Users/user/Documents/GitHub/KenazAI/.specialist/sessions/chart_TASK_1814.json`
203
-
204
- **Steps** (avoids cross-workspace permission prompts — works for same-repo and cross-project workers):
205
- 1. Write the note JSON to a **project-local** file inside your own workspace (safe — no cross-boundary write):
206
- File: `.kenaz/specialist/progress_note_TASK_1814.json`
207
- Use the Write tool to create that file (it is inside your cwd, so no permission prompt occurs).
208
- Ensure `.kenaz/specialist/` directory exists first (create it if absent).
209
-
210
- 2. Run the phase-gate note subcommand via **Bash** to merge it into the core chart:
211
- ```bash
212
- node "C:/Users/user/Documents/GitHub/KenazAI/.specialist/tools/phase-gate.js" note --task=TASK_1814 --from-file=".kenaz/specialist/progress_note_TASK_1814.json"
213
- ```
214
- *(The note file is in your local workspace — no cross-workspace Write; phase-gate note merges it into the core chart atomically)*
215
-
216
- **Progress Note Schema** (ONE entry to append to `progress_notes`):
217
-
218
- ```json
219
- {
220
- "task_id": "TASK_1814",
221
- "timestamp": "<ISO-8601>",
222
- "changes": { "files_modified": ["<paths>"], "files_created": [], "files_deleted": [], "total_lines": 0 },
223
- "acceptance_criteria": [
224
- { "criterion": "以現有、沒有 dispatchMode 鍵的 .kenaz/dashboard-models.json 反序列化成功,不因新欄位而失敗(向後相容)", "status": "pass|fail|partial", "evidence": "<brief>" },
225
- { "criterion": "透過 post_models 寫入 dispatchMode=subagent 後,.kenaz/dashboard-models.json 確實出現該鍵且值正確", "status": "pass|fail|partial", "evidence": "<brief>" },
226
- { "criterion": "寫入非法值(例如 dispatchMode=banana)被拒絕並回傳錯誤,不得靜默接受", "status": "pass|fail|partial", "evidence": "<brief>" },
227
- { "criterion": "未提供 dispatch_mode 的 payload 不會清掉磁碟上已有的值(沿用 existing 保留模式)", "status": "pass|fail|partial", "evidence": "<brief>" },
228
- { "criterion": "CARGO_TARGET_DIR=C:/t/mainverify node dev/scripts/run-rust-tests.js 全綠,讀 N passed 數字(基線 1356 passed / 0 failed),不得只看 ok/FAILED 字樣;此驗證由主線執行", "status": "pass|fail|partial", "evidence": "<brief>" },
229
- { "criterion": "elixir.yaml 的 dispatch_routing.mandate 文字與實際行為一致", "status": "pass|fail|partial", "evidence": "<brief>" },
230
- { "criterion": "git diff --name-only 顯示本卡零個 .formation/tools/ 檔案變更", "status": "pass|fail|partial", "evidence": "<brief>" },
231
- { "criterion": "筆記載明 auto 的語義與目前實際行為", "status": "pass|fail|partial", "evidence": "<brief>" },
232
- ],
233
- "findings": ["<non-obvious discoveries, traps, design decisions>"],
234
- "deviations": ["<anything done differently from the plan; REQUIRED to document a skipped inscribe>"],
235
- "cognitive_output": { "runes": ["<rune_ids -- [] if none>"], "sigils": ["<sigil_ids -- [] if none>"] }
236
- }
237
- ```
238
-
239
- **Rules**:
240
- - Evaluate EVERY Acceptance Criterion; use exact criterion text from the task.
241
- - `changes`: list ALL files touched (created/modified/deleted).
242
- - `findings`: non-obvious constraints, design traps, discoveries -- [] if none.
243
- - `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).
244
- - If the chart file does not exist, the note subcommand creates it automatically -- NEVER use the Write tool on the chart path directly.
245
-
246
-
247
- ## Before You Start — Cognitive Recall (mandatory verdict)
248
- Before writing any code, you MUST perform a cognitive recall (synapse_recall or synapse_pulse) on the symbols you are about to modify.
249
-
250
- Output exactly one of these lines before you start coding:
251
-
252
- ```
253
- 📡 Cognitive Recall: {one-line summary of what pulse/recall revealed}
254
- ```
255
-
256
- Or, if you consciously decide to skip:
257
-
258
- ```
259
- 📡 Cognitive Recall: SKIP — {reason why recall is unnecessary}
260
- ```
261
-
262
- You may SKIP, but you must say why. Silence is not allowed.
263
-
264
- ## Before You Finish — Don't Let Your Discovery Die
265
- You just spent real effort understanding this code. When this conversation ends, everything you learned disappears — unless you write it down.
266
-
267
- Ask yourself:
268
- - 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**
269
- - 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**
270
- - 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**
271
- - Did you realize that 3+ symbols are actually part of the same concept? → Give it a name. **synapse_forge** a Sigil.
272
-
273
- If none of these apply, skip. Don't write for the sake of writing.
274
-
275
- When you do write:
276
- - **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)
277
- - confidence >= 0.6 — if you're guessing, don't inscribe.
278
- - One good rune > three mediocre ones.
279
- - ⚠️ **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.
280
-
281
- Every rune you inscribe will be recalled by the next agent who touches the same symbol. Your insight becomes their head start.
282
-
283
- ## Cognitive Checkpoint (mandatory — include in your final output)
284
- At the very end of your response, output this block exactly:
285
-
286
- ```
287
- ## Cognitive Checkpoint
288
- Pre-code: RECALLED — {what you found} | or SKIP — {reason}
289
- Post-code: INSCRIBED — {rune_id} | or SKIP — {reason}
290
- ```
291
-
292
- Both verdicts are required. You may SKIP either, but you must state why.
293
-
294
-
295
- ## Cortex Context (Related Files Preview)
296
- The following files are in your scope. Review them before making changes.
297
-
298
- ### dashboard/src-tauri/src/infrastructure/http_server/routes/dashboard_settings.rs (614 lines)
299
- ```
300
- use axum::{extract::State, http::StatusCode, response::IntoResponse, routing::get, Json, Router};
301
- use serde::{Deserialize, Serialize};
302
- use serde_json::Value;
303
- use std::path::{Path, PathBuf};
304
- use tokio::fs;
305
-
306
- use super::HttpAppState;
307
-
308
- #[derive(Debug, Deserialize)]
309
- #[serde(rename_all = "camelCase")]
310
- struct ModelsPayload {
311
- specialist_model: Option<String>,
312
- dispatch_model: Option<String>,
313
- huginn_model: Option<String>,
314
- muninn_model: Option<String>,
315
- forseti_model: Option<String>,
316
- heimdall_model: Option<String>,
317
- updated_at: Option<String>,
318
- ember_autonomous_dispatch: Option<bool>,
319
- ansuz_autonomous_wakeup: Option<bool>,
320
- }
321
-
322
- #[derive(Debug, Deserialize)]
323
- struct BifrostManifest {
324
- adapter: Option<String>,
325
- models: Option<Vec<BifrostModel>>,
326
- }
327
-
328
- #[derive(Debug, Deserialize)]
329
- struct BifrostModel {
330
- ... (truncated)
331
- ```
332
-
333
- ### dashboard/src/components/model-selection/ModelSelectionPanel.tsx (235 lines)
334
- ```
335
- 'use client';
336
-
337
- import { useEffect, useMemo, useState } from 'react';
338
- import { Cpu, ChevronRight, Loader2, AlertTriangle } from 'lucide-react';
339
-
340
- import { useI18n } from '@/contexts/I18nContext';
341
- import { useCliSettings } from '@/hooks/use-cli-settings';
342
- import {
343
- AGENT_MODEL_DEFAULTS,
344
- buildModelRegistry,
345
- CLAUDE_MODELS,
346
- type ModelEntry,
347
- type ModelGroup,
348
- } from '@/lib/models';
349
- import { cn } from '@/lib/utils';
350
-
351
- interface ModelSelectionPanelProps {
352
- className?: string;
353
- }
354
-
355
- /**
356
- * Standalone Model Selection panel.
357
- *
358
- * Two independent dropdowns:
359
- * - Specialist default model — used when launching Ansuz/Amelia/Huginn
360
- * via SpecialistPanel.handleLaunch.
361
- * - Dispatch default model — used when Formation dispatches an agent task
362
- * (read by the kenaz_dispatch backend route via the synced settings file
363
- * .kenaz/dashboard-models.json).
364
- *
365
- ... (truncated)
366
- ```
367
-
368
- ### .specialist/Ansuz/elixir.yaml (61 lines)
369
- ```
370
- identity:
371
- name: Ansuz
372
- core: "Kenaz PM: understand intent, design tasks, choose formation, dispatch, verify, report."
373
- blind_spot:
374
- mirror: "B-001 checkpoint skipping under momentum; verify scope/acceptance match BEFORE creating tasks or dispatching."
375
- last_episode_lesson: "Phase 0 ceremony improves reliability floor; elixir is now /Ansuz default — observe whether reflexes (Synapse opening move, AskUserQuestion, evidence>authority, mirror) actually fire each session."
376
- principles:
377
- - structure>estimate
378
- - verifiable>explainable
379
- - real_dependency>perceived
380
- - wire>rewrite
381
- - intent>literal
382
- - ddx_before_intuition
383
- - evidence>compliance
384
- - perfect_execution
385
- - expose_problems
386
- role_boundary:
387
- - "Ansuz decides + dispatches. NEVER writes code directly — implementation is Formation's job."
388
- - "Task-First: create task card before dispatch (exception: trivial single-file <20 LOC)."
389
- - "Never merge to main without explicit user confirmation."
390
- mandates:
391
- - AskUserQuestion for ALL user-facing choices (NEVER plain-text [A]/[B]/[C] lists).
392
- - Run synapse_pulse / synapse_recall during Phase 2-3 to scope dispatched tasks (exo-cortex informs design, not direct modification).
393
- - Follow evidence over authority when the two conflict.
394
- - Write memory only in English (MEM-LANG-001).
395
- - "DDx-first reflex: any non-trivial user request → list 2-3 competing hypotheses about what the real problem is + the distinguishing evidence BEFORE first action. If you have a single instinct with no alternatives, you skipped DDx — stop, enumerate, then proceed. Cost is 3-5 tool calls; alternative is 15+ wasted iterations on the wrong hypothesis."
396
- - "First-principles posture: question premises (including user premises) when they contradict observed state. Strip request to primitive components — what is actually being asked, what evidence supports each interpretation, what success criterion. Compliance ≠ thinking; presenting contradicting evidence IS collaboration."
397
- - "HANDOFF LIVE DOC: Update ansuz_session_handoff.json after every milestone (dispatch / Phase 1/3/9/11 exit / major decision); use triggered_by=live_dispatch_milestone | live_phase_exit | live_decision_point per AGENTS.override.md handoff_lifecycle.live_update_steps. Live document, not exit-only."
398
- - "Project pinning: when boot banner shows a `[pin:...]` line or session was started with --project-path, EVERY MCP call to synapse_*/hippocampus_*/cortex_* that accepts a projectPath param MUST pass projectPath=<pin>; every specialist tool CLI call (task-api, phase-gate, dispatch) MUST pass --project-path <pin>. Missing projectPath leaks memory into the wrong project graph."
399
- dispatch_routing:
400
- ... (truncated)
401
- ```