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,352 +0,0 @@
1
- # synapse_orphans Indexing Bug Investigation — 2026-04-11
2
-
3
- **Task**: TASK_1173
4
- **Date**: 2026-04-11
5
- **Analyst**: unit agent (backend specialist)
6
- **Input**: TASK_1172 verification report — 24/30 false positives confirmed
7
- **Scope**: dashboard/src-tauri/src/features/synapse (scanner.rs, calls.rs, imports.rs, index.rs)
8
-
9
- ---
10
-
11
- ## Input data (from TASK_1172)
12
-
13
- TASK_1172 ran `synapse_orphans(min_age_days=30, limit=50)` and grep-verified 30 in-scope candidates:
14
-
15
- - **24/30 FALSE_POSITIVE** — live callers confirmed by grep
16
- - **5/30 CONFIRMED_ORPHAN** — deleted
17
- - **1/30 AMBIGUOUS** — retained
18
-
19
- Key false-positive groups (with confirmed callers):
20
-
21
- | Symbol | File | Caller | Caller location |
22
- |--------|------|--------|-----------------|
23
- | `hasRemoteFileConflict` | `.formation/tools/remote-conflict.js` | dispatch.js | line 338 |
24
- | `isCacheStale` | `.formation/tools/remote-conflict.js` | dispatch.js | line 331 |
25
- | `checkLinks` | `.kenaz/docs/tools/src/registry.ts` | cli.ts | line 274 |
26
- | `rebuildIndex` | `.kenaz/docs/tools/src/registry.ts` | cli.ts | line 196 |
27
- | `syncToRag` | `.kenaz/docs/tools/src/registry.ts` | cli.ts | line 250 |
28
- | `main` (×7) | various .memory/tools and .formation/tools | self-invoked at module scope | tail of each file |
29
- | `constructor` (×4) | registry.ts, search.ts, field-extractor.ts, token-optimizer.js | `new ClassName()` at call sites | various lines |
30
-
31
- ---
32
-
33
- ## Graph state queries
34
-
35
- ### Query 1 — CALLS edges to hasRemoteFileConflict and isCacheStale
36
-
37
- ```cypher
38
- MATCH (caller:Symbol)-[r:CALLS]->(callee:Symbol {name:'hasRemoteFileConflict'})
39
- RETURN caller.file_path, caller.name, count(r)
40
- ```
41
- **Result**: 0 rows
42
-
43
- ```cypher
44
- MATCH (caller:Symbol)-[r:CALLS]->(callee:Symbol {name:'isCacheStale'})
45
- RETURN caller.file_path, caller.name, count(r)
46
- ```
47
- **Result**: 0 rows
48
-
49
- ```cypher
50
- MATCH (caller:Symbol)-[r:CALLS]->(callee:Symbol {name:'checkLinks'})
51
- RETURN caller.file_path, caller.name, count(r)
52
- ```
53
- **Result**: 0 rows
54
-
55
- ### Query 2 — Caller files in the File table
56
-
57
- ```cypher
58
- MATCH (f:File) WHERE f.path CONTAINS 'dispatch.js' OR f.path CONTAINS 'cli.ts'
59
- RETURN f.path, f.name
60
- ```
61
- **Result**: BOTH files present:
62
- - `.kenaz/docs/tools/src/cli.ts`
63
- - `.formation/tools/dispatch.js`
64
-
65
- **Interpretation**: Caller files ARE indexed — this rules out Hypothesis A (files never indexed).
66
-
67
- ### Query 3 — Symbols defined in caller files
68
-
69
- ```cypher
70
- MATCH (f:File {path:'.formation/tools/dispatch.js'})-[:DEFINES]->(s:Symbol)
71
- RETURN s.name, s.kind, s.start_line ORDER BY s.start_line
72
- ```
73
- **Result**: 14 symbols — `getSupabaseClient`, `getTaskSync`, `getCommitSync`, `syncCommit`, `broadcastStatus`, `readActiveDispatches`, `writeActiveDispatches`, `registerDispatch`, `unregisterDispatch`, `buildCortexContext`, `checkDependencies`, `dispatch`, `handleDryRun`, `execute`
74
-
75
- ```cypher
76
- MATCH (f:File {path:'.kenaz/docs/tools/src/cli.ts'})-[:DEFINES]->(s:Symbol)
77
- RETURN s.name, s.kind, s.start_line ORDER BY s.start_line
78
- ```
79
- **Result**: **0 rows** — cli.ts has NO symbols in the graph.
80
-
81
- **Interpretation**: Two distinct failure modes:
82
- - dispatch.js: Phase 2 succeeded (14 symbols) but Phase 3 failed (0 CALLS, 0 IMPORTS)
83
- - cli.ts: Phase 2 failed entirely (0 symbols extracted)
84
-
85
- ### Query 4 — IMPORTS edges from dispatch.js
86
-
87
- ```cypher
88
- MATCH (f:File {path:'.formation/tools/dispatch.js'})-[r:IMPORTS]->(g:File)
89
- RETURN g.path, r.imported_symbols, r.confidence
90
- ```
91
- **Result**: 0 rows. No IMPORTS edges for dispatch.js.
92
-
93
- Compare: `run-round2.js`, `legacy-scheduler.js`, `muninn.js`, etc. all have IMPORTS edges.
94
-
95
- ### Query 5 — Any outgoing CALLS from dispatch.js
96
-
97
- ```cypher
98
- MATCH (s:Symbol {file_path:'.formation/tools/dispatch.js'})-[r:CALLS]->(t:Symbol)
99
- RETURN s.name, t.name, t.file_path, r.call_line LIMIT 10
100
- ```
101
- **Result**: **0 rows** — no CALLS from ANY dispatch.js symbol, including same-file calls (e.g., `dispatch → checkDependencies`, `execute → registerDispatch`).
102
-
103
- ### Query 6 — Callee symbol uniqueness
104
-
105
- ```cypher
106
- MATCH (s:Symbol {name:'isCacheStale'}) RETURN s.id, s.file_path, s.kind
107
- MATCH (s:Symbol {name:'hasRemoteFileConflict'}) RETURN s.id, s.file_path, s.kind
108
- ```
109
- **Result**: Both symbols are globally unique (1 candidate each in symbol_index).
110
-
111
- **Interpretation**: The `unique_name` fallback strategy (confidence 0.75) in `find_callee_from_imports` should have matched these symbols. The fact that it didn't confirms Phase 3 was never run for dispatch.js — not that resolution failed.
112
-
113
- ### Query 7 — CALLS edge coverage across .formation/tools
114
-
115
- ```cypher
116
- MATCH (s:Symbol)-[r:CALLS]->(t:Symbol)
117
- WHERE s.file_path STARTS WITH '.formation/tools/'
118
- RETURN s.file_path, count(r) AS call_count ORDER BY call_count DESC LIMIT 10
119
- ```
120
- **Result**: prompt.js (532), loop.js (187), legacy-scheduler.js (171), muninn-watcher.js (127) … **dispatch.js absent** (0 edges).
121
-
122
- ---
123
-
124
- ## Hypothesis 1
125
-
126
- **cli.ts has zero symbols — Commander-pattern CLI files are invisible to Phase 2**
127
-
128
- **Evidence**:
129
- - cli.ts shows 0 DEFINES edges (Query 3)
130
- - cli.ts content starts with `#!/usr/bin/env node` and uses the Commander.js pattern:
131
- ```ts
132
- import { Command } from 'commander';
133
- const program = new Command();
134
- program.command('search <query>').action((query, options) => { ... });
135
- ```
136
- - There are NO top-level `function` declarations or `const foo = () => {}` arrow functions at declaration level. All handlers are inline anonymous callbacks passed to `.action()`.
137
- - `collect_ts_calls_recursive` in `calls.rs` only tracks calls made **inside named function/method/arrow-function declarations**. Anonymous callbacks in argument position are recursed into but their enclosing scope is the *outer* function — in cli.ts's case, there is no outer named function.
138
- - `symbols::extract_symbols` in `symbols.rs` extracts `function_declaration`, `method_definition`, and `variable_declarator` with function value — it does NOT extract anonymous callbacks inside method call chains.
139
-
140
- **Test to confirm**: Run `synapse_search({ query: "cli kenaz docs command search", file_filter: "cli.ts" })` — no results = confirmed zero symbols.
141
-
142
- **Impact**: ALL callers of registry.ts methods originate in cli.ts (`checkLinks`, `rebuildIndex`, `syncToRag`, `validate`, `stats`, `searchWithScores`, `listSystems`). Since cli.ts has 0 symbols, no CALLS edges from cli.ts can ever exist regardless of how well Phase 3 runs.
143
-
144
- **Fix scope**: `symbols.rs` symbol extractor needs to detect CLI script entry patterns (`program.command().action(handler)`) and either: (a) synthesize a virtual caller symbol per command, or (b) registry.ts methods should not be flagged as orphans if their file has a corresponding `.cli.ts` caller file.
145
-
146
- ---
147
-
148
- ## Hypothesis 2
149
-
150
- **Module-scope call expressions silently dropped by calls.rs**
151
-
152
- **Evidence**:
153
- - `calls.rs:335-345` (confirmed via code read):
154
- ```rust
155
- if let Some((caller_name, caller_line)) = enclosing_func {
156
- if !is_ts_builtin(&simple_name) {
157
- calls.push(CallInfo { ... });
158
- }
159
- }
160
- // No else — module-scope calls silently discarded
161
- ```
162
- - `collect_ts_calls_recursive` is called with `enclosing_func = None` for the top-level program node. Call expressions encountered at file scope (outside any function body) hit this guard and are **never pushed to the calls Vec**.
163
- - Confirmed false positives caused by this:
164
- - `main()` at end of file (7 occurrences): `memory-tools.js:475`, `migrate-failures.js` tail, `security-filter.js:419`, `token-optimizer.js:387`, `cleanup-duplicates.js` tail, `rebuild-registry.js:96`, `run-round2.js` tail
165
- - `getArg('--skill')` at module scope in `run-round2.js:24`
166
- - `rebuildRegistry()` at module scope in `rebuild-registry.js:96`
167
-
168
- **Test to confirm**:
169
- ```bash
170
- grep -n "^main\(\|^main().catch\|^\s*main()" .formation/tools/run-round2.js
171
- ```
172
- Line found at module scope → no enclosing_func → no CallInfo → no CALLS edge → `main` appears as orphan.
173
-
174
- **Fix scope**: `calls.rs:335` — add `else` branch to push CallInfo with synthetic caller (`"<module>"`, `caller_start_line = 0`) for module-scope calls. Then `resolve_phase3` would need to either skip these (no symbol match) or create a module-level pseudo-symbol.
175
-
176
- **Simpler fix**: In `synapse_orphans`, additionally check whether the symbol IS called at module scope via a separate grep-style scan, or filter out symbols whose name is `main` and whose file has a `require.main === module` guard.
177
-
178
- ---
179
-
180
- ## Hypothesis 3
181
-
182
- **Destructured CommonJS require breaks import_map strategy, contributing to Phase 3 staleness for dispatch.js**
183
-
184
- **Evidence**:
185
- - `imports.rs:359-409` — `extract_ts_require` reads the variable name with `child_by_field_name("name")`:
186
- ```rust
187
- let name = child
188
- .child_by_field_name("name")
189
- .and_then(|n| n.utf8_text(source_bytes).ok())
190
- .unwrap_or("")
191
- .to_string();
192
- // imported_symbols = vec![name]
193
- ```
194
- - For destructured require `const { refreshCache, hasRemoteConflict, hasRemoteFileConflict, isCacheStale } = require('./remote-conflict')`, the `name` field of `variable_declarator` is an `object_pattern` node. `utf8_text()` on that node returns the raw text `{ refreshCache, hasRemoteConflict, hasRemoteFileConflict, isCacheStale }` as a SINGLE string.
195
- - Result: `imported_symbols = ["{ refreshCache, hasRemoteConflict, hasRemoteFileConflict, isCacheStale }"]` — one string with braces, not four separate names.
196
- - In `find_callee_from_imports` (scanner.rs:1901-1910):
197
- ```rust
198
- if imp.imported_symbols.contains(&simple_name.to_string()) {
199
- ```
200
- `simple_name = "hasRemoteFileConflict"` → `.contains()` fails → import_map strategy misses.
201
- - Fallback to `unique_name` (strategy 2): should still work for unique symbols, BUT dispatch.js has 0 CALLS edges even for **same-file** symbols (see Query 5). This means the destructured require bug alone is not the only cause.
202
-
203
- **dispatch.js Phase 3 staleness — auxiliary finding**:
204
- - dispatch.js has 14 symbols (Phase 2 ran), 0 IMPORTS, 0 CALLS (including same-file calls like `dispatch → checkDependencies` at line 252, `execute → registerDispatch` at line 445).
205
- - Same-file calls use Strategy 1 (`same_file`, confidence 0.90) which operates on `fd.extracted_symbols` — it does NOT depend on imports at all.
206
- - Conclusion: Phase 3 was **never run for dispatch.js**. The most likely cause: dispatch.js was first indexed in a full index pass that predated the addition of `.formation/tools/remote-conflict.js`. Incremental index only re-processes changed files. Since dispatch.js's content has not changed since that full index, it has been skipped on every subsequent run — its Phase 3 edges were never built.
207
- - This is a general **incremental index blindspot**: files that existed at full-index time with no subsequent changes never get Phase 3 re-run when *their dependencies* are added/modified.
208
-
209
- **Test to confirm destructured require bug**:
210
- ```cypher
211
- MATCH (f:File {path:'.formation/tools/dispatch.js'})-[r:IMPORTS]->(g:File)
212
- RETURN g.path, r.imported_symbols
213
- ```
214
- Expected if bug present: 0 rows (confirmed already). Expected after fix: rows with individual symbol names.
215
-
216
- **Fix scope**: `imports.rs:extract_ts_require` — detect when `name` node is `object_pattern`, then iterate its `shorthand_property_identifier_pattern` children to build individual symbol names instead of raw text.
217
-
218
- ---
219
-
220
- ## Hypothesis 4
221
-
222
- **Constructor calls not tracked — `new ClassName()` not modeled as CALLS to constructor**
223
-
224
- **Evidence**:
225
- - `calls.rs` `collect_ts_calls_recursive` matches `"call_expression"` nodes. However, class instantiation uses `new_expression` nodes in tree-sitter-javascript/typescript, not `call_expression`.
226
- - tree-sitter-javascript AST for `new DocsRegistry(config)`:
227
- ```
228
- new_expression
229
- constructor: (identifier) "DocsRegistry"
230
- arguments: (arguments ...)
231
- ```
232
- - The `collect_ts_calls_recursive` `_ => {}` fallback recurses into `new_expression` children, but there is no arm for `"new_expression"` → the constructor identifier is never treated as a callee.
233
- - Result: 4 constructor symbols appear as orphans: `constructor` in registry.ts, search.ts, field-extractor.ts, token-optimizer.js.
234
-
235
- **Test to confirm**:
236
- ```bash
237
- grep -rn "new DocsRegistry\|new SearchEngine\|new FieldExtractor" .kenaz/docs/tools/src/
238
- ```
239
- All found in registry.ts → confirmed live callers exist.
240
-
241
- **Fix scope**: `calls.rs:collect_ts_calls_recursive` — add `"new_expression"` arm that extracts the `constructor` field as callee (similar to `call_expression`), treating it as a call to the class's `constructor` method. Alternatively, match `new ClassName()` as a call to `ClassName` (the class itself).
242
-
243
- ---
244
-
245
- ## Root cause
246
-
247
- Root cause: Multiple independent indexing gaps in calls.rs, imports.rs, and symbol extractor — not a single bug.
248
-
249
- **Details — multiple independent gaps:**
250
-
251
- | Root cause | Affected symbols | Fix complexity |
252
- |------------|-----------------|----------------|
253
- | **cli.ts zero symbols** (Commander pattern — no top-level named functions) | checkLinks, rebuildIndex, syncToRag, validate, stats, searchWithScores, listSystems (7 symbols) | Medium — need Commander-aware symbol extraction or orphan filter |
254
- | **Module-scope call dropping** (calls.rs:335 guard drops calls without enclosing function) | main (×7), getArg, rebuildRegistry (9+ symbols) | Small — add synthetic `<module>` caller or filter main/cli patterns in orphan tool |
255
- | **Destructured require breaks import_map** (imports.rs reads object_pattern as raw text) | dispatch.js cross-file callee resolution (affects import_map only; unique_name still works for unique symbols) | Small — 10 LOC fix in extract_ts_require |
256
- | **Phase 3 never ran for dispatch.js** (incremental blindspot: file unchanged since before remote-conflict.js was added) | hasRemoteFileConflict, isCacheStale, hasRemoteConflict, refreshCache | Requires forced re-index of dispatch.js or full re-index |
257
- | **new_expression not tracked** (constructor calls use different AST node) | constructor (×4) | Small — add new_expression arm in calls.rs |
258
-
259
- **Primary false positive source** (by count): module-scope call dropping (9+) and cli.ts zero symbols (7).
260
- **Most load-bearing fix**: module-scope call dropping — affects ANY CLI-style script that calls main() or helpers at file scope.
261
-
262
- ---
263
-
264
- ## Proposed fix
265
-
266
- ### Fix 1 — imports.rs: destructured require (≤15 LOC, trivial)
267
-
268
- In `extract_ts_require` (imports.rs:366-370), replace raw text extraction with object_pattern child parsing:
269
-
270
- ```rust
271
- let imported_symbols = if child
272
- .child_by_field_name("name")
273
- .map(|n| n.kind() == "object_pattern")
274
- .unwrap_or(false)
275
- {
276
- // Destructured: const { X, Y } = require(...)
277
- // Walk object_pattern children for shorthand_property_identifier_pattern
278
- let mut symbols = vec![];
279
- if let Some(pattern) = child.child_by_field_name("name") {
280
- let mut c = pattern.walk();
281
- for prop in pattern.children(&mut c) {
282
- if prop.kind() == "shorthand_property_identifier_pattern" {
283
- if let Ok(name) = prop.utf8_text(source_bytes) {
284
- symbols.push(name.to_string());
285
- }
286
- }
287
- }
288
- }
289
- symbols
290
- } else {
291
- // Simple: const X = require(...)
292
- let name = child.child_by_field_name("name")
293
- .and_then(|n| n.utf8_text(source_bytes).ok())
294
- .unwrap_or("")
295
- .to_string();
296
- if name.is_empty() { vec![] } else { vec![name] }
297
- };
298
- ```
299
-
300
- ### Fix 2 — calls.rs: new_expression tracking (≤20 LOC, trivial)
301
-
302
- In `collect_ts_calls_recursive`, add a `"new_expression"` arm after `"call_expression"`:
303
-
304
- ```rust
305
- "new_expression" => {
306
- if let Some(ctor_node) = child.child_by_field_name("constructor") {
307
- let callee = ctor_node.utf8_text(source_bytes).unwrap_or("").to_string();
308
- let simple_name = extract_simple_name(&callee);
309
- let line = child.start_position().row + 1;
310
- if let Some((caller_name, caller_line)) = enclosing_func {
311
- if !is_ts_builtin(&simple_name) {
312
- calls.push(CallInfo {
313
- callee_name: callee,
314
- callee_simple_name: simple_name,
315
- line,
316
- caller_name: caller_name.to_string(),
317
- caller_start_line: caller_line,
318
- });
319
- }
320
- }
321
- }
322
- collect_ts_calls_recursive(&child, source_bytes, calls, enclosing_func, depth + 1);
323
- }
324
- ```
325
-
326
- ### Fix 3 — Module-scope call tracking (medium, requires design decision)
327
-
328
- Option A: Add synthetic `<module>` caller in calls.rs (pushes CallInfo with `caller_name = "<module>"`, `caller_start_line = 0`). Then in resolve_phase3, treat `<module>` caller as a special File-level edge rather than a Symbol-to-Symbol CALLS edge. This requires schema/logic changes.
329
-
330
- Option B: Filter `main` and other CLI entry patterns in `synapse_orphans` itself — functions named `main` that are the last expression in a file, or functions with `require.main === module` guard, should be excluded from orphan candidates. This is a heuristic filter, not a graph fix.
331
-
332
- Option C: Track module-scope calls as CALLS edges originating from a synthetic `<module_scope>` symbol per file. Add this to Phase 2 as well.
333
-
334
- **Recommendation**: Option B for immediate fix (< 5 LOC in lib.rs orphans function), Option A/C for completeness.
335
-
336
- ### Fix 4 — Forced re-index of dispatch.js
337
-
338
- Touching dispatch.js (even adding a comment) will trigger incremental re-index → Phase 3 will run → CALLS edges for `hasRemoteFileConflict`, `isCacheStale` will be created after Fix 1. Not a code fix but an operational remediation.
339
-
340
- ### Fix 5 — cli.ts symbol extraction (complex, deferred)
341
-
342
- Commander-pattern CLI files require either:
343
- - A new extractor that synthesizes named symbols for each `.command('name').action()` block
344
- - OR an exclusion in synapse_orphans for symbols in files that have a CLI caller (presence of `cli.ts` or `cli.js` sibling in same directory)
345
-
346
- **Recommendation**: Deferred. Document the pattern in synapse_orphans tool description.
347
-
348
- ---
349
-
350
- **Status of proposed fixes**: Fix 1 and Fix 2 are trivial (< 30 LOC combined, well within inline patch threshold). Fix 3 Option B is trivial. They constitute the complete patch for this bug.
351
-
352
- status: fix_task_proposed
@@ -1,48 +0,0 @@
1
- # Synapse Orphans Re-index Verification — 2026-04-11
2
-
3
- **Task**: TASK_1177
4
- **Dependency**: TASK_1174 (imports.rs destructured require fix) — confirmed DONE
5
- **Date**: 2026-04-11
6
- **Operator**: unit (Formation agent)
7
-
8
- ---
9
-
10
- ## Before
11
-
12
- Snapshot taken before forced full re-index. Source: `synapse_orphans(min_age_days=30)` + `synapse_context` per symbol.
13
-
14
- | Symbol | File | Callers (BEFORE) | In orphans(min_age_days=30)? |
15
- |--------|------|-----------------|------------------------------|
16
- | `hasRemoteFileConflict` | `.formation/tools/remote-conflict.js` | 0 | No (EXPORTS edge from module.exports) |
17
- | `isCacheStale` | `.formation/tools/remote-conflict.js` | 0 | No (EXPORTS edge from module.exports) |
18
- | `hasRemoteConflict` | `.formation/tools/remote-conflict.js` | 2 (legacy-scheduler.js only) | No (has callers) |
19
- | `refreshCache` | `.formation/tools/remote-conflict.js` | 1 (legacy-scheduler.js only) | No (has callers) |
20
-
21
- **Interpretation**: The four symbols were NOT surfaced as orphans because `remote-conflict.js` exports them via `module.exports`, giving them EXPORTS edges that excluded them from orphan detection. However, `hasRemoteFileConflict` and `isCacheStale` had **0 callers** — confirming the Phase 3 CALLS/IMPORTS edge build never ran for `dispatch.js`. The destructured require at `dispatch.js:21` was present in code but not recognized by the pre-TASK_1174 parser.
22
-
23
- **Re-index method used**: `POST /api/synapse/index` with `force: true` — triggered a full re-index (bypassing Layer 2 SHA1 hash check). The incremental `synapse_index` MCP call returned "No changes detected" as expected (SHA1 unchanged since dispatch.js content was correct but un-re-parsed).
24
-
25
- ---
26
-
27
- ## After
28
-
29
- Snapshot taken after full re-index completed (relationships stabilized at 23,670, symbol_entries at 21,751).
30
-
31
- | Symbol | File | Callers (AFTER) | Caller from dispatch.js? |
32
- |--------|------|----------------|--------------------------|
33
- | `hasRemoteFileConflict` | `.formation/tools/remote-conflict.js` | 1 | ✅ Yes (`dispatch` function) |
34
- | `isCacheStale` | `.formation/tools/remote-conflict.js` | 1 | ✅ Yes (`dispatch` function) |
35
- | `hasRemoteConflict` | `.formation/tools/remote-conflict.js` | 3 | ✅ Yes (`dispatch` function + legacy-scheduler.js x2) |
36
- | `refreshCache` | `.formation/tools/remote-conflict.js` | 2 | ✅ Yes (`dispatch` function + legacy-scheduler.js x1) |
37
-
38
- **dispatch.js byte-identity**: Confirmed — `git diff --stat .formation/tools/dispatch.js` returned no output (no changes).
39
-
40
- ---
41
-
42
- ## Notes
43
-
44
- - The `synapse_index` MCP tool (incremental) is insufficient to re-parse dispatch.js when content is unchanged — Layer 2 SHA1 hash check short-circuits Phase 3. A forced full re-index via the HTTP API (`force: true`) was required.
45
- - TASK_1174's fix to `imports.rs` (destructured require parsing) is confirmed effective: all four symbols now have dispatch.js as a caller.
46
- - The orphans false-positive framing in TASK_1173 was partially inaccurate: the symbols were never in `orphans(min_age_days=30)` due to EXPORTS edges. The real signal was the missing CALLS edges (0 callers for hasRemoteFileConflict and isCacheStale).
47
-
48
- Verdict: all_four_cleared
@@ -1,170 +0,0 @@
1
- # synapse_orphans Verification Report — 2026-04-11
2
-
3
- **Task**: TASK_1172
4
- **Date**: 2026-04-11
5
- **Snapshot**: synapse_orphans(min_age_days=30, limit=50)
6
- **Scope paths**: .kenaz/docs/tools, .memory/tools, .formation/tools/run-round2.js, .formation/tools/remote-conflict.js
7
- **Analyst**: unit agent
8
- **Paired task**: TASK_1173 (synapse_orphans indexing bug investigation)
9
-
10
- ---
11
-
12
- ## Summary
13
-
14
- false_positive_rate: 24/30
15
-
16
- | Category | Count | Notes |
17
- |---|---|---|
18
- | CONFIRMED_ORPHAN | 5 | Zero non-definition callers; safe to delete |
19
- | FALSE_POSITIVE | 24 | Actual callers found (code, docs, or self-invocation) |
20
- | AMBIGUOUS | 1 | Exported API, no external callers discovered |
21
- | **Total in-scope** | **30** | Of 50 returned by synapse_orphans |
22
-
23
- **Key finding**: 80% false-positive rate. Root cause appears to be synapse_orphans failing to model: (a) module-scope self-invocation (CLI `main()` calls), (b) class instantiation callers (`new ClassName()`), (c) cross-module require chains. TASK_1173 should investigate these indexing gaps.
24
-
25
- ---
26
-
27
- ## Candidates
28
-
29
- Full list of in-scope candidates from synapse_orphans snapshot:
30
-
31
- | # | Symbol | File | Lines | LOC Impact | Classification |
32
- |---|---|---|---|---|---|
33
- | 1 | `checkLinks` | `.kenaz/docs/tools/src/registry.ts` | 594–637 | 44 | FALSE_POSITIVE |
34
- | 2 | `syncToRag` | `.kenaz/docs/tools/src/registry.ts` | 475–514 | 40 | FALSE_POSITIVE |
35
- | 3 | `validate` | `.kenaz/docs/tools/src/registry.ts` | 516–551 | 36 | FALSE_POSITIVE |
36
- | 4 | `rebuildIndex` | `.kenaz/docs/tools/src/registry.ts` | 142–173 | 32 | FALSE_POSITIVE |
37
- | 5 | `__init__` | `.kenaz/docs/tools/sync_to_rag.py` | 59–81 | 23 | FALSE_POSITIVE |
38
- | 6 | `stats` | `.kenaz/docs/tools/src/registry.ts` | 553–574 | 22 | FALSE_POSITIVE |
39
- | 7 | `searchWithScores` | `.kenaz/docs/tools/src/registry.ts` | 106–124 | 19 | FALSE_POSITIVE |
40
- | 8 | `addSystem` | `.kenaz/docs/tools/src/registry.ts` | 576–584 | 9 | CONFIRMED_ORPHAN |
41
- | 9 | `removeSystem` | `.kenaz/docs/tools/src/registry.ts` | 586–592 | 7 | CONFIRMED_ORPHAN |
42
- | 10 | `constructor` | `.kenaz/docs/tools/src/registry.ts` | 37–39 | 3 | FALSE_POSITIVE |
43
- | 11 | `listSystems` | `.kenaz/docs/tools/src/registry.ts` | 134–136 | 3 | FALSE_POSITIVE |
44
- | 12 | `main` | `.memory/tools/memory-tools.js` | 376–472 | 97 | FALSE_POSITIVE |
45
- | 13 | `main` | `.memory/tools/migrate-failures.js` | 263–342 | 80 | FALSE_POSITIVE |
46
- | 14 | `smartTrim` | `.memory/tools/token-optimizer.js` | 180–246 | 67 | FALSE_POSITIVE |
47
- | 15 | `main` | `.memory/tools/security-filter.js` | 358–417 | 60 | FALSE_POSITIVE |
48
- | 16 | `main` | `.memory/tools/token-optimizer.js` | 334–384 | 51 | FALSE_POSITIVE |
49
- | 17 | `constructor` | `.memory/tools/token-optimizer.js` | 31–36 | 6 | FALSE_POSITIVE |
50
- | 18 | `hasSensitiveData` | `.memory/tools/security-filter.js` | 352–355 | 4 | AMBIGUOUS |
51
- | 19 | `main` | `.memory/tools/cleanup-duplicates.js` | 100–144 | 45 | FALSE_POSITIVE |
52
- | 20 | `rebuildRegistry` | `.memory/tools/rebuild-registry.js` | 65–94 | 30 | FALSE_POSITIVE |
53
- | 21 | `search` | `.kenaz/docs/tools/src/search.ts` | 32–74 | 43 | FALSE_POSITIVE |
54
- | 22 | `getSearchStats` | `.kenaz/docs/tools/src/search.ts` | 191–232 | 42 | CONFIRMED_ORPHAN |
55
- | 23 | `constructor` | `.kenaz/docs/tools/src/field-extractor.ts` | 27–61 | 35 | FALSE_POSITIVE |
56
- | 24 | `registerSystem` | `.kenaz/docs/tools/src/field-extractor.ts` | 155–157 | 3 | CONFIRMED_ORPHAN |
57
- | 25 | `getRegisteredSystems` | `.kenaz/docs/tools/src/field-extractor.ts` | 162–164 | 3 | CONFIRMED_ORPHAN |
58
- | 26 | `constructor` | `.kenaz/docs/tools/src/search.ts` | 24–24 | 1 | FALSE_POSITIVE |
59
- | 27 | `main` | `.formation/tools/run-round2.js` | 90–116 | 27 | FALSE_POSITIVE |
60
- | 28 | `getArg` | `.formation/tools/run-round2.js` | 16–22 | 7 | FALSE_POSITIVE |
61
- | 29 | `hasRemoteFileConflict` | `.formation/tools/remote-conflict.js` | 69–89 | 21 | FALSE_POSITIVE |
62
- | 30 | `isCacheStale` | `.formation/tools/remote-conflict.js` | 94–96 | 3 | FALSE_POSITIVE |
63
-
64
- ---
65
-
66
- ## Confirmed orphans
67
-
68
- Five symbols with zero non-definition callers across all file extensions (.js, .ts, .py, .sh, .md, .yaml, .yml, .json, .toml):
69
-
70
- ### 1. `addSystem` — `.kenaz/docs/tools/src/registry.ts` lines 576–584
71
-
72
- ```
73
- grep -rn 'addSystem' --include='*.{js,ts,py,sh,md,yaml,yml,json,toml}' .
74
- ```
75
- Result: Only definition site (registry.ts:576). No callers.
76
- **Action**: Deleted.
77
-
78
- ### 2. `removeSystem` — `.kenaz/docs/tools/src/registry.ts` lines 586–592
79
-
80
- ```
81
- grep -rn 'removeSystem' --include='*.{js,ts,py,sh,md,yaml,yml,json,toml}' .
82
- ```
83
- Result: Only definition site (registry.ts:586). No callers.
84
- **Action**: Deleted.
85
-
86
- ### 3. `getSearchStats` — `.kenaz/docs/tools/src/search.ts` lines 191–232
87
-
88
- ```
89
- grep -rn 'getSearchStats' --include='*.{js,ts,py,sh,md,yaml,yml,json,toml}' .
90
- ```
91
- Result: Only definition site (search.ts:191). No callers.
92
- **Action**: Deleted.
93
-
94
- ### 4. `registerSystem` — `.kenaz/docs/tools/src/field-extractor.ts` lines 155–157
95
-
96
- ```
97
- grep -rn 'registerSystem' --include='*.{js,ts,py,sh,md,yaml,yml,json,toml}' .
98
- ```
99
- Result: Only definition site (field-extractor.ts:155). No callers.
100
- **Action**: Deleted.
101
-
102
- ### 5. `getRegisteredSystems` — `.kenaz/docs/tools/src/field-extractor.ts` lines 162–164
103
-
104
- ```
105
- grep -rn 'getRegisteredSystems' --include='*.{js,ts,py,sh,md,yaml,yml,json,toml}' .
106
- ```
107
- Result: Only definition site (field-extractor.ts:162). No callers.
108
- **Action**: Deleted.
109
-
110
- ---
111
-
112
- ## False positives
113
-
114
- 24 symbols reported as orphans by synapse_orphans that have live callers:
115
-
116
- | Symbol | File | Caller Evidence |
117
- |---|---|---|
118
- | `checkLinks` | registry.ts | `.kenaz/docs/tools/src/cli.ts:274` — `registry.checkLinks()` |
119
- | `syncToRag` | registry.ts | `.kenaz/docs/tools/src/cli.ts:250` — `registry.syncToRag(!options.force)` |
120
- | `validate` | registry.ts | `.kenaz/docs/tools/src/cli.ts:201,295` — `registry.validate()` |
121
- | `rebuildIndex` | registry.ts | `.kenaz/docs/tools/src/cli.ts:196` — `registry.rebuildIndex()` |
122
- | `stats` | registry.ts | `.kenaz/docs/tools/src/cli.ts:212,321` — `registry.stats()` |
123
- | `searchWithScores` | registry.ts | `.kenaz/docs/tools/src/cli.ts:31` — `registry.searchWithScores(query, {...})` |
124
- | `listSystems` | registry.ts | `.kenaz/docs/tools/src/cli.ts:107` — `registry.listSystems()` |
125
- | `constructor` | registry.ts:37 | `registry.ts:56,61` — `new DocsRegistry(...)` |
126
- | `__init__` | sync_to_rag.py | `registry.ts:478` spawns script; `RAG_INTEGRATION_GUIDE.md:73` — `DocsSyncManager(Path.cwd())` |
127
- | `search` | search.ts | `registry.ts:95,122` — `searchEngine.search(query, options)` |
128
- | `constructor` | search.ts:24 | `registry.ts:95,122` — `new SearchEngine(allDocs)` |
129
- | `constructor` | field-extractor.ts:27 | `registry.ts:38` — `new FieldExtractor()` |
130
- | `main` | memory-tools.js | `memory-tools.js:475` — self-invoked at module scope (`main()`) |
131
- | `main` | migrate-failures.js | `migrate-failures.js` tail — self-invoked (`main()`) |
132
- | `smartTrim` | token-optimizer.js | `.memory/README.md:263`, `.memory/SECURITY_TOKEN_OPTIMIZATION.md:117` — documented API import; exported |
133
- | `main` | security-filter.js | `security-filter.js:419-420` — guarded CLI entry (`if (require.main === module) { main(); }`) |
134
- | `main` | token-optimizer.js | `token-optimizer.js:387` — self-invoked at module scope |
135
- | `constructor` | token-optimizer.js:31 | class `MemoryCache` instantiated internally |
136
- | `main` | cleanup-duplicates.js | `cleanup-duplicates.js` tail — self-invoked (`main()`) |
137
- | `rebuildRegistry` | rebuild-registry.js | `rebuild-registry.js:96` — self-invoked at module scope |
138
- | `main` | run-round2.js | `run-round2.js` tail — `main().catch(e => { process.exit(1); })` |
139
- | `getArg` | run-round2.js | `run-round2.js:24` — called at module scope (`getArg('--skill')`) |
140
- | `hasRemoteFileConflict` | remote-conflict.js | `.formation/tools/dispatch.js:338` — `hasRemoteFileConflict(scopePaths)` |
141
- | `isCacheStale` | remote-conflict.js | `.formation/tools/dispatch.js:331` — `isCacheStale()` |
142
-
143
- **Root causes of false positives:**
144
- 1. **Module-scope self-invocation**: synapse_orphans misses calls at file scope (e.g., `main()` at end of file). Affects 7 `main()` + 2 internal helpers.
145
- 2. **Class instantiation**: `new ClassName()` calls are not tracked as CALLS edges to `constructor`. Affects 4 constructor methods.
146
- 3. **Subprocess spawn**: Python CLI scripts spawned via `child_process.spawn` don't create graph edges.
147
- 4. **Cross-module import resolution**: `require('./security-filter')` → exported API not mapped to callers.
148
- 5. **Documented-only callers**: Functions referenced only in `.md` docs (smartTrim) are not detected.
149
-
150
- ---
151
-
152
- ## Ambiguous
153
-
154
- ### `hasSensitiveData` — `.memory/tools/security-filter.js` lines 352–355
155
-
156
- A 4-line utility function exported via `module.exports.hasSensitiveData`. No external file imports or calls it. However it is part of the exported public API alongside `filterSensitiveData` and `filterMemoryEntry` (which are used by memory-tools.js). It may be dead code or an intentional public API without current consumers.
157
-
158
- **Decision**: Not deleted. Requires explicit owner review. Low LOC impact (4 lines).
159
-
160
- ---
161
-
162
- ## Synapse_orphans indexing gaps (for TASK_1173)
163
-
164
- The following indexing failures were observed and should inform TASK_1173:
165
-
166
- 1. **Module-scope calls not tracked**: `main()` called at file scope (e.g., `main().catch(...)`) produces no CALLS edge in the graph. This caused 7 false positives.
167
- 2. **Constructor calls not tracked**: `new ClassName()` does not create a CALLS edge to the class `constructor` method. This caused 4 false positives.
168
- 3. **Python subprocess spawn not tracked**: `child_process.spawn('python', [scriptPath])` in registry.ts:478 does not create any cross-language edge.
169
- 4. **Cross-language import not tracked**: `from sync_to_rag import DocsSyncManager` (Python import, in doc examples) not modeled.
170
- 5. **Intra-file module-scope references**: `getArg` called at file scope in run-round2.js — no CALLS edge despite local definition.