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,137 +0,0 @@
1
- #!/usr/bin/env bash
2
- # ============================================================
3
- # Dev Agent Scheduler - Self-Enhancement Mode (macOS/Linux)
4
- # ============================================================
5
- # Port of START_DEV_AGENT.bat
6
- # Calls dev_agent_scheduler via claude CLI in a loop
7
- # ============================================================
8
-
9
- set -euo pipefail
10
-
11
- # --- Parameters ---
12
- WORKING_DIRECTORY=""
13
-
14
- while [[ $# -gt 0 ]]; do
15
- case "$1" in
16
- --working-directory|--wd) WORKING_DIRECTORY="$2"; shift 2 ;;
17
- --nopause) shift ;;
18
- *) shift ;;
19
- esac
20
- done
21
-
22
- if [[ -z "$WORKING_DIRECTORY" ]]; then
23
- if [[ -n "${KENAZ_PROJECT_PATH:-}" ]]; then
24
- WORKING_DIRECTORY="$KENAZ_PROJECT_PATH"
25
- else
26
- WORKING_DIRECTORY="$(cd "$(dirname "$0")/../.." && pwd)"
27
- fi
28
- fi
29
-
30
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
31
-
32
- echo ""
33
- echo "============================================================"
34
- echo " Dev Agent Scheduler - Self-Enhancement Mode"
35
- echo "============================================================"
36
- echo " - First run: 30 seconds after start"
37
- echo " - Interval: every 20 minutes (or 30s if finished early)"
38
- echo " - Total runs: 16"
39
- echo " - Max enhancement cycles: 3"
40
- echo "------------------------------------------------------------"
41
- echo " Self-Enhancement Mode:"
42
- echo " - When all tasks completed, runs /product-review"
43
- echo " - Analyzes PRODUCT_SPEC vs completed work"
44
- echo " - Creates new tasks if needed, or stops if complete"
45
- echo "============================================================"
46
- echo ""
47
- echo "Working Directory: $WORKING_DIRECTORY"
48
- echo ""
49
-
50
- # Check if claude command is available
51
- if ! command -v claude &>/dev/null; then
52
- echo "[ERROR] claude command not found!"
53
- echo "Please make sure Claude Code CLI is installed and in PATH"
54
- exit 1
55
- fi
56
- echo "[OK] Claude CLI found"
57
- echo ""
58
-
59
- cd "$WORKING_DIRECTORY"
60
-
61
- # Configuration
62
- INITIAL_DELAY=30
63
- INTERVAL=1200 # 20 minutes
64
- TOTAL_RUNS=16
65
- MAX_ENHANCEMENT_CYCLES=3
66
-
67
- STATUS_FILE="$WORKING_DIRECTORY/dev/pipeline/SELF_ENHANCEMENT_STATUS.json"
68
- ENHANCEMENT_CYCLE=0
69
-
70
- echo "Starting in $INITIAL_DELAY seconds..."
71
- sleep "$INITIAL_DELAY"
72
-
73
- for ((run=1; run<=TOTAL_RUNS; run++)); do
74
- echo ""
75
- echo "============================================================"
76
- echo " Run $run / $TOTAL_RUNS (Enhancement cycle: $ENHANCEMENT_CYCLE / $MAX_ENHANCEMENT_CYCLES)"
77
- echo " $(date '+%Y-%m-%d %H:%M:%S')"
78
- echo "============================================================"
79
-
80
- # Run dev agent
81
- claude --dangerously-skip-permissions /dev || true
82
-
83
- # Check if all tasks are done
84
- PENDING=$(python3 -c "
85
- import json
86
- try:
87
- with open('$WORKING_DIRECTORY/dev/pipeline/TASK_QUEUE.json', 'r') as f:
88
- q = json.load(f)
89
- pending = [t for t in q.get('tasks', []) if t.get('status') in ('pending', 'in_progress')]
90
- print(len(pending))
91
- except Exception:
92
- print('0')
93
- " 2>/dev/null || echo "0")
94
-
95
- if [[ "$PENDING" == "0" ]]; then
96
- echo ""
97
- echo "[INFO] All tasks completed. Running product review..."
98
-
99
- if [[ "$ENHANCEMENT_CYCLE" -lt "$MAX_ENHANCEMENT_CYCLES" ]]; then
100
- claude --dangerously-skip-permissions /product-review || true
101
- ENHANCEMENT_CYCLE=$((ENHANCEMENT_CYCLE + 1))
102
-
103
- # Check if new tasks were created
104
- NEW_PENDING=$(python3 -c "
105
- import json
106
- try:
107
- with open('$WORKING_DIRECTORY/dev/pipeline/TASK_QUEUE.json', 'r') as f:
108
- q = json.load(f)
109
- pending = [t for t in q.get('tasks', []) if t.get('status') == 'pending']
110
- print(len(pending))
111
- except Exception:
112
- print('0')
113
- " 2>/dev/null || echo "0")
114
-
115
- if [[ "$NEW_PENDING" == "0" ]]; then
116
- echo "[INFO] Product review found no new tasks. Project complete!"
117
- break
118
- else
119
- echo "[INFO] Product review created $NEW_PENDING new task(s). Continuing..."
120
- fi
121
- else
122
- echo "[INFO] Max enhancement cycles reached ($MAX_ENHANCEMENT_CYCLES). Stopping."
123
- break
124
- fi
125
- fi
126
-
127
- # Wait before next run (shorter if task finished quickly)
128
- if [[ "$run" -lt "$TOTAL_RUNS" ]]; then
129
- echo "[INFO] Waiting 30 seconds before next run..."
130
- sleep 30
131
- fi
132
- done
133
-
134
- echo ""
135
- echo "============================================================"
136
- echo " Scheduler finished after $run runs"
137
- echo "============================================================"
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env bash
2
- # ============================================================
3
- # Multi-Agent Parallel Development (macOS/Linux version)
4
- # ============================================================
5
- # Port of START_MULTI_AGENT.bat
6
- # Wrapper that launches multi_agent_scheduler.sh
7
- # ============================================================
8
-
9
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
10
-
11
- # --- Parameters ---
12
- WORKING_DIRECTORY=""
13
- EXTRA_ARGS=()
14
-
15
- while [[ $# -gt 0 ]]; do
16
- case "$1" in
17
- --working-directory|--wd) WORKING_DIRECTORY="$2"; shift 2 ;;
18
- --nopause) shift ;;
19
- *) EXTRA_ARGS+=("$1"); shift ;;
20
- esac
21
- done
22
-
23
- if [[ -z "$WORKING_DIRECTORY" ]]; then
24
- if [[ -n "${KENAZ_PROJECT_PATH:-}" ]]; then
25
- WORKING_DIRECTORY="$KENAZ_PROJECT_PATH"
26
- else
27
- WORKING_DIRECTORY="$(cd "$SCRIPT_DIR/../.." && pwd)"
28
- fi
29
- fi
30
-
31
- echo "============================================================"
32
- echo " Multi-Agent Parallel Development"
33
- echo "============================================================"
34
- echo ""
35
- echo "Starting with default settings:"
36
- echo " Max Agents: 3"
37
- echo " Poll Interval: 30s"
38
- echo " Task Timeout: 60min"
39
- echo ""
40
-
41
- exec "$SCRIPT_DIR/multi_agent_scheduler.sh" --wd "$WORKING_DIRECTORY" "${EXTRA_ARGS[@]}"
@@ -1,505 +0,0 @@
1
- # ============================================================
2
- # Sync Task Queue
3
- # ============================================================
4
- # Read markdown task files and sync to TASK_QUEUE.json
5
- # ============================================================
6
-
7
- param(
8
- [string]$WorkingDirectory, # 工作目錄
9
- [switch]$Force,
10
- [switch]$Quiet,
11
- [switch]$nopause # 從 Tauri 調用時使用(跳過暫停)
12
- )
13
-
14
- # Helper function to normalize Windows extended path format (\\?\)
15
- function Get-NormalizedPath {
16
- param([string]$Path)
17
- if ($Path -and $Path.StartsWith("\\?\")) {
18
- return $Path.Substring(4)
19
- }
20
- return $Path
21
- }
22
-
23
- # Use KENAZ_PROJECT_PATH env var if WorkingDirectory not specified
24
- if (-not $WorkingDirectory) {
25
- if ($env:KENAZ_PROJECT_PATH) {
26
- $WorkingDirectory = $env:KENAZ_PROJECT_PATH
27
- } else {
28
- $WorkingDirectory = (Get-Location).Path
29
- }
30
- }
31
-
32
- # Normalize WorkingDirectory to handle \\?\ prefix from Tauri
33
- $WorkingDirectory = Get-NormalizedPath $WorkingDirectory
34
-
35
- # If nopause is set (from Tauri), also enable Quiet mode
36
- if ($nopause) {
37
- $Quiet = $true
38
- }
39
-
40
- $TasksDir = Join-Path $WorkingDirectory "dev\pipeline\tasks"
41
- $CompletedDir = Join-Path $WorkingDirectory "dev\pipeline\completed"
42
- $QueueFile = Join-Path $WorkingDirectory "dev\pipeline\TASK_QUEUE.json"
43
-
44
- function Write-Info {
45
- param([string]$Text)
46
- if (-not $Quiet) { Write-Host " $Text" -ForegroundColor Gray }
47
- }
48
-
49
- function Write-Success {
50
- param([string]$Text)
51
- if (-not $Quiet) { Write-Host " OK $Text" -ForegroundColor Green }
52
- }
53
-
54
- function Write-FileWithRetry {
55
- param(
56
- [string]$Path,
57
- [string]$Content,
58
- [int]$MaxRetries = 5,
59
- [int]$RetryDelayMs = 200
60
- )
61
-
62
- $attempt = 0
63
- while ($attempt -lt $MaxRetries) {
64
- try {
65
- $Content | Set-Content $Path -Encoding UTF8 -ErrorAction Stop
66
- return $true
67
- } catch [System.IO.IOException] {
68
- $attempt++
69
- if ($attempt -lt $MaxRetries) {
70
- Start-Sleep -Milliseconds $RetryDelayMs
71
- $RetryDelayMs = $RetryDelayMs * 2 # Exponential backoff
72
- } else {
73
- throw $_
74
- }
75
- }
76
- }
77
- return $false
78
- }
79
-
80
- # Smart Agent Type Inference (mirrors multi_agent_scheduler.ps1)
81
- function Get-InferredAgentType {
82
- param(
83
- [string]$TaskTitle,
84
- [string[]]$ScopePaths
85
- )
86
-
87
- $titleLower = $TaskTitle.ToLower()
88
-
89
- # Keyword matching for agent type (English only to avoid encoding issues)
90
- $designerKeywords = @('ui', 'ux', 'layout', 'style', 'design', 'css', 'theme', 'color')
91
- $backendKeywords = @('api', 'database', 'backend', 'endpoint', 'server', 'sql', 'migration')
92
- $qaKeywords = @('test', 'qa', 'quality', 'unit test', 'e2e', 'spec')
93
- $sreKeywords = @('deploy', 'ci/cd', 'monitoring', 'infrastructure', 'docker', 'kubernetes', 'devops')
94
- $frontendKeywords = @('component', 'react', 'frontend', 'tsx', 'jsx', 'hook', 'state')
95
-
96
- # Check keywords in title
97
- foreach ($kw in $designerKeywords) {
98
- if ($titleLower.Contains($kw)) { return "designer" }
99
- }
100
- foreach ($kw in $backendKeywords) {
101
- if ($titleLower.Contains($kw)) { return "backend" }
102
- }
103
- foreach ($kw in $qaKeywords) {
104
- if ($titleLower.Contains($kw)) { return "qa" }
105
- }
106
- foreach ($kw in $sreKeywords) {
107
- if ($titleLower.Contains($kw)) { return "sre" }
108
- }
109
- foreach ($kw in $frontendKeywords) {
110
- if ($titleLower.Contains($kw)) { return "developer" }
111
- }
112
-
113
- # Scope path matching
114
- foreach ($path in $ScopePaths) {
115
- $pathLower = $path.ToLower()
116
- if ($pathLower -match "api/" -or $pathLower -match "backend/") {
117
- return "backend"
118
- }
119
- if ($pathLower -match "components/" -or $pathLower -match "src/" -or $pathLower -match "dashboard/") {
120
- return "developer"
121
- }
122
- if ($pathLower -match "tests/" -or $pathLower -match "spec/") {
123
- return "qa"
124
- }
125
- if ($pathLower -match "deploy/" -or $pathLower -match "infra/") {
126
- return "sre"
127
- }
128
- }
129
-
130
- # Default to dev
131
- return "dev"
132
- }
133
-
134
- function Get-SkillPathForType {
135
- param([string]$AgentType)
136
-
137
- $skillPaths = @{
138
- "developer" = ".claude/skills/developer/SKILL.md"
139
- "backend" = ".claude/skills/backend_engineer/SKILL.md"
140
- "designer" = ".claude/skills/designer/SKILL.md"
141
- "qa" = ".claude/skills/qa_engineer/SKILL.md"
142
- "sre" = ".claude/skills/sre_agent/SKILL.md"
143
- "dev" = ".claude/skills/dev_agent/SKILL.md"
144
- "frontend" = ".claude/skills/frontend_agent/SKILL.md"
145
- "architect" = ".claude/skills/architect_agent/SKILL.md"
146
- }
147
-
148
- if ($skillPaths.ContainsKey($AgentType)) {
149
- return $skillPaths[$AgentType]
150
- }
151
-
152
- return ".claude/skills/dev_agent/SKILL.md"
153
- }
154
-
155
- function ConvertFrom-TaskFile {
156
- param([string]$FilePath)
157
-
158
- $content = Get-Content $FilePath -Raw -Encoding UTF8
159
- $fileName = Split-Path $FilePath -Leaf
160
-
161
- # Extract task ID from filename (e.g., TASK_001_name.md -> TASK_001)
162
- if ($fileName -match "^(TASK_\d+)") {
163
- $taskId = $Matches[1]
164
- } else {
165
- return $null
166
- }
167
-
168
- # Extract title from first heading
169
- $title = ""
170
- if ($content -match "^#\s+(.+?)(?:\r?\n|$)") {
171
- $title = $Matches[1] -replace "^${taskId}:\s*", ""
172
- }
173
-
174
- # Extract priority (P0-P3) - look for P0, P1, P2, P3 anywhere
175
- $priority = "P2" # Default
176
- if ($content -match "\b(P[0-3])\b") {
177
- $priority = $Matches[1]
178
- }
179
-
180
- # Extract scope paths from directory structure or tech stack
181
- $scopePaths = @()
182
-
183
- # Look for paths in the content
184
- if ($content -match "dashboard/") { $scopePaths += "dashboard/" }
185
- if ($content -match "src/") { $scopePaths += "src/" }
186
- if ($content -match "app/") { $scopePaths += "app/" }
187
- if ($content -match "components/") { $scopePaths += "components/" }
188
- if ($content -match "api/") { $scopePaths += "api/" }
189
- if ($content -match "tests/") { $scopePaths += "tests/" }
190
-
191
- # Default scope if none found
192
- if ($scopePaths.Count -eq 0) {
193
- $scopePaths += "src/"
194
- }
195
-
196
- # Extract dependencies - find TASK_XXX references
197
- $dependencies = @()
198
- $depMatches = [regex]::Matches($content, "TASK_(\d+)")
199
- foreach ($m in $depMatches) {
200
- $depId = "TASK_$($m.Groups[1].Value)"
201
- if ($depId -ne $taskId -and $depId -notin $dependencies) {
202
- $dependencies += $depId
203
- }
204
- }
205
-
206
- # Filter: only keep dependencies with lower task numbers (implicit ordering)
207
- $taskNum = [int]($taskId -replace "TASK_0*", "")
208
- $filteredDeps = @()
209
- foreach ($dep in $dependencies) {
210
- $depNum = [int]($dep -replace "TASK_0*", "")
211
- if ($depNum -lt $taskNum) {
212
- $filteredDeps += $dep
213
- }
214
- }
215
-
216
- # Ensure arrays are always arrays (not null or empty object)
217
- $finalScopePaths = @($scopePaths | Select-Object -Unique)
218
- $finalDeps = @($filteredDeps | Select-Object -Unique)
219
-
220
- # Infer agent type based on task content
221
- $agentType = Get-InferredAgentType -TaskTitle $title -ScopePaths $finalScopePaths
222
- $skillPath = Get-SkillPathForType -AgentType $agentType
223
-
224
- return @{
225
- id = $taskId
226
- title = $title.Trim()
227
- priority = $priority
228
- status = "pending"
229
- scope_paths = $finalScopePaths
230
- dependencies = $finalDeps
231
- source_file = $fileName
232
- created_at = (Get-Date -Format "o")
233
- agent_type = $agentType
234
- skill_path = $skillPath
235
- }
236
- }
237
-
238
- # Parse YAML task files (simple regex-based parser for our schema)
239
- function ConvertFrom-YamlTaskFile {
240
- param([string]$FilePath)
241
-
242
- $content = Get-Content $FilePath -Raw -Encoding UTF8
243
- $fileName = Split-Path $FilePath -Leaf
244
-
245
- # Extract task ID from filename
246
- if ($fileName -match "^(TASK_\d+)") {
247
- $taskId = $Matches[1]
248
- } else {
249
- return $null
250
- }
251
-
252
- # Parse YAML fields using regex
253
- $title = ""
254
- if ($content -match '(?m)^title:\s*"?([^"\r\n]+)"?') {
255
- $title = $Matches[1].Trim()
256
- }
257
-
258
- $description = ""
259
- # Handle multiline description with | or >
260
- if ($content -match '(?ms)^description:\s*\|?\s*\r?\n((?:[ \t]+[^\r\n]*\r?\n?)+)') {
261
- $description = $Matches[1] -replace '(?m)^[ \t]+', '' -replace '\r?\n', ' '
262
- $description = $description.Trim()
263
- # Truncate long descriptions for card display
264
- if ($description.Length -gt 200) {
265
- $description = $description.Substring(0, 197) + "..."
266
- }
267
- } elseif ($content -match '(?m)^description:\s*"?([^"\r\n]+)"?') {
268
- $description = $Matches[1].Trim()
269
- }
270
-
271
- $priority = "P2"
272
- if ($content -match '(?m)^priority:\s*"?(P[0-3])"?') {
273
- $priority = $Matches[1]
274
- }
275
-
276
- $status = "pending"
277
- if ($content -match '(?m)^status:\s*"?([^"\r\n]+)"?') {
278
- $status = $Matches[1].Trim()
279
- }
280
-
281
- $agentType = "dev"
282
- if ($content -match '(?m)^agent_type:\s*"?([^"\r\n]+)"?') {
283
- $agentType = $Matches[1].Trim()
284
- }
285
-
286
- # Parse dependencies array
287
- $dependencies = @()
288
- if ($content -match '(?ms)^dependencies:\s*\r?\n((?:[ \t]*-[^\r\n]*\r?\n?)+)') {
289
- $depBlock = $Matches[1]
290
- $depMatches = [regex]::Matches($depBlock, '-\s*"?(TASK_\d+)"?')
291
- foreach ($m in $depMatches) {
292
- $dependencies += $m.Groups[1].Value
293
- }
294
- }
295
-
296
- # Parse scope_paths array
297
- $scopePaths = @()
298
- if ($content -match '(?ms)^scope_paths:\s*\r?\n((?:[ \t]*-[^\r\n]*\r?\n?)+)') {
299
- $scopeBlock = $Matches[1]
300
- $scopeMatches = [regex]::Matches($scopeBlock, '-\s*"?([^"\r\n]+)"?')
301
- foreach ($m in $scopeMatches) {
302
- $scopePaths += $m.Groups[1].Value.Trim()
303
- }
304
- }
305
-
306
- # Parse created_at
307
- $createdAt = (Get-Date -Format "o")
308
- if ($content -match '(?m)^[ \t]*created_at:\s*"?([^"\r\n]+)"?') {
309
- $createdAt = $Matches[1].Trim()
310
- }
311
-
312
- # Parse estimated_hours
313
- $estimatedHours = $null
314
- if ($content -match '(?m)^estimated_hours:\s*(\d+)') {
315
- $estimatedHours = [int]$Matches[1]
316
- }
317
-
318
- # Default scope if none found
319
- if ($scopePaths.Count -eq 0) {
320
- $scopePaths += "src/"
321
- }
322
-
323
- $skillPath = Get-SkillPathForType -AgentType $agentType
324
-
325
- $task = @{
326
- id = $taskId
327
- title = $title
328
- description = $description
329
- priority = $priority
330
- status = $status
331
- scope_paths = @($scopePaths)
332
- dependencies = @($dependencies)
333
- source_file = $fileName
334
- created_at = $createdAt
335
- agent_type = $agentType
336
- skill_path = $skillPath
337
- }
338
-
339
- if ($estimatedHours) {
340
- $task["estimated_hours"] = $estimatedHours
341
- }
342
-
343
- return $task
344
- }
345
-
346
- # ============================================================
347
- # Main
348
- # ============================================================
349
-
350
- if (-not $Quiet) {
351
- Write-Host ""
352
- Write-Host "============================================================" -ForegroundColor Cyan
353
- Write-Host " Syncing Task Queue" -ForegroundColor Cyan
354
- Write-Host "============================================================" -ForegroundColor Cyan
355
- Write-Host ""
356
- }
357
-
358
- # Load existing queue
359
- $queue = @{
360
- version = "1.0.0"
361
- project = "kenaz-dashboard"
362
- last_updated = (Get-Date -Format "o")
363
- statistics = @{
364
- total = 0
365
- pending = 0
366
- in_progress = 0
367
- completed = 0
368
- blocked = 0
369
- cancelled = 0
370
- }
371
- tasks = @()
372
- metadata = @{
373
- created_at = (Get-Date -Format "o")
374
- source_spec = "dev/PRODUCT_SPEC.md"
375
- }
376
- }
377
-
378
- $existingTasks = @{}
379
- if ((Test-Path $QueueFile) -and -not $Force) {
380
- try {
381
- $existing = Get-Content $QueueFile -Raw -Encoding UTF8 | ConvertFrom-Json
382
- foreach ($t in $existing.tasks) {
383
- $existingTasks[$t.id] = $t
384
- }
385
- } catch {
386
- # Ignore parse errors
387
- }
388
- }
389
-
390
- # Scan task files (both .md and .yaml)
391
- $mdFiles = Get-ChildItem -Path $TasksDir -Filter "TASK_*.md" -ErrorAction SilentlyContinue
392
- $yamlFiles = Get-ChildItem -Path $TasksDir -Filter "TASK_*.yaml" -ErrorAction SilentlyContinue
393
- $tasks = @()
394
-
395
- Write-Info "Scanning tasks from: $TasksDir (only pending/in_progress/blocked tasks)"
396
-
397
- # Process Markdown files
398
- foreach ($file in $mdFiles) {
399
- $task = ConvertFrom-TaskFile -FilePath $file.FullName
400
- if ($task) {
401
- $tasks += $task
402
- Write-Info " Found (md): $($task.id) - $($task.title) [$($task.priority)]"
403
- }
404
- }
405
-
406
- # Process YAML files
407
- foreach ($file in $yamlFiles) {
408
- $task = ConvertFrom-YamlTaskFile -FilePath $file.FullName
409
- if ($task) {
410
- $tasks += $task
411
- $descPreview = if ($task.description -and $task.description.Length -gt 30) { $task.description.Substring(0, 30) + "..." } else { $task.description }
412
- Write-Info " Found (yaml): $($task.id) - $($task.title) [$($task.priority)]"
413
- if ($descPreview) { Write-Info " Desc: $descPreview" }
414
- }
415
- }
416
-
417
- # Merge with existing data (preserve status, timestamps, etc.)
418
- $mergedTasks = @()
419
- foreach ($task in $tasks) {
420
- if ($existingTasks.ContainsKey($task.id) -and -not $Force) {
421
- $existingTask = $existingTasks[$task.id]
422
-
423
- # Preserve status if not pending
424
- if ($existingTask.status -and $existingTask.status -ne "pending") {
425
- $task.status = $existingTask.status
426
- }
427
-
428
- # Don't override description from YAML if it exists
429
- if (-not $task.description -and $existingTask.description) {
430
- $task["description"] = $existingTask.description
431
- }
432
-
433
- # Preserve Dashboard-required fields
434
- if ($existingTask.estimated_hours -and -not $task.estimated_hours) {
435
- $task["estimated_hours"] = $existingTask.estimated_hours
436
- }
437
-
438
- # Preserve agent/branch info
439
- if ($existingTask.assigned_agent) { $task["assigned_agent"] = $existingTask.assigned_agent }
440
- if ($existingTask.branch) { $task["branch"] = $existingTask.branch }
441
- if ($existingTask.started_at) { $task["started_at"] = $existingTask.started_at }
442
- if ($existingTask.completed_at) { $task["completed_at"] = $existingTask.completed_at }
443
- }
444
-
445
- $mergedTasks += $task
446
- }
447
- $tasks = $mergedTasks
448
-
449
- # REMOVED: Previously scanned completed/ directory and added completed tasks to queue
450
- # This was causing FAIL-003 queue pollution issue.
451
- # Completed tasks should stay in .memory/COMPLETED_TASKS.json, not in TASK_QUEUE.json.
452
- # Reference: .failure/pipeline/FAIL-003_queue_pollution.md
453
- Write-Info "Skipping completed/ directory (completed tasks are managed in .memory/)"
454
-
455
- # Sort by priority and ID
456
- $priorityOrder = @{ "P0" = 0; "P1" = 1; "P2" = 2; "P3" = 3 }
457
- $tasks = $tasks | Sort-Object { $priorityOrder[$_.priority] }, { $_.id }
458
-
459
- # Update queue (ensure tasks is always an array, even with 1 element)
460
- $queue.tasks = @($tasks)
461
- $queue.last_updated = (Get-Date -Format "o")
462
-
463
- # Calculate statistics (use @() to ensure proper count even with 1 element)
464
- $pendingCount = @($tasks | Where-Object { $_.status -eq "pending" }).Count
465
- $inProgressCount = @($tasks | Where-Object { $_.status -eq "in_progress" }).Count
466
- $completedCount = @($tasks | Where-Object { $_.status -eq "completed" }).Count
467
- $blockedCount = @($tasks | Where-Object { $_.status -eq "blocked" }).Count
468
- $cancelledCount = @($tasks | Where-Object { $_.status -eq "cancelled" }).Count
469
-
470
- $queue.statistics = @{
471
- total = @($tasks).Count
472
- pending = $pendingCount
473
- in_progress = $inProgressCount
474
- completed = $completedCount
475
- blocked = $blockedCount
476
- cancelled = $cancelledCount
477
- }
478
-
479
- # Save queue with retry mechanism for file locking
480
- $jsonContent = $queue | ConvertTo-Json -Depth 10
481
- try {
482
- Write-FileWithRetry -Path $QueueFile -Content $jsonContent -MaxRetries 5 -RetryDelayMs 200
483
- } catch {
484
- if (-not $Quiet) {
485
- Write-Host " WARNING: Failed to save queue after retries: $_" -ForegroundColor Yellow
486
- }
487
- }
488
-
489
- if (-not $Quiet) {
490
- Write-Host ""
491
- Write-Success "Task queue synced!"
492
- Write-Host ""
493
- Write-Host " Statistics (active tasks only):" -ForegroundColor Cyan
494
- Write-Host " Total: $($tasks.Count)"
495
- Write-Host " Pending: $pendingCount"
496
- Write-Host " In Progress: $inProgressCount"
497
- Write-Host " Blocked: $blockedCount"
498
- Write-Host " Completed: $completedCount (should be 0 - completed tasks are in .memory/)"
499
- Write-Host ""
500
- Write-Host " Source: $TasksDir (completed/ is ignored)" -ForegroundColor Gray
501
- Write-Host " Queue file: $QueueFile" -ForegroundColor Gray
502
- Write-Host ""
503
- }
504
-
505
- return $queue