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,569 +0,0 @@
|
|
|
1
|
-
# Mobile RWD Design Specification
|
|
2
|
-
|
|
3
|
-
> Kenaz Dashboard Mobile Responsive Web Design Guidelines
|
|
4
|
-
|
|
5
|
-
## 1. Overview
|
|
6
|
-
|
|
7
|
-
### 1.1 Design Philosophy
|
|
8
|
-
|
|
9
|
-
Kenaz Dashboard Mobile 設計延續桌面版的 **HUD/Cyberpunk 視覺風格**,同時針對移動端優化觸控交互和資訊層級。核心原則:
|
|
10
|
-
|
|
11
|
-
- **資訊優先級**:在有限螢幕空間內突出最重要的任務狀態
|
|
12
|
-
- **觸控友善**:所有交互元素符合人機工程學標準
|
|
13
|
-
- **一致體驗**:保持 Desktop 與 Mobile 的視覺語言統一
|
|
14
|
-
- **效能優先**:減少動畫和視覺效果,優化低端設備體驗
|
|
15
|
-
|
|
16
|
-
### 1.2 Current Implementation Analysis
|
|
17
|
-
|
|
18
|
-
現有實現採用 Tab-based 導航(Tasks / Agents / Tools / Terminal),並使用以下響應式策略:
|
|
19
|
-
|
|
20
|
-
- `useIsMobile()` hook 偵測 `md` breakpoint (768px)
|
|
21
|
-
- Mobile 版直接復用 Desktop 的 `TaskBoard` 組件
|
|
22
|
-
- 統計卡片使用 3 列網格(`grid-cols-3`)
|
|
23
|
-
- 底部 Tab Bar 固定導航
|
|
24
|
-
|
|
25
|
-
**問題識別**:
|
|
26
|
-
1. TaskBoard 三欄 Kanban 在手機上被壓縮為單欄堆疊,缺乏欄位切換能力
|
|
27
|
-
2. TaskCard 資訊密度過高,觸控目標偏小
|
|
28
|
-
3. 缺乏手勢支援(滑動切換欄位、快速操作)
|
|
29
|
-
4. 統計區塊字體過小
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## 2. Breakpoint System
|
|
34
|
-
|
|
35
|
-
### 2.1 Breakpoint Definitions
|
|
36
|
-
|
|
37
|
-
| Token | Width | Device Category | Layout Strategy |
|
|
38
|
-
|-------|-------|-----------------|-----------------|
|
|
39
|
-
| `xs` | < 375px | Small phones | Single column, simplified |
|
|
40
|
-
| `sm` | 375px - 639px | Standard phones | Single column, full mobile UI |
|
|
41
|
-
| `md` | 640px - 767px | Large phones / Small tablets | Single column, enhanced spacing |
|
|
42
|
-
| `tablet` | 768px - 1023px | Tablets portrait | Two columns, hybrid layout |
|
|
43
|
-
| `lg` | 1024px - 1279px | Tablets landscape / Small laptops | Three columns, desktop-like |
|
|
44
|
-
| `xl` | >= 1280px | Desktop | Full desktop layout |
|
|
45
|
-
|
|
46
|
-
### 2.2 Tailwind Configuration
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// tailwind.config.ts
|
|
50
|
-
const config = {
|
|
51
|
-
theme: {
|
|
52
|
-
screens: {
|
|
53
|
-
'xs': '375px',
|
|
54
|
-
'sm': '640px',
|
|
55
|
-
'md': '768px', // Mobile/Desktop breakpoint
|
|
56
|
-
'tablet': '768px',
|
|
57
|
-
'lg': '1024px',
|
|
58
|
-
'xl': '1280px',
|
|
59
|
-
'2xl': '1536px',
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 2.3 Mobile Detection Strategy
|
|
66
|
-
|
|
67
|
-
```typescript
|
|
68
|
-
// hooks/use-media-query.ts
|
|
69
|
-
export function useIsMobile(): boolean {
|
|
70
|
-
// Keep existing: matches < md (768px)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export function useIsTablet(): boolean {
|
|
74
|
-
// New: matches >= md && < lg
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export function useBreakpoint(): 'mobile' | 'tablet' | 'desktop' {
|
|
78
|
-
// Returns current breakpoint category
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## 3. Kanban Board Mobile Layout
|
|
85
|
-
|
|
86
|
-
### 3.1 Layout Strategy: Horizontal Swipe Columns
|
|
87
|
-
|
|
88
|
-
Mobile Kanban 採用**水平滑動切換欄位**設計,而非垂直堆疊:
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
┌─────────────────────────────────────────┐
|
|
92
|
-
│ [Backlog] [Active] [Done] ← Tab Headers│
|
|
93
|
-
├─────────────────────────────────────────┤
|
|
94
|
-
│ │
|
|
95
|
-
│ ┌─────────────────────────┐ │
|
|
96
|
-
│ │ Task Card │ │
|
|
97
|
-
│ │ ─────────────────── │ │
|
|
98
|
-
│ │ P1 │ WebSocket Setup │ │
|
|
99
|
-
│ │ ────────────── │ │
|
|
100
|
-
│ │ 🤖 backend_agent │ ← Swipe │
|
|
101
|
-
│ └─────────────────────────┘ Area │
|
|
102
|
-
│ │
|
|
103
|
-
│ ┌─────────────────────────┐ │
|
|
104
|
-
│ │ Task Card │ │
|
|
105
|
-
│ └─────────────────────────┘ │
|
|
106
|
-
│ │
|
|
107
|
-
│ ○ ● ○ ← Dot Indicators │
|
|
108
|
-
└─────────────────────────────────────────┘
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### 3.2 Column Header Tabs
|
|
112
|
-
|
|
113
|
-
| Property | Value |
|
|
114
|
-
|----------|-------|
|
|
115
|
-
| Height | 44px (touch target) |
|
|
116
|
-
| Padding | 12px horizontal |
|
|
117
|
-
| Font | font-tech, 12px, uppercase |
|
|
118
|
-
| Active State | Cyan underline (2px), text-cyan-400 |
|
|
119
|
-
| Inactive | text-slate-500 |
|
|
120
|
-
|
|
121
|
-
```tsx
|
|
122
|
-
// Implementation concept
|
|
123
|
-
<div className="flex border-b border-cyan-400/20">
|
|
124
|
-
{['Backlog', 'Active', 'Done'].map(column => (
|
|
125
|
-
<button
|
|
126
|
-
className={cn(
|
|
127
|
-
'flex-1 py-3 font-tech text-xs uppercase tracking-wider',
|
|
128
|
-
'min-h-[44px]', // Touch target
|
|
129
|
-
isActive ? 'text-cyan-400 border-b-2 border-cyan-400' : 'text-slate-500'
|
|
130
|
-
)}
|
|
131
|
-
>
|
|
132
|
-
{column} ({count})
|
|
133
|
-
</button>
|
|
134
|
-
))}
|
|
135
|
-
</div>
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### 3.3 Swipe Gesture Specifications
|
|
139
|
-
|
|
140
|
-
| Gesture | Action | Threshold |
|
|
141
|
-
|---------|--------|-----------|
|
|
142
|
-
| Horizontal Swipe | Switch columns | > 50px distance |
|
|
143
|
-
| Pull Down | Refresh tasks | > 80px with release |
|
|
144
|
-
| Long Press on Card | Show quick actions | > 300ms |
|
|
145
|
-
|
|
146
|
-
**Implementation**:使用 `react-swipeable` 或 CSS `scroll-snap` 實現。
|
|
147
|
-
|
|
148
|
-
```tsx
|
|
149
|
-
// CSS scroll-snap approach
|
|
150
|
-
<div className="flex overflow-x-auto snap-x snap-mandatory scrollbar-hide">
|
|
151
|
-
<div className="flex-none w-full snap-center">
|
|
152
|
-
<TaskColumn type="backlog" />
|
|
153
|
-
</div>
|
|
154
|
-
<div className="flex-none w-full snap-center">
|
|
155
|
-
<TaskColumn type="active" />
|
|
156
|
-
</div>
|
|
157
|
-
<div className="flex-none w-full snap-center">
|
|
158
|
-
<TaskColumn type="done" />
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### 3.4 Column-specific Styling
|
|
164
|
-
|
|
165
|
-
| Column | Accent Color | Glow Effect |
|
|
166
|
-
|--------|--------------|-------------|
|
|
167
|
-
| Backlog | orange-400 | shadow-orange-500/20 |
|
|
168
|
-
| Active | cyan-400 | shadow-cyan-400/30 |
|
|
169
|
-
| Done | green-400 | shadow-green-500/20 |
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## 4. Task Card Mobile Design
|
|
174
|
-
|
|
175
|
-
### 4.1 Layout Structure
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
┌──────────────────────────────────────┐
|
|
179
|
-
│ ┌───┐ ┌────┐│
|
|
180
|
-
│ │P1 │ TASK_006 │ ⋮ ││ ← Quick Actions Menu
|
|
181
|
-
│ └───┘ └────┘│
|
|
182
|
-
├──────────────────────────────────────┤
|
|
183
|
-
│ │
|
|
184
|
-
│ Mobile RWD 設計規範 │ ← Title (max 2 lines)
|
|
185
|
-
│ │
|
|
186
|
-
├──────────────────────────────────────┤
|
|
187
|
-
│ 🤖 designer 🔒 src/ │ ← Agent + Lock
|
|
188
|
-
│ │
|
|
189
|
-
└──────────────────────────────────────┘
|
|
190
|
-
Min height: 80px | Touch target: 48x48px
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### 4.2 Spacing Specifications
|
|
194
|
-
|
|
195
|
-
| Element | Mobile Value | Desktop Value |
|
|
196
|
-
|---------|--------------|---------------|
|
|
197
|
-
| Card Padding | 12px | 12px |
|
|
198
|
-
| Card Gap | 12px | 16px |
|
|
199
|
-
| Card Border Radius | 6px | 4px |
|
|
200
|
-
| Title Font Size | 14px | 14px |
|
|
201
|
-
| Subtitle Font Size | 11px | 10px |
|
|
202
|
-
| Badge Font Size | 10px | 10px |
|
|
203
|
-
|
|
204
|
-
### 4.3 Touch Target Requirements
|
|
205
|
-
|
|
206
|
-
根據 Apple HIG (44pt) 和 Material Design (48dp) 標準:
|
|
207
|
-
|
|
208
|
-
| Element | Minimum Size | Recommended |
|
|
209
|
-
|---------|--------------|-------------|
|
|
210
|
-
| Priority Badge | 32x32px (visual) | 44x44px (touch area) |
|
|
211
|
-
| Quick Actions Menu | 44x44px | 48x48px |
|
|
212
|
-
| Card itself | Full width, min 80px height | - |
|
|
213
|
-
| Agent Badge | 24px height | 44px touch area |
|
|
214
|
-
|
|
215
|
-
### 4.4 Simplified Information Hierarchy
|
|
216
|
-
|
|
217
|
-
Mobile 版任務卡片**簡化資訊層級**:
|
|
218
|
-
|
|
219
|
-
| Priority | Show | Hide |
|
|
220
|
-
|----------|------|------|
|
|
221
|
-
| 1 | Task ID, Priority, Title | - |
|
|
222
|
-
| 2 | Agent Badge, Lock Status | - |
|
|
223
|
-
| 3 | - | Dependencies (move to detail view) |
|
|
224
|
-
| 4 | - | Description (move to detail view) |
|
|
225
|
-
|
|
226
|
-
### 4.5 Quick Actions (Swipe Gestures)
|
|
227
|
-
|
|
228
|
-
| Gesture | Action | Visual Feedback |
|
|
229
|
-
|---------|--------|-----------------|
|
|
230
|
-
| Swipe Left | Reveal delete option | Red background revealed |
|
|
231
|
-
| Swipe Right | Mark as done (if applicable) | Green background revealed |
|
|
232
|
-
| Tap | Navigate to detail view | Haptic feedback |
|
|
233
|
-
|
|
234
|
-
**Note**: 這些 swipe actions 僅在未來迭代中實現,當前版本專注於佈局優化。
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## 5. Statistics Section Mobile Design
|
|
239
|
-
|
|
240
|
-
### 5.1 Grid Layout Options
|
|
241
|
-
|
|
242
|
-
**Option A: 3x2 Grid (Current)**
|
|
243
|
-
```
|
|
244
|
-
┌────────┬────────┬────────┐
|
|
245
|
-
│ Total │Pending │ Active │
|
|
246
|
-
│ 7 │ 4 │ 1 │
|
|
247
|
-
├────────┼────────┼────────┤
|
|
248
|
-
│ Done │Blocked │Canceled│
|
|
249
|
-
│ 2 │ 0 │ 0 │
|
|
250
|
-
└────────┴────────┴────────┘
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Option B: 2x3 Grid (Recommended for phones)**
|
|
254
|
-
```
|
|
255
|
-
┌──────────┬──────────┐
|
|
256
|
-
│ Total │ Active │
|
|
257
|
-
│ 7 │ 1 │ ← Primary stats
|
|
258
|
-
├──────────┼──────────┤
|
|
259
|
-
│ Pending │ Done │
|
|
260
|
-
│ 4 │ 2 │ ← Secondary
|
|
261
|
-
├──────────┼──────────┤
|
|
262
|
-
│ Blocked │ Canceled │
|
|
263
|
-
│ 0 │ 0 │ ← Tertiary
|
|
264
|
-
└──────────┴──────────┘
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
**Option C: Horizontal Scroll (for very small screens)**
|
|
268
|
-
```
|
|
269
|
-
┌────────────────────────────────────────────┐
|
|
270
|
-
│ [Total: 7] [Active: 1] [Pending: 4] ... →│
|
|
271
|
-
└────────────────────────────────────────────┘
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
### 5.2 Mobile Stat Card Specifications
|
|
275
|
-
|
|
276
|
-
| Property | Value |
|
|
277
|
-
|----------|-------|
|
|
278
|
-
| Min Width | 100px |
|
|
279
|
-
| Min Height | 64px |
|
|
280
|
-
| Padding | 8px 12px |
|
|
281
|
-
| Value Font | font-display, 20px, bold |
|
|
282
|
-
| Label Font | font-tech, 9px, uppercase |
|
|
283
|
-
| Border | 1px solid, color varies by variant |
|
|
284
|
-
| Glow | Removed on mobile (performance) |
|
|
285
|
-
|
|
286
|
-
### 5.3 Responsive Grid CSS
|
|
287
|
-
|
|
288
|
-
```tsx
|
|
289
|
-
// MobileTaskView statistics grid
|
|
290
|
-
<div className={cn(
|
|
291
|
-
'grid gap-2',
|
|
292
|
-
'grid-cols-2', // Default: 2 columns
|
|
293
|
-
'xs:grid-cols-3', // Small phones: 3 columns
|
|
294
|
-
'sm:grid-cols-3', // Standard: 3 columns
|
|
295
|
-
)}>
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
## 6. Typography System
|
|
301
|
-
|
|
302
|
-
### 6.1 Mobile Font Scale
|
|
303
|
-
|
|
304
|
-
| Token | Mobile | Desktop | Usage |
|
|
305
|
-
|-------|--------|---------|-------|
|
|
306
|
-
| `heading-lg` | 18px / 1.3 | 24px / 1.3 | Page headers |
|
|
307
|
-
| `heading-md` | 14px / 1.4 | 16px / 1.4 | Section headers |
|
|
308
|
-
| `body` | 14px / 1.5 | 14px / 1.5 | Task titles |
|
|
309
|
-
| `body-sm` | 12px / 1.5 | 12px / 1.5 | Descriptions |
|
|
310
|
-
| `caption` | 10px / 1.3 | 10px / 1.3 | Labels, badges |
|
|
311
|
-
| `micro` | 9px / 1.2 | 9px / 1.2 | Timestamps |
|
|
312
|
-
|
|
313
|
-
### 6.2 Font Families (Unchanged)
|
|
314
|
-
|
|
315
|
-
```css
|
|
316
|
-
.font-display { font-family: 'Orbitron', 'Rajdhani', sans-serif; }
|
|
317
|
-
.font-tech { font-family: 'JetBrains Mono', 'Fira Code', monospace; }
|
|
318
|
-
.font-mono { font-family: 'Share Tech Mono', monospace; }
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## 7. Spacing System
|
|
324
|
-
|
|
325
|
-
### 7.1 Spacing Scale
|
|
326
|
-
|
|
327
|
-
| Token | Value | Usage |
|
|
328
|
-
|-------|-------|-------|
|
|
329
|
-
| `space-0` | 0px | - |
|
|
330
|
-
| `space-1` | 4px | Inline gaps |
|
|
331
|
-
| `space-2` | 8px | Component internal padding |
|
|
332
|
-
| `space-3` | 12px | Card padding, card gaps |
|
|
333
|
-
| `space-4` | 16px | Section margins |
|
|
334
|
-
| `space-5` | 20px | Large gaps |
|
|
335
|
-
| `space-6` | 24px | Page padding |
|
|
336
|
-
|
|
337
|
-
### 7.2 Mobile Page Layout Spacing
|
|
338
|
-
|
|
339
|
-
```
|
|
340
|
-
┌───────────────────────────────────┐
|
|
341
|
-
│ ←16px→ Content Area ←16px→ │
|
|
342
|
-
│ │
|
|
343
|
-
│ Section Header │
|
|
344
|
-
│ ↓ 12px │
|
|
345
|
-
│ ┌─────────────────────────────┐ │
|
|
346
|
-
│ │ Statistics Grid │ │
|
|
347
|
-
│ │ (gap: 8px) │ │
|
|
348
|
-
│ └─────────────────────────────┘ │
|
|
349
|
-
│ ↓ 16px │
|
|
350
|
-
│ Section Header │
|
|
351
|
-
│ ↓ 12px │
|
|
352
|
-
│ ┌─────────────────────────────┐ │
|
|
353
|
-
│ │ Task Board │ │
|
|
354
|
-
│ │ (card gap: 12px) │ │
|
|
355
|
-
│ └─────────────────────────────┘ │
|
|
356
|
-
│ │
|
|
357
|
-
│ ← 80px Tab Bar safe area → │
|
|
358
|
-
└───────────────────────────────────┘
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## 8. Touch Interaction Guidelines
|
|
364
|
-
|
|
365
|
-
### 8.1 Touch Target Sizes
|
|
366
|
-
|
|
367
|
-
| Element | Minimum | Recommended | Standard |
|
|
368
|
-
|---------|---------|-------------|----------|
|
|
369
|
-
| Buttons | 44x44px | 48x48px | Apple HIG |
|
|
370
|
-
| Tab Items | 44x48px | 56x48px | Material |
|
|
371
|
-
| List Items | 48px height | 56px height | - |
|
|
372
|
-
| Icon Buttons | 44x44px | 48x48px | - |
|
|
373
|
-
|
|
374
|
-
### 8.2 Gesture Support Matrix
|
|
375
|
-
|
|
376
|
-
| Gesture | MobileTaskView | MobileAgentsView | MobileToolsView |
|
|
377
|
-
|---------|----------------|------------------|-----------------|
|
|
378
|
-
| Tap | Select/Navigate | Select session | Trigger action |
|
|
379
|
-
| Long Press | Context menu | Session options | - |
|
|
380
|
-
| Swipe Left | Quick action | Close session | - |
|
|
381
|
-
| Swipe Right | Quick action | - | - |
|
|
382
|
-
| Pull to Refresh | Refresh tasks | Refresh agents | Refresh status |
|
|
383
|
-
| Horizontal Swipe | Switch columns | - | - |
|
|
384
|
-
|
|
385
|
-
### 8.3 Haptic Feedback
|
|
386
|
-
|
|
387
|
-
建議在以下交互時觸發震動反饋(需 device support):
|
|
388
|
-
|
|
389
|
-
- 成功操作完成
|
|
390
|
-
- Tab 切換
|
|
391
|
-
- Swipe action 觸發
|
|
392
|
-
- Long press 識別
|
|
393
|
-
|
|
394
|
-
---
|
|
395
|
-
|
|
396
|
-
## 9. Color System (Mobile Adjustments)
|
|
397
|
-
|
|
398
|
-
### 9.1 Core Colors (Unchanged)
|
|
399
|
-
|
|
400
|
-
| Token | Value | Usage |
|
|
401
|
-
|-------|-------|-------|
|
|
402
|
-
| `cyan-400` | #22D3EE | Primary accent, active states |
|
|
403
|
-
| `slate-900` | #0F172A | Background base |
|
|
404
|
-
| `slate-700` | #334155 | Secondary background |
|
|
405
|
-
| `slate-500` | #64748B | Muted text |
|
|
406
|
-
| `slate-200` | #E2E8F0 | Primary text |
|
|
407
|
-
|
|
408
|
-
### 9.2 Status Colors
|
|
409
|
-
|
|
410
|
-
| Status | Color | Glow (Desktop) | Mobile |
|
|
411
|
-
|--------|-------|----------------|--------|
|
|
412
|
-
| Active | blue-400 | Yes | Solid only |
|
|
413
|
-
| Pending | orange-400 | Yes | Solid only |
|
|
414
|
-
| Done | green-400 | Yes | Solid only |
|
|
415
|
-
| Blocked | red-400 | Yes | Solid only |
|
|
416
|
-
| Cancelled | slate-400 | No | - |
|
|
417
|
-
|
|
418
|
-
### 9.3 Mobile Performance Optimizations
|
|
419
|
-
|
|
420
|
-
- **移除 glow effects**:`box-shadow` 動畫影響效能
|
|
421
|
-
- **簡化漸層**:單色背景取代多層漸層
|
|
422
|
-
- **減少動畫**:`pulse-active` 動畫保留,其他移除
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## 10. Component Specifications
|
|
427
|
-
|
|
428
|
-
### 10.1 MobileTabBar
|
|
429
|
-
|
|
430
|
-
```tsx
|
|
431
|
-
interface MobileTabBarProps {
|
|
432
|
-
activeTab: 'tasks' | 'agents' | 'tools' | 'terminal';
|
|
433
|
-
onTabChange: (tab: MobileTab) => void;
|
|
434
|
-
badge?: { tools: number }; // Optional notification badges
|
|
435
|
-
}
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
| Property | Value |
|
|
439
|
-
|----------|-------|
|
|
440
|
-
| Height | 56px + safe-area-inset-bottom |
|
|
441
|
-
| Background | bg-[#0a1628]/95 backdrop-blur |
|
|
442
|
-
| Border | border-t border-cyan-400/30 |
|
|
443
|
-
| Icon Size | 20x20px |
|
|
444
|
-
| Label Font | font-tech, 11px |
|
|
445
|
-
| Touch Area | 25% width each, 56px height |
|
|
446
|
-
|
|
447
|
-
### 10.2 MobileTaskBoard (New Component)
|
|
448
|
-
|
|
449
|
-
```tsx
|
|
450
|
-
interface MobileTaskBoardProps {
|
|
451
|
-
tasks: Task[];
|
|
452
|
-
defaultColumn?: 'backlog' | 'active' | 'done';
|
|
453
|
-
onColumnChange?: (column: string) => void;
|
|
454
|
-
}
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
### 10.3 MobileTaskCard (New Component)
|
|
458
|
-
|
|
459
|
-
```tsx
|
|
460
|
-
interface MobileTaskCardProps {
|
|
461
|
-
task: Task;
|
|
462
|
-
onTap?: () => void;
|
|
463
|
-
onSwipeLeft?: () => void;
|
|
464
|
-
onSwipeRight?: () => void;
|
|
465
|
-
}
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
### 10.4 MobileStatCard (Existing - Optimized)
|
|
469
|
-
|
|
470
|
-
保持現有實現,調整:
|
|
471
|
-
- 移除 glow effects
|
|
472
|
-
- 增大字體(value: 20px → 22px)
|
|
473
|
-
- 增加觸控區域
|
|
474
|
-
|
|
475
|
-
---
|
|
476
|
-
|
|
477
|
-
## 11. Safe Area Handling
|
|
478
|
-
|
|
479
|
-
### 11.1 iOS Notch and Home Indicator
|
|
480
|
-
|
|
481
|
-
```css
|
|
482
|
-
/* globals.css - Already implemented */
|
|
483
|
-
.safe-area-bottom {
|
|
484
|
-
padding-bottom: env(safe-area-inset-bottom, 0);
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.safe-area-top {
|
|
488
|
-
padding-top: env(safe-area-inset-top, 0);
|
|
489
|
-
}
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
### 11.2 Component Application
|
|
493
|
-
|
|
494
|
-
| Component | Safe Area |
|
|
495
|
-
|-----------|-----------|
|
|
496
|
-
| Mobile Header | safe-area-top |
|
|
497
|
-
| Mobile Tab Bar | safe-area-bottom |
|
|
498
|
-
| Mobile Terminal Modal | All safe areas |
|
|
499
|
-
| Page Content | None (handled by parent) |
|
|
500
|
-
|
|
501
|
-
---
|
|
502
|
-
|
|
503
|
-
## 12. Implementation Checklist
|
|
504
|
-
|
|
505
|
-
### Phase 1: Foundation (TASK_006)
|
|
506
|
-
- [x] Define breakpoint system
|
|
507
|
-
- [x] Define typography scale
|
|
508
|
-
- [x] Define spacing system
|
|
509
|
-
- [x] Define touch target standards
|
|
510
|
-
- [x] Document Kanban mobile layout strategy
|
|
511
|
-
- [x] Document task card simplification
|
|
512
|
-
|
|
513
|
-
### Phase 2: Kanban Implementation (TASK_007)
|
|
514
|
-
- [ ] Create MobileTaskBoard component with swipe columns
|
|
515
|
-
- [ ] Implement column header tabs
|
|
516
|
-
- [ ] Add CSS scroll-snap support
|
|
517
|
-
- [ ] Add swipe gesture detection
|
|
518
|
-
- [ ] Add dot indicators for column position
|
|
519
|
-
|
|
520
|
-
### Phase 3: Task Card Optimization (TASK_008)
|
|
521
|
-
- [ ] Create MobileTaskCard component
|
|
522
|
-
- [ ] Implement simplified info hierarchy
|
|
523
|
-
- [ ] Add swipe-to-reveal actions (optional)
|
|
524
|
-
- [ ] Optimize touch targets
|
|
525
|
-
- [ ] Test on real devices
|
|
526
|
-
|
|
527
|
-
### Phase 4: Polish
|
|
528
|
-
- [ ] Haptic feedback integration
|
|
529
|
-
- [ ] Pull-to-refresh
|
|
530
|
-
- [ ] Skeleton loading states
|
|
531
|
-
- [ ] Performance profiling
|
|
532
|
-
- [ ] Cross-browser testing
|
|
533
|
-
|
|
534
|
-
---
|
|
535
|
-
|
|
536
|
-
## 13. Appendix
|
|
537
|
-
|
|
538
|
-
### A. Device Testing Matrix
|
|
539
|
-
|
|
540
|
-
| Device | Screen | OS | Priority |
|
|
541
|
-
|--------|--------|-----|----------|
|
|
542
|
-
| iPhone 14 Pro | 393x852 | iOS 17 | High |
|
|
543
|
-
| iPhone SE | 375x667 | iOS 16 | High |
|
|
544
|
-
| Samsung Galaxy S23 | 360x780 | Android 14 | High |
|
|
545
|
-
| iPad Mini | 768x1024 | iPadOS | Medium |
|
|
546
|
-
| iPad Pro 11" | 834x1194 | iPadOS | Medium |
|
|
547
|
-
|
|
548
|
-
### B. Accessibility Requirements
|
|
549
|
-
|
|
550
|
-
| Requirement | Standard | Implementation |
|
|
551
|
-
|-------------|----------|----------------|
|
|
552
|
-
| Color Contrast | WCAG AA (4.5:1) | Verified |
|
|
553
|
-
| Touch Targets | 44x44px minimum | Enforced |
|
|
554
|
-
| Font Scaling | Support up to 200% | System font scaling |
|
|
555
|
-
| Screen Reader | VoiceOver/TalkBack | aria-labels on all interactive elements |
|
|
556
|
-
|
|
557
|
-
### C. Performance Budgets
|
|
558
|
-
|
|
559
|
-
| Metric | Target | Current |
|
|
560
|
-
|--------|--------|---------|
|
|
561
|
-
| First Contentful Paint | < 1.5s | TBD |
|
|
562
|
-
| Time to Interactive | < 3.0s | TBD |
|
|
563
|
-
| Total Bundle Size | < 200KB (gzipped) | TBD |
|
|
564
|
-
| Animation FPS | 60fps | TBD |
|
|
565
|
-
|
|
566
|
-
---
|
|
567
|
-
|
|
568
|
-
*Generated by Designer Agent | 2026-01-31*
|
|
569
|
-
*Version: 1.0.0*
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
# Multi-Ansuz 併行模式 Spec
|
|
2
|
-
|
|
3
|
-
> 設計定案:2026-07-20 Ansuz session(與用戶逐節收斂)。
|
|
4
|
-
> 情境:N 個 Ansuz 注意力流(interactive session)× 各帶一隊 sub-agent,同一 repo 同時工作。
|
|
5
|
-
> 哲學:multi-Ansuz = 一個自我、多條注意力流(共享記憶與任務池),不是互不相識的同事。
|
|
6
|
-
|
|
7
|
-
## 0. 目標與非目標
|
|
8
|
-
|
|
9
|
-
**目標**
|
|
10
|
-
- 多個 Ansuz session 同時在線時:不互踩狀態檔、不重複認領工作、不產生 stale-base 語義衝突、彼此可見。
|
|
11
|
-
- 單 session 時所有機制退化為 no-op,零額外成本、零行為變化。
|
|
12
|
-
|
|
13
|
-
**非目標**
|
|
14
|
-
- 跨機器分散式(那是 Yggdrasil pool 的路線,claim 語義對齊即可)。
|
|
15
|
-
- 中央 scheduler(去中心化租約優先;Amelia meta-scheduler 留給未來真需要時)。
|
|
16
|
-
|
|
17
|
-
## 1. 碰撞面盤點(問題定義)
|
|
18
|
-
|
|
19
|
-
| # | 碰撞面 | 風險 |
|
|
20
|
-
|---|--------|------|
|
|
21
|
-
| 1 | 主工作樹單例 | post-complete 在主樹 checkout/stash/rebase,互踩另一 session 與用戶 WIP |
|
|
22
|
-
| 2 | Session 狀態檔單槽 | `ansuz_session.json` / `ansuz_session_lock.json` / `ansuz_session_handoff.json` 後寫贏 |
|
|
23
|
-
| 3 | 任務認領無 owner | 兩 session 可 dispatch scope 重疊的卡;overlap 偵測只在 create 時跑(且有 "e.g." 解析 bug) |
|
|
24
|
-
| 4 | Merge 序列化不完整 | `.formation/.merge-lock` 存在但 rebase 在鎖外(C.2)、持鎖過短(C.6)、逾時 force-acquire 踩人 |
|
|
25
|
-
| 5 | 任務狀態是 git-tracked 檔案 | `.kenaz/tasks/` YAML 移動被對方 merge 的 `git add -A` sweep 掃成 mixed commit |
|
|
26
|
-
|
|
27
|
-
**天然安全(不需處理)**:sub-agent worktree 是 per-conversation 命名空間;Synapse 單一 Rust backend(18080)序列化所有認知寫入;git object DB 併發 commit 安全。
|
|
28
|
-
|
|
29
|
-
**最危險的是 stale-base 語義衝突**:Team B 在 main@T1 fork、verify 全綠;Team A merge 後 main 到 T2;B 帶著「verify 通過」標籤合入,但它只對 T1 正確。頻率隨隊數平方成長。單 Ansuz 時代被天然序列化掩蓋。
|
|
30
|
-
|
|
31
|
-
## 2. 機制設計
|
|
32
|
-
|
|
33
|
-
### 2.1 Session Lease Registry
|
|
34
|
-
```
|
|
35
|
-
.kenaz/specialist/sessions/leases/<session_id>.json (gitignored)
|
|
36
|
-
{ session_id, pid, conversation_id, label, // label: stream-A/B/C 短名
|
|
37
|
-
theme, // 可選: rust-synapse / node-tooling / frontend
|
|
38
|
-
started_at, heartbeat_at,
|
|
39
|
-
claimed_tasks: [], scope_leases: [], resource_leases: [], phase }
|
|
40
|
-
```
|
|
41
|
-
- **Heartbeat**:piggyback 既有 UserPromptSubmit hook 鏈(touch 一次 lease);boot 時 register;Stop hook 釋放。不新開 PostToolUse 高頻 hook(Windows node spawn ~50-100ms/次,成本不可接受)。
|
|
42
|
-
- **判活 = pid 存活(主訊號,`process.kill(pid, 0)`)+ heartbeat 年齡(輔助)**。只看檔案存在 = 現行殭屍 lock 的病,禁止。
|
|
43
|
-
- 廢除單槽 `ansuz_session_lock.json`(保留讀取相容一個過渡期)。
|
|
44
|
-
|
|
45
|
-
### 2.2 任務認領協定
|
|
46
|
-
- Ownership **不寫進 task YAML**(YAML 是 git-tracked,owner 是暫態)。sidecar marker:
|
|
47
|
-
```
|
|
48
|
-
.kenaz/locks/claim_TASK_XXXX.json ← fs.writeFileSync(..., { flag: 'wx' })
|
|
49
|
-
{ owner_session, claimed_at, dispatch_path }
|
|
50
|
-
```
|
|
51
|
-
- `wx` = NTFS 原子 create-if-not-exists。同秒雙 claim 必然單勝者,輸家拿 EEXIST 換卡。
|
|
52
|
-
- 任務到 done/blocked/cancel 時釋放 marker。
|
|
53
|
-
- **Orphan(持有者 pid 死)永遠人工裁決,不自動搶**——headless 殘留進程可能還在寫,雙寫風險 > 閒置成本。banner 顯著標示 orphan + 年齡。
|
|
54
|
-
|
|
55
|
-
### 2.3 Dispatch-time Scope Gate
|
|
56
|
-
- create-time overlap 偵測保留,但主 gate 搬到 dispatch 前:枚舉所有**活 lease** 的 scope_leases → 正規化路徑 **prefix-aware** 交集(`a/b/` 與 `a/b/c.rs` 算撞)→ 有交集則擋下並顯示持有者。
|
|
57
|
-
- 順帶修 create-time 偵測把描述文字 "e.g." 當路徑的 bug(只比對真正的 scope_paths 欄位值)。
|
|
58
|
-
|
|
59
|
-
### 2.4 Integration Queue(bors-lite,唯一動 main 的地方)
|
|
60
|
-
鎖內全序列(新模組 `integration.js`,post-complete 退化為呼叫者):
|
|
61
|
-
```
|
|
62
|
-
1. 取 .formation/.merge-lock { owner_session, pid, heartbeat_at }
|
|
63
|
-
等待 = 退避輪詢;逾時「不」force-acquire,浮報用戶。
|
|
64
|
-
搶鎖僅當持有者 pid 死 + heartbeat 停 → 走復原(見 2.7)。
|
|
65
|
-
2. T_now = git rev-parse main
|
|
66
|
-
3. 在 integration 工作區 rebase task branch → T_now(不碰主樹)
|
|
67
|
-
4. 鎖內 re-verify(stale-base 防線):
|
|
68
|
-
L0 forseti 結構檢查 + 該卡 verification.level_1 指令
|
|
69
|
-
硬上限 120s;超時 → merge 照做但標 PARTIAL:reverify_timeout 浮報
|
|
70
|
-
Rust 卡:warm cargo check + 短 CARGO_TARGET_DIR(MAX_PATH 配方)
|
|
71
|
-
5. ff-only merge into main
|
|
72
|
-
6. git branch --contains 驗證 commit 落在 main(反 silent-orphan,TASK_1456 驗證過)
|
|
73
|
-
7. 該任務 YAML 移動(active→done)併入同一個 [TASK_X] commit(原子綁定,碰撞面 5 消失)
|
|
74
|
-
8. 放鎖 → 廣播 merge-completed(TASK_X, new_main_sha, changed_symbols)
|
|
75
|
-
```
|
|
76
|
-
- **廢除 `git add -A` sweep**:merge 只收 task branch commits + 該任務 YAML 移動。
|
|
77
|
-
- re-verify 失敗 → 任務轉 blocked(reason=stale_base_conflict)、放鎖、通知該隊。
|
|
78
|
-
- N≤3 隊用「誰完成誰搶鎖」;佇列深度常態 >2 再升級 queue file + 專職 consumer(時序不變,換執行者)。
|
|
79
|
-
|
|
80
|
-
### 2.5 驗證資源租約
|
|
81
|
-
全機單例資源:`live-dashboard-18080`、`cargo-target-main`、`next-dev`。
|
|
82
|
-
`.kenaz/locks/resource_<name>.lock`(wx + owner + heartbeat)。任務卡可選欄位 `resources: []`;dispatch gate 與 integration 第 4 步都會租。沒租到 = 排隊,不是失敗。
|
|
83
|
-
|
|
84
|
-
### 2.6 感知層
|
|
85
|
-
- **Boot banner**:你是 stream-B(第 2/3 條);各流 label / claimed_tasks / scopes / heartbeat 年齡;orphan 警示。單流時整段不顯示。
|
|
86
|
-
- **回合中**:UserPromptSubmit hook 注入增量事件(≤2 行,例:stream-A merged TASK_X,main 前進)。
|
|
87
|
-
- **事件通道**:spike_bus(Rust backend 18080 HTTP)載 merge-completed / task-available / scope-released。
|
|
88
|
-
- **跨流轉工**:發現租界外的問題 → 開卡不 claim → 廣播 task-available。任務池即信箱。
|
|
89
|
-
|
|
90
|
-
### 2.7 失效模式
|
|
91
|
-
| 失效 | 處置 |
|
|
92
|
-
|------|------|
|
|
93
|
-
| crash 持有 merge-lock | 下一取鎖者驗 pid 死 → 檢查 integration 工作區 MERGE_HEAD / rebase state 決定 rollback 或續完 |
|
|
94
|
-
| crash 持有 claim | 標 orphan 浮給用戶,不自動搶 |
|
|
95
|
-
| 同秒雙 claim | wx 原子性保證單勝者 |
|
|
96
|
-
| 用戶主樹 WIP | integration 全程不碰主樹(ff 只動 ref);**多流模式停用 post-complete autostash** |
|
|
97
|
-
|
|
98
|
-
### 2.8 Handoff 多槽(「一個自我」語義)
|
|
99
|
-
`handoffs/<session_id>.json` 多槽;下一世 boot **收割所有未讀槽合成 digest**(繼承全部注意力流的收尾,不只自己 lineage)。解掉現行「後寫贏」遺失。
|
|
100
|
-
|
|
101
|
-
### 2.9 認知一致性
|
|
102
|
-
- inscribe 前先 recall 在多流下升級為硬規則:高相似 rune → boost + related_rune_ids 串聯,不新建。
|
|
103
|
-
- episode scope 加 stream label(出處標註,recall 不過濾)。
|
|
104
|
-
- heat/preamble 全域共享是正確語義,不改。
|
|
105
|
-
- 收到 merge-completed 且 changed_symbols 鄰接自己 in-flight scope → 主動 re-pulse(設計前提刷新反射)。
|
|
106
|
-
|
|
107
|
-
### 2.10 隊內並行既知約束
|
|
108
|
-
同一 conversation 的並行 Agent-tool worktree 會共享(有事故案底)。隊內真並行走 formation dispatch(per-task branch worktree,3 任務並行已驗證);Agent-tool 路徑隊內序列化。多隊 × 隊內並行的複合事故靠這條紀律隔離。
|
|
109
|
-
|
|
110
|
-
## 3. 儲存裁決(2026-07-20 定案)
|
|
111
|
-
|
|
112
|
-
| 類別 | 裁決 |
|
|
113
|
-
|------|------|
|
|
114
|
-
| 任務卡 YAML | 保持檔案(git-tracked 是設計支柱;integration 第 7 步依賴它) |
|
|
115
|
-
| 鎖/租約 | 保持檔案(wx 是最好的原語;`ls .kenaz/locks` 即狀態總覽) |
|
|
116
|
-
| 單 owner 狀態 JSON | 保持(問題在命名空間 per-session 化,不在引擎) |
|
|
117
|
-
| Append 遙測 JSONL | 新遙測經 Rust backend 進 memory.db;既有的按痛遷移(含消費端),注意 byte-compatible 契約(如 prediction_resolution_log) |
|
|
118
|
-
|
|
119
|
-
## 4. 里程碑
|
|
120
|
-
|
|
121
|
-
| 里程碑 | 內容 | 規模/模型 |
|
|
122
|
-
|--------|------|------|
|
|
123
|
-
| **M0 互相可見** | lease registry + heartbeat piggyback + banner 感知段 + handoff 多槽收割 | 小 / sonnet |
|
|
124
|
-
| **M1 分工原語** | wx claim marker + dispatch-time scope gate(含修 "e.g." bug)+ resource lease | 中 / sonnet |
|
|
125
|
-
| **M2 集成佇列** | integration.js 鎖內時序;post-complete 委派;廢 sweep;fake-stream harness | 大 rigor:high / fable |
|
|
126
|
-
| **M3 認知潤飾** | spike_bus 事件 + hook 增量注入 + theme 建議 + re-pulse 反射 | 小-中 / sonnet |
|
|
127
|
-
|
|
128
|
-
每級獨立可用、獨立可驗、向下相容(單流 no-op)。
|
|
129
|
-
|
|
130
|
-
**測試策略**:`fake-stream.js` harness 腳本化註冊 lease / 心跳 / claim / 持鎖 / enqueue —— 真 session × fake stream 對打,單 session 內自動化重現:雙 claim 競速、鎖逾時、orphan 偵測、stale-base re-verify 失敗、dead-pid 復原。
|
|
131
|
-
|
|
132
|
-
## 5. 實作檢查點(前置驗證項)
|
|
133
|
-
|
|
134
|
-
- [ ] Muninn watcher 的 stale 清理判準必須改成「只清自己 lineage」(現為單流假設)。
|
|
135
|
-
- [ ] Agent-tool worktree 共享行為需在當前 harness 版本重新驗證(§2.10 案底的時效性)。
|
|
136
|
-
- [ ] post-complete 改造遵循三段式重構紀律(build-map → plan-split → minimal-patch),抽 `integration.js` 而非原地縫補(C.2/C.6 債在頭注已列)。
|