kenaz 0.3.22 → 0.3.24

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 (474) hide show
  1. package/core/.claude/hooks/_user-scope.js +1 -1
  2. package/core/.claude/hooks/core-resolve.js +1 -1
  3. package/core/.claude/hooks/worktree-create.js +11 -29
  4. package/core/.claude/hooks/worktree-remove.js +12 -38
  5. package/core/.collaboration/core/reconcile.js +16 -1
  6. package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
  7. package/core/.collaboration/core/task-api.js +37 -7
  8. package/core/.formation/bifrost/launch.js +1 -1
  9. package/core/.formation/tools/dispatch-detail/worktree-subagent-mode.md +6 -1
  10. package/core/.formation/tools/kenaz-stats.js +1 -1
  11. package/core/.formation/tools/post-complete/git-merge.js +1 -1
  12. package/core/.formation/tools/prompt.js +1 -1
  13. package/core/.formation/tools/utils.js +5 -5
  14. package/core/.formation/tools/worktree-reclaim.js +73 -2
  15. package/core/.formation/tools/worktree-reclaim.test.js +113 -0
  16. package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
  17. package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
  18. package/core/.rule/general/project-self-containment.yaml +2 -2
  19. package/core/.specialist/Amelia/README.md +1 -1
  20. package/core/.specialist/Amelia/rule.yaml +1 -1
  21. package/core/.specialist/Ansuz/RULES.md +6 -2
  22. package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
  23. package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
  24. package/core/.specialist/Ansuz/knowledge.yaml +1 -3
  25. package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
  26. package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
  27. package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
  28. package/core/.specialist/tools/failure-detector.js +4 -4
  29. package/core/.specialist/tools/handoff-doc.js +1 -1
  30. package/core/.specialist/tools/lessons.js +2 -2
  31. package/core/CLAUDE.md +5 -5
  32. package/core/KENAZ_CORE_VERSION +1 -1
  33. package/core/dashboard/scripts/install-kenaz-cli.js +56 -30
  34. package/core/dev/scripts/check-file-size.js +1 -1
  35. package/core/dev/scripts/ci-feedback.js +1 -1
  36. package/core/dev/scripts/gc-agent-worktrees.js +13 -12
  37. package/core/dev/scripts/kenaz-session.js +3 -3
  38. package/core/dev/scripts/peer-identity-e2e.js +6 -4
  39. package/core/dev/scripts/run-rust-tests.js +2 -2
  40. package/core/dev/scripts/skill-routing-replay.js +3 -3
  41. package/core/dev/scripts/task1961/selftest.js +2 -2
  42. package/core/dev/scripts/windows-hide-guard.test.js +112 -0
  43. package/core/plugins/kenaz/guidance.md +1 -0
  44. package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
  45. package/core/plugins/kenaz/hooks/hooks.json +9 -0
  46. package/core/plugins/kenaz/hooks/kenaz-hook.js +58 -4
  47. package/core/plugins/kenaz/hooks/worktree-guard.js +121 -0
  48. package/core/plugins/kenaz/hooks/worktree-guard.test.js +75 -0
  49. package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
  50. package/core/plugins/kenaz-peer/hooks/register.test.ts +14 -2
  51. package/core/plugins/kenaz-peer/hooks/register.ts +6 -1
  52. package/lib/cli.js +9 -5
  53. package/package.json +6 -6
  54. package/vendor/install-kenaz-cli.js +56 -30
  55. package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
  56. package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
  57. package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
  58. package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
  59. package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
  60. package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
  61. package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
  62. package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
  63. package/core/.kenaz/main-memory/README.md +0 -230
  64. package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
  65. package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
  66. package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
  67. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
  68. package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
  69. package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
  70. package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
  71. package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
  72. package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
  73. package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
  74. package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
  75. package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
  76. package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
  77. package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
  78. package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
  79. package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
  80. package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
  81. package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
  82. package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
  83. package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
  84. package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
  85. package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
  86. package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
  87. package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
  88. package/core/.kenaz/main-memory/registry.json +0 -326
  89. package/core/.kenaz/main-memory/version.yaml +0 -58
  90. package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
  91. package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
  92. package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
  93. package/core/.kenaz/specialist/prompt_1775.txt +0 -317
  94. package/core/.kenaz/specialist/prompt_1776.txt +0 -326
  95. package/core/.kenaz/specialist/prompt_1791.txt +0 -320
  96. package/core/.kenaz/specialist/prompt_1792.txt +0 -320
  97. package/core/.kenaz/specialist/prompt_1795.txt +0 -281
  98. package/core/.kenaz/specialist/prompt_1813.txt +0 -332
  99. package/core/.kenaz/specialist/prompt_1814.txt +0 -401
  100. package/core/.kenaz/specialist/prompt_1815.txt +0 -394
  101. package/core/.kenaz/specialist/prompt_1816.txt +0 -437
  102. package/core/.kenaz/specialist/prompt_1818.txt +0 -361
  103. package/core/.kenaz/specialist/prompt_1819.txt +0 -421
  104. package/core/.kenaz/specialist/prompt_1821.txt +0 -345
  105. package/core/.kenaz/specialist/prompt_1822.txt +0 -313
  106. package/core/.kenaz/specialist/prompt_1824.txt +0 -348
  107. package/core/.kenaz/specialist/prompt_1826.txt +0 -388
  108. package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
  109. package/core/.kenaz/specialist/task1825_update.json +0 -43
  110. package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
  111. package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
  112. package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
  113. package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
  114. package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
  115. package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
  116. package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
  117. package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
  118. package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
  119. package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
  120. package/core/.specialist/ansuz_session_handoff.json +0 -96
  121. package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
  122. package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
  123. package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
  124. package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
  125. package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
  126. package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
  127. package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
  128. package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
  129. package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
  130. package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
  131. package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
  132. package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
  133. package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
  134. package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
  135. package/core/dev/MUNINN_RETIREMENT.md +0 -115
  136. package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
  137. package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
  138. package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
  139. package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
  140. package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
  141. package/core/dev/PRODUCT_SPEC.md +0 -317
  142. package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
  143. package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
  144. package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
  145. package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
  146. package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
  147. package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
  148. package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
  149. package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
  150. package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
  151. package/core/dev/ansuz-eval/README.md +0 -38
  152. package/core/dev/ansuz-eval/build-fixtures.js +0 -87
  153. package/core/dev/ansuz-eval/grade.js +0 -96
  154. package/core/dev/ansuz-eval/grader.test.js +0 -117
  155. package/core/dev/ansuz-eval/tasks.md +0 -32
  156. package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
  157. package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
  158. package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
  159. package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
  160. package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
  161. package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
  162. package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
  163. package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
  164. package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
  165. package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
  166. package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
  167. package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
  168. package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
  169. package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
  170. package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
  171. package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
  172. package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
  173. package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
  174. package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
  175. package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
  176. package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
  177. package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
  178. package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
  179. package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
  180. package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
  181. package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
  182. package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
  183. package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
  184. package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
  185. package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
  186. package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
  187. package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
  188. package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
  189. package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
  190. package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
  191. package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
  192. package/core/dev/design/PHASE4_DESIGN.md +0 -559
  193. package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
  194. package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
  195. package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
  196. package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
  197. package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
  198. package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
  199. package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
  200. package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
  201. package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
  202. package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
  203. package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
  204. package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
  205. package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
  206. package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
  207. package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
  208. package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
  209. package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
  210. package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
  211. package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
  212. package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
  213. package/core/dev/jev-eval/README.md +0 -101
  214. package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
  215. package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
  216. package/core/dev/jev-eval/cli.mjs +0 -50
  217. package/core/dev/jev-eval/context.mjs +0 -183
  218. package/core/dev/jev-eval/corpus.mjs +0 -186
  219. package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
  220. package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
  221. package/core/dev/jev-eval/metrics.mjs +0 -67
  222. package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
  223. package/core/dev/jev-eval/providers.mjs +0 -95
  224. package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
  225. package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
  226. package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
  227. package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
  228. package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
  229. package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
  230. package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
  231. package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
  232. package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
  233. package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
  234. package/core/dev/jev-eval/resilience.mjs +0 -71
  235. package/core/dev/jev-eval/review.mjs +0 -78
  236. package/core/dev/jev-eval/schema.mjs +0 -87
  237. package/core/dev/jev-eval/test/context.test.mjs +0 -95
  238. package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
  239. package/core/dev/jev-eval/test/eval.test.mjs +0 -146
  240. package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
  241. package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
  242. package/core/dev/jev-eval/test/review.test.mjs +0 -61
  243. package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
  244. package/core/dev/pipeline/PROGRESS.md +0 -113
  245. package/core/dev/pipeline/PROGRESS_template.md +0 -860
  246. package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
  247. package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
  248. package/core/dev/pipeline/README.md +0 -210
  249. package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
  250. package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
  251. package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
  252. package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
  253. package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
  254. package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
  255. package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
  256. package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
  257. package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
  258. package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
  259. package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
  260. package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
  261. package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
  262. package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
  263. package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
  264. package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
  265. package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
  266. package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
  267. package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
  268. package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
  269. package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
  270. package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
  271. package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
  272. package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
  273. package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
  274. package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
  275. package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
  276. package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
  277. package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
  278. package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
  279. package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
  280. package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
  281. package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
  282. package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
  283. package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
  284. package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
  285. package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
  286. package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
  287. package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
  288. package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
  289. package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
  290. package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
  291. package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
  292. package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
  293. package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
  294. package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
  295. package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
  296. package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
  297. package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
  298. package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
  299. package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
  300. package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
  301. package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
  302. package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
  303. package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
  304. package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
  305. package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
  306. package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
  307. package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
  308. package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
  309. package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
  310. package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
  311. package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
  312. package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
  313. package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
  314. package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
  315. package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
  316. package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
  317. package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
  318. package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
  319. package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
  320. package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
  321. package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
  322. package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
  323. package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
  324. package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
  325. package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
  326. package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
  327. package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
  328. package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
  329. package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
  330. package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
  331. package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
  332. package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
  333. package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
  334. package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
  335. package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
  336. package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
  337. package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
  338. package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
  339. package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
  340. package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
  341. package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
  342. package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
  343. package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
  344. package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
  345. package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
  346. package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
  347. package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
  348. package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
  349. package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
  350. package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
  351. package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
  352. package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
  353. package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
  354. package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
  355. package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
  356. package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
  357. package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
  358. package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
  359. package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
  360. package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
  361. package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
  362. package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
  363. package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
  364. package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
  365. package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
  366. package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
  367. package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
  368. package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
  369. package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
  370. package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
  371. package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
  372. package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
  373. package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
  374. package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
  375. package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
  376. package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
  377. package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
  378. package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
  379. package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
  380. package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
  381. package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
  382. package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
  383. package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
  384. package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
  385. package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
  386. package/core/dev/pipeline/docs/overview.md +0 -406
  387. package/core/dev/pipeline/docs/task-management.md +0 -412
  388. package/core/dev/pipeline/docs/workflows.md +0 -32
  389. package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
  390. package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
  391. package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
  392. package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
  393. package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
  394. package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
  395. package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
  396. package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
  397. package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
  398. package/core/dev/scripts/README.md +0 -142
  399. package/core/dev/scripts/RUN_ONCE.bat +0 -40
  400. package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
  401. package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
  402. package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
  403. package/core/dev/scripts/init_git.ps1 +0 -396
  404. package/core/dev/scripts/init_git.sh +0 -337
  405. package/core/dev/scripts/init_project.ps1 +0 -851
  406. package/core/dev/scripts/init_project.sh +0 -477
  407. package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
  408. package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
  409. package/core/dev/scripts/run_once.sh +0 -47
  410. package/core/dev/scripts/setup_rag.ps1 +0 -304
  411. package/core/dev/scripts/setup_rag.sh +0 -230
  412. package/core/dev/scripts/start_dev_agent.sh +0 -137
  413. package/core/dev/scripts/start_multi_agent.sh +0 -41
  414. package/core/dev/scripts/sync_task_queue.ps1 +0 -505
  415. package/core/dev/scripts/sync_task_queue.sh +0 -392
  416. package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
  417. package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
  418. package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
  419. package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
  420. package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
  421. package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
  422. package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
  423. package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
  424. 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
  425. package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
  426. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
  427. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
  428. package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
  429. package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
  430. package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
  431. package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
  432. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
  433. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
  434. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
  435. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
  436. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
  437. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
  438. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
  439. package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
  440. package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
  441. package/core/dev/specs/agent-connect/history/README.md +0 -47
  442. package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
  443. package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
  444. package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
  445. package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
  446. package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
  447. package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
  448. package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
  449. package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
  450. package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
  451. package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
  452. package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
  453. package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
  454. package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
  455. package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
  456. package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
  457. package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
  458. package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
  459. package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
  460. package/core/dev/spikes/A4-cypher-varlen.md +0 -176
  461. package/core/dev/spikes/bloat-rounds.sh +0 -25
  462. package/core/dev/spikes/mods/clean-claude.js +0 -9
  463. package/core/dev/spikes/mods/drive-probe.js +0 -29
  464. package/core/dev/spikes/mods/e2e-peer.js +0 -71
  465. package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
  466. package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
  467. package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
  468. package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
  469. package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
  470. package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
  471. package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
  472. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
  473. package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
  474. package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
@@ -1,536 +0,0 @@
1
- # ============================================================
2
- # Dev Agent Scheduler - Self-Enhancement Mode
3
- # ============================================================
4
- # 自我增強迭代模式:
5
- # 1. 執行 /dev 完成開發任務
6
- # 2. 當沒有 pending tasks 時,呼叫 /產品檢視 分析專案
7
- # 3. 根據分析結果決定繼續迭代或結束
8
- # ============================================================
9
-
10
- param(
11
- [int]$InitialDelaySeconds = 30,
12
- [int]$IntervalMinutes = 20,
13
- [int]$EarlyFinishDelaySeconds = 30,
14
- [int]$TotalRuns = 16,
15
- [int]$MaxEnhancementCycles = 3, # 最大自我增強循環次數
16
- [string]$WorkingDirectory, # 工作目錄
17
- [switch]$nopause # 從 Tauri 調用時使用(跳過暫停)
18
- )
19
-
20
- # Helper function to normalize Windows extended path format (\\?\)
21
- function Get-NormalizedPath {
22
- param([string]$Path)
23
- if ($Path -and $Path.StartsWith("\\?\")) {
24
- return $Path.Substring(4)
25
- }
26
- return $Path
27
- }
28
-
29
- # Use KENAZ_PROJECT_PATH env var if WorkingDirectory not specified
30
- if (-not $WorkingDirectory) {
31
- if ($env:KENAZ_PROJECT_PATH) {
32
- $WorkingDirectory = $env:KENAZ_PROJECT_PATH
33
- } else {
34
- $WorkingDirectory = (Get-Location).Path
35
- }
36
- }
37
-
38
- # Normalize WorkingDirectory to handle \\?\ prefix from Tauri
39
- $WorkingDirectory = Get-NormalizedPath $WorkingDirectory
40
-
41
- # Config
42
- $LogFile = Join-Path $WorkingDirectory "dev\pipeline\logs\scheduler_$(Get-Date -Format 'yyyy-MM-dd').log"
43
- $StatusFile = Join-Path $WorkingDirectory "dev\pipeline\SELF_ENHANCEMENT_STATUS.json"
44
-
45
- # Ensure log directory exists
46
- $LogDir = Split-Path $LogFile -Parent
47
- if (-not (Test-Path $LogDir)) {
48
- New-Item -ItemType Directory -Path $LogDir -Force | Out-Null
49
- }
50
-
51
- function Write-Log {
52
- param([string]$Message, [switch]$NoConsole)
53
- $Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
54
- $LogMessage = "[$Timestamp] $Message"
55
- if (-not $NoConsole) {
56
- Write-Host $LogMessage
57
- }
58
- Add-Content -Path $LogFile -Value $LogMessage -Encoding UTF8
59
- }
60
-
61
- function Get-ProgressInfo {
62
- $ProgressFile = Join-Path $WorkingDirectory "dev\pipeline\PROGRESS.md"
63
-
64
- $info = @{
65
- HasPendingTasks = $false
66
- CurrentTask = $null
67
- NextTask = $null
68
- Completed = 0
69
- Total = 0
70
- Pending = 0
71
- InProgress = 0
72
- }
73
-
74
- if (-not (Test-Path $ProgressFile)) {
75
- $info.HasPendingTasks = $true
76
- return $info
77
- }
78
-
79
- try {
80
- $Content = Get-Content $ProgressFile -Raw -Encoding UTF8
81
-
82
- # Count from statistics section
83
- $lines = $Content -split "`n"
84
- foreach ($line in $lines) {
85
- # 分開處理 Total 匹配,避免 -or 導致 $Matches 混亂
86
- if ($line -match "Total.*?:\s*(\d+)") {
87
- $info.Total = [int]$Matches[1]
88
- }
89
- elseif (($line -match "task") -and ($line -match ":\s*(\d+)\s*$")) {
90
- $info.Total = [int]$Matches[1]
91
- }
92
-
93
- # 分開處理完成數匹配
94
- if (($line -match "complet" -or $line -match "done") -and ($line -match "(\d+)\s*\(\d+%\)")) {
95
- $info.Completed = [int]$Matches[1]
96
- }
97
- }
98
-
99
- # Check tasks directory for pending count
100
- $tasksDir = Join-Path $WorkingDirectory "dev\pipeline\tasks"
101
- if (Test-Path $tasksDir) {
102
- $taskFiles = Get-ChildItem -Path $tasksDir -Filter "TASK_*.md" -ErrorAction SilentlyContinue
103
- $info.Pending = $taskFiles.Count
104
- if ($info.Pending -gt 0) {
105
- $info.HasPendingTasks = $true
106
-
107
- $firstTask = $taskFiles | Sort-Object Name | Select-Object -First 1
108
- if ($firstTask) {
109
- $taskId = $firstTask.BaseName -replace '_.*$', ''
110
- $taskName = $firstTask.BaseName -replace '^TASK_\d+_', '' -replace '_', ' '
111
- $info.NextTask = "${taskId}: $taskName"
112
- }
113
- }
114
- }
115
-
116
- # Check completed directory
117
- $completedDir = Join-Path $WorkingDirectory "dev\pipeline\completed"
118
- if (Test-Path $completedDir) {
119
- $completedFiles = Get-ChildItem -Path $completedDir -Filter "TASK_*.md" -ErrorAction SilentlyContinue
120
- $info.Completed = $completedFiles.Count
121
- }
122
-
123
- if ($info.Total -eq 0) {
124
- $info.Total = $info.Pending + $info.Completed + $info.InProgress
125
- }
126
-
127
- # Check for status markers in table format
128
- if ($Content -match "\|\s*pending\s*\|") {
129
- $info.HasPendingTasks = $true
130
- }
131
- if ($Content -match "\|\s*in_progress\s*\|") {
132
- $info.HasPendingTasks = $true
133
- $info.InProgress = 1
134
- }
135
-
136
- if ($Content -match "\|\s*P[0-2]\s*\|\s*(TASK_\d+)\s*\|([^|]+)\|\s*pending\s*\|") {
137
- $info.NextTask = "$($Matches[1]): $($Matches[2].Trim())"
138
- }
139
-
140
- } catch {
141
- Write-Log "Error reading PROGRESS.md: $_"
142
- $info.HasPendingTasks = $true
143
- }
144
-
145
- return $info
146
- }
147
-
148
- function Show-ProgressStatus {
149
- $info = Get-ProgressInfo
150
-
151
- Write-Host ""
152
- Write-Host "------------------------------------------------------------"
153
- Write-Host " Progress: $($info.Completed) / $($info.Total) completed ($($info.Pending) pending)"
154
-
155
- if ($info.CurrentTask) {
156
- Write-Host " Current: $($info.CurrentTask)" -ForegroundColor Yellow
157
- }
158
- if ($info.NextTask) {
159
- Write-Host " Next: $($info.NextTask)" -ForegroundColor Cyan
160
- }
161
- Write-Host "------------------------------------------------------------"
162
- Write-Host ""
163
-
164
- return $info
165
- }
166
-
167
- function Test-HasPendingTasks {
168
- $info = Get-ProgressInfo
169
- return $info.HasPendingTasks
170
- }
171
-
172
- function Invoke-DevAgent {
173
- param(
174
- [int]$RunNumber,
175
- [int]$TimeoutMinutes = 60
176
- )
177
-
178
- Write-Log "=========================================="
179
- Write-Log "Starting Dev Agent (Run $RunNumber / $TotalRuns)"
180
- Write-Log "=========================================="
181
-
182
- try {
183
- Push-Location $WorkingDirectory
184
-
185
- $Command = "claude"
186
- $Arguments = "--dangerously-skip-permissions /dev"
187
- Write-Log "Command: $Command $Arguments"
188
-
189
- # 使用 Start-Process 配合超時機制
190
- $pinfo = New-Object System.Diagnostics.ProcessStartInfo
191
- $pinfo.FileName = $Command
192
- $pinfo.Arguments = $Arguments
193
- $pinfo.RedirectStandardOutput = $true
194
- $pinfo.RedirectStandardError = $true
195
- $pinfo.UseShellExecute = $false
196
- $pinfo.WorkingDirectory = $WorkingDirectory
197
-
198
- $process = New-Object System.Diagnostics.Process
199
- $process.StartInfo = $pinfo
200
- $process.Start() | Out-Null
201
-
202
- $TimeoutMs = $TimeoutMinutes * 60 * 1000
203
- $completed = $process.WaitForExit($TimeoutMs)
204
-
205
- if (-not $completed) {
206
- Write-Log "WARNING: Command timed out after $TimeoutMinutes minutes. Killing process..."
207
- $process.Kill()
208
- Write-Log "Process killed due to timeout"
209
- } else {
210
- $stdout = $process.StandardOutput.ReadToEnd()
211
- $stderr = $process.StandardError.ReadToEnd()
212
-
213
- if ($stdout) {
214
- Write-Log "Output: $($stdout.Substring(0, [Math]::Min(500, $stdout.Length)))..." -NoConsole
215
- }
216
- if ($stderr) {
217
- Write-Log "Stderr: $stderr"
218
- }
219
- Write-Log "Execution completed with exit code: $($process.ExitCode)"
220
- }
221
-
222
- } catch {
223
- Write-Log "Error: $_"
224
- } finally {
225
- Pop-Location
226
- }
227
-
228
- Write-Log "Run $RunNumber finished"
229
- Write-Log ""
230
- }
231
-
232
- function Invoke-ProductReview {
233
- param(
234
- [int]$TimeoutMinutes = 30
235
- )
236
-
237
- Write-Log "=========================================="
238
- Write-Log "Starting Product Review (Self-Enhancement)"
239
- Write-Log "=========================================="
240
-
241
- try {
242
- Push-Location $WorkingDirectory
243
-
244
- # 備份舊的狀態文件而非直接刪除
245
- if (Test-Path $StatusFile) {
246
- $backupFile = "${StatusFile}.bak"
247
- Move-Item $StatusFile $backupFile -Force
248
- Write-Log "Backed up previous status file"
249
- }
250
-
251
- # 使用英文指令避免 PowerShell 編碼問題
252
- $Command = "claude"
253
- $Arguments = '--dangerously-skip-permissions /product-review'
254
- Write-Log "Command: $Command $Arguments"
255
-
256
- # 使用 Start-Process 配合超時機制
257
- $pinfo = New-Object System.Diagnostics.ProcessStartInfo
258
- $pinfo.FileName = $Command
259
- $pinfo.Arguments = $Arguments
260
- $pinfo.RedirectStandardOutput = $true
261
- $pinfo.RedirectStandardError = $true
262
- $pinfo.UseShellExecute = $false
263
- $pinfo.WorkingDirectory = $WorkingDirectory
264
- $pinfo.StandardOutputEncoding = [System.Text.Encoding]::UTF8
265
- $pinfo.StandardErrorEncoding = [System.Text.Encoding]::UTF8
266
-
267
- $process = New-Object System.Diagnostics.Process
268
- $process.StartInfo = $pinfo
269
- $process.Start() | Out-Null
270
-
271
- $TimeoutMs = $TimeoutMinutes * 60 * 1000
272
- $completed = $process.WaitForExit($TimeoutMs)
273
-
274
- if (-not $completed) {
275
- Write-Log "WARNING: Product Review timed out after $TimeoutMinutes minutes. Killing process..."
276
- $process.Kill()
277
- Write-Log "Process killed due to timeout"
278
-
279
- # 如果超時,恢復備份的狀態文件
280
- $backupFile = "${StatusFile}.bak"
281
- if (Test-Path $backupFile) {
282
- Move-Item $backupFile $StatusFile -Force
283
- Write-Log "Restored previous status file due to timeout"
284
- }
285
- } else {
286
- $stdout = $process.StandardOutput.ReadToEnd()
287
- $stderr = $process.StandardError.ReadToEnd()
288
-
289
- if ($stdout) {
290
- Write-Log "Output: $($stdout.Substring(0, [Math]::Min(500, $stdout.Length)))..." -NoConsole
291
- }
292
- if ($stderr) {
293
- Write-Log "Stderr: $stderr"
294
- }
295
- Write-Log "Product Review completed with exit code: $($process.ExitCode)"
296
- }
297
-
298
- } catch {
299
- Write-Log "Error in Product Review: $_"
300
-
301
- # 發生錯誤時恢復備份
302
- $backupFile = "${StatusFile}.bak"
303
- if (Test-Path $backupFile) {
304
- Move-Item $backupFile $StatusFile -Force
305
- Write-Log "Restored previous status file due to error"
306
- }
307
- } finally {
308
- Pop-Location
309
- }
310
- }
311
-
312
- function Get-EnhancementStatus {
313
- if (-not (Test-Path $StatusFile)) {
314
- return @{
315
- Status = "unknown"
316
- Decision = "Status file not found"
317
- }
318
- }
319
-
320
- try {
321
- $Content = Get-Content $StatusFile -Raw -Encoding UTF8
322
- $Json = $Content | ConvertFrom-Json
323
- return @{
324
- Status = $Json.status
325
- Decision = $Json.decision
326
- Reason = $Json.reason
327
- NewTasks = $Json.new_tasks
328
- }
329
- } catch {
330
- Write-Log "Error reading status file: $_"
331
- return @{
332
- Status = "error"
333
- Decision = "Failed to parse status file"
334
- }
335
- }
336
- }
337
-
338
- # ============================================================
339
- # Main
340
- # ============================================================
341
-
342
- Clear-Host
343
- Write-Host ""
344
- Write-Host "============================================================"
345
- Write-Host " Dev Agent Scheduler - Self-Enhancement Mode"
346
- Write-Host "============================================================"
347
- Write-Host " Initial Delay: $InitialDelaySeconds seconds"
348
- Write-Host " Interval: $IntervalMinutes minutes (or ${EarlyFinishDelaySeconds}s if finished early)"
349
- Write-Host " Total Runs: $TotalRuns"
350
- Write-Host " Max Enhancement Cycles: $MaxEnhancementCycles"
351
- Write-Host " Working Dir: $WorkingDirectory"
352
- Write-Host "============================================================"
353
- Write-Host ""
354
-
355
- Write-Log "Scheduler started (Self-Enhancement Mode)"
356
- Write-Log "Config: InitialDelay=${InitialDelaySeconds}s, Interval=${IntervalMinutes}min, MaxCycles=$MaxEnhancementCycles"
357
-
358
- # Execute schedule with self-enhancement
359
- $RunCount = 0
360
- $EnhancementCycle = 0
361
- $StoppedEarly = $false
362
- $ProjectComplete = $false
363
- $global:HasSuggestions = $false # 是否有優化建議
364
- $IntervalSeconds = $IntervalMinutes * 60
365
- $LastRunStart = Get-Date # 初始化以避免未定義變數錯誤
366
-
367
- while ($RunCount -lt $TotalRuns -and -not $ProjectComplete) {
368
- $RunCount++
369
-
370
- # Check if there are pending tasks before waiting
371
- $progressInfo = Show-ProgressStatus
372
-
373
- if (-not $progressInfo.HasPendingTasks) {
374
- # ============================================================
375
- # 自我增強模式:沒有 pending tasks,執行產品檢視
376
- # ============================================================
377
-
378
- if ($EnhancementCycle -ge $MaxEnhancementCycles) {
379
- Write-Log "=========================================="
380
- Write-Log "Max enhancement cycles ($MaxEnhancementCycles) reached!"
381
- Write-Log "Stopping to prevent infinite loop."
382
- Write-Log "=========================================="
383
- $StoppedEarly = $true
384
- break
385
- }
386
-
387
- $EnhancementCycle++
388
- Write-Host ""
389
- Write-Host "============================================================" -ForegroundColor Magenta
390
- Write-Host " Self-Enhancement Cycle $EnhancementCycle / $MaxEnhancementCycles" -ForegroundColor Magenta
391
- Write-Host " No pending tasks - Running Product Review..." -ForegroundColor Magenta
392
- Write-Host "============================================================" -ForegroundColor Magenta
393
- Write-Host ""
394
-
395
- Write-Log "Self-Enhancement Cycle ${EnhancementCycle} - Running Product Review"
396
-
397
- Invoke-ProductReview
398
-
399
- # 檢查決策結果
400
- $enhancementStatus = Get-EnhancementStatus
401
-
402
- Write-Host ""
403
- Write-Host "------------------------------------------------------------"
404
- $statusColor = switch ($enhancementStatus.Status) {
405
- "complete" { "Green" }
406
- "complete_with_suggestions" { "Cyan" }
407
- default { "Yellow" }
408
- }
409
- Write-Host " Enhancement Decision: $($enhancementStatus.Status)" -ForegroundColor $statusColor
410
- Write-Host " Reason: $($enhancementStatus.Decision)"
411
- if ($enhancementStatus.NewTasks) {
412
- Write-Host " New Tasks: $($enhancementStatus.NewTasks -join ', ')" -ForegroundColor Cyan
413
- }
414
- Write-Host "------------------------------------------------------------"
415
- Write-Host ""
416
-
417
- if ($enhancementStatus.Status -eq "complete") {
418
- Write-Log "=========================================="
419
- Write-Log "PROJECT COMPLETE!"
420
- Write-Log "Decision: $($enhancementStatus.Decision)"
421
- Write-Log "Reason: $($enhancementStatus.Reason)"
422
- Write-Log "=========================================="
423
- $ProjectComplete = $true
424
- break
425
- }
426
-
427
- if ($enhancementStatus.Status -eq "complete_with_suggestions") {
428
- Write-Log "=========================================="
429
- Write-Log "PROJECT COMPLETE (with optimization suggestions)"
430
- Write-Log "Decision: $($enhancementStatus.Decision)"
431
- Write-Log "Reason: $($enhancementStatus.Reason)"
432
- Write-Log "Check SELF_ENHANCEMENT_STATUS.json for suggestions"
433
- Write-Log "=========================================="
434
- $ProjectComplete = $true
435
- $global:HasSuggestions = $true
436
- break
437
- }
438
-
439
- if ($enhancementStatus.Status -eq "continue") {
440
- Write-Log "Enhancement added new tasks. Continuing development..."
441
- # 重新檢查 pending tasks
442
- $progressInfo = Get-ProgressInfo
443
- if (-not $progressInfo.HasPendingTasks) {
444
- Write-Log "Warning: Status says continue but no new tasks found. Stopping."
445
- $StoppedEarly = $true
446
- break
447
- }
448
- } else {
449
- Write-Log "Unknown enhancement status: $($enhancementStatus.Status). Stopping."
450
- $StoppedEarly = $true
451
- break
452
- }
453
- }
454
-
455
- # Determine wait time
456
- if ($RunCount -eq 1) {
457
- $WaitSeconds = $InitialDelaySeconds
458
- } else {
459
- $ElapsedSeconds = ((Get-Date) - $LastRunStart).TotalSeconds
460
-
461
- if ($ElapsedSeconds -lt $IntervalSeconds) {
462
- $WaitSeconds = $EarlyFinishDelaySeconds
463
- Write-Log "Previous run finished early, waiting ${EarlyFinishDelaySeconds}s"
464
- } else {
465
- $WaitSeconds = 0
466
- }
467
- }
468
-
469
- if ($WaitSeconds -gt 0) {
470
- $TargetTime = (Get-Date).AddSeconds($WaitSeconds)
471
- Write-Host ""
472
- Write-Host "Waiting... Next run (${RunCount}/${TotalRuns}): $($TargetTime.ToString('HH:mm:ss')) ($WaitSeconds seconds)"
473
- Write-Host "Press Ctrl+C to cancel"
474
- Write-Host ""
475
-
476
- while ((Get-Date) -lt $TargetTime) {
477
- $Remaining = ($TargetTime - (Get-Date)).TotalSeconds
478
- $Minutes = [math]::Floor($Remaining / 60)
479
- $Seconds = [math]::Floor($Remaining % 60)
480
- Write-Host -NoNewline "`r Remaining: $($Minutes.ToString('00')):$($Seconds.ToString('00')) "
481
- Start-Sleep -Seconds 1
482
- }
483
- Write-Host ""
484
- }
485
-
486
- $LastRunStart = Get-Date
487
-
488
- # Log current task info
489
- $taskInfo = Get-ProgressInfo
490
- if ($taskInfo.NextTask) {
491
- Write-Log "Target task: $($taskInfo.NextTask)"
492
- }
493
-
494
- Invoke-DevAgent -RunNumber $RunCount
495
-
496
- # Check again after execution
497
- if (-not (Test-HasPendingTasks)) {
498
- Write-Log "All current tasks completed. Will check for enhancement..."
499
- # 讓下一個循環處理自我增強
500
- continue
501
- }
502
- }
503
-
504
- # ============================================================
505
- # 結束摘要
506
- # ============================================================
507
-
508
- Write-Host ""
509
- Write-Host "============================================================"
510
- if ($ProjectComplete -and $global:HasSuggestions) {
511
- Write-Host " PROJECT COMPLETE (with suggestions)" -ForegroundColor Cyan
512
- Write-Host " All PRODUCT_SPEC requirements fulfilled." -ForegroundColor Green
513
- Write-Host " AI has optimization suggestions for review." -ForegroundColor Yellow
514
- Write-Host " See: dev/pipeline/SELF_ENHANCEMENT_STATUS.json" -ForegroundColor Yellow
515
- } elseif ($ProjectComplete) {
516
- Write-Host " PROJECT COMPLETE!" -ForegroundColor Green
517
- Write-Host " All PRODUCT_SPEC requirements fulfilled." -ForegroundColor Green
518
- } elseif ($StoppedEarly) {
519
- Write-Host " Scheduler Stopped Early" -ForegroundColor Yellow
520
- } else {
521
- Write-Host " Schedule Completed" -ForegroundColor Cyan
522
- }
523
- Write-Host "------------------------------------------------------------"
524
- Write-Host " Total Dev Runs: $RunCount"
525
- Write-Host " Enhancement Cycles: $EnhancementCycle"
526
- Write-Host " Log file: $LogFile"
527
- Write-Host "============================================================"
528
- Write-Host ""
529
-
530
- Write-Log "=========================================="
531
- Write-Log "Scheduler finished"
532
- Write-Log "Total Dev Runs: $RunCount, Enhancement Cycles: $EnhancementCycle"
533
- Write-Log "Project Complete: $ProjectComplete"
534
- Write-Log "=========================================="
535
-
536
- Write-Host "Scheduler finished"