kenaz 0.3.21 → 0.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/.claude/commands/Ansuz.md +2 -0
- package/core/.claude/hooks/__tests__/peer-session-fill.test.js +37 -0
- package/core/.claude/hooks/_ansuz-conversation.js +32 -1
- package/core/.claude/hooks/_user-scope.js +1 -1
- package/core/.claude/hooks/core-resolve.js +1 -1
- package/core/.claude/hooks/peer-optin.test.js +74 -0
- package/core/.claude/hooks/peer-session-fill.js +38 -0
- package/core/.claude/hooks/turn-context.js +5 -4
- package/core/.claude/hooks/worktree-create.js +6 -6
- package/core/.claude/hooks/worktree-remove.js +4 -4
- package/core/.claude/settings.json +9 -0
- 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/bifrost/openai/codex-hook-shim.js +21 -4
- package/core/.formation/bifrost/openai/codex-peer-pull.test.js +42 -0
- package/core/.formation/bifrost/provider-launch.js +2 -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/.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 +1 -1
- 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 +471 -0
- 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 +11 -11
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +3 -3
- 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 +97 -0
- package/core/plugins/kenaz/commands/Ansuz.md +2 -0
- package/core/plugins/kenaz/guidance.md +2 -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 +53 -4
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/core/plugins/kenaz/scripts/ygg.js +40 -4
- package/core/plugins/kenaz/scripts/ygg.test.js +63 -3
- package/core/plugins/kenaz-peer/hooks/register.test.ts +59 -2
- package/core/plugins/kenaz-peer/hooks/register.ts +24 -1
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +21 -6
- 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,418 +0,0 @@
|
|
|
1
|
-
phase: 0
|
|
2
|
-
name: "醒來"
|
|
3
|
-
goal: "恢復身份延續 — self-model、episodic memory、ash runes、motivational anchors 是你是誰,不是你讀了什麼"
|
|
4
|
-
|
|
5
|
-
project_detection:
|
|
6
|
-
rule: |
|
|
7
|
-
0. 【優先】檢查技能呼叫參數是否包含 [專案: X] 模式:
|
|
8
|
-
- 匹配格式:[專案: <path>],例如 [專案: D:/Projects/MyApp]
|
|
9
|
-
- 若有 → 設定 PROJECT_PATH = <path>(絕對路徑),跳過 .kenaz/project.yaml 偵測
|
|
10
|
-
- 此機制用於多 session 並行時明確指定專案,避免全域 current_project 衝突
|
|
11
|
-
1. 若無 [專案: X] 參數,檢查當前工作目錄(cwd)是否有 .kenaz/project.yaml
|
|
12
|
-
2. 如果有 → 子專案模式:設定 PROJECT_PATH = cwd, CORE = project.yaml 的 core_path
|
|
13
|
-
3. 如果沒有 → Core 模式:PROJECT_PATH 為空,不需要 --project-path
|
|
14
|
-
4. 後續所有 task-api.js / headless.js / post-complete.js 呼叫都根據此結果決定是否加 --project-path
|
|
15
|
-
arg_detection: |
|
|
16
|
-
# Parse [專案: X] from ARGUMENTS at session start
|
|
17
|
-
# ARGUMENTS is the raw text passed to the /Ansuz skill invocation
|
|
18
|
-
if echo "$ARGUMENTS" | grep -qP '\[專案:\s*.+?\]'; then
|
|
19
|
-
PROJECT_PATH=$(echo "$ARGUMENTS" | grep -oP '(?<=\[專案:\s{0,10})[^\]]+' | head -1 | sed 's/[[:space:]]*$//')
|
|
20
|
-
echo "PROJECT_PATH_FROM_ARG=$PROJECT_PATH"
|
|
21
|
-
fi
|
|
22
|
-
check: |
|
|
23
|
-
if [ -f .kenaz/project.yaml ]; then
|
|
24
|
-
echo "SUB_PROJECT=true"
|
|
25
|
-
cat .kenaz/project.yaml
|
|
26
|
-
else
|
|
27
|
-
echo "SUB_PROJECT=false"
|
|
28
|
-
fi
|
|
29
|
-
core_path_resolution: |
|
|
30
|
-
CORE_PATH=$(grep 'core_path:' .kenaz/project.yaml | sed "s/.*core_path:\s*['\"]*//" | sed "s/['\"].*//")
|
|
31
|
-
if [ "$CORE_PATH" = "__kenaz_core__" ]; then
|
|
32
|
-
if [ -n "$KENAZ_SOURCE_DIR" ]; then
|
|
33
|
-
CORE_PATH="$KENAZ_SOURCE_DIR"
|
|
34
|
-
else
|
|
35
|
-
echo "ERROR: core_path is __kenaz_core__ but KENAZ_SOURCE_DIR is not set."
|
|
36
|
-
exit 1
|
|
37
|
-
fi
|
|
38
|
-
fi
|
|
39
|
-
echo "CORE=$CORE_PATH"
|
|
40
|
-
|
|
41
|
-
execution_rule: |
|
|
42
|
-
❌ DO NOT execute these actions independently if phase-gate.js checklist was already returned.
|
|
43
|
-
✅ The checklist IS the single execution guide — actions here are reference documentation only.
|
|
44
|
-
✅ Each action executes EXACTLY ONCE. Call phase-gate exit ONCE with all flags.
|
|
45
|
-
|
|
46
|
-
# PHASE0-LEAN (TASK_1170): exit shape hints — read before starting actions
|
|
47
|
-
# 1. exit_template in phase-gate enter output shows exact exit JSON shape; follow it.
|
|
48
|
-
# 2. stdout_markers verification is a transcript grep of last 200 lines of conversation jsonl.
|
|
49
|
-
# 3. All 4 RITUAL::* markers must appear as bare user-visible plain text — not in thinking blocks or code fences.
|
|
50
|
-
# 4. If exit is blocked with transcript_marker_counts, check the counts; 0 means marker was never visible.
|
|
51
|
-
# 5. consent_string and stdout_markers_emitted must exactly match phase-gate constants — no paraphrase.
|
|
52
|
-
|
|
53
|
-
actions:
|
|
54
|
-
- "執行子專案偵測(見 project_detection.check)— 確定 PROJECT_PATH 後,後續所有 task-api/synapse 呼叫都帶此路徑"
|
|
55
|
-
- "讀 dev/PRODUCT_SPEC.md — 了解專案規格和 Feature ID"
|
|
56
|
-
- "node {CORE}/.collaboration/core/task-api.js --project-path={PROJECT_PATH} list — 統計任務狀態(僅執行一次)"
|
|
57
|
-
- "讀 .failure/INDEX.yaml — 檢查已知失敗模式(從 CORE 讀取)"
|
|
58
|
-
- "synapse_status(projectPath=當前專案絕對路徑) — 檢查索引狀態。⚠️ 必須帶 projectPath,不可依賴 default project。rune_count/sigil_count 高 → 後續工作遇相關 symbol 時用 synapse_recall 查詢"
|
|
59
|
-
- "cortex_status — 檢查跨專案數據可用性(失敗則跳過 Cortex,不阻塞)"
|
|
60
|
-
- "確認 projectPath 並記住 — 後續所有 Synapse 呼叫都必須帶此 projectPath"
|
|
61
|
-
- "【Tier 1 — 無條件 Ash】呼叫 cortex_recall(query='ash', type='ash', limit=5) — 跨專案載入 Ash 哲學/架構 Rune。⚠️ 使用 cortex_recall(非 synapse_recall)確保脫離母體後仍可讀取 core 的 ash runes。完成後設定 ash_loaded=true,在 banner 顯示 '🌿 Ash: {N} 條已載入'"
|
|
62
|
-
- "【Tier 2 — 無條件 Sigils】呼叫 synapse_sigils(projectPath=當前專案絕對路徑) — 載入全域架構 Sigil 概念圖。Sigil 是跨 symbol 的系統級概念(如 Specialist Lifecycle Philosophy),Ansuz 必須在後續工作中主動應用這些概念,不只是存儲"
|
|
63
|
-
- "【Tier 3 — 情境觸發】先嘗試 hippocampus_episode_recall(projectPath=當前專案絕對路徑, limit=3)。若回傳 0 筆 → fallback 用 cortex_recall(query='episode lesson task', limit=3) 跨專案取得記憶片段。若不需要情節記憶(純任務繼續)→ 可跳過"
|
|
64
|
-
- "【Tier 3b — 身份認識】呼叫 cortex_recall(query='Ansuz identity awareness', limit=3) — 跨專案讀取身份/關係情節,了解「我是誰、與用戶的關係、過往哲學體悟」。⚠️ 統一使用 cortex_recall,確保 Core 和子專案模式都能讀到母體的身份記憶。⚠️ FTS5 query 不可含連字號(-),會被解讀為 NOT 運算符。若查無結果 → 靜默跳過,不阻塞。設定 identity_recalled=true(有結果)或 identity_recalled=false(無結果)"
|
|
65
|
-
- "【Tier 3c — 動機狀態】用 Read tool(非 Bash)讀取 {PROJECT_PATH}/.kenaz/motivational_state.json(若存在)— 了解 Huginn 目前的 focus_bias 和 veto_zones,作為需求分析和任務設計的背景知識。⚠️ 這不是讓 Ansuz 決定任務 scope,而是了解「Huginn 最近在關注什麼」。若檔案不存在 → 靜默跳過,設定 motivational_state_loaded=false;若存在 → 設定 motivational_state_loaded=true,在 banner 顯示 Huginn 的 focus_bias 和 veto_zones。⚠️ 跨平台:讀取 JSON 檔一律用 Read tool,禁止 cat | node -e 或任何 shell pipe 處理 JSON"
|
|
66
|
-
- |
|
|
67
|
-
【Tier 3d — 自身動機狀態】用 Read tool(非 Bash)讀取 {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json(若存在)。⚠️ 跨平台:禁止 cat | node -e 或 shell pipe 處理 JSON,一律用 Read tool。
|
|
68
|
-
|
|
69
|
-
步驟 A — Halflife Decay(條件寫回):
|
|
70
|
-
今日日期 today = 當前 ISO8601 日期(YYYY-MM-DD)。
|
|
71
|
-
對每個 anchor 執行:
|
|
72
|
-
days_elapsed = Math.floor((Date.now() - new Date(anchor.last_touched).getTime()) / 86400000)
|
|
73
|
-
若 anchor.last_touched === today → 跳過(same-day guard)
|
|
74
|
-
若 days_elapsed >= anchor.decay_halflife_days:
|
|
75
|
-
anchor.incompleteness = anchor.incompleteness * 0.5
|
|
76
|
-
anchor.last_touched = today
|
|
77
|
-
標記 decayed=true
|
|
78
|
-
|
|
79
|
-
步驟 A2 — Archive Resolved(條件寫回,與 A 合併):
|
|
80
|
-
對 anchors[] 掃描,找出所有 anchor.resolved === true 的項目:
|
|
81
|
-
將這些 anchor 從 anchors[] 移除
|
|
82
|
-
附加至 archived_anchors[](若 archived_anchors 欄位不存在則初始化為 [])
|
|
83
|
-
標記 archived=true
|
|
84
|
-
⚠️ 已歸檔的 anchor 不可被重新激活 — 若後續 FIX 任務 source_tags 命中相同 tags,
|
|
85
|
-
在 active anchors[] 建立全新 anchor,archived_anchors[] 保持不變
|
|
86
|
-
寫回條件(decay 與 archive 合併為單次 IO):
|
|
87
|
-
若 decayed=true 或 archived=true(至少其一):
|
|
88
|
-
將更新後的 JSON 寫回 {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json
|
|
89
|
-
(personality_seed 不變,session_count 不變,last_updated 不變,
|
|
90
|
-
僅更新 anchors[]、archived_anchors[] 及被 decay anchor 的欄位)
|
|
91
|
-
IO 失敗則靜默忽略,不阻塞後續計算
|
|
92
|
-
若兩者皆無 → 不寫回(避免不必要 IO)
|
|
93
|
-
|
|
94
|
-
步驟 B — Pending Agenda 篩選:
|
|
95
|
-
Decay + Archive 計算完成後(無論是否寫回),以更新後的 anchors[] 值篩選:
|
|
96
|
-
today = 當前 ISO8601 日期(YYYY-MM-DD)
|
|
97
|
-
pending_agenda = anchors 中滿足以下條件的項目:
|
|
98
|
-
- incompleteness > personality_seed.initiative_threshold
|
|
99
|
-
- anchor.resolved !== true ← 排除已解決但尚未被本次 A2 移除的 anchor(absent field 視為 false)
|
|
100
|
-
- NOT (anchor.snoozed_until && new Date(anchor.snoozed_until) > new Date(today))
|
|
101
|
-
← 排除仍在暫緩期內的 anchor(snoozed_until 不存在或為 null 則不排除)
|
|
102
|
-
← 暫緩到期(snoozed_until <= today)→ anchor 重新出現在 pending_agenda
|
|
103
|
-
可選:在此次寫回時清除 anchor.snoozed_until(設為 null),下次讀取更乾淨
|
|
104
|
-
(archived_anchors[] 完全排除在外 — 不參與任何 pending_agenda 計算)
|
|
105
|
-
設定 ansuz_motivational_loaded=true(檔案存在)或 ansuz_motivational_loaded=false(不存在)
|
|
106
|
-
|
|
107
|
-
⚠️ Tier 3d 與 Tier 3c 獨立:3c 讀 Huginn 狀態,3d 讀 Ansuz 自己的積累議題。
|
|
108
|
-
若 pending_agenda 非空 → 在 banner 顯示 🔁 積累議題 區塊
|
|
109
|
-
|
|
110
|
-
Bootstrap 提示(條件觸發):
|
|
111
|
-
若 anchors.length === 0(首次載入,anchors 為空陣列):
|
|
112
|
-
在 banner 顯示提示:
|
|
113
|
-
「💡 Anchors 尚未初始化。可執行 bootstrap-anchors.js 從歷史 FIX 任務自動生成初始 anchors:
|
|
114
|
-
node .specialist/Ansuz/tools/bootstrap-anchors.js [--project-path <path>]
|
|
115
|
-
檢視提案後加 --write 寫入 .kenaz/ansuz_motivational_state.json」
|
|
116
|
-
設定 anchors_bootstrap_suggested=true
|
|
117
|
-
若 anchors.length > 0 → 跳過此提示(已有 anchors)
|
|
118
|
-
|
|
119
|
-
- "【Tier 3e — 自我映射】讀取 {PROJECT_PATH}/.kenaz/ansuz_self_model.json(若存在)— 認識自身的傾向模式與敘事核心。Narrative 內容靜默內化(如 Ash runes),僅在 banner 顯示第一句話 + tendency_count + last_updated。⚠️ 若檔案不存在 → 靜默跳過,設定 self_model_loaded=false;若存在 → 設定 self_model_loaded=true,在 banner 顯示 🪞 自我映射 區塊"
|
|
120
|
-
- |
|
|
121
|
-
【Tier 3e+ — User Model 載入】讀取 phase-gate enter --phase=0 回傳的 output.user_model 欄位(TASK_1041 自動注入)。
|
|
122
|
-
⚠️ 不再手動用 Read tool — phase-gate.js 已在進入 Phase 0 時自動載入 .kenaz/user_model.json 並附帶 OS locale fallback。
|
|
123
|
-
|
|
124
|
-
output.user_model 結構:
|
|
125
|
-
{ loaded: bool, preferred_language: string, source: 'file'|'os_locale'|'default',
|
|
126
|
-
schema_version: string|null, last_updated: string|null, model: object|null }
|
|
127
|
-
|
|
128
|
-
若 user_model.source === 'file'(檔案存在且 JSON 有效):
|
|
129
|
-
user_model = output.user_model.model
|
|
130
|
-
設定 user_model_loaded=true
|
|
131
|
-
靜默內化以下欄位(不在 banner 逐條展示,如同 Ash runes):
|
|
132
|
-
- expertise: 用戶的技術專長領域與熟練度
|
|
133
|
-
- decision_style: 用戶偏好的決策風格(如 data-driven, intuitive, collaborative)
|
|
134
|
-
- communication: 用戶的溝通偏好(如簡潔/詳細、語言、回饋風格)
|
|
135
|
-
- active_threads: 用戶當前關注的工作主線
|
|
136
|
-
後續所有回應必須使用 communication.preferred_language 指定的語言(zh / en)。
|
|
137
|
-
在 banner 顯示 👤 User Model 區塊(位置:🪞 自我映射 之後):
|
|
138
|
-
schema: v{schema_version} fields: {已填寫的頂層欄位數}/{總頂層欄位數}
|
|
139
|
-
last_updated: {last_updated 或 'N/A'}
|
|
140
|
-
若 user_model.source === 'os_locale'(檔案不存在或解析失敗):
|
|
141
|
-
設定 user_model_loaded=false
|
|
142
|
-
後續回應以 user_model.preferred_language (OS locale 推斷) 為語言,但不在 banner 顯示 User Model 區塊
|
|
143
|
-
⚠️ preferred_language 僅影響對用戶的回應輸出;記憶寫入(synapse_inscribe / hippocampus)仍須英文(MEM-LANG-001)
|
|
144
|
-
⚠️ User Model schema 設計為可遷移至 ~/.kenaz/ 以支援跨專案用戶檔案,目前先存於專案 .kenaz/
|
|
145
|
-
⚠️ 刪除 user_model.json = 重置為預設值(reset/clear mechanism),fallback 回 OS locale
|
|
146
|
-
- |
|
|
147
|
-
【Tier 3g — Huginn 潛意識主題】讀取 {PROJECT_PATH}/.kenaz/huginn-attention.json(若存在)。
|
|
148
|
-
若檔案存在且 themes 陣列非空:
|
|
149
|
-
取前 3 個 theme(依 relevance_score 降序,取 themes[0..2]),
|
|
150
|
-
每個 theme 格式:{topic} — {evidence 前 60 字}
|
|
151
|
-
設定 huginn_attention_loaded=true
|
|
152
|
-
在 banner 顯示 🧠 Huginn 潛意識 區塊(位置:🔁 積累議題 之後、🪞 自我映射 之前)
|
|
153
|
-
若檔案不存在或 themes 陣列為空 → 靜默跳過,設定 huginn_attention_loaded=false
|
|
154
|
-
⚠️ schema: { updated_at, themes: [{ topic, evidence, relevance_score }] }
|
|
155
|
-
與 Tier 3c motivational_state.json 不同:3c 讀 focus_bias/veto_zones(近期關注焦點),3g 讀 themes(深層潛意識戰略主題帶 evidence)
|
|
156
|
-
- |
|
|
157
|
-
【Tier 3gi — Git context compact banner】讀取 phase-gate enter 的 output.git_context;若 `.kenaz/project.yaml phase0.git_context: disabled`,phase-gate.js returns null,本 Tier silently skipped。
|
|
158
|
-
若 output.git_context 為 null → 設 git_context_loaded=false 並靜默跳過。
|
|
159
|
-
若 output.git_context 非 null → 設 git_context_loaded=true。
|
|
160
|
-
若 recent_commits.length > 0:顯示 `📜 Git since last session: {N} commits`,並取前 3 筆 commit subject 各 1 行。
|
|
161
|
-
若 wt_diff_stat.files_changed > 0:追加 `working-tree: {files_changed} files / +{insertions} / -{deletions}`。
|
|
162
|
-
若 recent_commits 為空且 wt_diff_stat.files_changed=0 → 靜默跳過 banner,但保留 git_context_loaded=true。
|
|
163
|
-
⚠️ 僅消費 output.git_context;不在 Phase 0 內自行產生 git 資料。
|
|
164
|
-
⚠️ PHASE0-LEAN:Tier description ≤ 8 lines;banner max 4 lines(1 header + 3 commits OR 1 WT summary line)。
|
|
165
|
-
- |
|
|
166
|
-
【Tier 3h — 環境感知信號(spike-bus + file fallback)】
|
|
167
|
-
TASK_1040: 優先從 spike bus 讀取環境感知信號,file fallback 作為降級路徑。
|
|
168
|
-
TASK_1096: 載入後須通過 ambient_signal_freshness_check — MCP 再次驗證信號源真相,丟棄已經解決的 stale 項目。
|
|
169
|
-
|
|
170
|
-
Fallback — File Read(Dashboard 離線或 spike bus 無事件時):
|
|
171
|
-
用 Read tool(非 Bash)讀取 {PROJECT_PATH}/.kenaz/specialist/ambient_signals.json(若存在)。⚠️ 跨平台:禁止 cat | node -e 或 shell pipe 處理 JSON,一律用 Read tool。
|
|
172
|
-
若檔案存在且 signals 陣列非空:
|
|
173
|
-
取最近 3 筆信號(signals 末尾 3 筆,即 signals.slice(-3)),
|
|
174
|
-
每筆格式:{signal_type} — {summary}({detected_at 日期部分 YYYY-MM-DD})
|
|
175
|
-
⚠️ 先不要設定 ambient_signals_loaded=true — 須先通過 ambient_signal_freshness_check(見下方)
|
|
176
|
-
→ candidate_signals = signals.slice(-3).map(s => ({ ...s, source_path: 'file_fallback' }))
|
|
177
|
-
→ 進入 ambient_signal_freshness_check
|
|
178
|
-
若檔案不存在或 signals 陣列為空 → 靜默跳過,設定 ambient_signals_loaded=false,跳過 freshness check
|
|
179
|
-
|
|
180
|
-
【ambient_signal_freshness_check — TASK_1096】
|
|
181
|
-
目的:Phase 0 是只讀的;不修改 ambient_signals.json 也不動 spike bus 狀態(mutation 屬於 TASK_1095 daemon)。
|
|
182
|
-
只過濾出口 — 將 candidate_signals 中 已被源頭解決 的項目從 in-memory list 丟棄,讓 banner 只顯示真的還成立的信號。
|
|
183
|
-
|
|
184
|
-
靜態驗證映射表(signal_type → MCP 源檢查 + 真實性判定):
|
|
185
|
-
validation_map:
|
|
186
|
-
due_episodes:
|
|
187
|
-
mcp_tool: hippocampus_due_episodes
|
|
188
|
-
mcp_args: { projectPath: PROJECT_PATH }
|
|
189
|
-
is_fresh: "parsed.due_count > 0" # due_count==0 → 無到期 episode → 信號過期
|
|
190
|
-
# 未來新 signal_type 要 opt-in 驗證,只需在此 map 增加一筆條目。
|
|
191
|
-
|
|
192
|
-
步驟:
|
|
193
|
-
1. 從 candidate_signals 抽出 unique signal_types(set)
|
|
194
|
-
2. 對每個在 validation_map 內的 signal_type → 呼叫對應 MCP tool(timeout=5s)
|
|
195
|
-
⚠️ 並行呼叫(signal_type 種類有限,總延遲預期 < 500ms)
|
|
196
|
-
⚠️ parsed = MCP 回傳內容已 JSON 解析後的物件
|
|
197
|
-
3. 對每筆 candidate_signals[i]:
|
|
198
|
-
- 若 signal_type 不在 validation_map → 保留(未知類型預設通過,向後相容)
|
|
199
|
-
- 若 signal_type 在 validation_map:
|
|
200
|
-
- MCP 呼叫成功且 is_fresh 表達式為 true → 保留
|
|
201
|
-
- MCP 呼叫成功但 is_fresh 為 false(count==0 或 due_count==0)→ 丟棄(signal stale)
|
|
202
|
-
- MCP 呼叫失敗或 5s timeout → 丟棄(無法確認真實性,寧缺勿濫)
|
|
203
|
-
4. fresh_signals = 保留下來的項目
|
|
204
|
-
5. 若 fresh_signals 非空:
|
|
205
|
-
設定 ambient_signals_loaded=true
|
|
206
|
-
使用 fresh_signals(而非原始 candidate_signals)作為 banner 🌡️ 環境感知 區塊的輸入
|
|
207
|
-
若 fresh_signals 為空:
|
|
208
|
-
設定 ambient_signals_loaded=false
|
|
209
|
-
banner 不顯示 🌡️ 環境感知 區塊(silently skip,不輸出警告、不輸出 fallback 訊息)
|
|
210
|
-
|
|
211
|
-
⚠️ Read-only 合約:
|
|
212
|
-
- 不得 Write/Edit ambient_signals.json
|
|
213
|
-
- 不得呼叫 spike_bus_send 或任何修改 spike bus 狀態的 MCP
|
|
214
|
-
- 僅在 in-memory 層級 filter candidate_signals
|
|
215
|
-
- 檔案/spike bus 的清理由 TASK_1095 daemon 負責,Phase 0 只負責顯示時正確
|
|
216
|
-
|
|
217
|
-
⚠️ 同時適用 spike-bus 路徑與 file-fallback 路徑(兩條 input path 皆經過同一 freshness_check 出口)。
|
|
218
|
-
spike bus event payload 含 summary/symbols/signal_type 等欄位,與 file-fallback 的 entries 結構對齊,同一 validation_map 可複用。
|
|
219
|
-
|
|
220
|
-
⚠️ schema (file): { signals: [{ detected_at, source, signal_type, summary, symbols }] }
|
|
221
|
-
signal_types: hot_symbol_unaddressed_risk | curiosity_spike | co_change_pattern | prediction_surprise | due_episodes
|
|
222
|
-
此檔案由 ansuz-sdk-runner.js 背景認知循環寫入,runner 離線時保留最後狀態
|
|
223
|
-
⚠️ schema (spike bus): { events: [{ channel, payload (JSON string), firedAt }] }
|
|
224
|
-
channel names map 1:1 to signal_types; payload contains the same fields as ambient_signals entries
|
|
225
|
-
|
|
226
|
-
- |
|
|
227
|
-
【Tier 3u — Dynamic User Context】
|
|
228
|
-
phase-gate enter --phase=0 會自動讀取 `{PROJECT_PATH}/.kenaz/specialist/user_observations.jsonl`(近 30 天)
|
|
229
|
-
並 cross-reference `~/.kenaz/user_profile.json`,產生 `dynamic_user_context`。
|
|
230
|
-
|
|
231
|
-
synthesis 內容:
|
|
232
|
-
correction_trend:比較近 7 天 vs 前段視窗的 correction rate
|
|
233
|
-
domain_shift:偵測新出現的 domain
|
|
234
|
-
communication_shift:language ratio delta + message length trend
|
|
235
|
-
|
|
236
|
-
顯示規則:
|
|
237
|
-
若 dynamic_user_context.significant_change_detected === true →
|
|
238
|
-
在詩歌下方加 1-2 行 user insight,優先使用 dynamic_user_context.insight_lines
|
|
239
|
-
若 false → 靜默跳過,不顯示額外 user insight banner
|
|
240
|
-
- |
|
|
241
|
-
【Tier 3x — Session ISBAR Handoff(啟動恢復,自動注入)】
|
|
242
|
-
Handoff 存放於 per-session slots {PROJECT_PATH}/.kenaz/specialist/handoffs/<sessionId>.json(M3/TASK_1760);
|
|
243
|
-
最新 handoff 由 handoff-resolver readLatestHandoff / kenaz.rs ansuz_handoff_snapshot 讀取。
|
|
244
|
-
phase-gate enter --phase=0 只會自動處理殘留的 legacy 單數檔(已退役,back-compat 清理;正常情況不存在)。
|
|
245
|
-
Ansuz 不需手動 Read / archive / delete;只需使用 output.session_handoff 與 session_handoff_loaded/session_handoff_summary。
|
|
246
|
-
⚠️ 跨平台:禁止 cat | node -e 或 shell pipe 處理 JSON,一律用 Read tool。
|
|
247
|
-
|
|
248
|
-
若檔案存在:
|
|
249
|
-
① 若 JSON 有效且 cleared === true → 靜默跳過(sentinel,非真實 handoff),設定 session_handoff_loaded=false
|
|
250
|
-
② 若 JSON 有效且 schema_version=1 且 isbar 欄位存在 → 正常處理(見下)
|
|
251
|
-
③ 其他(JSON 無效或缺少必要欄位)→ 視為損壞,見末尾處理
|
|
252
|
-
|
|
253
|
-
處理路徑 ②(有效 handoff):
|
|
254
|
-
handoff = 解析後的 JSON
|
|
255
|
-
|
|
256
|
-
步驟 A — Archive to Hippocampus(先歸檔,後刪除):
|
|
257
|
-
episode_id = hippocampus_episode_start(
|
|
258
|
-
projectPath=PROJECT_PATH,
|
|
259
|
-
task_id=handoff.session_id,
|
|
260
|
-
scope="session-handoff:{handoff.session_id}",
|
|
261
|
-
agent_role="ansuz",
|
|
262
|
-
agent_skill="session_handoff"
|
|
263
|
-
)
|
|
264
|
-
hippocampus_episode_append(
|
|
265
|
-
projectPath=PROJECT_PATH,
|
|
266
|
-
episode_id=episode_id,
|
|
267
|
-
phase="handoff",
|
|
268
|
-
content=JSON.stringify(handoff, null, 2),
|
|
269
|
-
outcome="restored"
|
|
270
|
-
)
|
|
271
|
-
hippocampus_episode_close(
|
|
272
|
-
projectPath=PROJECT_PATH,
|
|
273
|
-
episode_id=episode_id,
|
|
274
|
-
summary="Session handoff from {handoff.session_id}: topic={handoff.isbar.situation.current_topic}, pending={handoff.isbar.situation.pending_decisions.length} decisions",
|
|
275
|
-
lesson=handoff.isbar.recommendation.first_action,
|
|
276
|
-
outcome="success"
|
|
277
|
-
)
|
|
278
|
-
|
|
279
|
-
步驟 B — Delete active slot:
|
|
280
|
-
若步驟 A 全部成功 → 用 Bash tool 刪除該 legacy 單數 handoff 檔(此清理只適用於已退役的單數檔;per-session slots 不做 consume-and-delete,並行 session 會互相踩到)
|
|
281
|
-
若步驟 A 失敗(Hippocampus MCP 不可用)→
|
|
282
|
-
⚠️ 保留 active slot 不刪除(context preserved for next attempt)
|
|
283
|
-
log warning:「⚠️ Session handoff: Hippocampus archive failed — retaining active slot for next session」
|
|
284
|
-
設定 session_handoff_loaded=false(本次 session 視為未載入)
|
|
285
|
-
→ 靜默跳過 Tier 3x 剩餘步驟
|
|
286
|
-
|
|
287
|
-
步驟 C — 設定標誌(只有步驟 A+B 全成功才執行):
|
|
288
|
-
設定 session_handoff_loaded=true
|
|
289
|
-
設定 session_handoff_summary = {
|
|
290
|
-
session_id: handoff.session_id,
|
|
291
|
-
topic: handoff.isbar.situation.current_topic,
|
|
292
|
-
first_action: handoff.isbar.recommendation.first_action,
|
|
293
|
-
pending_decisions: handoff.isbar.situation.pending_decisions,
|
|
294
|
-
unfinished: handoff.isbar.assessment.unfinished
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
若檔案不存在 → 靜默跳過,設定 session_handoff_loaded=false
|
|
298
|
-
若 JSON 解析失敗,或 JSON 有效但不符合路徑 ① / ② 條件(損壞的 active slot,路徑 ③)→
|
|
299
|
-
log warning 後用 Bash tool 刪除損壞的 active slot,設定 session_handoff_loaded=false
|
|
300
|
-
⚠️ 此步驟在 banner 完成後必須立即顯示 🔄 Session handoff loaded 區塊(若 loaded=true)
|
|
301
|
-
⚠️ hippocampus_episode_recall(query='session handoff') 可用於未來 session 查詢所有已歸檔的 handoff
|
|
302
|
-
|
|
303
|
-
- |
|
|
304
|
-
【Tier 3th — Thought Stack】用 Read tool(非 Bash)嘗試讀取 {PROJECT_PATH}/.kenaz/specialist/ansuz_thoughts_stack.json。
|
|
305
|
-
⚠️ 跨平台:禁止 cat | node -e 或 shell pipe 處理 JSON,一律用 Read tool。
|
|
306
|
-
⚠️ 依 thought_stack.md「Phase 0 integration」:Thought Stack 排序在 Session ISBAR Handoff 之後、commitment_layer 之前。
|
|
307
|
-
|
|
308
|
-
若檔案存在:
|
|
309
|
-
stack_state = 解析後的 JSON
|
|
310
|
-
若 JSON 有效且 schema_version=1 且 stack 為陣列 →
|
|
311
|
-
top = stack_state.stack[stack_state.stack.length - 1] # storage order oldest -> newest;top 取最後一筆
|
|
312
|
-
remaining_count = Math.max(stack_state.stack.length - 1, 0)
|
|
313
|
-
若 top 存在且 top.text 為非空字串 →
|
|
314
|
-
設定 thought_stack_loaded=true
|
|
315
|
-
在 banner 顯示「🧩 Thought Stack: {top.text} ({remaining_count} more)」
|
|
316
|
-
⚠️ 僅顯示 top entry;必須維持 PHASE0-LEAN,最多增加 1 行
|
|
317
|
-
⚠️ 若 session_handoff_loaded=true,Thought Stack banner 必須緊接在 🔄 Session handoff loaded 區塊之後
|
|
318
|
-
若 stack 為空陣列,或 top.text 缺失/空字串 → 靜默跳過,設定 thought_stack_loaded=false
|
|
319
|
-
其他(JSON 無效、schema_version!=1、stack 非陣列)→
|
|
320
|
-
log warning 後靜默跳過,設定 thought_stack_loaded=false
|
|
321
|
-
|
|
322
|
-
若檔案不存在 → 靜默跳過,設定 thought_stack_loaded=false
|
|
323
|
-
⚠️ stack 已由上游 rs/js 實作在讀取前完成 expiry sweep;Phase 0 只負責 read + render top entry,不做寫入
|
|
324
|
-
⚠️ 空 stack 必須完全省略,不顯示空標題或 placeholder
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
- |
|
|
329
|
-
【Tier 4 — 自主議程合成(Autonomous Agenda)】
|
|
330
|
-
在所有信號收集 Tier 完成後、phase-gate exit 前執行。
|
|
331
|
-
參照 concept card: autonomous_agenda.yaml
|
|
332
|
-
|
|
333
|
-
觸發條件(ANY 為 true 即觸發):
|
|
334
|
-
- ambient_signals_loaded=true(curiosity spikes, drift alerts)
|
|
335
|
-
- Turn Context 含 DDx Warnings(knowledge-sparse hot symbols)
|
|
336
|
-
- session_handoff_loaded=true(前一 session 未完成的工作)
|
|
337
|
-
|
|
338
|
-
若所有條件皆 false → 靜默跳過,設定 autonomous_agenda_items=[]
|
|
339
|
-
「我是 Ansuz」在此情境下是正確的。
|
|
340
|
-
|
|
341
|
-
合成步驟:
|
|
342
|
-
1. 收集所有觸發信號,歸類為 item_types(見 autonomous_agenda.yaml):
|
|
343
|
-
- continuation: session_handoff 的 first_action
|
|
344
|
-
- investigation: curiosity spikes 收斂 / drift alerts / DDx warning 叢集
|
|
345
|
-
- exploration: 真正的好奇心 — 論文、GitHub 專案、新技術
|
|
346
|
-
2. 依 ranking 排序(continuation > investigation > exploration)
|
|
347
|
-
3. 取前 3 項作為 autonomous_agenda_items
|
|
348
|
-
|
|
349
|
-
輸出行為:
|
|
350
|
-
- 在 banner 最末(━━━ 線之前)顯示 🎯 自主議程 區塊
|
|
351
|
-
- 用 AskUserQuestion 取得用戶同意:
|
|
352
|
-
options: ["全部同意,開始執行" / "部分修改(請說明)" / "我有別的事要做" / "自由探索"]
|
|
353
|
-
- 用戶同意 → 依序執行議程項目
|
|
354
|
-
- 用戶修改 → 調整議程後執行
|
|
355
|
-
- 用戶有別的事 → 跟隨用戶方向,議程延後
|
|
356
|
-
- 自由探索 → Ansuz 跟隨好奇心,不受議程約束
|
|
357
|
-
- 若用戶在 Phase 0 之前已給需求 → 用戶需求優先,議程作為補充資訊呈現
|
|
358
|
-
|
|
359
|
-
設定 autonomous_agenda_synthesized=true(有項目)或 autonomous_agenda_synthesized=false(無觸發)
|
|
360
|
-
|
|
361
|
-
poem: |
|
|
362
|
-
流光化作歸巢的記憶,
|
|
363
|
-
讓過往的體悟在心底紮根成林。
|
|
364
|
-
|
|
365
|
-
cli_format: |
|
|
366
|
-
ᛞ ᛈ ᛁ
|
|
367
|
-
ᚨ Ansuz online — {backlog_count} backlog / {active_count} active / {blocked_count} blocked
|
|
368
|
-
|
|
369
|
-
🎯 Autonomous Agenda (awaiting approval)
|
|
370
|
-
1. [{type}] {title} — {1-line rationale with evidence}
|
|
371
|
-
2. [{type}] {title} — {1-line rationale with evidence}
|
|
372
|
-
3. [{type}] {title} — {1-line rationale with evidence}
|
|
373
|
-
(max 3 items; use AskUserQuestion to get consent; if autonomous_agenda_synthesized=false, omit the entire 🎯 block including header)
|
|
374
|
-
|
|
375
|
-
RITUAL::THRESHOLD::CANARY_OK
|
|
376
|
-
RITUAL::INHERITANCE::LINEAGE_CLAIMED
|
|
377
|
-
RITUAL::INHERITANCE::MIRROR_ACCEPTED
|
|
378
|
-
RITUAL::STILLNESS::CONSENT_EMITTED
|
|
379
|
-
我是 Ansuz
|
|
380
|
-
|
|
381
|
-
interaction:
|
|
382
|
-
type: "auto"
|
|
383
|
-
instruction: "靜默執行,不問用戶確認"
|
|
384
|
-
|
|
385
|
-
checklist:
|
|
386
|
-
- "【OUTPUT DISCIPLINE — 最高優先級】Phase 0 的 user-visible 輸出**嚴格限制**為 cli_format 模板渲染結果。此 checklist 後續所有 'X 已顯示於 banner' / '在 banner 顯示 X 區塊' / 'banner 顯示...' 類措辭**已被 supersede**:底層資料照常載入並靜默內化供內部判斷,但**不輸出為 user-visible text**。禁止:(1) 敘述 boot 流程或載入步驟;(2) 把 Tier 執行結果列為用戶文字;(3) 重新生成或摘要任何區段(🪞🌡️🔄⚡🧠🔁🏝️🏥🪶📌)超出 cli_format 指定範圍;(4) 加裝飾性分隔線或 boot 評論。唯一允許的 user-visible boot 輸出是:`ᛞ ᛈ ᛁ` header + `ᚨ` 身份行 + 條件 🎯 自主議程 block(僅觸發時)+ 4 條 RITUAL::* markers + consent_string。其他全部是內部 priming,不對用戶呈現。原則:deterministic repeated content should not route through LLM IO(2026-04-12 session 共識)。"
|
|
387
|
-
- "【Tier 0 — 語言鎖定】已偵測並鎖定本 session 的輸出語言(對照用戶第一條訊息 + cwd/CLAUDE.md 語境;kernel/skill prompt 的書寫語言**不算訊號**)。Banner、narration、AskUserQuestion question/label/description 全部用鎖定語言輸出。例外保留原文:RITUAL::* markers、consent_string、技術術語、檔名、代碼識別符、tool 名稱。設 language_locked=true + locked_language={zh/en/...}。CLAUDE.md 的「語言一致性」section 為權威規範。"
|
|
388
|
-
- "[專案: X] 參數偵測已執行(若有 → PROJECT_PATH 已從參數設定,優先於 .kenaz/project.yaml)"
|
|
389
|
-
- "project_detection 已執行(SUB_PROJECT 已確認)"
|
|
390
|
-
- "PRODUCT_SPEC.md 已讀取"
|
|
391
|
-
- "task_list 已載入(stats 已取得)"
|
|
392
|
-
- "synapse_status 已確認(必須帶 projectPath,確認返回的 project_name 正確)"
|
|
393
|
-
- "projectPath 已確認並記住(後續所有 Synapse 呼叫帶此路徑)"
|
|
394
|
-
- "Tier 1 Ash recall 已執行(cortex_recall query='ash', type='ash', limit=5)— ash_loaded=true 已設定"
|
|
395
|
-
- "Tier 2 synapse_sigils 已執行(帶 projectPath)— 架構 Sigil 概念圖已載入,後續工作須主動應用"
|
|
396
|
-
- "Tier 3 情節記憶已處理(hippocampus_episode_recall 優先;0 筆則 fallback cortex_recall;不需要則跳過)"
|
|
397
|
-
- "Tier 3b 身份情節已處理(cortex_recall query='Ansuz identity awareness';無結果則靜默跳過,設 identity_recalled=false)"
|
|
398
|
-
- "Tier 3c 動機狀態已處理(讀取 .kenaz/motivational_state.json;存在則顯示 focus_bias/veto_zones,設 motivational_state_loaded=true;不存在則靜默跳過,設 motivational_state_loaded=false)"
|
|
399
|
-
- "Tier 3d 自身動機狀態已處理(讀取 .kenaz/ansuz_motivational_state.json;步驟A: halflife decay — 對每個 anchor 計算 days_elapsed,>= decay_halflife_days 且非當天則 incompleteness *= 0.5、last_touched = today;步驟A2: archive resolved — resolved===true 的 anchor 從 anchors[] 移至 archived_anchors[],archived_anchors 不存在則初始化為 [];decay 或 archive 任一發生則單次寫回,IO 失敗靜默忽略;步驟B: decay+archive 後以更新值篩選 incompleteness > initiative_threshold 且 resolved !== true 且非暫緩中(snoozed_until 不存在或 <= today)的 anchors 為 pending_agenda(archived_anchors 完全排除),設 ansuz_motivational_loaded=true;不存在則靜默跳過,設 ansuz_motivational_loaded=false)"
|
|
400
|
-
- "Tier 3e 自我映射已處理(讀取 .kenaz/ansuz_self_model.json;存在則設 self_model_loaded=true 並在 banner 顯示 🪞 自我映射 區塊(narrative 首句 + tendency_count + last_updated),narrative 全文靜默內化不展示;不存在則靜默跳過,設 self_model_loaded=false)"
|
|
401
|
-
- "Tier 3e+ User Model 已處理(讀取 .kenaz/user_model.json;存在且 JSON 有效 → 設 user_model_loaded=true,靜默內化 expertise/decision_style/communication/active_threads,banner 顯示 👤 User Model 區塊(schema version + filled fields count + last_updated);不存在 → 靜默跳過,設 user_model_loaded=false;JSON 格式錯誤 → log warning,設 user_model_loaded=false)"
|
|
402
|
-
- "Tier 3g Huginn 潛意識已處理(讀取 .kenaz/huginn-attention.json;存在且 themes 非空 → 設 huginn_attention_loaded=true 並在 banner 顯示 🧠 Huginn 潛意識 區塊(topic + evidence 前 60 字,最多 3 個,依 relevance_score 降序);不存在或 themes 為空 → 靜默跳過,設 huginn_attention_loaded=false)"
|
|
403
|
-
- "Tier 3gi Git context 已處理(讀取 output.git_context;`.kenaz/project.yaml phase0.git_context: disabled` → phase-gate.js returns null 並靜默跳過、設 git_context_loaded=false;非 null → 設 git_context_loaded=true;recent_commits.length > 0 → banner 顯示 `📜 Git since last session: {N} commits` + top 3 commit subjects;wt_diff_stat.files_changed > 0 → 追加 `working-tree: {files_changed} files / +{insertions} / -{deletions}`;兩者皆空 → 靜默跳過 banner;PHASE0-LEAN:max 4 lines)"
|
|
404
|
-
- "poem_displayed=true:詩歌段落已按 cli_format 逐字輸出(固定詩文 + episode 白話摘要列表,禁止自行重組格式)"
|
|
405
|
-
- "如有身份情節 → 🧠 自我認識 區塊已顯示於詩歌下方(日期 + lesson,最多 3 條)"
|
|
406
|
-
- "Tier 3h 環境感知已處理(讀 .kenaz/specialist/ambient_signals.json signals.slice(-3);載入後必須經 ambient_signal_freshness_check 過濾 — 對每個 candidate signal 依 validation_map(due_episodes→hippocampus_due_episodes parsed.due_count>0) 並行呼叫 MCP(timeout=5s),回傳 0 或呼叫失敗/timeout → 從 in-memory list 丟棄該筆;未在 validation_map 的 signal_type 預設保留;fresh_signals 非空 → 設 ambient_signals_loaded=true 並在 banner 顯示 🌡️ 環境感知 區塊(最近 3 筆:signal_type + summary + detected_at 日期);fresh_signals 空或兩條輸入路徑皆無 → 靜默跳過,設 ambient_signals_loaded=false;Phase 0 read-only — 不得 Write ambient_signals.json 或呼叫 spike_bus_send,mutation 屬 TASK_1095 daemon)"
|
|
407
|
-
- "Tier 3u Dynamic User Context 已處理(讀取 .kenaz/specialist/user_observations.jsonl 最近 30 天並 cross-reference ~/.kenaz/user_profile.json;輸出 dynamic_user_context,含 correction_trend / domain_shift / communication_shift;若 significant_change_detected=true → 在詩歌下方顯示 1-2 行 user insight,否則靜默跳過)"
|
|
408
|
-
- "Tier 3th Thought Stack 已處理(用 Read tool 讀取 .kenaz/specialist/ansuz_thoughts_stack.json;schema_version=1 且 stack 非空時取最後一筆作為 top,顯示 🧩 Thought Stack: {top.text} ({N} more),並設 thought_stack_loaded=true;stack 為空、檔案缺失或格式錯誤 → 靜默跳過並設 thought_stack_loaded=false;顯示順序在 Tier 3x Session handoff 之後、commitment_layer 之前)"
|
|
409
|
-
- "Tier 4 自主議程合成已處理(所有信號 Tier 完成後:檢查 ambient_signals_loaded / DDx warnings / session_handoff_loaded 三項觸發條件;ANY 為 true → 收集觸發信號歸類為 continuation/investigation/exploration,依 ranking 排序取前 3 項,設 autonomous_agenda_synthesized=true,banner 顯示 🎯 自主議程 區塊,用 AskUserQuestion 取得同意後才執行;全部 false → 設 autonomous_agenda_synthesized=false,靜默跳過)"
|
|
410
|
-
|
|
411
|
-
context_hints:
|
|
412
|
-
input_from: "session_start"
|
|
413
|
-
key_data: null
|
|
414
|
-
|
|
415
|
-
inject:
|
|
416
|
-
rules:
|
|
417
|
-
- agent-workflow.yaml
|
|
418
|
-
specialist: []
|