kenaz 0.3.21 → 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 (481) hide show
  1. package/core/.claude/commands/Ansuz.md +2 -0
  2. package/core/.claude/hooks/__tests__/peer-session-fill.test.js +37 -0
  3. package/core/.claude/hooks/_ansuz-conversation.js +32 -1
  4. package/core/.claude/hooks/_user-scope.js +1 -1
  5. package/core/.claude/hooks/core-resolve.js +1 -1
  6. package/core/.claude/hooks/peer-optin.test.js +74 -0
  7. package/core/.claude/hooks/peer-session-fill.js +38 -0
  8. package/core/.claude/hooks/turn-context.js +5 -4
  9. package/core/.claude/hooks/worktree-create.js +6 -6
  10. package/core/.claude/hooks/worktree-remove.js +4 -4
  11. package/core/.claude/settings.json +9 -0
  12. package/core/.collaboration/core/reconcile.js +16 -1
  13. package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
  14. package/core/.collaboration/core/task-api.js +37 -7
  15. package/core/.formation/bifrost/launch.js +1 -1
  16. package/core/.formation/bifrost/openai/codex-hook-shim.js +21 -4
  17. package/core/.formation/bifrost/openai/codex-peer-pull.test.js +42 -0
  18. package/core/.formation/bifrost/provider-launch.js +2 -1
  19. package/core/.formation/tools/kenaz-stats.js +1 -1
  20. package/core/.formation/tools/post-complete/git-merge.js +1 -1
  21. package/core/.formation/tools/prompt.js +1 -1
  22. package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
  23. package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
  24. package/core/.rule/general/project-self-containment.yaml +2 -2
  25. package/core/.specialist/Amelia/README.md +1 -1
  26. package/core/.specialist/Amelia/rule.yaml +1 -1
  27. package/core/.specialist/Ansuz/RULES.md +1 -1
  28. package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
  29. package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
  30. package/core/.specialist/Ansuz/knowledge.yaml +1 -3
  31. package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
  32. package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
  33. package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
  34. package/core/.specialist/tools/failure-detector.js +4 -4
  35. package/core/.specialist/tools/handoff-doc.js +1 -1
  36. package/core/.specialist/tools/lessons.js +2 -2
  37. package/core/CLAUDE.md +5 -5
  38. package/core/KENAZ_CORE_VERSION +1 -1
  39. package/core/dashboard/scripts/install-kenaz-cli.js +471 -0
  40. package/core/dev/scripts/check-file-size.js +1 -1
  41. package/core/dev/scripts/ci-feedback.js +1 -1
  42. package/core/dev/scripts/gc-agent-worktrees.js +11 -11
  43. package/core/dev/scripts/kenaz-session.js +3 -3
  44. package/core/dev/scripts/peer-identity-e2e.js +3 -3
  45. package/core/dev/scripts/run-rust-tests.js +2 -2
  46. package/core/dev/scripts/skill-routing-replay.js +3 -3
  47. package/core/dev/scripts/task1961/selftest.js +2 -2
  48. package/core/dev/scripts/windows-hide-guard.test.js +97 -0
  49. package/core/plugins/kenaz/commands/Ansuz.md +2 -0
  50. package/core/plugins/kenaz/guidance.md +2 -0
  51. package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
  52. package/core/plugins/kenaz/hooks/hooks.json +9 -0
  53. package/core/plugins/kenaz/hooks/kenaz-hook.js +53 -4
  54. package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
  55. package/core/plugins/kenaz/scripts/ygg.js +40 -4
  56. package/core/plugins/kenaz/scripts/ygg.test.js +63 -3
  57. package/core/plugins/kenaz-peer/hooks/register.test.ts +59 -2
  58. package/core/plugins/kenaz-peer/hooks/register.ts +24 -1
  59. package/lib/cli.js +9 -5
  60. package/package.json +6 -6
  61. package/vendor/install-kenaz-cli.js +21 -6
  62. package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
  63. package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
  64. package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
  65. package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
  66. package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
  67. package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
  68. package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
  69. package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
  70. package/core/.kenaz/main-memory/README.md +0 -230
  71. package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
  72. package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
  73. package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
  74. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
  75. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
  76. package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
  77. package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
  78. package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
  79. package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
  80. package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
  81. package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
  82. package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
  83. package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
  84. package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
  85. package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
  86. package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
  87. package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
  88. package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
  89. package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
  90. package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
  91. package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
  92. package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
  93. package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
  94. package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
  95. package/core/.kenaz/main-memory/registry.json +0 -326
  96. package/core/.kenaz/main-memory/version.yaml +0 -58
  97. package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
  98. package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
  99. package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
  100. package/core/.kenaz/specialist/prompt_1775.txt +0 -317
  101. package/core/.kenaz/specialist/prompt_1776.txt +0 -326
  102. package/core/.kenaz/specialist/prompt_1791.txt +0 -320
  103. package/core/.kenaz/specialist/prompt_1792.txt +0 -320
  104. package/core/.kenaz/specialist/prompt_1795.txt +0 -281
  105. package/core/.kenaz/specialist/prompt_1813.txt +0 -332
  106. package/core/.kenaz/specialist/prompt_1814.txt +0 -401
  107. package/core/.kenaz/specialist/prompt_1815.txt +0 -394
  108. package/core/.kenaz/specialist/prompt_1816.txt +0 -437
  109. package/core/.kenaz/specialist/prompt_1818.txt +0 -361
  110. package/core/.kenaz/specialist/prompt_1819.txt +0 -421
  111. package/core/.kenaz/specialist/prompt_1821.txt +0 -345
  112. package/core/.kenaz/specialist/prompt_1822.txt +0 -313
  113. package/core/.kenaz/specialist/prompt_1824.txt +0 -348
  114. package/core/.kenaz/specialist/prompt_1826.txt +0 -388
  115. package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
  116. package/core/.kenaz/specialist/task1825_update.json +0 -43
  117. package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
  118. package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
  119. package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
  120. package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
  121. package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
  122. package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
  123. package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
  124. package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
  125. package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
  126. package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
  127. package/core/.specialist/ansuz_session_handoff.json +0 -96
  128. package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
  129. package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
  130. package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
  131. package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
  132. package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
  133. package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
  134. package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
  135. package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
  136. package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
  137. package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
  138. package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
  139. package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
  140. package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
  141. package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
  142. package/core/dev/MUNINN_RETIREMENT.md +0 -115
  143. package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
  144. package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
  145. package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
  146. package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
  147. package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
  148. package/core/dev/PRODUCT_SPEC.md +0 -317
  149. package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
  150. package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
  151. package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
  152. package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
  153. package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
  154. package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
  155. package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
  156. package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
  157. package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
  158. package/core/dev/ansuz-eval/README.md +0 -38
  159. package/core/dev/ansuz-eval/build-fixtures.js +0 -87
  160. package/core/dev/ansuz-eval/grade.js +0 -96
  161. package/core/dev/ansuz-eval/grader.test.js +0 -117
  162. package/core/dev/ansuz-eval/tasks.md +0 -32
  163. package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
  164. package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
  165. package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
  166. package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
  167. package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
  168. package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
  169. package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
  170. package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
  171. package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
  172. package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
  173. package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
  174. package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
  175. package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
  176. package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
  177. package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
  178. package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
  179. package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
  180. package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
  181. package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
  182. package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
  183. package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
  184. package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
  185. package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
  186. package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
  187. package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
  188. package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
  189. package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
  190. package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
  191. package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
  192. package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
  193. package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
  194. package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
  195. package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
  196. package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
  197. package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
  198. package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
  199. package/core/dev/design/PHASE4_DESIGN.md +0 -559
  200. package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
  201. package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
  202. package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
  203. package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
  204. package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
  205. package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
  206. package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
  207. package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
  208. package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
  209. package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
  210. package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
  211. package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
  212. package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
  213. package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
  214. package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
  215. package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
  216. package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
  217. package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
  218. package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
  219. package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
  220. package/core/dev/jev-eval/README.md +0 -101
  221. package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
  222. package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
  223. package/core/dev/jev-eval/cli.mjs +0 -50
  224. package/core/dev/jev-eval/context.mjs +0 -183
  225. package/core/dev/jev-eval/corpus.mjs +0 -186
  226. package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
  227. package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
  228. package/core/dev/jev-eval/metrics.mjs +0 -67
  229. package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
  230. package/core/dev/jev-eval/providers.mjs +0 -95
  231. package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
  232. package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
  233. package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
  234. package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
  235. package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
  236. package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
  237. package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
  238. package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
  239. package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
  240. package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
  241. package/core/dev/jev-eval/resilience.mjs +0 -71
  242. package/core/dev/jev-eval/review.mjs +0 -78
  243. package/core/dev/jev-eval/schema.mjs +0 -87
  244. package/core/dev/jev-eval/test/context.test.mjs +0 -95
  245. package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
  246. package/core/dev/jev-eval/test/eval.test.mjs +0 -146
  247. package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
  248. package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
  249. package/core/dev/jev-eval/test/review.test.mjs +0 -61
  250. package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
  251. package/core/dev/pipeline/PROGRESS.md +0 -113
  252. package/core/dev/pipeline/PROGRESS_template.md +0 -860
  253. package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
  254. package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
  255. package/core/dev/pipeline/README.md +0 -210
  256. package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
  257. package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
  258. package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
  259. package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
  260. package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
  261. package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
  262. package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
  263. package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
  264. package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
  265. package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
  266. package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
  267. package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
  268. package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
  269. package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
  270. package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
  271. package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
  272. package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
  273. package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
  274. package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
  275. package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
  276. package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
  277. package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
  278. package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
  279. package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
  280. package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
  281. package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
  282. package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
  283. package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
  284. package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
  285. package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
  286. package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
  287. package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
  288. package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
  289. package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
  290. package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
  291. package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
  292. package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
  293. package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
  294. package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
  295. package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
  296. package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
  297. package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
  298. package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
  299. package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
  300. package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
  301. package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
  302. package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
  303. package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
  304. package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
  305. package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
  306. package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
  307. package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
  308. package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
  309. package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
  310. package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
  311. package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
  312. package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
  313. package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
  314. package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
  315. package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
  316. package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
  317. package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
  318. package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
  319. package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
  320. package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
  321. package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
  322. package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
  323. package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
  324. package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
  325. package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
  326. package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
  327. package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
  328. package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
  329. package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
  330. package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
  331. package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
  332. package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
  333. package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
  334. package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
  335. package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
  336. package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
  337. package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
  338. package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
  339. package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
  340. package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
  341. package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
  342. package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
  343. package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
  344. package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
  345. package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
  346. package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
  347. package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
  348. package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
  349. package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
  350. package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
  351. package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
  352. package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
  353. package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
  354. package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
  355. package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
  356. package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
  357. package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
  358. package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
  359. package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
  360. package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
  361. package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
  362. package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
  363. package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
  364. package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
  365. package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
  366. package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
  367. package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
  368. package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
  369. package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
  370. package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
  371. package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
  372. package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
  373. package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
  374. package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
  375. package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
  376. package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
  377. package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
  378. package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
  379. package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
  380. package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
  381. package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
  382. package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
  383. package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
  384. package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
  385. package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
  386. package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
  387. package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
  388. package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
  389. package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
  390. package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
  391. package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
  392. package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
  393. package/core/dev/pipeline/docs/overview.md +0 -406
  394. package/core/dev/pipeline/docs/task-management.md +0 -412
  395. package/core/dev/pipeline/docs/workflows.md +0 -32
  396. package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
  397. package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
  398. package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
  399. package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
  400. package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
  401. package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
  402. package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
  403. package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
  404. package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
  405. package/core/dev/scripts/README.md +0 -142
  406. package/core/dev/scripts/RUN_ONCE.bat +0 -40
  407. package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
  408. package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
  409. package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
  410. package/core/dev/scripts/init_git.ps1 +0 -396
  411. package/core/dev/scripts/init_git.sh +0 -337
  412. package/core/dev/scripts/init_project.ps1 +0 -851
  413. package/core/dev/scripts/init_project.sh +0 -477
  414. package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
  415. package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
  416. package/core/dev/scripts/run_once.sh +0 -47
  417. package/core/dev/scripts/setup_rag.ps1 +0 -304
  418. package/core/dev/scripts/setup_rag.sh +0 -230
  419. package/core/dev/scripts/start_dev_agent.sh +0 -137
  420. package/core/dev/scripts/start_multi_agent.sh +0 -41
  421. package/core/dev/scripts/sync_task_queue.ps1 +0 -505
  422. package/core/dev/scripts/sync_task_queue.sh +0 -392
  423. package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
  424. package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
  425. package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
  426. package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
  427. package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
  428. package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
  429. package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
  430. package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
  431. 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
  432. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
  433. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
  434. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
  435. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
  436. package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
  437. package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
  438. package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
  439. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
  440. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
  441. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
  442. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
  443. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
  444. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
  445. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
  446. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
  447. package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
  448. package/core/dev/specs/agent-connect/history/README.md +0 -47
  449. package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
  450. package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
  451. package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
  452. package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
  453. package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
  454. package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
  455. package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
  456. package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
  457. package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
  458. package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
  459. package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
  460. package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
  461. package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
  462. package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
  463. package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
  464. package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
  465. package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
  466. package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
  467. package/core/dev/spikes/A4-cypher-varlen.md +0 -176
  468. package/core/dev/spikes/bloat-rounds.sh +0 -25
  469. package/core/dev/spikes/mods/clean-claude.js +0 -9
  470. package/core/dev/spikes/mods/drive-probe.js +0 -29
  471. package/core/dev/spikes/mods/e2e-peer.js +0 -71
  472. package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
  473. package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
  474. package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
  475. package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
  476. package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
  477. package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
  478. package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
  479. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
  480. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
  481. 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.