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,322 +0,0 @@
1
- # synapse_check_guard design
2
-
3
- ## Goal
4
-
5
- Add a Phase 3 pre-dispatch redundancy guard that checks whether a proposed task is materially similar to archived work or an already-recorded decision before Ansuz creates a new task card or dispatches execution.
6
-
7
- This is a direct countermeasure for B-002: task-title-driven hallucination caused by selective pulsing. The guard must warn on likely redundancy, surface the overlap to the user, and require explicit override for risky duplicates.
8
-
9
- ## MCP contract
10
-
11
- `synapse_check_guard(title, description, threshold?) -> GuardResult`
12
-
13
- ### Inputs
14
-
15
- - `title: string`
16
- - `description: string`
17
- - `threshold?: number`
18
-
19
- `threshold` is an optional tuning knob for operators, but verdicts still use the fixed product thresholds below:
20
-
21
- - `hard_warn` when combined similarity `>= 0.80`
22
- - `soft_warn` when combined similarity `>= 0.60` and `< 0.80`
23
- - `clear` when combined similarity `< 0.60`
24
-
25
- ### Output schema
26
-
27
- ```json
28
- {
29
- "similar_tasks": [
30
- {
31
- "task_id": "TASK_000",
32
- "title": "Existing archived task",
33
- "status": "done|cancel|archived",
34
- "score": 0.84,
35
- "score_breakdown": {
36
- "fts_title": 0.82,
37
- "embedding_task": 0.87
38
- },
39
- "matched_fields": ["title", "description"],
40
- "why": "Short explanation of overlap"
41
- }
42
- ],
43
- "similar_decisions": [
44
- {
45
- "source": "cortex_recall",
46
- "rune_id": "optional-rune-id",
47
- "project": "KenazAI",
48
- "summary": "Decision summary",
49
- "score": 0.79,
50
- "why": "Decision already covers the same intent"
51
- }
52
- ],
53
- "verdict": "clear|soft_warn|hard_warn",
54
- "rationale": "Human-readable summary of the strongest overlaps and why the verdict fired"
55
- }
56
- ```
57
-
58
- The `similar_tasks` array must never be omitted. If nothing relevant is found, return `[]`. The same applies to `similar_decisions`.
59
-
60
- ## Corpus and retrieval
61
-
62
- The design intentionally reuses existing infrastructure. Do not introduce a new full-text engine.
63
-
64
- ### Task corpus
65
-
66
- Search against task records in `done`, `cancel`, and archived history. The simplest source is `task-api.js list` filtered to completed or abandoned states, then normalized into a candidate corpus of:
67
-
68
- - `task_id`
69
- - `title`
70
- - `description`
71
- - `status`
72
- - optional tags or scope metadata when available
73
-
74
- ### Decision corpus
75
-
76
- Search existing decisions through `cortex_recall` with `type=decision`. This keeps the guard aligned with preserved architectural intent, including cross-project decisions that may already answer the current proposal.
77
-
78
- ## Scoring algorithm
79
-
80
- Use a fused similarity score with three channels.
81
-
82
- ### 1. FTS5 title search
83
-
84
- Run an FTS5-style title search over archived, cancelled, and done task titles.
85
-
86
- Recommended normalization:
87
-
88
- - lowercase
89
- - trim punctuation
90
- - split on whitespace, dash, slash, underscore
91
- - remove low-signal stopwords such as `task`, `phase`, `fix`, `add` only if they dominate the query
92
-
93
- Produce `fts_title` in `[0, 1]` using normalized rank. A practical mapping is:
94
-
95
- - exact or near-exact title hit: `0.90-1.00`
96
- - same noun phrase with minor rewording: `0.70-0.89`
97
- - weak lexical overlap: `0.30-0.69`
98
- - no useful match: `0.00`
99
-
100
- This stage is fast and catches obvious duplicates, but it is not sufficient alone.
101
-
102
- ### 2. Embedding similarity for archived tasks
103
-
104
- Embed the proposed `title + "\n" + description` and compare against archived task `title + "\n" + description`.
105
-
106
- Produce `embedding_task` in `[0, 1]`. This catches semantic duplicates where titles differ but the implementation intent is the same.
107
-
108
- Candidate pruning:
109
-
110
- - first take top lexical candidates from the FTS pass
111
- - optionally include a recent archived sample window when no FTS hits exist
112
- - compute embeddings only for the narrowed candidate set to keep latency bounded
113
-
114
- ### 3. Decision recall similarity
115
-
116
- Call `cortex_recall` with a decision-focused query built from the proposed title and description. Score the returned decision runes as `decision_similarity` in `[0, 1]`.
117
-
118
- Interpretation:
119
-
120
- - a high score means "this work may already be settled as a decision"
121
- - decision matches should elevate caution even if no archived task title is close
122
-
123
- ## Score fusion
124
-
125
- Compute per-task and per-decision candidates separately, then derive a single guard score.
126
-
127
- ### Per-task score
128
-
129
- ```text
130
- task_score = max(fts_title, embedding_task)
131
- ```
132
-
133
- Reasoning: lexical and semantic overlap are both valid duplicate signals. A strong hit in either channel should survive.
134
-
135
- ### Decision score
136
-
137
- ```text
138
- decision_score = decision_similarity
139
- ```
140
-
141
- ### Final combined score
142
-
143
- ```text
144
- combined_score = max(
145
- strongest_task_score,
146
- strongest_decision_score
147
- )
148
- ```
149
-
150
- This is intentionally conservative. The guard exists to catch redundant work, so the strongest credible overlap should determine the verdict.
151
-
152
- ## Verdict thresholds
153
-
154
- These values are product rules, not suggestions:
155
-
156
- - `combined_score >= 0.80` -> `hard_warn`
157
- - `combined_score >= 0.60 && combined_score < 0.80` -> `soft_warn`
158
- - `combined_score < 0.60` -> `clear`
159
-
160
- `threshold` may adjust retrieval breadth or display filtering, but it must not silently change the `0.80 / 0.60` verdict boundaries without a separate product decision.
161
-
162
- ## phase_3 integration point
163
-
164
- Insert the guard in `phase_3` after the task table is finalized and before any `task-api.js create` call or downstream dispatch.
165
-
166
- Required sequence:
167
-
168
- 1. Ansuz finishes task shaping and has final `title` and `description`.
169
- 2. Ansuz calls `synapse_check_guard(title, description, threshold?)`.
170
- 3. If `verdict=clear`, proceed silently to `task-api.js create`.
171
- 4. If `verdict=soft_warn` or `verdict=hard_warn`, stop before creation and surface an AskUserQuestion override prompt.
172
- 5. Only create the task after the user explicitly confirms an override or chooses to revise the proposal.
173
-
174
- This makes the guard a pre-creation gate, not a post-hoc lint.
175
-
176
- ## Phase 3 Integration Anchor
177
-
178
- The exact insertion anchor in `.specialist/Ansuz/legacy/phases/phase_3.yaml` is inside the top-level `actions` list at lines `170-176`.
179
-
180
- - `actions[5]` at line `175`: `phantom_declaration`
181
- - `actions[6]` at line `176`: `cgdd_contract_analysis`
182
- - next top-level block at line `213`: `interaction`, which is the AskUserQuestion approval gate
183
-
184
- That means `synapse_check_guard` slots in after the existing design-shaping steps and before user approval:
185
-
186
- ```yaml
187
- actions:
188
- - "..."
189
- - "..."
190
- - "..."
191
- - "..."
192
- - "Run phantom_declaration ..."
193
- - "Run cgdd_contract_analysis ..."
194
- - "Run synapse_check_guard(title, description, threshold?) and attach guard result to Phase 3 output"
195
-
196
- interaction:
197
- type: ask
198
- ```
199
-
200
- Operationally, the anchor is:
201
-
202
- 1. finish `phantom_declaration`
203
- 2. finish `cgdd_contract_analysis`
204
- 3. run `synapse_check_guard`
205
- 4. if the verdict is `soft_warn` or `hard_warn`, surface that result in the existing `interaction` AskUserQuestion step
206
- 5. only proceed to `task-api.js create` after the user approves or revises
207
-
208
- This is deliberately before the approval prompt, not after it. The point is to let the user evaluate redundancy evidence in the same approval step that already gates Phase 3 output.
209
-
210
- ## Delineation from synapse_rune_conflicts
211
-
212
- `synapse_check_guard` and `synapse_rune_conflicts` are complementary, not overlapping.
213
-
214
- - `synapse_check_guard` targets proposed task titles and descriptions. It searches the archived task corpus (`done`, `cancel`, archived history) with FTS5-style title matching plus task-level embedding similarity, then supplements that with decision recall.
215
- - `synapse_rune_conflicts` targets rune-level contradictions. It analyzes existing runes for semantic conflict using embedding similarity and its three-layer conflict detection logic.
216
-
217
- They answer different questions:
218
-
219
- - `synapse_check_guard`: "Are we about to create work that already exists, was already attempted, or was already decided?"
220
- - `synapse_rune_conflicts`: "Do the knowledge artifacts we already recorded contradict each other?"
221
-
222
- Both can fire on the same input, but they do so for different reasons:
223
-
224
- - a new task proposal may match an archived task title even if no rune conflict exists
225
- - a new task proposal may also touch a symbol whose runes disagree, which is a separate knowledge-quality problem
226
-
227
- There is no functional overlap between them. `synapse_check_guard` is a pre-creation redundancy gate over task corpus plus decision corpus; `synapse_rune_conflicts` is a cognitive consistency check over rune memory.
228
-
229
- ## override flow
230
-
231
- When the guard returns `soft_warn` or `hard_warn`, AskUserQuestion must show:
232
-
233
- - the proposed title
234
- - the top `similar_tasks`
235
- - the top `similar_decisions`
236
- - the `rationale`
237
- - the severity level
238
-
239
- Recommended options:
240
-
241
- - `Revise title/description`
242
- - `Open existing task or decision`
243
- - `Proceed with override`
244
- - `Cancel`
245
-
246
- ### soft_warn behavior
247
-
248
- - default choice should bias toward review, not override
249
- - allow `Proceed with override` in a single confirmation step
250
- - record that the task was created with `override=true` and the selected conflicting item ids
251
-
252
- ### hard_warn behavior
253
-
254
- - block automatic creation by default
255
- - require explicit user override
256
- - require a short justification before continuing
257
- - persist override metadata with the created task or dispatch note
258
-
259
- Example override payload:
260
-
261
- ```json
262
- {
263
- "override": true,
264
- "override_reason": "Different scope despite similar archive title",
265
- "guard_verdict": "hard_warn",
266
- "conflict_refs": ["TASK_412", "decision:rune_abc"]
267
- }
268
- ```
269
-
270
- ## fail-open behavior
271
-
272
- Infrastructure failure must never block task creation.
273
-
274
- If the MCP call is unavailable, times out, or returns malformed data:
275
-
276
- - emit a warning in the Phase 3 output
277
- - mark the guard status as unavailable
278
- - proceed to `task-api.js create`
279
- - do not synthesize a fake `soft_warn` or `hard_warn`
280
-
281
- This is fail-open on infrastructure, fail-closed on actual overlap.
282
-
283
- ## Ranking and display rules
284
-
285
- - Return at most 5 `similar_tasks`, ordered by `score desc`.
286
- - Return at most 5 `similar_decisions`, ordered by `score desc`.
287
- - Prefer explainable results over large result sets.
288
- - `rationale` should summarize the single strongest task overlap and the single strongest decision overlap when present.
289
-
290
- ## Edge cases
291
-
292
- ### Repeated implementation with different target scope
293
-
294
- If the title is similar but scope paths or target subsystem differ, the score may still be high. This is why override remains available.
295
-
296
- ### Existing decision but no archived task
297
-
298
- If `similar_decisions` is strong and `similar_tasks` is empty, the guard should still fire. A repeated design decision can be redundant even when no previous execution task exists.
299
-
300
- ### Empty description
301
-
302
- If description is blank, run the guard on title only, but lower confidence in semantic matching. This should bias toward weaker evidence, not toward silence.
303
-
304
- ## Minimal implementation shape
305
-
306
- Suggested server-side flow:
307
-
308
- 1. collect completed-task corpus from existing task APIs
309
- 2. run FTS title pass
310
- 3. run embedding comparison on narrowed task candidates
311
- 4. run `cortex_recall` for decisions
312
- 5. fuse scores
313
- 6. return `similar_tasks`, `similar_decisions`, `verdict`, `rationale`
314
-
315
- ## Acceptance hooks
316
-
317
- The design intentionally includes the exact anchors required for verification:
318
-
319
- - `similar_tasks`
320
- - `threshold`
321
- - `phase_3`
322
- - `override`
@@ -1,227 +0,0 @@
1
- # Consequence Loop — Design
2
-
3
- **Author**: Ansuz (session 2026-04-22, branch xyz951610)
4
- **Status**: Draft (Phase 6 approval pending)
5
- **Motivation**: Close the learning gap between "task completed" and "decision was actually good". Currently reflex_neurons learn from single-turn reward (tool proportions, mirror match) but never from downstream consequence (re-open, incident, user correction, health regression).
6
-
7
- ## Design principles
8
-
9
- 1. **Explicit temporal layers**: immediate (this turn) / near (this session) / medium (this week) / long (this month). Each tier has its own signal sources and its own learning rate.
10
- 2. **Attribution primitive = scope_paths**: use the already-existing task scope intersection as the credit-assignment proxy. Attribute consequences to the symbols/files the task touched.
11
- 3. **Learning intensity decays with horizon + requires accumulated evidence**: a single 1-month-late signal cannot flip a reflex decision alone. Requires N≥3 consistent signals to trigger rule proposals.
12
- 4. **Governance tiered by reversibility**: weight updates automatic (reversible via audit log); rule proposals require Phase 6 human approval; immutable_core is never writable via consequence feedback.
13
- 5. **Audit + rollback**: every update has `signal_source_id`, `timestamp`, and a reversal command recorded.
14
-
15
- ## Signal inventory (ranked by signal-to-noise)
16
-
17
- | Rank | Signal | Source | Horizon | Noise | MVP Phase |
18
- |:----:|--------|--------|---------|-------|:---------:|
19
- | 1 | Task re-opened (done → blocked/active) | task-api state change | days | low | **I** |
20
- | 2 | FIX-followup task created referencing root task | task-api + tag/description scan | days | low-med | **I** |
21
- | 3 | `.failure/FAIL-xxx` references a task or symbol | file scan | days-weeks | low | **II** |
22
- | 4 | Heimdall health drop 7d after merge | Heimdall trend query | days | medium | **II** |
23
- | 5 | User correction in transcript mentions specific symbol/file | muninn extraction | immediate-days | medium | **III** |
24
- | 6 | Rune confidence decay — a cited rune later proven wrong | rune validation failure | weeks | low | **III** |
25
- | 7 | Test / benchmark regression | CI results | hours-days | low | **IV** (needs CI integration) |
26
- | 8 | User-stated dissatisfaction via sentiment | transcript analysis | immediate | high | **IV** (needs sentiment pipeline) |
27
-
28
- ## Architecture
29
-
30
- ```
31
- ┌─────────────────────────────────────────────┐
32
- │ Consequence Signal Extractor (daemon/cron) │
33
- │ ├── task_reopen_detector.js │
34
- │ ├── fix_followup_detector.js │
35
- │ ├── incident_attribution.js │
36
- │ ├── heimdall_delta.js │
37
- │ └── user_correction_extractor.js │
38
- └────────────────┬────────────────────────────┘
39
- │ JSONL records
40
- ▼
41
- .kenaz/specialist/consequence_signals.jsonl
42
- Record schema (per line):
43
- {
44
- "ts": ISO-8601,
45
- "signal_id": "cs-{uuid}",
46
- "signal_type": "task_reopen" | "fix_followup" | ...,
47
- "root_task_id": "TASK_XXXX",
48
- "affected_symbols": [stable_id, ...],
49
- "scope_paths": [file_path, ...],
50
- "severity": "low" | "medium" | "high",
51
- "confidence": 0.0–1.0,
52
- "credit_share": 0.0–1.0, // for multi-cause attribution
53
- "evidence": { ... signal-specific payload ... }
54
- }
55
- │
56
- ▼
57
- ┌─────────────────────────────────────────────┐
58
- │ Consequence Router │
59
- │ ├── → reflex_neurons STDP (α_consequence=0.01)│
60
- │ ├── → rune confidence decay │
61
- │ ├── → self-model blind_spot evidence append│
62
- │ └── → rule proposal draft (if N≥3 match) │
63
- └────────────────┬────────────────────────────┘
64
- │
65
- ▼
66
- ┌─────────────────────────────────────────────┐
67
- │ Governance Layer │
68
- │ ├── Rule proposal → Phase 6 human approval │
69
- │ ├── Outcome-rate tracking per change │
70
- │ └── Reversal index (rollback command) │
71
- └─────────────────────────────────────────────┘
72
- ```
73
-
74
- ## Phased roadmap
75
-
76
- ### Phase I — Vertical slice (2 weeks)
77
- **Goal**: Prove the loop wire works. Do NOT aim for coverage.
78
-
79
- - Build `task_reopen_detector.js` + `fix_followup_detector.js`
80
- - Emit to `.kenaz/specialist/consequence_signals.jsonl`
81
- - Route to `reflex_neurons` with small STDP delta (α=0.01 * severity)
82
- - **Validation metric**: reflex weight distribution `{min, max, stdev}` measured weekly; compare to Phase 0 baseline (`min=-0.03, max=0.10, stdev~0.02`)
83
- - **Success criterion**: after 4 weeks of signals, weight range expands to ≥ 0.25 (currently 0.13)
84
-
85
- ### Phase II — Heimdall long-horizon signal (2–3 weeks)
86
- - `heimdall_delta.js`: compare health at merge vs 7d later; degrade → signal attributed to merged task scope_paths
87
- - New signal_type `heimdall_regression`
88
- - Also: `incident_attribution.js` — scan `.failure/FAIL-xxx` for task references, emit retroactively
89
- - **Validation**: can the extractor auto-attribute known past regressions (from `.failure/` ground truth)?
90
-
91
- ### Phase III — Self-model + rule feedback (2–3 weeks)
92
- - Consequence pattern N≥3 matches → generate draft rule proposal (written to `ansuz_rules.yaml` as `status: proposed`)
93
- - blind_spot evidence append (reflex of B-00X gets new evidence entry with signal_source_id)
94
- - **Validation**: ≥1 auto-generated rule proposal reviewed by human; quality judged acceptable
95
-
96
- ### Phase IV — User correction + complex signals (1 month+)
97
- - muninn `user_observations` feed → correction trend extraction per domain
98
- - Rune confidence decay (rune referenced but later contradicted)
99
- - **Validation**: quantifiable reduction in specialist error rate on specific task classes
100
-
101
- ## Governance rules
102
-
103
- - ❌ Consequence-driven updates **cannot** modify `immutable_core` (identity, principles, phase_sequence, AskUserQuestion mandate, MEM-LANG-001, CANARY protocol)
104
- - ✅ Consequence-driven weight updates on `reflex_neurons` are **automatic** (reversible via audit log)
105
- - ⚠️ Consequence-driven **rule proposals require Phase 6 human approval** before merging into `ansuz_rules.yaml`
106
- - ✅ Every update records: `{signal_id, source_signal_type, ts, prior_value, new_value, rollback_cmd}`
107
-
108
- ## Risk inventory
109
-
110
- | ID | Risk | Mitigation |
111
- |----|------|------------|
112
- | R1 | **Noise cascade** — bad signal → wrong attribution → wrong weight → worse behavior | Small α=0.01 per-signal; N≥3 consistent pattern before rule promotion |
113
- | R2 | **Wrong credit assignment** — attributing downstream bug to unrelated task | Use scope_paths intersection strictly; empty intersection → drop signal |
114
- | R3 | **Survivorship bias** — only `done` tasks get signals; `cancel`/`blocked` are dark | Track cancelled tasks with reason (duplicate/wrong-spec/infeasible); feed into rule-quality signal |
115
- | R4 | **Feedback-loop divergence** — reflex discourages a tool → no samples → no learning → permanent dead zone | ε-greedy override: force-sample discouraged tools at 5% probability; flag neurons with 0 updates >30d |
116
- | R5 | **Hypothesis-efficiency bloat (B-008 class)** — each signal tests one hypothesis, wasting information | Multi-signal extractor design: each detector must list the hypotheses it discriminates |
117
- | R6 | **Gaming via Goodhart's Law** — agent learns to avoid tracked patterns without solving underlying issue | Rotate validation metrics; don't let reflex directly see the consequence_signals.jsonl as input |
118
-
119
- ## Interface with existing systems
120
-
121
- ### Reusing (no new build)
122
- - `.kenaz/specialist/turn_feedback.jsonl` schema
123
- - `reflex_executor.js` STDP path (existing `apply_stdp` in reflex_neurons.rs)
124
- - `ansuz_rules.yaml` versioning + lifecycle
125
- - `ritual_log` for audit trail
126
- - `.failure/*.yaml` format
127
-
128
- ### Extending
129
- - task-api: need lifecycle event emitter (state-change hook) — event `{task_id, from_status, to_status, ts}`
130
- - Heimdall: need 7d-lookback health query endpoint
131
- - muninn: user_observations.jsonl already has correction trend, needs per-symbol attribution extraction
132
-
133
- ## Resolved decisions (approved 2026-04-22)
134
-
135
- ### D1. α_consequence — severity-weighted, narrow range
136
-
137
- ```
138
- base_α = 0.01
139
- multiplier = clamp((fix_followup_count + age_weeks + scope_size/3) / 5, 0.5, 3.0)
140
- where age_weeks = floor(age_days / 7)
141
- effective_α = base_α × multiplier
142
- → effective_α ∈ [0.005, 0.03]
143
- ```
144
-
145
- Rationale: flat-0.01 loses signal differentiation; 10× range [0.005, 0.05] compounds noise. 6× range is the calibration sweet spot. **Severity MUST be derived from objective task attributes** (fix-followup count, age-in-weeks of re-open, regression file count) — never human-labeled severity, which would re-introduce the bias the loop is meant to reduce.
146
-
147
- **Calibration check** (against Amelia S3 audit 2026-04-22):
148
- - Minimal case (fix=1, age=0w, scope=1): numerator = `(1 + 0 + 0.33)/5 = 0.27` → clamped to floor 0.5 → α = 0.005
149
- - Mid case (fix=3, age=3w, scope=15): numerator = `(3 + 3 + 5)/5 = 2.2` → α = 0.022 (uses middle of band)
150
- - Extreme (fix=5, age=8w, scope=30): numerator = `(5 + 8 + 10)/5 = 4.6` → clamped to 3.0 → α = 0.030
151
-
152
- Earlier draft used `/3` denominator which saturated mid-range inputs to ceiling. `/5` preserves dynamic range.
153
-
154
- ### D2. Attribution — staged (flat for Phase I, distance-weighted from Phase II)
155
-
156
- **Phase I**: flat attribution over `scope_paths` symbols. Rationale: Phase I signals (task_reopen, fix_followup) usually have narrow scope (<5 files); flat is accurate enough and keeps MVP lean.
157
-
158
- **Phase II+**: distance-weighted attribution using `delta_graph` data:
159
-
160
- ```
161
- symbol directly in commit diff → 1.0
162
- symbol reached via delta_graph (1-hop) → 0.5
163
- symbol in same file, not touched → 0.2
164
- symbol in broader scope_paths, no diff → 0.1
165
- ```
166
-
167
- Rejected: tonic-weighted attribution. Would create feedback-loop divergence (tonic → more updates → more tonic) — matches Risk R4 amplification pattern.
168
-
169
- ### D3. Signal decay — dual half-life
170
-
171
- ```
172
- propagation_half_life = 30 days (governs weight-update strength)
173
- retention_half_life = 180 days (governs pattern-N evidence count)
174
- ```
175
-
176
- Rationale: single half-life cannot simultaneously satisfy "old signals shouldn't move current weights much" AND "old signals should still count as evidence for pattern accumulation". Two clocks decouple action-horizon from learning-horizon. Consistent with Synapse/Thalamus precedent (Heat 12h, Tonic 30d — different purposes, different clocks).
177
-
178
- ### D4. Rule-proposal language — English
179
-
180
- All consequence-driven rule drafts, signal types, and audit-log entries are written in English. Matches existing `ansuz_rules.yaml` / `kernel.yaml` / preamble / Turn Context convention. Chinese examples allowed inside rule bodies where referencing Chinese-specific user patterns, but the rule frame (`rule:`, `reason:`, `how_to_apply:`) is English.
181
-
182
- ### D5. Signal opacity — Path B (opaque to LLM)
183
-
184
- **`consequence_signals.jsonl` is NOT injected into the Ansuz preamble or Turn Context.** The signal flow is:
185
-
186
- ```
187
- Extractor → signals.jsonl → Router → { reflex_weights, rule_proposals, audit_log }
188
- │
189
- ▼
190
- LLM observes only *behavior*
191
- (weight-shifted reflex, new rules
192
- after Phase 6 approval)
193
- ```
194
-
195
- Rationale: if the LLM sees raw consequence signals, it may game tracked patterns (Goodhart's-law variant) — avoid the behavior that gets flagged without solving the underlying issue. Opacity forces learning to happen at the sub-symbolic weight-update level, closer to habit formation than to deliberate reflection. If future evidence shows Path B underperforms, Path A (transparent) can be layered on as an opt-in "conscious reflection" mode; we do not default to it.
196
-
197
- **Operational implication**: `preamble.rs` must NOT read from `consequence_signals.jsonl`. Reflex_neurons may read it to update weights. Self-evolution framework may read it to draft rule proposals. That's the closed set of consumers.
198
-
199
- ## Next step
200
-
201
- If this design is approved, create **TASK_13XX [CONSEQUENCE-I] Phase I vertical slice** with scope:
202
- - `.formation/consequence/task_reopen_detector.js` (new)
203
- - `.formation/consequence/fix_followup_detector.js` (new)
204
- - `.formation/consequence/consequence_router.js` (new)
205
- - `.kenaz/specialist/consequence_signals.jsonl` (new, runtime-written)
206
- - `dashboard/src-tauri/src/features/synapse/reflex_neurons.rs` (extend to accept consequence-signal feedback)
207
-
208
- Estimated: ~8-12 hrs for Phase I MVP.
209
-
210
- ## APPROVAL
211
-
212
- - **Status**: APPROVED
213
- - **Signer**: Ansuz (session 2026-04-22, branch xyz951610, phase-gate Phase 6)
214
- - **Timestamp**: 2026-04-22T07:15:00+08:00
215
- - **Verdict**: ratify D1–D5 as-written; no revisions required
216
- - **Decisions ratified**:
217
- - D1 (severity-weighted α) — ratified. Amelia S3 /5-denominator revision preserves dynamic range; calibration across minimal/mid/extreme cases verified.
218
- - D2 (staged attribution) — ratified. Flat for Phase I is accurate for narrow-scope signals; distance-weighted for Phase II correctly uses delta_graph 1-hop. Tonic rejection is the right guard against R4 feedback-loop divergence.
219
- - D3 (dual half-life 30d/180d) — ratified. Decoupling action-horizon (weight decay) from learning-horizon (pattern evidence) is the correct primitive; matches Synapse/Thalamus precedent of multi-clock design.
220
- - D4 (English rule frame) — ratified. Alignment with MEM-LANG-001 and FTS5 is non-negotiable; Chinese allowed inside rule bodies where the pattern itself is Chinese-specific.
221
- - D5 (Path B opacity) — ratified. Highest-stakes call. Goodhart's-law avoidance outweighs transparency-for-debugging because Path A→B is training-data-biased-permanent while Path B→A is reversible. Phase I success metric (weight-range expansion ≥0.25) is independent of raw signal visibility, so the meta-signal for "is Path B working?" is preserved without opening the opacity gate.
222
- - **TASK_1367 alignment**: confirmed. AC #4 opacity grep encodes D5; AC #3 severity formula encodes D1; AC #6 flat attribution test encodes D2-phase-I; signal schema in req #7 encodes D4; per-call ±0.05 weight clamp in req #5 reflects Amelia S2 audit.
223
- - **Unblocks**: TASK_1367 can be dispatched as Phase I vertical slice without further design review.
224
- - **Downstream watch-points** (not blockers, but worth noting for Phase II/III planners):
225
- - R3 survivorship bias (cancelled-task signal) is correctly out-of-scope for Phase I but should surface in Phase II planning.
226
- - R4 ε-greedy 5% override is not in Phase I scope — neurons that accumulate negative weight could enter dead zones before Phase II ships. Acceptable for MVP given 4-week Phase I window, but monitor reflex_neurons weight distribution monthly.
227
- - D5 opacity assumes outcome_rate (from self-evolution framework) gives enough meta-signal for "is the loop learning the right things?" — if outcome_rate itself becomes gameable, a Path-B/Path-A debate will need to re-open. Not a Phase I concern.