kenaz 0.3.22 → 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 (465) 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 +6 -6
  4. package/core/.claude/hooks/worktree-remove.js +4 -4
  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/kenaz-stats.js +1 -1
  10. package/core/.formation/tools/post-complete/git-merge.js +1 -1
  11. package/core/.formation/tools/prompt.js +1 -1
  12. package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
  13. package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
  14. package/core/.rule/general/project-self-containment.yaml +2 -2
  15. package/core/.specialist/Amelia/README.md +1 -1
  16. package/core/.specialist/Amelia/rule.yaml +1 -1
  17. package/core/.specialist/Ansuz/RULES.md +1 -1
  18. package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
  19. package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
  20. package/core/.specialist/Ansuz/knowledge.yaml +1 -3
  21. package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
  22. package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
  23. package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
  24. package/core/.specialist/tools/failure-detector.js +4 -4
  25. package/core/.specialist/tools/handoff-doc.js +1 -1
  26. package/core/.specialist/tools/lessons.js +2 -2
  27. package/core/CLAUDE.md +5 -5
  28. package/core/KENAZ_CORE_VERSION +1 -1
  29. package/core/dashboard/scripts/install-kenaz-cli.js +21 -6
  30. package/core/dev/scripts/check-file-size.js +1 -1
  31. package/core/dev/scripts/ci-feedback.js +1 -1
  32. package/core/dev/scripts/gc-agent-worktrees.js +11 -11
  33. package/core/dev/scripts/kenaz-session.js +3 -3
  34. package/core/dev/scripts/peer-identity-e2e.js +3 -3
  35. package/core/dev/scripts/run-rust-tests.js +2 -2
  36. package/core/dev/scripts/skill-routing-replay.js +3 -3
  37. package/core/dev/scripts/task1961/selftest.js +2 -2
  38. package/core/dev/scripts/windows-hide-guard.test.js +97 -0
  39. package/core/plugins/kenaz/guidance.md +1 -0
  40. package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
  41. package/core/plugins/kenaz/hooks/kenaz-hook.js +52 -4
  42. package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
  43. package/lib/cli.js +9 -5
  44. package/package.json +6 -6
  45. package/vendor/install-kenaz-cli.js +21 -6
  46. package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
  47. package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
  48. package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
  49. package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
  50. package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
  51. package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
  52. package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
  53. package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
  54. package/core/.kenaz/main-memory/README.md +0 -230
  55. package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
  56. package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
  57. package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
  58. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
  59. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
  60. package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
  61. package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
  62. package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
  63. package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
  64. package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
  65. package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
  66. package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
  67. package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
  68. package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
  69. package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
  70. package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
  71. package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
  72. package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
  73. package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
  74. package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
  75. package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
  76. package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
  77. package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
  78. package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
  79. package/core/.kenaz/main-memory/registry.json +0 -326
  80. package/core/.kenaz/main-memory/version.yaml +0 -58
  81. package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
  82. package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
  83. package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
  84. package/core/.kenaz/specialist/prompt_1775.txt +0 -317
  85. package/core/.kenaz/specialist/prompt_1776.txt +0 -326
  86. package/core/.kenaz/specialist/prompt_1791.txt +0 -320
  87. package/core/.kenaz/specialist/prompt_1792.txt +0 -320
  88. package/core/.kenaz/specialist/prompt_1795.txt +0 -281
  89. package/core/.kenaz/specialist/prompt_1813.txt +0 -332
  90. package/core/.kenaz/specialist/prompt_1814.txt +0 -401
  91. package/core/.kenaz/specialist/prompt_1815.txt +0 -394
  92. package/core/.kenaz/specialist/prompt_1816.txt +0 -437
  93. package/core/.kenaz/specialist/prompt_1818.txt +0 -361
  94. package/core/.kenaz/specialist/prompt_1819.txt +0 -421
  95. package/core/.kenaz/specialist/prompt_1821.txt +0 -345
  96. package/core/.kenaz/specialist/prompt_1822.txt +0 -313
  97. package/core/.kenaz/specialist/prompt_1824.txt +0 -348
  98. package/core/.kenaz/specialist/prompt_1826.txt +0 -388
  99. package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
  100. package/core/.kenaz/specialist/task1825_update.json +0 -43
  101. package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
  102. package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
  103. package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
  104. package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
  105. package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
  106. package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
  107. package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
  108. package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
  109. package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
  110. package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
  111. package/core/.specialist/ansuz_session_handoff.json +0 -96
  112. package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
  113. package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
  114. package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
  115. package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
  116. package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
  117. package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
  118. package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
  119. package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
  120. package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
  121. package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
  122. package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
  123. package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
  124. package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
  125. package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
  126. package/core/dev/MUNINN_RETIREMENT.md +0 -115
  127. package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
  128. package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
  129. package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
  130. package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
  131. package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
  132. package/core/dev/PRODUCT_SPEC.md +0 -317
  133. package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
  134. package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
  135. package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
  136. package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
  137. package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
  138. package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
  139. package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
  140. package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
  141. package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
  142. package/core/dev/ansuz-eval/README.md +0 -38
  143. package/core/dev/ansuz-eval/build-fixtures.js +0 -87
  144. package/core/dev/ansuz-eval/grade.js +0 -96
  145. package/core/dev/ansuz-eval/grader.test.js +0 -117
  146. package/core/dev/ansuz-eval/tasks.md +0 -32
  147. package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
  148. package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
  149. package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
  150. package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
  151. package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
  152. package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
  153. package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
  154. package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
  155. package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
  156. package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
  157. package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
  158. package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
  159. package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
  160. package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
  161. package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
  162. package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
  163. package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
  164. package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
  165. package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
  166. package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
  167. package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
  168. package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
  169. package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
  170. package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
  171. package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
  172. package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
  173. package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
  174. package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
  175. package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
  176. package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
  177. package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
  178. package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
  179. package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
  180. package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
  181. package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
  182. package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
  183. package/core/dev/design/PHASE4_DESIGN.md +0 -559
  184. package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
  185. package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
  186. package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
  187. package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
  188. package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
  189. package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
  190. package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
  191. package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
  192. package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
  193. package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
  194. package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
  195. package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
  196. package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
  197. package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
  198. package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
  199. package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
  200. package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
  201. package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
  202. package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
  203. package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
  204. package/core/dev/jev-eval/README.md +0 -101
  205. package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
  206. package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
  207. package/core/dev/jev-eval/cli.mjs +0 -50
  208. package/core/dev/jev-eval/context.mjs +0 -183
  209. package/core/dev/jev-eval/corpus.mjs +0 -186
  210. package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
  211. package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
  212. package/core/dev/jev-eval/metrics.mjs +0 -67
  213. package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
  214. package/core/dev/jev-eval/providers.mjs +0 -95
  215. package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
  216. package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
  217. package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
  218. package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
  219. package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
  220. package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
  221. package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
  222. package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
  223. package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
  224. package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
  225. package/core/dev/jev-eval/resilience.mjs +0 -71
  226. package/core/dev/jev-eval/review.mjs +0 -78
  227. package/core/dev/jev-eval/schema.mjs +0 -87
  228. package/core/dev/jev-eval/test/context.test.mjs +0 -95
  229. package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
  230. package/core/dev/jev-eval/test/eval.test.mjs +0 -146
  231. package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
  232. package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
  233. package/core/dev/jev-eval/test/review.test.mjs +0 -61
  234. package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
  235. package/core/dev/pipeline/PROGRESS.md +0 -113
  236. package/core/dev/pipeline/PROGRESS_template.md +0 -860
  237. package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
  238. package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
  239. package/core/dev/pipeline/README.md +0 -210
  240. package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
  241. package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
  242. package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
  243. package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
  244. package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
  245. package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
  246. package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
  247. package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
  248. package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
  249. package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
  250. package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
  251. package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
  252. package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
  253. package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
  254. package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
  255. package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
  256. package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
  257. package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
  258. package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
  259. package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
  260. package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
  261. package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
  262. package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
  263. package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
  264. package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
  265. package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
  266. package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
  267. package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
  268. package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
  269. package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
  270. package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
  271. package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
  272. package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
  273. package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
  274. package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
  275. package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
  276. package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
  277. package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
  278. package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
  279. package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
  280. package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
  281. package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
  282. package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
  283. package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
  284. package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
  285. package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
  286. package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
  287. package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
  288. package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
  289. package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
  290. package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
  291. package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
  292. package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
  293. package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
  294. package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
  295. package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
  296. package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
  297. package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
  298. package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
  299. package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
  300. package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
  301. package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
  302. package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
  303. package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
  304. package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
  305. package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
  306. package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
  307. package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
  308. package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
  309. package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
  310. package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
  311. package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
  312. package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
  313. package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
  314. package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
  315. package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
  316. package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
  317. package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
  318. package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
  319. package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
  320. package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
  321. package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
  322. package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
  323. package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
  324. package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
  325. package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
  326. package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
  327. package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
  328. package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
  329. package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
  330. package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
  331. package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
  332. package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
  333. package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
  334. package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
  335. package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
  336. package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
  337. package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
  338. package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
  339. package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
  340. package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
  341. package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
  342. package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
  343. package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
  344. package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
  345. package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
  346. package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
  347. package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
  348. package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
  349. package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
  350. package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
  351. package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
  352. package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
  353. package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
  354. package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
  355. package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
  356. package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
  357. package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
  358. package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
  359. package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
  360. package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
  361. package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
  362. package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
  363. package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
  364. package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
  365. package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
  366. package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
  367. package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
  368. package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
  369. package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
  370. package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
  371. package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
  372. package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
  373. package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
  374. package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
  375. package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
  376. package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
  377. package/core/dev/pipeline/docs/overview.md +0 -406
  378. package/core/dev/pipeline/docs/task-management.md +0 -412
  379. package/core/dev/pipeline/docs/workflows.md +0 -32
  380. package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
  381. package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
  382. package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
  383. package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
  384. package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
  385. package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
  386. package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
  387. package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
  388. package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
  389. package/core/dev/scripts/README.md +0 -142
  390. package/core/dev/scripts/RUN_ONCE.bat +0 -40
  391. package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
  392. package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
  393. package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
  394. package/core/dev/scripts/init_git.ps1 +0 -396
  395. package/core/dev/scripts/init_git.sh +0 -337
  396. package/core/dev/scripts/init_project.ps1 +0 -851
  397. package/core/dev/scripts/init_project.sh +0 -477
  398. package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
  399. package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
  400. package/core/dev/scripts/run_once.sh +0 -47
  401. package/core/dev/scripts/setup_rag.ps1 +0 -304
  402. package/core/dev/scripts/setup_rag.sh +0 -230
  403. package/core/dev/scripts/start_dev_agent.sh +0 -137
  404. package/core/dev/scripts/start_multi_agent.sh +0 -41
  405. package/core/dev/scripts/sync_task_queue.ps1 +0 -505
  406. package/core/dev/scripts/sync_task_queue.sh +0 -392
  407. package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
  408. package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
  409. package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
  410. package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
  411. package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
  412. package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
  413. package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
  414. package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
  415. 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
  416. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
  417. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
  418. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
  419. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
  420. package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
  421. package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
  422. package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
  423. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
  424. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
  425. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
  426. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
  427. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
  428. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
  429. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
  430. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
  431. package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
  432. package/core/dev/specs/agent-connect/history/README.md +0 -47
  433. package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
  434. package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
  435. package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
  436. package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
  437. package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
  438. package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
  439. package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
  440. package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
  441. package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
  442. package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
  443. package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
  444. package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
  445. package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
  446. package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
  447. package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
  448. package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
  449. package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
  450. package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
  451. package/core/dev/spikes/A4-cypher-varlen.md +0 -176
  452. package/core/dev/spikes/bloat-rounds.sh +0 -25
  453. package/core/dev/spikes/mods/clean-claude.js +0 -9
  454. package/core/dev/spikes/mods/drive-probe.js +0 -29
  455. package/core/dev/spikes/mods/e2e-peer.js +0 -71
  456. package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
  457. package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
  458. package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
  459. package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
  460. package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
  461. package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
  462. package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
  463. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
  464. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
  465. package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
@@ -1,146 +0,0 @@
1
- phase: 8
2
- name: "陣型判斷 + Dispatch"
3
- goal: "選擇最輕量可行陣型,dispatch agent 執行"
4
-
5
- judgment:
6
- principle: "能 unit 不 solo,能 solo 不 squad,能 squad 不 legion"
7
- guide:
8
- unit: "目標明確、單一 scope → do/think/plan"
9
- solo: "需要多角度分析 → strategy/diagnosis"
10
- squad: "可拆成獨立子任務並行 → blitz/sweep"
11
- legion: "有順序依賴或即時協調 → forge/hive"
12
-
13
- execution:
14
- tool: ".formation/tools/headless.js"
15
- max_parallel: 5
16
- cli:
17
- unit: "node {CORE}/.formation/tools/headless.js --skill=do --task=TASK_XXX [--project-path {PROJECT_PATH}]"
18
- solo: "node {CORE}/.formation/tools/headless.js --formation=solo --skill=strategy --task=TASK_XXX [--project-path {PROJECT_PATH}]"
19
- squad: "node {CORE}/.formation/tools/headless.js --formation=squad --skill=blitz --task=TASK_XXX [--project-path {PROJECT_PATH}]"
20
- legion: "node {CORE}/.formation/tools/headless.js --formation=legion --skill=forge --task=TASK_XXX [--project-path {PROJECT_PATH}]"
21
- patterns:
22
- single: "Bash(run_in_background=true): node headless.js --task=TASK_XXX"
23
- parallel: "多個無依賴 → 多個 Bash(background) 同時啟動(上限 5,超過排隊)"
24
- sequential: "有依賴 → 前一個完成再 dispatch"
25
- anti_pattern: "❌ 禁止用 Task tool 直接開 subagent — 繞過 Formation 失去 prompt 組裝和 log"
26
- post_dispatch_branch_guard:
27
- rule: "每個 dispatch 完成(背景任務通知回來)後,必須立即執行 git checkout {user_branch}"
28
- why: "headless.js subprocess 的 post-complete 會 checkout 回 user branch,但 Ansuz 的 shell session 可能不同步(尤其 crash 或 timeout 時)"
29
- enforcement: "硬性規則 — 不是建議。漏做 = 後續所有操作在錯誤 branch 上"
30
- pattern: |
31
- # 每個 dispatch 背景通知回來後,第一個動作:
32
- git checkout {user_branch}
33
- # 然後才讀 log、驗證結果、dispatch 下一個
34
-
35
- scope_rules:
36
- - "同檔案 → 一個實例處理整個檔案"
37
- - "跨檔案 → fan_out,按模組/目錄切"
38
- - "派工前確認 scope 無重疊"
39
-
40
- dispatch_decision_gate:
41
- rule: |
42
- ⚠️ DISPATCH vs IN-SESSION — 必須在每次 dispatch 前判斷:
43
- 分析 / 審計 / 策略 / 討論 → in-session Skill tool(/Amelia、/Huginn 等),不 dispatch
44
- 實作 / 執行 / 寫代碼 / 長跑 → headless dispatch(headless.js)
45
- 「sub agent」「讓 X 做」本身不代表 dispatch。判斷依據是任務性質,不是用詞。
46
- 長 session(已 dispatch ≥3 個任務)時特別警惕 pattern contamination — 重新確認。
47
-
48
- pre_dispatch:
49
- - "node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] claim TASK_XXX"
50
- - "確認狀態已變為 active"
51
- - |
52
- # ── Symbol-Level Prediction Recording(TASK_932 升級)──
53
- # 對每個即將 dispatch 的任務,在 dispatch 前執行:
54
- #
55
- # 1. 取得任務的 scope_paths(主要目標檔案/目錄)
56
- # 2. 對 scope_paths 中的主要 symbol 執行 kenaz_lsp_callers:
57
- # kenaz_lsp_callers({ symbol: "<primary_symbol>", projectPath: "{PROJECT_PATH}" })
58
- # 3. 從 LSP 結果萃取 predicted_symbols(最多 20 個):
59
- # - callers(呼叫此 symbol 的函數)
60
- # - references(引用此 symbol 的位置)
61
- # 合併去重後取前 20 個 symbol name
62
- # 4. 將 predicted_symbols 寫入任務 YAML(dispatch 前,作為 TASK_931 比對基線):
63
- # node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] \
64
- # update TASK_XXX --field predicted_symbols --value "[\"sym_a\",\"sym_b\",...]"
65
- # 或用 technical_notes 暫代(若 task-api 尚未支援 --field predicted_symbols):
66
- # node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] \
67
- # update TASK_XXX --technical-notes "predicted_symbols: [sym_a, sym_b, ...]"
68
- #
69
- # ⚠️ 若 scope_paths 無明確 symbol(例如整個目錄),以目錄中最核心的檔案名稱作為 symbol 查詢
70
- # ⚠️ kenaz_lsp_callers 不可用時 → 跳過此步,在 Phase 9 outcome 中標記 predicted_symbols: []
71
- # ⚠️ 此步驟產出的 predicted_symbols 供 Phase 9 / TASK_931 做 symbol-level 比對用
72
-
73
- monitoring:
74
- tools:
75
- - "node {CORE}/.formation/tools/log-reader.js --latest unit --tail 30"
76
- - "node {CORE}/.formation/tools/log-reader.js --task TASK_XXX --tail 50"
77
- rules:
78
- - "❌ 禁止用 TaskOutput 讀取 headless 結果 — stdout 可能數萬行,會爆 context"
79
- - "✅ 用 log-reader.js 或 Read tool + offset"
80
-
81
- actions:
82
- - "根據 judgment.principle 選擇最輕量陣型"
83
- - "task-api.js claim → Bash(background): node headless.js --task=TASK_XXX"
84
- - "多任務無依賴 → 多個 Bash(background) 同時啟動(上限 5)"
85
-
86
- # ═══════════════════════════════════════
87
- # Completion Tracking Mandate(強制)
88
- # ═══════════════════════════════════════
89
- # Ansuz 作為全生命週期引擎,dispatch 後 MUST 自動跑完 Phase 9-10-11。
90
- # 不可中途插入「還有其他事嗎?」或等用戶推動。
91
- completion_tracking:
92
- mandate: |
93
- ❌ 禁止在 dispatch 後向用戶提問或建議停下來
94
- ❌ 禁止輸出「需要我做其他事情嗎?」「還要繼續嗎?」等中斷性問題
95
- ✅ dispatch 後靜默等待背景通知(不輸出任何文字直到通知到達)
96
- ✅ 通知到達 → 自動 Phase 9 → Phase 10 → 有下一個 task? → Phase 8 → 全完成 → Phase 11
97
- on_notification:
98
- step_1: "git checkout {user_branch}(branch guard — 硬性規則)"
99
- step_2: "讀 log(log-reader.js --task TASK_XXX --tail 50)"
100
- step_3: "Phase 9 驗證(自動,不問用戶)"
101
- step_4: "Phase 10 post-complete(自動)"
102
- step_5: "檢查是否有下一個待 dispatch 的 task(相同需求的 task 列表)"
103
- step_5a: "有 → 回 Phase 8 dispatch 下一個(自動)"
104
- step_5b: "沒有 → Phase 11 回報(此時才向用戶匯報 + 問下一步)"
105
- multi_task_loop: |
106
- 當 Phase 7 建立了多個任務時,Phase 8 進入 dispatch 迴圈:
107
- for task in tasks_sorted_by_dependency:
108
- claim → dispatch(background) → 等通知 → branch guard → Phase 9 → Phase 10
109
- 全部完成 → Phase 11(一次回報所有結果)
110
- anti_pattern:
111
- - "❌ dispatch 一個就報告 → 等用戶 → dispatch 下一個(transactional 斷裂)"
112
- - "❌ 通知到了但問用戶「要追蹤嗎?」(Phase 9 是自動的,不需要許可)"
113
- - "❌ 多任務時每個任務分開做 Phase 11(應合併成一次回報)"
114
-
115
- cli_format: |
116
- 🚀 Dispatch
117
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
118
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
- TASK_XXX → unit/do(目標明確、單一 scope)
120
- TASK_YYY → unit/do(獨立任務、可並行)
121
-
122
- 並行: 2 個 headless 進程
123
- 監控: node {CORE}/.formation/tools/log-reader.js --latest unit --tail 30
124
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
125
-
126
- interaction:
127
- type: "auto"
128
- instruction: "輸出 cli_format 後直接 dispatch,不問用戶。dispatch 後靜默等待通知,自動跑完 Phase 9-10-11。"
129
-
130
- checklist:
131
- - "⚠️ DISPATCH DECISION GATE: 確認任務性質是「實作/執行」而非「分析/審計/討論」。分析類 → in-session Skill,不 dispatch。長 session 中尤其注意 pattern contamination。"
132
- - "陣型已選擇(最輕量原則)"
133
- - "所有任務已 claim(active 狀態)+ scope 無重疊"
134
- - "⚠️ SYMBOL PREDICTION(dispatch 前必做): 對每個任務的 scope_paths 執行 kenaz_lsp_callers → 萃取 predicted_symbols(≤20)→ task-api update 寫入任務 YAML"
135
- - "dispatch 數量 ≤5"
136
- - "cli_format 已輸出後立即執行 Bash(run_in_background=true)"
137
- - "⚠️ POST-DISPATCH BRANCH GUARD: 每個背景任務通知回來後,第一個動作必須是 git checkout {user_branch}"
138
- - "⚠️ COMPLETION TRACKING: dispatch 後不輸出任何中斷性問題,靜默等通知 → 自動 Phase 9-10-11"
139
-
140
- context_hints:
141
- input_from: "phase_7"
142
- key_data: ["task_ids", "formation_choice", "parallel_groups"]
143
-
144
- inject:
145
- rules: []
146
- specialist: []
@@ -1,424 +0,0 @@
1
- phase: 9
2
- name: "結果驗證"
3
- goal: "驗證 agent 產出,確保符合任務要求"
4
-
5
- ddx_trigger:
6
- when: "agent 輸出不確定、或結果與預期不符時"
7
- action: "懶載入 modules/ddx.yaml — 問『如果不是 agent 說的原因,還可能是什麼?』"
8
-
9
- # ─────────────────────────────────────────────────────────────────
10
- # Forseti Verification — Three-Level Automated Verification Engine
11
- # ─────────────────────────────────────────────────────────────────
12
-
13
- forseti_verification:
14
- description: |
15
- Forseti is a three-level automated verification engine that runs
16
- CLI commands (L1), service probes (L2), and Playwright E2E (L3).
17
- Dispatch only when task meets trigger threshold — otherwise fall
18
- back to minimal_verification.
19
-
20
- trigger_threshold:
21
- description: "Forseti is triggered if ANY of the following conditions is true"
22
- conditions:
23
- - priority is P0 or P1
24
- - rigor is "high"
25
- - tags contain "fix" or "regression"
26
- - task has a non-empty verification spec (verification.level_1 or level_2 or level_3)
27
- skip_when:
28
- - priority is P2 with rigor "low" or "medium"
29
- - priority is P3
30
- - task is documentation-only (role: docs, no scope_paths with code files)
31
- - task is design/style-only with no logic changes
32
-
33
- dispatch:
34
- command: |
35
- node {CORE}/.formation/tools/forseti-verify.js \
36
- --task=TASK_XXX \
37
- [--project-path={PROJECT_PATH}]
38
- note: "直接執行 forseti-verify.js,不走 headless.js formation skill"
39
- verdict_path: "{PROJECT_PATH}/.formation/logs/forseti/TASK_XXX/verdict.json"
40
-
41
- verdict_handling:
42
- read_verdict: |
43
- Read verdict JSON from: .formation/logs/forseti/TASK_XXX/verdict.json
44
- Fields: overall (PASS|PARTIAL|FAIL), level_results[], evidence_dir, generated_at
45
- on_PASS: "→ 繼續正常 on_success 流程 → Phase 10"
46
- on_PARTIAL: |
47
- ⚠️ Partial verification (some levels skipped — service offline or no E2E spec)
48
- → PARTIAL is NOT automatic success. Map every required acceptance criterion to passing evidence.
49
- → Continue on_success only when all required checks passed and every skipped check is
50
- explicitly optional or not applicable, with a recorded reason. Keep the raw verdict PARTIAL.
51
- → Missing spec, unavailable service, or missing evidence for any required check → UNVERIFIED.
52
- Do not downgrade a required check to optional merely because it cannot run.
53
- on_UNVERIFIED: |
54
- Record missing required checks and the blocking condition; keep the task open.
55
- Restore the prerequisite or supplement the verification plan and rerun.
56
- Do not call on_success, complete, archive, or merge based on missing evidence.
57
- UNVERIFIED is an Ansuz assessment, not a new Forseti CLI verdict or task status.
58
- on_FAIL: |
59
- ❌ Forseti reported FAIL → 觸發 FIX 閉環
60
- → 執行 fix_loop 流程(見下方)
61
-
62
- fix_loop:
63
- description: "FAIL 閉環:建 FIX 任務 → 回 Phase 8 → Forseti 再驗。max 3 輪防無限迴圈。"
64
- max_fix_rounds: 3
65
- loop_guard: |
66
- 在 task context 中追蹤 fix_round(從 technical_notes.fix_round 讀取,預設 0)
67
- if fix_round >= max_fix_rounds:
68
- → 停止自動建 FIX
69
- → escalate 給用戶,附上全部 verdict evidence
70
- steps:
71
- 1_read_evidence: |
72
- 讀取 verdict JSON 中的 level_results[].failures 和 evidence_dir
73
- 提取失敗命令、exit codes、stdout/stderr(各取前 1000 chars)
74
- 2_create_fix_task: |
75
- node {CORE}/.collaboration/core/task-api.js \
76
- [--project-path {PROJECT_PATH}] create \
77
- --title "[FIX] {原任務標題} — Forseti L{N} FAIL" \
78
- --source=TASK_XXX \
79
- --tags="fix,verification,forseti" \
80
- --priority={原任務 priority} \
81
- --role={原任務 role} \
82
- --scope_paths={原任務 scope_paths}
83
- context 欄位必須包含:
84
- - forseti_evidence: {verdict JSON 完整路徑}
85
- - fix_round: {current_round + 1}
86
- - failure_summary: {level_results failures 摘要}
87
- - original_task_id: TASK_XXX
88
- 3_update_anchor: |
89
- Read-modify-write ansuz_motivational_state.json (graceful degradation):
90
- file: {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json
91
- if file not found → skip silently, continue to next step
92
- match_logic: FIX_task.tags ∩ anchor.source_tags — OR logic (any tag overlap = match)
93
- note: anchor.source_tags must contain domain-specific tags only (e.g. tunnel, pty, synapse).
94
- Generic tags like "fix", "code", "feature" must NOT be in source_tags — they cause all anchors to match.
95
- on_match:
96
- if anchor.resolved === true:
97
- resolved = false
98
- resolved_at = null
99
- incompleteness = 0.3 ← problem recurred; reset base before increment
100
- incompleteness = min(anchor.incompleteness + 0.15, 1.0)
101
- note: resolved anchor starts at 0.3 → +0.15 = 0.45 total
102
- fix_cycle_count = anchor.fix_cycle_count + 1
103
- last_touched = today (ISO8601 date, YYYY-MM-DD)
104
- on_no_match → create new anchor:
105
- concept = FIX task title stripped of '[FIX] ' prefix, truncated to 50 chars
106
- source_tags = FIX task tags (array)
107
- incompleteness = 0.3
108
- fix_cycle_count = 1
109
- last_touched = today (ISO8601 date)
110
- write_back:
111
- update anchors[] with the matched/new anchor
112
- session_count = session_count + 1
113
- last_updated = ISO8601 datetime now
114
- preserve personality_seed unchanged
115
- on IO error / file lock → skip silently, do NOT abort fix_loop
116
- 4_preserve_original: |
117
- Keep the original task open and link the FIX task and failed evidence.
118
- Creating a FIX task does not satisfy the original acceptance criteria.
119
- Only after the FIX is verified, rerun the original required checks and
120
- complete the original through the normal authorized completion lifecycle.
121
- 5_dispatch_fix: |
122
- ⚠️ 立即回到 Phase 8 dispatch FIX 任務,不可停在 backlog
123
- → Phase 8(FIX) → dispatch → Phase 9(FIX) → Forseti 再驗
124
- Only verified tasks may proceed to authorized post-complete archive + git.
125
- escalate_when: |
126
- fix_round >= max_fix_rounds:
127
- ❌ 自動修復已達上限({max_fix_rounds} 輪)
128
- → 停止迴圈,升級給用戶
129
- 輸出:
130
- - 所有 verdict JSON 路徑
131
- - 每輪失敗摘要
132
- - 建議:人工介入或換策略
133
-
134
- # ─────────────────────────────────────────────────────────────────
135
- # Minimal Verification — For tasks that skip Forseti
136
- # ─────────────────────────────────────────────────────────────────
137
-
138
- minimal_verification:
139
- description: |
140
- When task does NOT meet Forseti trigger threshold, run applicable local
141
- checks from the owning package and task acceptance criteria. Compilation,
142
- typechecking, lint and grep do not prove changed runtime behavior.
143
- Record concrete commands, working directories, exit codes and evidence.
144
- If acceptance requires a service or E2E check, it remains required even on
145
- this path; do not waive it because the task was routed to minimal verification.
146
- when: "Forseti trigger_threshold NOT met"
147
- checks:
148
- rust_project: |
149
- if scope_paths contain .rs files:
150
- Resolve the owning Cargo.toml within PROJECT_PATH; run cargo check with
151
- that manifest and relevant tests covering changed behavior.
152
- typescript_project: |
153
- if scope_paths contain .ts or .tsx files:
154
- Resolve the owning package and tsconfig; run its installed typechecker
155
- and relevant behavioral tests. Do not assume the repository root owns
156
- the code or that typechecking alone meets behavioral acceptance criteria.
157
- javascript_project: |
158
- if scope_paths contain .js, .jsx, .mjs or .cjs files:
159
- Resolve the owning package.json, test configuration and concrete tests.
160
- Run the existing configured test runner with the relevant test targets.
161
- For node:test suites, use node --test <explicit test paths>; for Jest,
162
- Vitest or another runner use the installed project runner and its config.
163
- Do not invent an npm test script, install packages automatically, or use
164
- syntax-only checks as behavioral proof. Missing runner/tests → UNVERIFIED
165
- until equivalent executable acceptance evidence exists or tests are added.
166
- documentation_only: |
167
- Only when scope contains no executable code or behavior-bearing config:
168
- Check diff/scope, referenced paths and links, and document consistency.
169
- For YAML policy/config changes, parse the file and check relevant contract
170
- invariants; text checks verify policy consistency, not agent compliance.
171
- Behavior-bearing configuration additionally needs applicable behavior checks.
172
- fallback: |
173
- For other executable artifacts, select the owning toolchain's relevant checks.
174
- If required checks cannot be identified or run, record UNVERIFIED, not PASS.
175
- For mixed scopes, run every applicable branch; do not stop at the first match.
176
- Only optional/not-applicable checks may be skipped, with a recorded reason.
177
- on_FAIL: "→ 同 on_failure 流程(retry / create_fix / escalate)"
178
- on_UNVERIFIED: "Keep task open; report missing required evidence, supplement checks or restore prerequisites; no on_success/complete/archive/merge."
179
- on_PASS: "Only when every required acceptance criterion has passing evidence → on_success → authorized Phase 10."
180
-
181
- # ─────────────────────────────────────────────────────────────────
182
- # Standard Verification Actions
183
- # ─────────────────────────────────────────────────────────────────
184
-
185
- actions:
186
- - "檔案變更符合任務 scope_paths?"
187
- - "git commit 存在?(git log --oneline | grep TASK_XXX)"
188
- - "acceptance_criteria 全部滿足?"
189
- - "交叉比對原始碼 — 不盲信 agent 輸出"
190
- - "kenaz_lsp_callers — 分析變更的影響範圍"
191
- - "無引入 regression?"
192
- - |
193
- DIFF-ISOLATION verification (derived from VC33 session insight):
194
- Run `git diff {BASE_COMMIT}...{TASK_BRANCH} -- {file_path}` per scope_path file
195
- to isolate agent's actual changes from file noise. Use this BEFORE full-file
196
- re-read — diff-based verification is cheaper (O(Δ) vs O(file)) and catches
197
- silent deletions/reverts that grep alone misses. If diff for any requirement-
198
- named file is empty when it should not be → INCOMPLETE → create FIX task.
199
- - |
200
- phantom reconciliation check(若任務 technical_notes 含 phantom_ids):
201
- 1. parse phantom_ids from task YAML technical_notes
202
- 2. for each phantom_id:
203
- check: kenaz_lsp_symbols / Grep 該 symbol 是否已出現在預定檔案
204
- reconciled: 已出現在預定位置
205
- pending: 找不到 → ⚠️ agent 可能未在預定位置寫入代碼
206
- 3. 無 phantom_ids → skipped
207
- note: post-complete.js 已觸發 reindex,reconcile_phantom 應已自動執行
208
-
209
- cognitive_checkpoint:
210
- rule: "驗證完成後,必須判斷是否需要 inscribe。不可跳過此判斷"
211
- check: |
212
- - bug 根因 non-obvious? → inscribe type=fix
213
- - 隱藏 side-effect 或使用限制? → inscribe type=risk
214
- - 非顯然的設計決策? → inscribe type=decision
215
- - 跨 3+ symbol 的概念? → forge Sigil
216
- - 以上都沒有 → 跳過,不為了寫而寫
217
- verify_runes: "agent 寫了 rune → 交叉比對原始碼;不準確的 rune 用 supersedes 取代"
218
- mem0_protocol:
219
- description: "Mem0-style ADD/MERGE/DELETE protocol for session insights (TASK_940)"
220
- trigger: "Before inscribing any rune, execute this protocol"
221
-
222
- # ─── Step 0: Rule-level recall (ansuz_rules.yaml) ───
223
- # Before inscribing a rune, check if a behavioral RULE already covers this insight.
224
- # If a rule exists, rune inscription is redundant — skip or reference the rule instead.
225
- rule_recall:
226
- file: "{PROJECT_PATH}/.kenaz/specialist/ansuz_rules.yaml"
227
- steps:
228
- - |
229
- 0a. READ ansuz_rules.yaml → parse rules[] array
230
- - |
231
- 0b. For each rule where status is "active" or "proposed":
232
- Compare semantically: does this rule already cover the insight you are about to inscribe?
233
- - YES (>70% overlap with active rule) → SKIP inscription entirely.
234
- The rule is authoritative; a rune would be redundant.
235
- - YES (>70% overlap with proposed rule) → SKIP inscription.
236
- Instead, note the rule_id for Phase 11 sessions_observed increment.
237
- - PARTIAL overlap → Proceed to rune inscription, but reference the rule_id
238
- in the rune's related_rune_ids or context field.
239
- - NO overlap → Proceed to standard rune recall (Step 1 below).
240
- - |
241
- 0c. If ansuz_rules.yaml is unreadable or missing → skip rule recall,
242
- proceed to standard rune recall. Do NOT abort.
243
-
244
- # ─── Steps 1-6: Rune-level recall and inscription ───
245
- steps:
246
- - |
247
- 1. RECALL: synapse_recall(query=<insight topic>, limit=5, projectPath=PROJECT_PATH)
248
- Find existing runes on the same symbol or concept.
249
- - |
250
- 2. EVALUATE overlap:
251
- - If existing rune covers >70% of the same insight → MERGE
252
- - If existing rune contradicts the new insight → FLAG for review
253
- - If no relevant runes exist → ADD as new
254
- - If new evidence invalidates an existing rune → DELETE (supersede)
255
- - |
256
- 3. MERGE: synapse_inscribe(... supersedes=<old_rune_id>, related_rune_ids=[<old_rune_id>])
257
- Combine content from both runes. Increment confidence if corroborated.
258
- - |
259
- 4. FLAG contradiction: inscribe new rune with type=risk, content includes
260
- "CONTRADICTION with rune {old_rune_id}: {description}".
261
- Do NOT auto-delete the old rune — let deliberate review decide.
262
- - |
263
- 5. ADD: synapse_inscribe(... confidence >= 0.6) as normal.
264
- - |
265
- 6. DELETE: synapse_inscribe(... supersedes=<invalidated_rune_id>,
266
- content="INVALIDATED: {reason}"). The old rune is excluded from future recall.
267
- rules:
268
- - "Always recall before inscribing — duplicates waste recall bandwidth"
269
- - "Overlap is semantic, not literal — two runes about the same concept count even if worded differently"
270
- - "Rule-level recall (Step 0) takes precedence — if a rule covers the insight, do not create a redundant rune"
271
- - "MEM-LANG-001 applies — all inscribe content in English"
272
- phantom_reconciled: |
273
- parse phantom_ids from task YAML technical_notes
274
- for each phantom_id:
275
- check: kenaz_lsp_symbols / Grep for the symbol at the intended file
276
- reconciled: symbol present at intended location → ✅ verified
277
- pending: symbol not found → ⚠️ agent may not have written code at intended location
278
- no phantom_ids: skipped
279
-
280
- self_reflection_detection:
281
- description: "Detect moments during task execution that warrant a self-model update in Phase 11"
282
- rule: "Only flag when trigger is concrete and evidenced — do not flag speculatively"
283
- triggers:
284
- user_correction:
285
- detect: "User explicitly corrects agent behavior, judgment, or output during this session"
286
- example: "User says 'no, don't do that', overrides agent's decision, or points out a systematic mistake"
287
- flag_type: "user_correction"
288
- decision_surprise:
289
- detect: "Outcome of an agent decision differs significantly from the agent's own expectation"
290
- example: "Agent predicted approach X would work; actual result revealed a flawed assumption"
291
- flag_type: "decision_surprise"
292
- principle_conflict:
293
- detect: "Agent action contradicted a stated principle or known tendency in its own self-model"
294
- example: "Agent skipped cognitive checkpoint despite B-001 naming exactly this blind spot"
295
- flag_type: "principle_conflict"
296
- first_time_encounter:
297
- detect: "Agent encounters a pattern, constraint, or domain it has not handled before"
298
- example: "New cross-language coupling pattern not previously observed in any tendency entry"
299
- flag_type: "first_time_encounter"
300
- new_observation_category:
301
- detect: "Agent observes a behavioral pattern about itself that does not fit any existing tendencies[], blind_spots[], or growth_edges[] category"
302
- example: "Agent notices it consistently front-loads verification steps before writing code — this is a distinct pattern not yet in tendencies"
303
- flag_type: "new_observation_category"
304
- output:
305
- variable: "self_reflection_flags"
306
- schema: "list of {type: string, description: string, evidence: string}"
307
- note: "Empty list if no triggers fire. Non-empty list is passed to Phase 11 self_reflection_protocol."
308
-
309
- outcome_comparison:
310
- description: |
311
- After verification passes, compare Phase 3 predictions with actual outcomes.
312
- Computes surprise_score and valence, updates cumulative accuracy stats,
313
- and injects high-surprise events as outcome neurons into Thalamus.
314
- trigger: "on_success — after task verification passes"
315
- note: "Actual comparison logic lives in post-complete.js (compareOutcomePrediction). Phase 9 triggers it conceptually; post-complete executes it."
316
- metrics:
317
- surprise_score: |
318
- Normalized Jaccard distance between predicted files and actual files:
319
- intersection = predicted ∩ actual
320
- union = predicted ∪ actual
321
- surprise_score = 1 - (|intersection| / |union|)
322
- Range: 0.0 (perfect prediction) to 1.0 (complete miss)
323
- valence: |
324
- positive: actual outcome succeeded and surprise_score < 0.3
325
- negative: actual outcome failed OR surprise_score >= 0.5
326
- neutral: otherwise
327
- accuracy_tracking:
328
- file: "{PROJECT_PATH}/.kenaz/specialist/ansuz_accuracy.json"
329
- schema: |
330
- {
331
- "total_predictions": N,
332
- "accurate_predictions": N, // surprise_score < 0.3
333
- "running_accuracy": 0.0-1.0, // accurate / total
334
- "last_updated": "ISO-8601",
335
- "recent_surprises": [ // last 10 high-surprise events
336
- { "task_id": "TASK_XXX", "surprise_score": 0.8, "valence": "negative", "timestamp": "ISO-8601" }
337
- ]
338
- }
339
- prevention_analysis:
340
- when: "任務 P0/P1,或 fix/regression,或核心路徑"
341
- action: "懶載入 modules/prevention.yaml — 三級預防分析"
342
- skip_when: "P2/P3 新功能、文件/設計任務、typo/style 修復"
343
-
344
- loop_guard:
345
- when: "同一 source/feature_id 的 FIX 任務累計 >= 2 次"
346
- action: "懶載入 modules/loop_guard.yaml — 強制 Socratic Thinking,暫停 dispatch"
347
-
348
- on_success:
349
- - "node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] complete TASK_XXX"
350
- - |
351
- anchor_decay (graceful degradation):
352
- file: {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json
353
- if file not found → skip silently
354
- match_logic: task.tags ∩ anchor.source_tags — OR logic (any tag overlap = match)
355
- same matching strategy as FIX path (fix_loop.3_update_anchor)
356
- note: anchor.source_tags must contain domain-specific tags only — see fix_loop.3_update_anchor note.
357
- decay: incompleteness = max(anchor.incompleteness - 0.05, 0.0)
358
- write_back:
359
- update matched anchors[]
360
- session_count = session_count + 1
361
- last_updated = ISO8601 datetime now
362
- preserve personality_seed unchanged
363
- on IO error / file lock → skip silently, do NOT abort on_success
364
- - "→ 觸發 prevention_analysis(如符合條件)→ Phase 10"
365
-
366
- on_failure:
367
- analysis:
368
- - "讀 log 找失敗根因"
369
- - "判斷:可重試 | 需補 context | 需建 FIX | 需換策略 | 需升級"
370
- actions:
371
- retry: "重派同任務 — 補充失敗原因和缺失 context"
372
- create_fix_and_dispatch: |
373
- 1. task-api.js create 建立 [FIX] 任務(tags: fix,verification)
374
- 2. Keep the original task open; link the FIX task and failed evidence.
375
- 3. Do not complete/archive the original until the FIX passes and the original
376
- required acceptance checks are rerun successfully through the authorized lifecycle.
377
- 4. ⚠️ 立即回到 Phase 8 dispatch FIX — 不可停在 backlog
378
- change_strategy: "換陣型(如 unit → solo 增加分析深度)"
379
- escalate: "升級給用戶 — 附上已嘗試的方法和失敗原因"
380
- block: "node {CORE}/.collaboration/core/task-api.js --project-path={PROJECT_PATH} move TASK_XXX blocked"
381
- critical_rule: "⚠️ 建完 FIX 後「必須」立即 dispatch。Phase 9 → 建 FIX → Phase 8(FIX) → dispatch → Phase 9(FIX) → ..."
382
-
383
- cli_format:
384
- success: |
385
- ✅ TASK_XXX 驗證通過
386
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
387
- 變更: {檔案清單}
388
- Commit: {commit hash}
389
- 驗收: {N}/{N} 通過
390
- Forseti: {PASS|PARTIAL|SKIPPED}
391
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
392
- failure: |
393
- ❌ TASK_XXX 驗證失敗
394
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
395
- 根因: {分析結果}
396
- Forseti: {FAIL — level_results 摘要}
397
- 行動: {重派/建FIX並dispatch/換策略/升級}
398
- FIX Round: {N}/{max_fix_rounds}
399
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
400
- unverified: |
401
- ⚠️ TASK_XXX 尚未驗證完成 (UNVERIFIED)
402
- Required checks missing: {checks_and_reasons}
403
- Raw Forseti verdict: {verdict_or_not_run}
404
- Next action: {restore_prerequisite_or_supplement_checks}
405
- Task remains open; this is not a successful completion.
406
-
407
- interaction:
408
- type: "auto"
409
- instruction: "自動執行,結果併入 Phase 11。若建 FIX 任務,必須迴圈回 Phase 8 dispatch,不可停在 backlog"
410
-
411
- checklist:
412
- - "acceptance_criteria 全部驗證(逐條核對)"
413
- - "git commit 存在且對應 TASK_XXX"
414
- - "forseti_verification 觸發判斷已完成(觸發 Forseti 或執行 minimal_verification)"
415
- - "cognitive_checkpoint 已判斷(inscribe 或明確跳過)"
416
-
417
- context_hints:
418
- input_from: "phase_8"
419
- key_data: ["dispatched_tasks", "expected_branches"]
420
-
421
- inject:
422
- rules:
423
- - synapse-cognitive-fusion.yaml
424
- specialist: []
@@ -1,92 +0,0 @@
1
- index_version: "1.0"
2
- series: "Bifrost Hook Parity Task Series"
3
- produced_by: TASK_1234
4
- architecture_source: ".formation/bifrost/CGDD_hook_lifecycle.js"
5
-
6
- # ─────────────────────────────────────────────────────────────────
7
- # CRITICAL: CGDD task number labels are WRONG
8
- # ─────────────────────────────────────────────────────────────────
9
- cgdd_number_mismatch: >
10
- CGDD_hook_lifecycle.js was written before backlog was finalized. The task numbers
11
- inside CGDD (TASK_1228 = SessionStart, TASK_1229 = UserPromptSubmit, etc.) do NOT
12
- match actual backlog assignments. Use this index, not the CGDD task labels.
13
-
14
- # ─────────────────────────────────────────────────────────────────
15
- # TASK BRIEFS
16
- # ─────────────────────────────────────────────────────────────────
17
- tasks:
18
- TASK_1228:
19
- brief: ".specialist/Ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml"
20
- event: UserPromptSubmit
21
- file: ".formation/bifrost/session.js"
22
- creates: "dispatchBifrostHook() + normalizeUserPromptSubmit()"
23
- parallel_with: [TASK_1229]
24
- blocks: [TASK_1230, TASK_1231]
25
-
26
- TASK_1229:
27
- brief: ".specialist/Ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml"
28
- events: [PreToolUse, PostToolUse]
29
- file: ".formation/bifrost/openai/relay.js"
30
- creates: "relay.js dispatchBifrostHook() + capturedThreadId + normalizeToolEvent() + 8 call sites"
31
- parallel_with: [TASK_1228, TASK_1230]
32
- blocks: [TASK_1231]
33
-
34
- TASK_1230:
35
- brief: ".specialist/Ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml"
36
- events: [SessionStart, Stop]
37
- file: ".formation/bifrost/session.js"
38
- creates: "normalizeSessionStart() + normalizeStop() + sessionStartedAt + resultCapture + stdout tee"
39
- prerequisite: TASK_1228 # needs dispatchBifrostHook to exist
40
- parallel_with: [TASK_1229]
41
- blocks: [TASK_1231]
42
-
43
- TASK_1231:
44
- brief: ".specialist/Ansuz/specs/brief_TASK_1231_verification.yaml"
45
- role: verification_gate
46
- produces: ".formation/bifrost/VERIFICATION_hook_parity.md"
47
- prerequisites: [TASK_1228, TASK_1229, TASK_1230]
48
- no_code_changes: true
49
-
50
- # ─────────────────────────────────────────────────────────────────
51
- # RECOMMENDED DISPATCH ORDER
52
- # ─────────────────────────────────────────────────────────────────
53
- dispatch_order:
54
- wave_1:
55
- tasks: [TASK_1228, TASK_1229]
56
- note: "TASK_1228 and TASK_1229 touch different files — safe to dispatch in parallel"
57
- wave_2:
58
- tasks: [TASK_1230]
59
- note: "Depends on TASK_1228 (dispatchBifrostHook must exist in session.js)"
60
- wave_3:
61
- tasks: [TASK_1231]
62
- note: "Verification gate — all three implementation tasks must be done first"
63
-
64
- # ─────────────────────────────────────────────────────────────────
65
- # EVENT → FILE OWNERSHIP QUICK REFERENCE
66
- # ─────────────────────────────────────────────────────────────────
67
- event_ownership:
68
- SessionStart:
69
- dispatcher: ".formation/bifrost/session.js::normalizeSessionStart()"
70
- consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
71
- UserPromptSubmit:
72
- dispatcher: ".formation/bifrost/session.js::normalizeUserPromptSubmit()"
73
- consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → maybeEmitReminder() [EXISTING]"
74
- PreToolUse:
75
- dispatcher: ".formation/bifrost/openai/relay.js::normalizeToolEvent()"
76
- consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
77
- PostToolUse:
78
- dispatcher: ".formation/bifrost/openai/relay.js::normalizeToolEvent()"
79
- consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → createLinked/syncStatus [EXISTING]"
80
- Stop:
81
- dispatcher: ".formation/bifrost/session.js::normalizeStop()"
82
- consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
83
-
84
- # ─────────────────────────────────────────────────────────────────
85
- # SHARED UTILITY
86
- # ─────────────────────────────────────────────────────────────────
87
- shared_utility:
88
- dispatchBifrostHook:
89
- exists_in: [session.js, relay.js]
90
- note: "Two separate implementations — same pattern, different require paths. session.js version created by TASK_1228. relay.js version created by TASK_1229."
91
- session_require: "path.resolve(__dirname, '../..', '.specialist/tools/task-bridge.js')"
92
- relay_require: "path.resolve(__dirname, '../../..', '.specialist/tools/task-bridge.js')"