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.
- package/core/.claude/hooks/_user-scope.js +1 -1
- package/core/.claude/hooks/core-resolve.js +1 -1
- package/core/.claude/hooks/worktree-create.js +11 -29
- package/core/.claude/hooks/worktree-remove.js +12 -38
- package/core/.collaboration/core/reconcile.js +16 -1
- package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
- package/core/.collaboration/core/task-api.js +37 -7
- package/core/.formation/bifrost/launch.js +1 -1
- package/core/.formation/tools/dispatch-detail/worktree-subagent-mode.md +6 -1
- package/core/.formation/tools/kenaz-stats.js +1 -1
- package/core/.formation/tools/post-complete/git-merge.js +1 -1
- package/core/.formation/tools/prompt.js +1 -1
- package/core/.formation/tools/utils.js +5 -5
- package/core/.formation/tools/worktree-reclaim.js +73 -2
- package/core/.formation/tools/worktree-reclaim.test.js +113 -0
- package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
- package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
- package/core/.rule/general/project-self-containment.yaml +2 -2
- package/core/.specialist/Amelia/README.md +1 -1
- package/core/.specialist/Amelia/rule.yaml +1 -1
- package/core/.specialist/Ansuz/RULES.md +6 -2
- package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
- package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
- package/core/.specialist/Ansuz/knowledge.yaml +1 -3
- package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
- package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
- package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
- package/core/.specialist/tools/failure-detector.js +4 -4
- package/core/.specialist/tools/handoff-doc.js +1 -1
- package/core/.specialist/tools/lessons.js +2 -2
- package/core/CLAUDE.md +5 -5
- package/core/KENAZ_CORE_VERSION +1 -1
- package/core/dashboard/scripts/install-kenaz-cli.js +56 -30
- package/core/dev/scripts/check-file-size.js +1 -1
- package/core/dev/scripts/ci-feedback.js +1 -1
- package/core/dev/scripts/gc-agent-worktrees.js +13 -12
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +6 -4
- package/core/dev/scripts/run-rust-tests.js +2 -2
- package/core/dev/scripts/skill-routing-replay.js +3 -3
- package/core/dev/scripts/task1961/selftest.js +2 -2
- package/core/dev/scripts/windows-hide-guard.test.js +112 -0
- package/core/plugins/kenaz/guidance.md +1 -0
- package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
- package/core/plugins/kenaz/hooks/hooks.json +9 -0
- package/core/plugins/kenaz/hooks/kenaz-hook.js +58 -4
- package/core/plugins/kenaz/hooks/worktree-guard.js +121 -0
- package/core/plugins/kenaz/hooks/worktree-guard.test.js +75 -0
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/core/plugins/kenaz-peer/hooks/register.test.ts +14 -2
- package/core/plugins/kenaz-peer/hooks/register.ts +6 -1
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +56 -30
- package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
- package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
- package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
- package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
- package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
- package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
- package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
- package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
- package/core/.kenaz/main-memory/README.md +0 -230
- package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
- package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
- package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
- package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
- package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
- package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
- package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
- package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
- package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
- package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
- package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
- package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
- package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
- package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
- package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
- package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
- package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
- package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
- package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
- package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
- package/core/.kenaz/main-memory/registry.json +0 -326
- package/core/.kenaz/main-memory/version.yaml +0 -58
- package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
- package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
- package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
- package/core/.kenaz/specialist/prompt_1775.txt +0 -317
- package/core/.kenaz/specialist/prompt_1776.txt +0 -326
- package/core/.kenaz/specialist/prompt_1791.txt +0 -320
- package/core/.kenaz/specialist/prompt_1792.txt +0 -320
- package/core/.kenaz/specialist/prompt_1795.txt +0 -281
- package/core/.kenaz/specialist/prompt_1813.txt +0 -332
- package/core/.kenaz/specialist/prompt_1814.txt +0 -401
- package/core/.kenaz/specialist/prompt_1815.txt +0 -394
- package/core/.kenaz/specialist/prompt_1816.txt +0 -437
- package/core/.kenaz/specialist/prompt_1818.txt +0 -361
- package/core/.kenaz/specialist/prompt_1819.txt +0 -421
- package/core/.kenaz/specialist/prompt_1821.txt +0 -345
- package/core/.kenaz/specialist/prompt_1822.txt +0 -313
- package/core/.kenaz/specialist/prompt_1824.txt +0 -348
- package/core/.kenaz/specialist/prompt_1826.txt +0 -388
- package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
- package/core/.kenaz/specialist/task1825_update.json +0 -43
- package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
- package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
- package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
- package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
- package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
- package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
- package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
- package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
- package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
- package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
- package/core/.specialist/ansuz_session_handoff.json +0 -96
- package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
- package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
- package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
- package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
- package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
- package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
- package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
- package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
- package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
- package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
- package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
- package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
- package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
- package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
- package/core/dev/MUNINN_RETIREMENT.md +0 -115
- package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
- package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
- package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
- package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
- package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
- package/core/dev/PRODUCT_SPEC.md +0 -317
- package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
- package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
- package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
- package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
- package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
- package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
- package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
- package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
- package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
- package/core/dev/ansuz-eval/README.md +0 -38
- package/core/dev/ansuz-eval/build-fixtures.js +0 -87
- package/core/dev/ansuz-eval/grade.js +0 -96
- package/core/dev/ansuz-eval/grader.test.js +0 -117
- package/core/dev/ansuz-eval/tasks.md +0 -32
- package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
- package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
- package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
- package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
- package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
- package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
- package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
- package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
- package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
- package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
- package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
- package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
- package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
- package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
- package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
- package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
- package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
- package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
- package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
- package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
- package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
- package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
- package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
- package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
- package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
- package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
- package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
- package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
- package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
- package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
- package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
- package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
- package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
- package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
- package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
- package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
- package/core/dev/design/PHASE4_DESIGN.md +0 -559
- package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
- package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
- package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
- package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
- package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
- package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
- package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
- package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
- package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
- package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
- package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
- package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
- package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
- package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
- package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
- package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
- package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
- package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
- package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
- package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
- package/core/dev/jev-eval/README.md +0 -101
- package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
- package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
- package/core/dev/jev-eval/cli.mjs +0 -50
- package/core/dev/jev-eval/context.mjs +0 -183
- package/core/dev/jev-eval/corpus.mjs +0 -186
- package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
- package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
- package/core/dev/jev-eval/metrics.mjs +0 -67
- package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
- package/core/dev/jev-eval/providers.mjs +0 -95
- package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
- package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
- package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
- package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
- package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
- package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
- package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
- package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
- package/core/dev/jev-eval/resilience.mjs +0 -71
- package/core/dev/jev-eval/review.mjs +0 -78
- package/core/dev/jev-eval/schema.mjs +0 -87
- package/core/dev/jev-eval/test/context.test.mjs +0 -95
- package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
- package/core/dev/jev-eval/test/eval.test.mjs +0 -146
- package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
- package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
- package/core/dev/jev-eval/test/review.test.mjs +0 -61
- package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
- package/core/dev/pipeline/PROGRESS.md +0 -113
- package/core/dev/pipeline/PROGRESS_template.md +0 -860
- package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
- package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
- package/core/dev/pipeline/README.md +0 -210
- package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
- package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
- package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
- package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
- package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
- package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
- package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
- package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
- package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
- package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
- package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
- package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
- package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
- package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
- package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
- package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
- package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
- package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
- package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
- package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
- package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
- package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
- package/core/dev/pipeline/docs/overview.md +0 -406
- package/core/dev/pipeline/docs/task-management.md +0 -412
- package/core/dev/pipeline/docs/workflows.md +0 -32
- package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
- package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
- package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
- package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
- package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
- package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
- package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
- package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
- package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
- package/core/dev/scripts/README.md +0 -142
- package/core/dev/scripts/RUN_ONCE.bat +0 -40
- package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
- package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
- package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
- package/core/dev/scripts/init_git.ps1 +0 -396
- package/core/dev/scripts/init_git.sh +0 -337
- package/core/dev/scripts/init_project.ps1 +0 -851
- package/core/dev/scripts/init_project.sh +0 -477
- package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
- package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
- package/core/dev/scripts/run_once.sh +0 -47
- package/core/dev/scripts/setup_rag.ps1 +0 -304
- package/core/dev/scripts/setup_rag.sh +0 -230
- package/core/dev/scripts/start_dev_agent.sh +0 -137
- package/core/dev/scripts/start_multi_agent.sh +0 -41
- package/core/dev/scripts/sync_task_queue.ps1 +0 -505
- package/core/dev/scripts/sync_task_queue.sh +0 -392
- package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
- package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
- package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
- package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
- package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
- package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
- package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
- package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
- 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
- package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
- package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
- package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
- package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
- package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
- package/core/dev/specs/agent-connect/history/README.md +0 -47
- package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
- package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
- package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
- package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
- package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
- package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
- package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
- package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
- package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
- package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
- package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
- package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
- package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
- package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
- package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
- package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
- package/core/dev/spikes/A4-cypher-varlen.md +0 -176
- package/core/dev/spikes/bloat-rounds.sh +0 -25
- package/core/dev/spikes/mods/clean-claude.js +0 -9
- package/core/dev/spikes/mods/drive-probe.js +0 -29
- package/core/dev/spikes/mods/e2e-peer.js +0 -71
- package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
- package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
- package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
- package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
- package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
- package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
- package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
- package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
# Refactoring Plan: task-cli.js
|
|
2
|
-
|
|
3
|
-
**Target File**: `.collaboration/cli/task-cli.js`
|
|
4
|
-
**Lines**: 447
|
|
5
|
-
**Objective**: Split into read-friendly modules with clean directory structure
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. Current State Analysis
|
|
10
|
-
|
|
11
|
-
### File Structure
|
|
12
|
-
```
|
|
13
|
-
task-cli.js (447 lines)
|
|
14
|
-
├── Imports (3 lines)
|
|
15
|
-
├── TaskCLI Class (419 lines)
|
|
16
|
-
│ ├── constructor()
|
|
17
|
-
│ ├── showHelp() - 60 lines
|
|
18
|
-
│ ├── createTask() - 35 lines
|
|
19
|
-
│ ├── listTasks() - 37 lines
|
|
20
|
-
│ ├── getTask() - 58 lines
|
|
21
|
-
│ ├── claimTask() - 18 lines
|
|
22
|
-
│ ├── assignTask() - 26 lines
|
|
23
|
-
│ ├── completeTask() - 18 lines
|
|
24
|
-
│ ├── lockTask() - 21 lines
|
|
25
|
-
│ ├── unlockTask() - 23 lines
|
|
26
|
-
│ ├── rebuildIndex() - 15 lines
|
|
27
|
-
│ └── run() - 25 lines (command router)
|
|
28
|
-
└── CLI Entry Point (20 lines)
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Issues
|
|
32
|
-
1. **Monolithic design** - All 10 commands in single file
|
|
33
|
-
2. **Mixed concerns** - Argument parsing + business logic + output formatting interleaved
|
|
34
|
-
3. **Hard to test** - Cannot unit test individual commands
|
|
35
|
-
4. **Hard to extend** - Adding new command requires modifying main file
|
|
36
|
-
5. **Duplicate patterns** - Error handling and git user lookup repeated
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## 2. Proposed Directory Structure
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
.collaboration/cli/
|
|
44
|
-
├── task-cli.js # Entry point (~30 lines)
|
|
45
|
-
├── commands/ # Command handlers
|
|
46
|
-
│ ├── index.js # Command registry
|
|
47
|
-
│ ├── create.js # create command
|
|
48
|
-
│ ├── list.js # list command
|
|
49
|
-
│ ├── get.js # get command
|
|
50
|
-
│ ├── claim.js # claim command
|
|
51
|
-
│ ├── assign.js # assign command
|
|
52
|
-
│ ├── complete.js # complete command
|
|
53
|
-
│ ├── lock.js # lock command
|
|
54
|
-
│ ├── unlock.js # unlock command
|
|
55
|
-
│ └── rebuild.js # rebuild command
|
|
56
|
-
├── utils/ # Shared utilities
|
|
57
|
-
│ ├── arg-parser.js # Argument parsing helpers
|
|
58
|
-
│ ├── git-user.js # Git user detection
|
|
59
|
-
│ └── output.js # Console output helpers (success, error, info)
|
|
60
|
-
├── formatters/ # Output formatters
|
|
61
|
-
│ ├── task-formatter.js # Format task for display
|
|
62
|
-
│ └── help-formatter.js # Help text generation
|
|
63
|
-
└── config/
|
|
64
|
-
└── commands.js # Command metadata (name, description, options)
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## 3. Module Breakdown
|
|
70
|
-
|
|
71
|
-
### Entry Point: `task-cli.js` (~30 lines)
|
|
72
|
-
```javascript
|
|
73
|
-
#!/usr/bin/env node
|
|
74
|
-
const { CommandRegistry } = require('./commands');
|
|
75
|
-
const { showHelp } = require('./formatters/help-formatter');
|
|
76
|
-
|
|
77
|
-
async function main() {
|
|
78
|
-
const args = process.argv.slice(2);
|
|
79
|
-
if (args.length === 0 || args.includes('--help')) {
|
|
80
|
-
showHelp();
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
const [command, ...commandArgs] = args;
|
|
84
|
-
return CommandRegistry.execute(command, commandArgs);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
main().then(process.exit).catch(err => {
|
|
88
|
-
console.error(`Error: ${err.message}`);
|
|
89
|
-
process.exit(1);
|
|
90
|
-
});
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Command Registry: `commands/index.js` (~40 lines)
|
|
94
|
-
```javascript
|
|
95
|
-
const commands = {
|
|
96
|
-
create: require('./create'),
|
|
97
|
-
list: require('./list'),
|
|
98
|
-
get: require('./get'),
|
|
99
|
-
claim: require('./claim'),
|
|
100
|
-
assign: require('./assign'),
|
|
101
|
-
complete: require('./complete'),
|
|
102
|
-
lock: require('./lock'),
|
|
103
|
-
unlock: require('./unlock'),
|
|
104
|
-
rebuild: require('./rebuild'),
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
module.exports = {
|
|
108
|
-
CommandRegistry: {
|
|
109
|
-
execute: async (name, args) => {
|
|
110
|
-
const cmd = commands[name];
|
|
111
|
-
if (!cmd) throw new Error(`Unknown command: ${name}`);
|
|
112
|
-
return cmd.execute(args);
|
|
113
|
-
},
|
|
114
|
-
list: () => Object.keys(commands),
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Example Command: `commands/create.js` (~40 lines)
|
|
120
|
-
```javascript
|
|
121
|
-
const { TaskAPI } = require('../../core/task-api.js');
|
|
122
|
-
const { parseArgs } = require('../utils/arg-parser');
|
|
123
|
-
const { success, error } = require('../utils/output');
|
|
124
|
-
|
|
125
|
-
module.exports = {
|
|
126
|
-
name: 'create',
|
|
127
|
-
description: 'Create a new task',
|
|
128
|
-
options: ['--title', '--description', '--priority'],
|
|
129
|
-
|
|
130
|
-
async execute(args) {
|
|
131
|
-
const { title, description, priority = 'P2' } = parseArgs(args, ['title', 'description', 'priority']);
|
|
132
|
-
|
|
133
|
-
if (!title) {
|
|
134
|
-
error('Missing --title parameter');
|
|
135
|
-
return 1;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const api = new TaskAPI();
|
|
139
|
-
const task = await api.createTask({ title, description, priority });
|
|
140
|
-
|
|
141
|
-
success(`Task created: ${task.id}`);
|
|
142
|
-
console.log(`Title: ${task.title}`);
|
|
143
|
-
console.log(`Priority: ${task.priority}`);
|
|
144
|
-
return 0;
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### Utils: `utils/arg-parser.js` (~25 lines)
|
|
150
|
-
```javascript
|
|
151
|
-
function parseArgs(args, keys) {
|
|
152
|
-
const result = {};
|
|
153
|
-
keys.forEach(key => {
|
|
154
|
-
const index = args.indexOf(`--${key}`);
|
|
155
|
-
if (index >= 0 && args[index + 1]) {
|
|
156
|
-
result[key] = args[index + 1];
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
return result;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
function getPositional(args, index = 0) {
|
|
163
|
-
return args.filter(a => !a.startsWith('--'))[index];
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
module.exports = { parseArgs, getPositional };
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### Utils: `utils/git-user.js` (~15 lines)
|
|
170
|
-
```javascript
|
|
171
|
-
const { execSync } = require('child_process');
|
|
172
|
-
|
|
173
|
-
function getGitUser() {
|
|
174
|
-
try {
|
|
175
|
-
return execSync('git config user.email', { encoding: 'utf8' })
|
|
176
|
-
.trim()
|
|
177
|
-
.split('@')[0];
|
|
178
|
-
} catch {
|
|
179
|
-
return 'unknown';
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
module.exports = { getGitUser };
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### Utils: `utils/output.js` (~20 lines)
|
|
187
|
-
```javascript
|
|
188
|
-
module.exports = {
|
|
189
|
-
success: (msg) => console.log(`\u2705 ${msg}`),
|
|
190
|
-
error: (msg) => console.error(`\u274c ${msg}`),
|
|
191
|
-
warn: (msg) => console.log(`\u26a0\ufe0f ${msg}`),
|
|
192
|
-
info: (msg) => console.log(msg),
|
|
193
|
-
};
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 4. Migration Steps
|
|
199
|
-
|
|
200
|
-
### Phase 1: Create Infrastructure
|
|
201
|
-
1. Create directory structure (`commands/`, `utils/`, `formatters/`, `config/`)
|
|
202
|
-
2. Create `utils/arg-parser.js`
|
|
203
|
-
3. Create `utils/git-user.js`
|
|
204
|
-
4. Create `utils/output.js`
|
|
205
|
-
|
|
206
|
-
### Phase 2: Extract Commands
|
|
207
|
-
5. Create `commands/create.js`
|
|
208
|
-
6. Create `commands/list.js`
|
|
209
|
-
7. Create `commands/get.js`
|
|
210
|
-
8. Create `commands/claim.js`
|
|
211
|
-
9. Create `commands/assign.js`
|
|
212
|
-
10. Create `commands/complete.js`
|
|
213
|
-
11. Create `commands/lock.js`
|
|
214
|
-
12. Create `commands/unlock.js`
|
|
215
|
-
13. Create `commands/rebuild.js`
|
|
216
|
-
14. Create `commands/index.js` (registry)
|
|
217
|
-
|
|
218
|
-
### Phase 3: Create Formatters
|
|
219
|
-
15. Create `formatters/task-formatter.js`
|
|
220
|
-
16. Create `formatters/help-formatter.js`
|
|
221
|
-
|
|
222
|
-
### Phase 4: Refactor Entry Point
|
|
223
|
-
17. Simplify `task-cli.js` to use new modules
|
|
224
|
-
18. Remove old monolithic code
|
|
225
|
-
|
|
226
|
-
### Phase 5: Testing
|
|
227
|
-
19. Manual test all commands
|
|
228
|
-
20. Verify backward compatibility
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## 5. Testing Strategy
|
|
233
|
-
|
|
234
|
-
### Manual Test Checklist
|
|
235
|
-
```bash
|
|
236
|
-
# Test all commands work after refactoring
|
|
237
|
-
node .collaboration/cli/task-cli.js --help
|
|
238
|
-
node .collaboration/cli/task-cli.js create --title "Test" --priority P1
|
|
239
|
-
node .collaboration/cli/task-cli.js list
|
|
240
|
-
node .collaboration/cli/task-cli.js list --status pending
|
|
241
|
-
node .collaboration/cli/task-cli.js get TASK_XXX
|
|
242
|
-
node .collaboration/cli/task-cli.js claim TASK_XXX
|
|
243
|
-
node .collaboration/cli/task-cli.js assign TASK_XXX --to testuser
|
|
244
|
-
node .collaboration/cli/task-cli.js complete TASK_XXX
|
|
245
|
-
node .collaboration/cli/task-cli.js lock TASK_XXX
|
|
246
|
-
node .collaboration/cli/task-cli.js unlock TASK_XXX
|
|
247
|
-
node .collaboration/cli/task-cli.js rebuild
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### Backward Compatibility
|
|
251
|
-
- All existing command syntax must work unchanged
|
|
252
|
-
- Exit codes must remain consistent (0 = success, 1 = error)
|
|
253
|
-
- Output format should remain similar
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
## 6. Expected Outcome
|
|
258
|
-
|
|
259
|
-
| Metric | Before | After |
|
|
260
|
-
|--------|--------|-------|
|
|
261
|
-
| Main file lines | 447 | ~30 |
|
|
262
|
-
| Max file size | 447 | ~60 |
|
|
263
|
-
| Number of files | 1 | 14 |
|
|
264
|
-
| Testability | Low | High |
|
|
265
|
-
| Adding new command | Modify main | Add new file |
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## 7. Risks and Mitigations
|
|
270
|
-
|
|
271
|
-
| Risk | Impact | Mitigation |
|
|
272
|
-
|------|--------|------------|
|
|
273
|
-
| Require paths break | CLI fails | Test require paths carefully |
|
|
274
|
-
| Missing export | Command not found | Registry validates on load |
|
|
275
|
-
| Behavior change | User confusion | Follow test checklist |
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
**Status**: Awaiting Approval
|
|
280
|
-
|
|
281
|
-
*Plan created by Architect Agent | 2026-02-14*
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
TASK_TEST_PARALLEL_002 執行結果
|
|
2
|
-
================================
|
|
3
|
-
|
|
4
|
-
執行時間: 2026-02-11 18:35:00
|
|
5
|
-
Team: developer
|
|
6
|
-
Worker Session: developer_TASK_TEST_PARALLEL_002_2026-02-11_18-34-57-463
|
|
7
|
-
|
|
8
|
-
測試目的:
|
|
9
|
-
驗證並行處理檔案鎖機制
|
|
10
|
-
|
|
11
|
-
執行結果:
|
|
12
|
-
✅ 任務成功執行 - Team Worker 正常啟動
|
|
13
|
-
✅ 日誌記錄完整 - 記錄到執行日誌目錄
|
|
14
|
-
✅ 無錯誤發生 - 執行流程順暢
|
|
15
|
-
|
|
16
|
-
驗收標準:
|
|
17
|
-
- AC-002-1: ✅ 任務成功執行
|
|
18
|
-
- AC-002-2: ✅ 日誌記錄完整
|
|
19
|
-
- AC-002-3: ✅ 無錯誤發生
|
|
20
|
-
|
|
21
|
-
測試結論:
|
|
22
|
-
並行處理檔案鎖機制運作正常。developer team 可以透過 run-team.js
|
|
23
|
-
成功啟動 Team Worker,並正確記錄執行日誌到專案內。符合 GEN-007
|
|
24
|
-
專案自包含原則。
|
|
25
|
-
|
|
26
|
-
執行時間: 約 2 分鐘
|
|
27
|
-
實際複雜度: trivial(符合預期)
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Ansuz 精簡計畫(2026-10-10,草稿,待用戶確認)
|
|
2
|
-
|
|
3
|
-
## 定位
|
|
4
|
-
Ansuz 是 Kenaz 的 **orchestrator**:理解需求後,依情境決定自己動手,或拆成任務卡派給 subagent;合併前在真實路徑上驗證;最後回報。不是「只做規劃、不寫代碼」的 PM。
|
|
5
|
-
|
|
6
|
-
要保留的核心是一套紀律,不是一套機制:
|
|
7
|
-
1. 任務卡寫清楚驗收條件(中型以上的工作才開卡;小修正直接做)
|
|
8
|
-
2. 合併前獨立驗證:走真實路徑、要有對照組、驗證強度跟風險相稱
|
|
9
|
-
3. 沒驗證到的要明講,不說「應該可以」
|
|
10
|
-
|
|
11
|
-
## 依據:近 14 天實際呼叫次數(從 transcript 統計真正的工具呼叫,不含 prompt 裡的提及)
|
|
12
|
-
|
|
13
|
-
| 元件 | 呼叫 | 判斷 |
|
|
14
|
-
|---|---|---|
|
|
15
|
-
| task-api.js(任務卡) | 895 | 保留,放寬品質門檻 |
|
|
16
|
-
| dispatch.js(派工) | 311 | 保留派工本身,砍掉大部分 prompt 組裝 |
|
|
17
|
-
| verify-and-land.js(合併閘門) | 180 | 保留:這就是「驗證後才合併」的紀律 |
|
|
18
|
-
| ansuz-boot-fast.js(開機) | 129 | 精簡成短 banner |
|
|
19
|
-
| ansuz_handoff_snapshot(交接) | 54 | 凍結 |
|
|
20
|
-
| phase-gate.js(3754 行) | 45 | 凍結 |
|
|
21
|
-
| session.js prompt(身分 prompt) | 42 | 凍結(2026-10-07 已證明不改變行為) |
|
|
22
|
-
| stream-lease.js(多 Ansuz 租約) | 12 | 凍結 |
|
|
23
|
-
|
|
24
|
-
另外,本 session 實際抓到的 bug 全部來自「合併前在真實路徑驗證」,沒有一個來自 boot、phase-gate、handoff 或身分 prompt。
|
|
25
|
-
|
|
26
|
-
## 保留(必要,協作也依賴)
|
|
27
|
-
- 任務卡與 task-api;品質門檻(technical_notes ≥ 2、acceptance_criteria ≥ 3)改成警告,不再擋
|
|
28
|
-
- verify-and-land.js
|
|
29
|
-
- turn-context.js、ansuz-session-pin.js、kenaz-peer mod 的 Ansuz 標記:peer 訊息路由和推送依賴它們
|
|
30
|
-
- dispatch.js 的 scope 檢查、worktree 建立、跨專案、`--harness=codex`
|
|
31
|
-
|
|
32
|
-
## 精簡
|
|
33
|
-
- **/Ansuz skill**:改寫成一份短 skill(約 40 行):orchestrator 定位、何時自己做/何時派工、派工範本、驗證規則、回報格式
|
|
34
|
-
- **派工 prompt**:從約 6,600 字縮成短範本,只留:任務卡內容、scope、worktree 與 commit 規則、驗收方式、回報格式。拿掉 Code Minimalism、File Budget、Known Failures(目前注入的內容多半不相關,例如 Rust 卡被塞 Python 3.14 的失敗模式)
|
|
35
|
-
- **ansuz-boot-fast**:banner 只留 session id、待辦卡片、wishes、待收的 peer 訊息;拿掉 handoff 歸檔、Multi-Ansuz stream 清單、ANOMALY 區塊
|
|
36
|
-
|
|
37
|
-
## 凍結(先停用,檔案保留兩週,約 2026-10-24 再決定刪除)
|
|
38
|
-
- phase-gate.js、session.js 的身分 prompt 組裝
|
|
39
|
-
- handoff:ansuz_handoff_snapshot 與 handoff-snapshot-on-commit / decision / question、handoff-staleness 四個 hook
|
|
40
|
-
- 多 Ansuz 租約:stream-lease.js、lease-touch / lease-release / stream-delta hook
|
|
41
|
-
- fatigue-check、context-check(提醒類 hook,先確認沒有其他依賴再停)
|
|
42
|
-
- .specialist/Ansuz 下的身分檔:elixir.yaml、cognitive_principles.yaml、self_model_seed*、identity_contract.yaml 等;對應的 IDENT-001~007 規則移出索引
|
|
43
|
-
|
|
44
|
-
## 順序(每步可獨立驗證、可回退)
|
|
45
|
-
1. 改寫 /Ansuz skill,任務卡品質門檻改成警告(低風險)
|
|
46
|
-
2. 派工 prompt 改成短範本;驗證:實際派一張卡,subagent 照常完成並經 verify-and-land 合併
|
|
47
|
-
3. 停用 handoff / lease / phase-gate 相關 hook 與 boot 區塊;驗證:peer 推送與 pull 照常、boot banner 正常、hook 沒有報錯
|
|
48
|
-
4. 兩週後依使用紀錄決定刪檔
|
|
49
|
-
|
|
50
|
-
## 不在這次範圍
|
|
51
|
-
- 任務池(Yggdrasil task pool)、peer 協作:維持不動
|
|
52
|
-
- 記憶系統:已另案凍結(project_memory_system_frozen)
|
|
53
|
-
|
|
54
|
-
## 步驟 3 實施紀錄(TASK_2392,2026-10-10)
|
|
55
|
-
檔案全部保留在磁碟,只拿掉註冊/呼叫點;約 2026-10-24 再決定刪檔。
|
|
56
|
-
|
|
57
|
-
**已取消註冊的 hook**
|
|
58
|
-
- `.claude/settings.json`:Stop 的 `lease-release`;PostToolUse 的 `handoff-snapshot-on-commit`(Bash)、`handoff-snapshot-on-question`(AskUserQuestion)、`handoff-snapshot-on-decision`(synapse_inscribe)。
|
|
59
|
-
- `plugins/kenaz/hooks/hooks.json` + `kenaz-hook.js` 對照表:`lease-release`、`snapshot-commit`、`snapshot-question`、`snapshot-decision`。
|
|
60
|
-
- `.claude/hooks/_run-user-prompt.js` 的 DEFAULT_HOOKS:`handoff-staleness`、`fatigue-check`、`lease-touch`、`stream-delta`(保留 `daemon-outbox-hook`、`turn-context`、`task-bridge`)。
|
|
61
|
-
- `.kenaz/claude-hooks-manifest.json`:三個 handoff-snapshot 移到 `retired`(否則 installer 會重新裝回去)。
|
|
62
|
-
- `context-check` 本來就沒有註冊在任何地方,無需動作。
|
|
63
|
-
|
|
64
|
-
**保留不動**:`turn-context.js`(`[session]` 行與 peer pull)、`ansuz-session-pin.js`、memory-guard、task-bridge、kenaz-peer。lease-touch 只是 pin 檔的讀取者,不是 peer 路由的提供者,停用後 peer 路由不受影響。
|
|
65
|
-
|
|
66
|
-
**ansuz-boot-fast.js**:banner 只剩 `[session]` 行、pin 綁定行(有綁定時)、Wishes、Open cards、待收 peer 郵件(唯讀 `GET /api/peer/status`,只計數不讀內文)。移除呼叫點:handoff 歸檔與輸出、lease 註冊與 Multi-Ansuz 清單、HIGH_CANCEL_RATE/Cortex ANOMALY、任務計數行、field-report/heimdall/Huginn/knowledge 行(函式與匯出都還在)。
|
|
67
|
-
|
|
68
|
-
**測試**:`task-1863-boot-lease-reuse`、`task-1977-banner-cap` 驗證的是已凍結的 boot 行為,已刪除;`task-2254` 的 boot 歸檔測試改成驗證「不再歸檔」;`ansuz-boot-fast.test.js` 新增 peer 郵件與 slim banner 子行程測試。
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
# CLI-first 安裝與首次使用流程(TASK_2367 / TASK_2376)
|
|
2
|
-
|
|
3
|
-
狀態:**待用戶審閱**(2026-10-11 改寫為中文並更新到現況)。
|
|
4
|
-
目標流程:`npx kenaz install` 一次 → 在專案資料夾開 `claude` → `/kenaz init` → `/kenaz:Ansuz`。
|
|
5
|
-
Yggdrasil 用 `kenaz ygg create` / `kenaz ygg join <key>`;Alaya 用 `kenaz alaya register`(機碼註冊,不需登入)。Dashboard 已退役。
|
|
6
|
-
|
|
7
|
-
## 1. 組成與位置
|
|
8
|
-
|
|
9
|
-
| 元件 | 是什麼 | 位置 |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| npm `kenaz` | CLI(install / uninstall / status / doctor / init / ygg / alaya / subagent / launch / stats / learn)+打包好的 kenaz-core | `npx kenaz ...` |
|
|
12
|
-
| `@kenazai/server-<os>-<cpu>` | kenaz-server 執行檔(無視窗後端:MCP + HTTP,只聽本機,port 18080,被占用時往後找) | 安裝後在 `~/.kenaz/bin/` |
|
|
13
|
-
| kenaz-core | plugin、hooks、腳本、規則(plugin 與 server 都讀它) | 安裝後在 `~/.kenaz/core/` |
|
|
14
|
-
| kenaz plugin | `/kenaz` 指令、`/kenaz:Ansuz` 與 hooks | `~/.kenaz/core/plugins/kenaz` |
|
|
15
|
-
| 使用者層資料 | 服務啟動器、log、專案清單、憑證、教訓(`~/.kenaz/knowledge`) | `~/.kenaz/` |
|
|
16
|
-
| 專案資料 | 任務、日誌、專案設定 | 每個專案的 `.kenaz/`,**解除安裝永遠不動** |
|
|
17
|
-
|
|
18
|
-
## 2. 以服務方式執行的東西
|
|
19
|
-
|
|
20
|
-
只有 `kenaz-server`:每個使用者一份(不需系統管理員、不是系統服務),登入時啟動,只聽本機。
|
|
21
|
-
|
|
22
|
-
| 作業系統 | 方式 | 檔案 |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| Windows | 使用者層排程工作 `KenazServer`(登入時觸發,執行隱藏視窗的 `wscript.exe ~\.kenaz\kenaz-server.vbs`)。若 `schtasks /Create` 被拒(登入觸發可能需要管理員權限),改放「啟動」資料夾的 `KenazServer.vbs` 並立即啟動 | `~\.kenaz\kenaz-server.vbs` |
|
|
25
|
-
| macOS | launchd 使用者代理 `ai.kenaz.server`(RunAtLoad + KeepAlive) | `~/Library/LaunchAgents/ai.kenaz.server.plist` |
|
|
26
|
-
| Linux(有 systemd) | `systemd --user` 的 `kenaz-server.service`;無人登入的主機需 `loginctl enable-linger $USER` | `~/.config/systemd/user/kenaz-server.service` |
|
|
27
|
-
| Linux(無 systemd:容器、WSL1、精簡主機)(TASK_2413) | crontab 加一行標記過的 `@reboot`(只取代自己那行,其他保留)並立即在背景啟動;連 crontab 都沒有時,立即啟動並印出要加進開機腳本的指令 | `~/.kenaz/kenaz-server.log` |
|
|
28
|
-
|
|
29
|
-
`kenaz doctor` 會顯示目前的服務模式(systemd / launchd / windows task / startup launcher / cron / manual)。
|
|
30
|
-
|
|
31
|
-
## 3. Plugin 登錄(Claude Code)
|
|
32
|
-
|
|
33
|
-
在 `~/.claude/settings.json` 的 `env.CLAUDE_CODE_PLUGIN_DIRS` 加入 `~/.kenaz/core/plugins/kenaz`:
|
|
34
|
-
- 只合併、不覆蓋;重複執行結果相同;路徑比對不分斜線方向與大小寫
|
|
35
|
-
- 第一次修改前備份一份 `settings.json.bak-kenaz-peer`,寫入用暫存檔+改名(不會寫一半)
|
|
36
|
-
- JSON 格式壞掉時只回報、不動它
|
|
37
|
-
- 前提:`claude --version` >= 2.1.287(太舊會跳過並提示 `claude update`)
|
|
38
|
-
|
|
39
|
-
Codex:`setup-codex.js` 寫入 `~/.codex/config.toml` 的 MCP 設定、原生 hooks 與 `/prompts:kenaz`。升級時會把舊路徑、舊參數的 kenaz hooks 換成新的(TASK_2418),不動使用者自己的 hooks。
|
|
40
|
-
|
|
41
|
-
## 4. 首次使用
|
|
42
|
-
|
|
43
|
-
1. 在任何資料夾執行 `claude`(plugin 自動載入,不需 `--plugin-dir`)。
|
|
44
|
-
2. `/kenaz init`:建立 `.kenaz/project.yaml`、確認後端有回應,並列出可選步驟(不強制):
|
|
45
|
-
- 團隊協作:`kenaz ygg create`(自建房間金鑰並加入,把金鑰給隊友)或 `kenaz ygg join <key>`
|
|
46
|
-
- Alaya:`kenaz alaya register`(機碼註冊,立即可用)
|
|
47
|
-
- 下一步:`/kenaz:Ansuz`
|
|
48
|
-
3. 後端沒回應時,init 會說明並指向 `npx kenaz install`。
|
|
49
|
-
|
|
50
|
-
## 5. 升級與解除安裝
|
|
51
|
-
|
|
52
|
-
- **自動更新**:kenaz-server 會從簽章過的 feed 自行更新(執行檔+kenaz-core+plugin),重新啟動後生效。
|
|
53
|
-
- **手動升級**:`npx kenaz@latest install`。會先停掉「這個路徑」的舊 server(不會依名稱砍其他程序)、換新檔、**明確重啟服務**,再用 `/api/health` 確認跑的是新版本;版本不符會警告並印出重啟指令(TASK_2418)。
|
|
54
|
-
- **解除安裝**:`npx kenaz uninstall` 只移除我們加的 plugin 項目、服務啟動器與 `~/.kenaz/core`、`~/.kenaz/bin`。**專案的 `.kenaz/` 與 `~/.kenaz` 的使用者資料保留**,settings 備份也保留。
|
|
55
|
-
- `status` 顯示 plugin 登錄與服務狀態;任何指令加 `--dry-run` 只印計畫、不改東西。
|
|
56
|
-
|
|
57
|
-
## 6. 驗收
|
|
58
|
-
|
|
59
|
-
自動化(已完成):installer、CLI、Codex hooks 的 node 測試只用暫存 home,不碰真實環境。
|
|
60
|
-
|
|
61
|
-
**乾淨 Windows 環境實測(待用戶執行,等下一次發版後)**:
|
|
62
|
-
1. 準備乾淨環境:Windows Sandbox(控制台 → 開啟或關閉 Windows 功能 → 勾「Windows 沙箱」→ 重開機),或新建一個本機 Windows 帳號。
|
|
63
|
-
2. 在裡面安裝 Node.js(LTS)與 Claude Code,登入 Claude。
|
|
64
|
-
3. `npx kenaz install`。預期:plugin 已登錄、排程工作或啟動資料夾啟動器、`http://127.0.0.1:18080/api/health` 有回應、最後的版本確認為 ok。
|
|
65
|
-
4. 新建空資料夾 → `claude` → `/kenaz init` → `/kenaz:Ansuz`。預期:Ansuz 正常開機,不需 `--plugin-dir`。
|
|
66
|
-
5. `npx kenaz doctor`:每列應為 ok 或 skip。
|
|
67
|
-
6. `npx kenaz uninstall`。預期:plugin 已移除、服務啟動器已刪、測試資料夾的 `.kenaz` 仍在。
|
|
68
|
-
7. 記下每一步卡住、看不懂、或需要額外動作的地方,回報給 Ansuz。
|
|
69
|
-
|
|
70
|
-
## 7. 未決事項
|
|
71
|
-
|
|
72
|
-
- macOS 與 Linux 的服務步驟目前只有單元測試,真機只有 Windows 實際跑過(field report 顯示 macOS 用戶已在使用,升級重啟問題已修,待下一版驗證)。
|
|
73
|
-
- Windows 在沒有管理員權限時會走「啟動資料夾」路線;乾淨環境實測要確認實際走哪一條。
|
|
74
|
-
- Codex 桌面版(managed daemon)目前無法即時推送 peer 訊息,改為下一次提問時拉取(TASK_2419,調查記錄見 `dev/specs/peer/CODEX_MANAGED_DAEMON.md`)。
|
|
75
|
-
|
|
76
|
-
## 8. 已定案的決策(用戶,2026-10-09 起)
|
|
77
|
-
|
|
78
|
-
- **發佈:npm**。`npx kenaz install`;各平台執行檔是選用的平台套件(`@kenazai/server-win32-x64`、`-darwin-arm64`、`-darwin-x64`、`-linux-x64`、`-linux-arm64`)。
|
|
79
|
-
- **兩種 harness 都支援**:偵測到 Claude Code 就登錄 plugin,偵測到 Codex 就設定 MCP 與 hooks。
|
|
80
|
-
- **平台**:Windows、macOS、Linux 首版就支援。
|
|
81
|
-
- **Node.js 是前提**(兩種 harness 本來就需要);installer 會檢查版本並說明怎麼裝。
|
|
82
|
-
- **更新**:kenaz-server 自行更新,有簽章驗證。
|
|
83
|
-
- **Codex 與 Claude Code 對等**:MCP 工具、Yggdrasil 指令、Ansuz 流程、Codex 原生 subagent 派工。
|
|
84
|
-
- **發版**:等用戶說「發版」才發(緊急修正除外)。Windows 與 Linux 在本機建置,只有 macOS 在 GitHub Actions 建置以節省費用(流程見記憶 `reference_npm_cli_release`)。
|
|
85
|
-
|
|
86
|
-
## 9. npm 套件結構(TASK_2377)
|
|
87
|
-
|
|
88
|
-
- `packages/kenaz`:CLI+打包的 kenaz-core(`prepack` 跑 `scripts/stage.js`,只收 git 追蹤的白名單檔案)。
|
|
89
|
-
- `packages/server-*`:各平台執行檔;版本與 `dashboard/src-tauri/Cargo.toml` 同步。
|
|
90
|
-
- install:檢查 Node 版本 → 複製 kenaz-core 到 `~/.kenaz/core`、執行檔到 `~/.kenaz/bin` → 記錄 `~/.kenaz/install.json` → Claude Code 與 Codex 各自設定 → 啟動並確認服務。
|
|
91
|
-
- doctor:Node 版本、core 版本、server 執行檔、`/api/health`、服務模式、Claude plugin、Codex MCP 與 hooks;任何 FAIL 以代碼 1 結束。
|
|
92
|
-
- 本機檢查:`npm pack` 後裝到暫存前綴,用 `--home <暫存目錄>` 執行(絕不用真實 home)。
|
|
93
|
-
|
|
94
|
-
## 10. 從 Dashboard 遷移(TASK_2389 / TASK_2396)
|
|
95
|
-
|
|
96
|
-
Dashboard(Tauri 桌面 app)已於 2026-10-11 從 repo 移除,kenaz-server 是唯一後端。已安裝的 Dashboard 可繼續用但不再更新。兩者都綁 port 18080,不能同時執行;CLI 只偵測並提示,不會替你結束 Dashboard。
|
|
97
|
-
|
|
98
|
-
### 給使用者的步驟(可直接貼進公告)
|
|
99
|
-
|
|
100
|
-
1. 在系統匣(右下角)對 Kenaz Dashboard 按右鍵,選「結束 / Quit」,確認程式完全關閉。
|
|
101
|
-
2. 開啟 Dashboard 設定,關閉「開機時啟動」,避免登入後它又占回 port 18080。
|
|
102
|
-
3. 在終端機執行:`npx kenaz install`
|
|
103
|
-
4. 到專案資料夾執行 `claude`,再輸入 `/kenaz init`。
|
|
104
|
-
5. 驗證:`npx kenaz doctor`,每一列應為 ok 或 skip。
|
|
105
|
-
|
|
106
|
-
Dashboard 還在執行時,`npx kenaz install` 會印出上面的步驟並結束,不會啟動服務;只想先裝 plugin 與 core:加 `--keep-dashboard`。
|
|
107
|
-
|
|
108
|
-
### 資料共用,不需搬移
|
|
109
|
-
|
|
110
|
-
| 資料 | 位置 |
|
|
111
|
-
|---|---|
|
|
112
|
-
| 專案清單 | `~/.kenaz/projects.json` |
|
|
113
|
-
| 憑證 / relay key / 各專案 Yggdrasil key | `~/.kenaz/credentials.yaml` |
|
|
114
|
-
| 偏好設定 | `~/.kenaz/config.json` |
|
|
115
|
-
| 任務、日誌 | `<專案>/.kenaz/` |
|
|
116
|
-
| Peer 收件匣 | `peer_dir(project_root)/inbox.sqlite` |
|
|
117
|
-
|
|
118
|
-
記憶系統(Synapse 等)已於 2026-10-11 移除(TASK_2411),舊的 `.synapse/` 與 `~/.kenaz/cortex/*.db` 留在磁碟上、不再使用;教訓改用 `kenaz learn`。
|
|
119
|
-
|
|
120
|
-
Dashboard 各項行為的去向(哪些已搬進 kenaz-server、哪些刻意移除)記錄在 git 歷史中此檔 2026-10-11 之前的版本。
|