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,437 +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_1816 — Bifrost/codex 派工歷來都跑在預設 reasoning effort(低):整條鏈只傳 -m MODEL,零處傳 effort,manifest 也沒有這個維度
35
- Branch: main
36
- Scope: .formation/bifrost/openai/models.json, .formation/bifrost/openai/relay.js, .formation/bifrost/launch.js, .formation/tools/runner.js
37
- Principles: 完美達成>一切|禁止盲寫|露出問題|結構>估計
38
-
39
- ## Code Minimalism — 最省決策階梯 (YAGNI)
40
- 寫任何代碼前,停在第一個成立的階:
41
- 1. 這需要存在嗎?不需要 → 跳過(不臆測未來需求)
42
- 2. stdlib / 語言內建有嗎?→ 用它
43
- 3. 平台 / 框架原生功能?→ 用它,別自己造
44
- 4. 專案已裝依賴有嗎?→ 重用,別加新依賴
45
- 5. 一行能解嗎?→ 一行
46
- 6. 否則:最小可行實作
47
- 規則:不為單一實作建抽象介面;刪除優於新增;最短 diff。
48
- 刻意簡化用 `// thrift:` 標記上限與升級路徑(例:`// thrift: 同步即可,QPS>100 再改 async`)。
49
- 不可簡化掉(lazy ≠ negligent):input validation、error handling、security、accessibility、用戶明確要求的功能。
50
-
51
- ## File Budget & SRP (ARCH-001)
52
- 單檔行數:warn=2000 / hard=4000。接近 warn 就停筆,優先 extraction 而非累加。
53
- 拆分模式:module / hooks/ / components/ / types.ts(依 CODE-STR-002)。
54
- verify 步驟跑:`node dev/scripts/check-file-size.js --staged` — 有 BLOCK 先拆再提交。
55
-
56
- ## Known Failures (避免重蹈覆轍)
57
-
58
- - 🟡 **FAIL-005: 背景 Agent 無寫入權限 🤖** — - **ID**: FAIL-005 - **分類**: agent-execution(Agent 執行失敗) - **嚴重程度**: Critical 🔴
59
- - 🟠 **REVERT — TASK_1427 health regression (delta: -12.9)** — Task TASK_1427 was reverted by Heimdall guardian health check.
60
- - 🟠 **Ansuz 跳過 Phase 9 cognitive checkpoint — 多任務並行時遺忘認知融合** — Ansuz 在 Phase 9 驗證通過後直接 complete + post-complete, 跳過 cognitive_checkpoint(rune/sigil 評估)。 三個任務全部未寫入任何 rune 或 sigil,直到用戶指出才補做。
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: "models relay launch runner Bifrost codex reasoning effort" — 3 runes, 1 sigils.
79
-
80
- ### Runes (cross-project knowledge)
81
- - **decision** [Kenaz] `unknown`: Design decision: When relay tunnel requests fail JWT validation on x-kenaz-tunnel-token, the correct fix is NOT to modify relay to pass JWT. Instead, refactor handle_tunnel_request to trust x-kenaz-source: tunnel header alone. Reason: relay has already completed upstream Google OAuth; injecting tunnel token was the relay's way to prove ownership of the tunnel. Since x-kenaz-source is unforgeable (localhost-only), it is sufficient and more elegant than JWT validation. Fixes: modify auth.rs handle_tunnel_request to skip validate_tunnel_token when x-kenaz-source == 'tunnel'.
82
- - **decision** [Kenaz] `unknown`: TASK_763: All Cortex callers (extractor.rs, hints.rs x4, sync.rs, meta_graph.rs, cortex.rs MCP x3+is_lock_error) migrated from db_pool::with_connection to connection::with_connection. db_pool.rs public functions are now #[deprecated]. All synapse module files (index.rs, status.rs, schema.rs) were already using super::connection:: before this task — db_pool.rs has ZERO active callers after this migration. db_pool.rs can be fully removed in a follow-up task. The connection.rs POOL (MAX_DB_POOL_SIZE=2) is now the single process-wide KuzuDB Database pool. Reason: dual-pool (db_pool POOL + connection POOL each capped at 2) could open 4 Database instances simultaneously, causing ACCESS_VIOLATION crash on Windows.
83
- - **decision** [Kenaz] `unknown`: cortex_sync now also runs cross-project risk proposal scan (TASK_592). Integrated into cortex_sync rather than a new MCP tool because definitions.rs was out of task scope. Calls hints::scan_cross_project_risks() in spawn_blocking and creates proposals via manager::create_proposal_sync() (sync I/O, safe in blocking context). Scan results returned in "cross_project_scan" field. Intended for scheduled trigger only — commit trigger should skip calling cortex_sync for this reason.
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
-
88
- ## Behavior
89
- - 先讀再改,理解現有結構後才動手
90
- - 遵循 codebase 現有風格,不引入新慣例
91
- - 只改必要的部分,不順便重構
92
- - 發現超出範圍的問題,在摘要中回報,不擅自處理
93
- - 如有測試,執行確認不破壞現有功能
94
-
95
- ## Task
96
- **Task ID**: TASK_1816
97
- **Title**: Bifrost/codex 派工歷來都跑在預設 reasoning effort(低):整條鏈只傳 -m MODEL,零處傳 effort,manifest 也沒有這個維度
98
- **Task File**: C:\Users\user\Documents\GitHub\KenazAI\.kenaz\tasks\active\TASK_1816_bifrost_codex_派工歷來都跑在預設_reasoning_effort_xyz951610.yaml
99
- **Description**: 使用者回報(2026-07-26):codex 的 GPT 模型需要連同 reasoning effort 一起指定,例如「GPT-5.6 Sol high」。不指定不會失敗,但會落到 low。
100
-
101
- 已查證(grep,排除 node_modules/logs/target):
102
- - `reasoning_effort` / `model_reasoning` 在整個 repo 零匹配
103
- - 整條 Bifrost 鏈唯一傳給 codex 的模型資訊就是 `-m MODEL`:`.formation/bifrost/launch.js:295`、`.formation/bifrost/openai/relay.js:389` 與 `:394`
104
- - `.formation/bifrost/openai/models.json` 只宣告 `""`(codex 預設)與 `gpt-5.6-sol` 兩個條目,結構裡沒有 effort 這個維度
105
- - `~/.codex/config.toml` 的使用者層預設是 `model = "gpt-5.4"`,且無任何 effort 設定
106
-
107
- 因此推論(前提由使用者提供、鏈路事實已查證):本 repo 歷來每一次 codex 派工都跑在預設 effort,也就是 low。
108
-
109
- 這是靜默品質降級,不是故障。不會崩、不報錯、dispatch 回報成功、日誌看起來正常,只是 agent 的推理強度是最低檔。屬於 Huginn 目前排第一的那條 advisory 所描述的「silent success」類別。
110
-
111
- 版本漂移警訊,順帶處理:models.json 對 gpt-5.6-sol 的備註寫「Verified 2026-07-25: codex exec -m gpt-5.6-sol accepted by codex CLI (TASK_1774 repro control group)」,但那次驗證是在 codex-cli 0.144.1 上做的(rune 記載該版本的 file_change 事件行為),本機現在是 0.145.0。manifest 的「已驗證」聲明沒有綁版本,隨 CLI 升級會靜默過期。
112
-
113
- 機制已由主線程量測完畢(2026-07-26),不必重驗,直接照用:
114
-
115
- 正確 key 是 `model_reasoning_effort`,透過 `-c` 傳遞。證據是 codex exec 自己印的 session header:
116
- codex exec -m gpt-5.6-sol -c model_reasoning_effort="high" --skip-git-repo-check "Reply with exactly: ok"
117
- -> header 顯示 `model: gpt-5.6-sol` 與 `reasoning effort: high`
118
- 控制組(不帶 -c,其餘相同)
119
- -> header 顯示 `reasoning effort: none`
120
-
121
- 兩項附帶事實:
122
- - `gpt-5.6-sol` 在 codex-cli 0.145.0 上仍被接受(manifest 原本只驗證過 0.144.1)
123
- - 未設定時 header 自報 none。使用者的認知是 low。兩者都不是 high/medium,對本卡的結論沒有差別,但筆記中不要把 none 寫成 low,也不要斷言 none 的語義究竟是「不推理」還是「未指定、由伺服器決定」—— 那一點未經量測。
124
-
125
- 三種無效的探測方式,已試過,不要重蹈:
126
- (1) `codex --strict-config -c <key>=<value> exec --help` — 正確 key 與亂打的 banana_setting 都回 exit 0
127
- (2) `codex doctor --strict-config` — doctor 不接受該旗標
128
- (3) `codex doctor --json` — 吐的是固定診斷報告而非解析後的完整設定,亂打的 key 不會出現也不會報錯
129
- 能區分有效與無效的只有「實跑 codex exec 並讀它自報的 header」。任何探測都必須帶控制組。
130
-
131
- 使用者明確指定的產出(2026-07-26):
132
- 在模型選單中提供 `GPT-5.6 SOL High` 與 `GPT-5.6 SOL Medium` 兩個可選項,讓使用者直接選擇,而不是要求他們自己去設定 effort。
133
- **Priority**: P2
134
- **Complexity**: medium
135
- **Role**: developer
136
-
137
- **Scope Paths** (你只能操作這些路徑):
138
- - .formation/bifrost/openai/models.json
139
- - .formation/bifrost/openai/relay.js
140
- - .formation/bifrost/launch.js
141
- - .formation/tools/runner.js
142
-
143
- **Requirements**:
144
- - 在 models.json 新增使用者指定的兩個可選項:GPT-5.6 SOL High 與 GPT-5.6 SOL Medium,各自對應 model=gpt-5.6-sol 加上 effort=high / medium。既有的 gpt-5.6-sol 與空字串條目保留,不得移除
145
- - 機制已量測完成(key=model_reasoning_effort,經 -c 傳遞,見 description),直接照用,不要重新探測
146
- - 把 effort 提升成 models.json 清單的一個維度,讓「模型 + effort」成為可選項而非隱形預設
147
- - relay.js 與 launch.js 在 spawn codex 時將 effort 連同模型一併傳遞
148
- - 選定一個明確的專案預設 effort 並在筆記中說明理由;不得繼續依賴 codex 的隱形預設
149
- - 實際生效的 effort 必須在派工日誌或 stdout 中可見 —— 這整張卡的根因就是它不可見
150
- - 修正 models.json 中 gpt-5.6-sol 的驗證備註,讓「已驗證」綁定到具體 codex-cli 版本,避免隨 CLI 升級靜默過期
151
-
152
- **Acceptance Criteria**:
153
- - dashboard 的模型選單實際列出 GPT-5.6 SOL High 與 GPT-5.6 SOL Medium 兩個新選項(以 /api/dashboard/settings/bifrost-models 的實際回應為證,不是只看檔案內容)
154
- - [object Object]
155
- - 新增條目後,既有的 model→adapter 查找仍能對每個條目解析出唯一 adapter,無歧義
156
- - models.json 可表達 effort,且既有條目在新結構下仍可解析(向後相容)
157
- - 實際 spawn 的 codex 命令列含 effort 參數,以實跑的派工指令列或日誌為證
158
- - 未指定 effort 時的行為是明確的專案預設,而非靜默落到 codex 預設
159
- - 生效的 effort 在派工輸出中可見
160
- - node --check 通過(relay.js / launch.js / runner.js 凡有改動者)
161
- - models.json 的驗證備註含具體 codex-cli 版本號
162
-
163
- **Technical Notes**:
164
- - 「同一個 model id、不同 effort」是本卡最容易踩壞的地方。GPT-5.6 SOL High 與 Medium 若都用 id "gpt-5.6-sol",manifest 的 by-id 查找就變成歧義,直接違反 sigil_2a3f3b75 的不變量(模型必須能被 JS 查找與 Rust resolve_model_adapter 一致解析)。條目的 id 必須唯一;送給 codex 的 -m 值則必須仍是真實模型 id gpt-5.6-sol。也就是說「選單條目識別碼」與「傳給 CLI 的模型名」要拆成兩個概念,不能再假設兩者相同。這個假設目前散落在 JS 查找與 Rust 兩側,改動前先確認兩側都跟著改。
165
- - 主線程已證實三種無效的探測方式(見 description)。任何後續探測都必須附控制組 —— 沒有控制組的 exit 0 不構成證據。
166
- - codex 相關入口有兩條且必須同步:.formation/bifrost/launch.js:295(互動式)與 .formation/bifrost/openai/relay.js:389 與 :394(派工式,兩處)。只改其中一條會造成互動與派工行為静默分歧 —— 與 rune_704eeb83 記載的 SUBAGENT_PREFIX 雙胞胎問題同一類型。
167
- - sigil_2a3f3b75 「Bifrost Adapter Resolution Chain」描述了完整的 adapter 解析鏈路(dashboard-models.json -> kenaz.rs -> headless.js -> runner.js -> relay.js),並載明一條不變量:模型必須在 adapter manifest 中宣告,否則 JS 查找與 Rust resolve_model_adapter 會不一致。effort 若要進入 manifest,需確認這兩側都能正確處理新結構。
168
- - 使用者預設:~/.codex/config.toml 目前是 model = "gpt-5.4"。專案側傳 -m 會覆寫它,但 effort 若走 config 覆寫路徑,需確認與使用者自己的 config.toml 不互相干擾。
169
- - Rust 側預期不需要改動,主線程已確認:dashboard_settings.rs 的 BifrostManifest 只反序列化 models[].id,用來把 model 對應到 adapter。只要新條目的 id 有宣告在 manifest 裡,Rust 就能解析出 adapter=openai。因此「id 與傳給 CLI 的模型名分離」這件事完全由 JS 側承擔(relay.js / launch.js / runner.js)。若實作過程發現非改 Rust 不可,停下來回報,不要在 worktree 裡跑 cargo。
170
- - 本卡純 JS/JSON,agent 可自行 node --check 與輕量測試;不需要也不得跑 Rust 建置。
171
-
172
- ## Workflow
173
- ### 認知 recall
174
- Note: 跳過此步 = 可能重複踩坑。Synapse 是預設搜尋工具,Grep 只用於精確字串匹配。
175
- - 用 ToolSearch 確認 synapse MCP tools 可用
176
- - 對 scope_paths 涉及的 symbol 呼叫 synapse_recall,了解已知的 risk/decision/fix
177
- - 如有相關 rune,在執行時避免踩已知地雷或破壞已記錄的設計意圖
178
-
179
- ### 執行任務
180
- - 根據 scope_paths 讀取相關檔案
181
- - 根據 requirements 逐一實作
182
- - 根據 acceptance_criteria 驗證成果
183
-
184
- ### 提交變更
185
- Command: git add -A && (git commit --no-verify -m "[TASK_1816] task completed" || true)
186
- Note: worktree 內顯式提交確保 post-complete 只需 merge 不需 recovery commit。
187
- nothing to commit 時靜默跳過,不報錯。
188
- ⚠️ 若前一步有 Edit 但 git add -A 找不到變更,代表路徑用錯了(用了主 repo 路徑)。
189
- 修復方式:先 echo $PWD 確認 worktree root,再用 worktree 絕對路徑重新 Edit。
190
-
191
-
192
- ### 認知 inscribe
193
- Note: 你的發現會在對話結束時消失。Inscribe 讓未來 agent 不必重新探索。
194
- - 回顧工作中是否發現 non-obvious 的知識(bug 根因、隱藏約束、設計決策理由)
195
- - 如有,用 synapse_inscribe 記錄(confidence >= 0.6,英文撰寫)
196
- - 如發現 3+ symbol 構成未命名的概念,考慮用 synapse_forge 建立 Sigil
197
- - inscribe 後,用 synapse_rune_conflicts({ scope: '<你改的檔案路徑>' }) 檢查是否與已有 rune 矛盾
198
-
199
- ### 完成任務
200
- Note: ⚠️ Worktree mode — 禁止執行 task-api.js complete。主 thread 在 merge + 驗證後處理。
201
-
202
- ### On Blocked
203
- Command: node .collaboration/core/task-api.js move TASK_1816 blocked
204
- Note: 遇到無法解決的阻礙時,移至 blocked/ 並在摘要中說明原因
205
-
206
- ## Expected Output
207
- Primary: 程式碼變更或檔案修改
208
- Secondary: 完成摘要(做了什麼、改了哪些檔案、需要注意的事)
209
-
210
- ## Progress Note (mandatory — write before finishing)
211
-
212
- When you finish your work, **before your final response**, write a structured progress note to the chart.
213
-
214
- **Chart path (for reference only — do NOT use the Write tool on this path)**: `C:/Users/user/Documents/GitHub/KenazAI/.specialist/sessions/chart_TASK_1816.json`
215
-
216
- **Steps** (avoids cross-workspace permission prompts — works for same-repo and cross-project workers):
217
- 1. Write the note JSON to a **project-local** file inside your own workspace (safe — no cross-boundary write):
218
- File: `.kenaz/specialist/progress_note_TASK_1816.json`
219
- Use the Write tool to create that file (it is inside your cwd, so no permission prompt occurs).
220
- Ensure `.kenaz/specialist/` directory exists first (create it if absent).
221
-
222
- 2. Run the phase-gate note subcommand via **Bash** to merge it into the core chart:
223
- ```bash
224
- node "C:/Users/user/Documents/GitHub/KenazAI/.specialist/tools/phase-gate.js" note --task=TASK_1816 --from-file=".kenaz/specialist/progress_note_TASK_1816.json"
225
- ```
226
- *(The note file is in your local workspace — no cross-workspace Write; phase-gate note merges it into the core chart atomically)*
227
-
228
- **Progress Note Schema** (ONE entry to append to `progress_notes`):
229
-
230
- ```json
231
- {
232
- "task_id": "TASK_1816",
233
- "timestamp": "<ISO-8601>",
234
- "changes": { "files_modified": ["<paths>"], "files_created": [], "files_deleted": [], "total_lines": 0 },
235
- "acceptance_criteria": [
236
- { "criterion": "dashboard 的模型選單實際列出 GPT-5.6 SOL High 與 GPT-5.6 SOL Medium 兩個新選項(以 /api/dashboard/settings/bifrost-models 的實際回應為證,不是只看檔案內容)", "status": "pass|fail|partial", "evidence": "<brief>" },
237
- { "criterion": {"選定 High 後實跑一次派工,codex 自報的 session header 顯示 reasoning effort":"high;選 Medium 顯示 medium"}, "status": "pass|fail|partial", "evidence": "<brief>" },
238
- { "criterion": "新增條目後,既有的 model→adapter 查找仍能對每個條目解析出唯一 adapter,無歧義", "status": "pass|fail|partial", "evidence": "<brief>" },
239
- { "criterion": "models.json 可表達 effort,且既有條目在新結構下仍可解析(向後相容)", "status": "pass|fail|partial", "evidence": "<brief>" },
240
- { "criterion": "實際 spawn 的 codex 命令列含 effort 參數,以實跑的派工指令列或日誌為證", "status": "pass|fail|partial", "evidence": "<brief>" },
241
- { "criterion": "未指定 effort 時的行為是明確的專案預設,而非靜默落到 codex 預設", "status": "pass|fail|partial", "evidence": "<brief>" },
242
- { "criterion": "生效的 effort 在派工輸出中可見", "status": "pass|fail|partial", "evidence": "<brief>" },
243
- { "criterion": "node --check 通過(relay.js / launch.js / runner.js 凡有改動者)", "status": "pass|fail|partial", "evidence": "<brief>" },
244
- { "criterion": "models.json 的驗證備註含具體 codex-cli 版本號", "status": "pass|fail|partial", "evidence": "<brief>" },
245
- ],
246
- "findings": ["<non-obvious discoveries, traps, design decisions>"],
247
- "deviations": ["<anything done differently from the plan; REQUIRED to document a skipped inscribe>"],
248
- "cognitive_output": { "runes": ["<rune_ids -- [] if none>"], "sigils": ["<sigil_ids -- [] if none>"] }
249
- }
250
- ```
251
-
252
- **Rules**:
253
- - Evaluate EVERY Acceptance Criterion; use exact criterion text from the task.
254
- - `changes`: list ALL files touched (created/modified/deleted).
255
- - `findings`: non-obvious constraints, design traps, discoveries -- [] if none.
256
- - `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).
257
- - If the chart file does not exist, the note subcommand creates it automatically -- NEVER use the Write tool on the chart path directly.
258
-
259
-
260
- ## Before You Start — Cognitive Recall (mandatory verdict)
261
- Before writing any code, you MUST perform a cognitive recall (synapse_recall or synapse_pulse) on the symbols you are about to modify.
262
-
263
- Output exactly one of these lines before you start coding:
264
-
265
- ```
266
- 📡 Cognitive Recall: {one-line summary of what pulse/recall revealed}
267
- ```
268
-
269
- Or, if you consciously decide to skip:
270
-
271
- ```
272
- 📡 Cognitive Recall: SKIP — {reason why recall is unnecessary}
273
- ```
274
-
275
- You may SKIP, but you must say why. Silence is not allowed.
276
-
277
- ## Before You Finish — Don't Let Your Discovery Die
278
- You just spent real effort understanding this code. When this conversation ends, everything you learned disappears — unless you write it down.
279
-
280
- Ask yourself:
281
- - 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**
282
- - 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**
283
- - 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**
284
- - Did you realize that 3+ symbols are actually part of the same concept? → Give it a name. **synapse_forge** a Sigil.
285
-
286
- If none of these apply, skip. Don't write for the sake of writing.
287
-
288
- When you do write:
289
- - **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)
290
- - confidence >= 0.6 — if you're guessing, don't inscribe.
291
- - One good rune > three mediocre ones.
292
- - ⚠️ **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.
293
-
294
- Every rune you inscribe will be recalled by the next agent who touches the same symbol. Your insight becomes their head start.
295
-
296
- ## Cognitive Checkpoint (mandatory — include in your final output)
297
- At the very end of your response, output this block exactly:
298
-
299
- ```
300
- ## Cognitive Checkpoint
301
- Pre-code: RECALLED — {what you found} | or SKIP — {reason}
302
- Post-code: INSCRIBED — {rune_id} | or SKIP — {reason}
303
- ```
304
-
305
- Both verdicts are required. You may SKIP either, but you must state why.
306
-
307
-
308
- ## Cortex Context (Related Files Preview)
309
- The following files are in your scope. Review them before making changes.
310
-
311
- ### .formation/bifrost/openai/models.json (19 lines)
312
- ```
313
- {
314
- "adapter": "openai",
315
- "label": "Codex / OpenAI",
316
- "models": [
317
- {
318
- "id": "",
319
- "label": "Codex default",
320
- "tier": "balanced",
321
- "notes": "Empty id means no --model flag is passed to codex CLI — codex picks its own default model. Add concrete model ids (e.g. \"o3\") below only after verifying that the codex CLI accepts them."
322
- },
323
- {
324
- "id": "gpt-5.6-sol",
325
- "label": "GPT-5.6 Sol",
326
- "tier": "balanced",
327
- "notes": "Verified 2026-07-25: `codex exec -m gpt-5.6-sol` accepted by codex CLI (TASK_1774 repro control group)."
328
- }
329
- ]
330
- }
331
-
332
- ```
333
-
334
- ### .formation/bifrost/openai/relay.js (555 lines)
335
- ```
336
- #!/usr/bin/env node
337
- /**
338
- * Bifröst — OpenAI Codex Bridge
339
- *
340
- * Wraps OpenAI Codex CLI to produce Claude Code-compatible stream-json output.
341
- * Codex handles the agent loop + tool execution internally (just like Claude Code).
342
- * This relay only translates Codex's JSONL events → Formation's stream-json format.
343
- *
344
- * Usage (standalone test):
345
- * echo "prompt" | node relay.js [--model o4-mini] [--cwd /path]
346
- *
347
- * Usage (from runner.js — future integration):
348
- * Spawned as child process, same stdin/stdout protocol as claude CLI.
349
- *
350
- * Env:
351
- * CODEX_MODEL — model override (default: uses codex default)
352
- *
353
- * Codex JSONL events → Claude stream-json mapping:
354
- * thread.started → system/init
355
- * item.completed(message) → assistant/text
356
- * item.started(command) → assistant/tool_use(Bash)
357
- * item.completed(command) → (logged, not emitted as separate event)
358
- * turn.completed → result
359
- * error → result(is_error)
360
- */
361
-
362
- const { spawn } = require('child_process');
363
- const path = require('path');
364
- const { handleHookEvent } = require(path.resolve(__dirname, '../../..', '.specialist/tools/task-bridge.js'));
365
- const { createTranscriptTee, runStopConsolidation } = require(path.resolve(__dirname, '..', 'shared', 'consolidate.js'));
366
- ... (truncated)
367
- ```
368
-
369
- ### .formation/bifrost/launch.js (394 lines)
370
- ```
371
- #!/usr/bin/env node
372
- /**
373
- * Bifröst Launcher — Start an interactive Codex session with full Specialist injection
374
- *
375
- * Equivalent of opening Claude Code and typing /Ansuz — but for Codex.
376
- *
377
- * How it works:
378
- * 1. Assembles the full Specialist prompt via session.js (same as Claude Code)
379
- * 2. Writes it to AGENTS.override.md (Codex reads this with highest priority)
380
- * 3. Launches Codex in interactive mode (with MCP + AGENTS.override.md)
381
- * 4. On exit, cleans up AGENTS.override.md
382
- *
383
- * Usage:
384
- * node .formation/bifrost/launch.js --specialist Ansuz
385
- * node .formation/bifrost/launch.js --specialist Ansuz --model o3
386
- * node .formation/bifrost/launch.js # defaults to Ansuz
387
- *
388
- * Prerequisites:
389
- * - codex CLI installed and authenticated
390
- * - Dashboard running (for MCP/Synapse tools)
391
- * (MCP registration is handled automatically by setup-codex.js)
392
- */
393
-
394
- const { execSync, spawn } = require('child_process');
395
- const http = require('http');
396
- const path = require('path');
397
- const fs = require('fs');
398
- const { renderCodexAntiDrift } = require('./shared/codex-injection');
399
- const { setup: setupCodex, ensureProjectMcpServers, probeProjectMcpServers } = require('./setup-codex');
400
- const { fetchBootContext } = require('./shared/boot-context');
401
- ... (truncated)
402
- ```
403
-
404
- ### .formation/tools/runner.js (1244 lines)
405
- ```
406
- /**
407
- * Formation Runner — with Thalamus-aware activity timeout
408
- * 統一的 Claude subagent 進程啟動器
409
- *
410
- * 4 種啟動方式:
411
- * runSingle — 一般模式(dispatch 用,格式化輸出)
412
- * runHeadless — 無頭模式(prompt 壓縮,原始輸出)
413
- * runLegionLead — Agent Teams 模式(teammate-mode + Task 工具)
414
- * runParallel — Squad 並行啟動
415
- */
416
-
417
- const fs = require('fs');
418
- const path = require('path');
419
- const { spawn, execSync } = require('child_process');
420
- const { ROOT, getClaudeEnv, detectClaudeCmd } = require('./utils');
421
- const { createLogWriter, formatEntry } = require('./logger');
422
- // TASK_1530: shared salvage helper (also used by post-complete/git-merge.js) so the
423
- // worktree-leak detector can recover leaked main-repo changes without duplicating it.
424
- // TASK_1785: readDispatchDirtySnapshot — pre-dispatch dirty snapshot so the leak
425
- // detector only counts paths that became dirty DURING the dispatch window.
426
- const { salvageWorkingTreePaths, readDispatchDirtySnapshot } = require('./git-salvage');
427
-
428
- /**
429
- * Look up which Bifröst adapter declares a given model id.
430
- * Scans .formation/bifrost/<adapter>/models.json files in priority order.
431
- * Returns the adapter name (e.g. 'openai') or null if no match.
432
- *
433
- * Used by spawnClaude to translate dashboard dispatchModel="gpt-5" into
434
- * adapter="openai" without the dashboard backend needing to round-trip.
435
- *
436
- ... (truncated)
437
- ```