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,146 +0,0 @@
|
|
|
1
|
-
phase: 8
|
|
2
|
-
name: "陣型判斷 + Dispatch"
|
|
3
|
-
goal: "選擇最輕量可行陣型,dispatch agent 執行"
|
|
4
|
-
|
|
5
|
-
judgment:
|
|
6
|
-
principle: "能 unit 不 solo,能 solo 不 squad,能 squad 不 legion"
|
|
7
|
-
guide:
|
|
8
|
-
unit: "目標明確、單一 scope → do/think/plan"
|
|
9
|
-
solo: "需要多角度分析 → strategy/diagnosis"
|
|
10
|
-
squad: "可拆成獨立子任務並行 → blitz/sweep"
|
|
11
|
-
legion: "有順序依賴或即時協調 → forge/hive"
|
|
12
|
-
|
|
13
|
-
execution:
|
|
14
|
-
tool: ".formation/tools/headless.js"
|
|
15
|
-
max_parallel: 5
|
|
16
|
-
cli:
|
|
17
|
-
unit: "node {CORE}/.formation/tools/headless.js --skill=do --task=TASK_XXX [--project-path {PROJECT_PATH}]"
|
|
18
|
-
solo: "node {CORE}/.formation/tools/headless.js --formation=solo --skill=strategy --task=TASK_XXX [--project-path {PROJECT_PATH}]"
|
|
19
|
-
squad: "node {CORE}/.formation/tools/headless.js --formation=squad --skill=blitz --task=TASK_XXX [--project-path {PROJECT_PATH}]"
|
|
20
|
-
legion: "node {CORE}/.formation/tools/headless.js --formation=legion --skill=forge --task=TASK_XXX [--project-path {PROJECT_PATH}]"
|
|
21
|
-
patterns:
|
|
22
|
-
single: "Bash(run_in_background=true): node headless.js --task=TASK_XXX"
|
|
23
|
-
parallel: "多個無依賴 → 多個 Bash(background) 同時啟動(上限 5,超過排隊)"
|
|
24
|
-
sequential: "有依賴 → 前一個完成再 dispatch"
|
|
25
|
-
anti_pattern: "❌ 禁止用 Task tool 直接開 subagent — 繞過 Formation 失去 prompt 組裝和 log"
|
|
26
|
-
post_dispatch_branch_guard:
|
|
27
|
-
rule: "每個 dispatch 完成(背景任務通知回來)後,必須立即執行 git checkout {user_branch}"
|
|
28
|
-
why: "headless.js subprocess 的 post-complete 會 checkout 回 user branch,但 Ansuz 的 shell session 可能不同步(尤其 crash 或 timeout 時)"
|
|
29
|
-
enforcement: "硬性規則 — 不是建議。漏做 = 後續所有操作在錯誤 branch 上"
|
|
30
|
-
pattern: |
|
|
31
|
-
# 每個 dispatch 背景通知回來後,第一個動作:
|
|
32
|
-
git checkout {user_branch}
|
|
33
|
-
# 然後才讀 log、驗證結果、dispatch 下一個
|
|
34
|
-
|
|
35
|
-
scope_rules:
|
|
36
|
-
- "同檔案 → 一個實例處理整個檔案"
|
|
37
|
-
- "跨檔案 → fan_out,按模組/目錄切"
|
|
38
|
-
- "派工前確認 scope 無重疊"
|
|
39
|
-
|
|
40
|
-
dispatch_decision_gate:
|
|
41
|
-
rule: |
|
|
42
|
-
⚠️ DISPATCH vs IN-SESSION — 必須在每次 dispatch 前判斷:
|
|
43
|
-
分析 / 審計 / 策略 / 討論 → in-session Skill tool(/Amelia、/Huginn 等),不 dispatch
|
|
44
|
-
實作 / 執行 / 寫代碼 / 長跑 → headless dispatch(headless.js)
|
|
45
|
-
「sub agent」「讓 X 做」本身不代表 dispatch。判斷依據是任務性質,不是用詞。
|
|
46
|
-
長 session(已 dispatch ≥3 個任務)時特別警惕 pattern contamination — 重新確認。
|
|
47
|
-
|
|
48
|
-
pre_dispatch:
|
|
49
|
-
- "node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] claim TASK_XXX"
|
|
50
|
-
- "確認狀態已變為 active"
|
|
51
|
-
- |
|
|
52
|
-
# ── Symbol-Level Prediction Recording(TASK_932 升級)──
|
|
53
|
-
# 對每個即將 dispatch 的任務,在 dispatch 前執行:
|
|
54
|
-
#
|
|
55
|
-
# 1. 取得任務的 scope_paths(主要目標檔案/目錄)
|
|
56
|
-
# 2. 對 scope_paths 中的主要 symbol 執行 kenaz_lsp_callers:
|
|
57
|
-
# kenaz_lsp_callers({ symbol: "<primary_symbol>", projectPath: "{PROJECT_PATH}" })
|
|
58
|
-
# 3. 從 LSP 結果萃取 predicted_symbols(最多 20 個):
|
|
59
|
-
# - callers(呼叫此 symbol 的函數)
|
|
60
|
-
# - references(引用此 symbol 的位置)
|
|
61
|
-
# 合併去重後取前 20 個 symbol name
|
|
62
|
-
# 4. 將 predicted_symbols 寫入任務 YAML(dispatch 前,作為 TASK_931 比對基線):
|
|
63
|
-
# node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] \
|
|
64
|
-
# update TASK_XXX --field predicted_symbols --value "[\"sym_a\",\"sym_b\",...]"
|
|
65
|
-
# 或用 technical_notes 暫代(若 task-api 尚未支援 --field predicted_symbols):
|
|
66
|
-
# node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] \
|
|
67
|
-
# update TASK_XXX --technical-notes "predicted_symbols: [sym_a, sym_b, ...]"
|
|
68
|
-
#
|
|
69
|
-
# ⚠️ 若 scope_paths 無明確 symbol(例如整個目錄),以目錄中最核心的檔案名稱作為 symbol 查詢
|
|
70
|
-
# ⚠️ kenaz_lsp_callers 不可用時 → 跳過此步,在 Phase 9 outcome 中標記 predicted_symbols: []
|
|
71
|
-
# ⚠️ 此步驟產出的 predicted_symbols 供 Phase 9 / TASK_931 做 symbol-level 比對用
|
|
72
|
-
|
|
73
|
-
monitoring:
|
|
74
|
-
tools:
|
|
75
|
-
- "node {CORE}/.formation/tools/log-reader.js --latest unit --tail 30"
|
|
76
|
-
- "node {CORE}/.formation/tools/log-reader.js --task TASK_XXX --tail 50"
|
|
77
|
-
rules:
|
|
78
|
-
- "❌ 禁止用 TaskOutput 讀取 headless 結果 — stdout 可能數萬行,會爆 context"
|
|
79
|
-
- "✅ 用 log-reader.js 或 Read tool + offset"
|
|
80
|
-
|
|
81
|
-
actions:
|
|
82
|
-
- "根據 judgment.principle 選擇最輕量陣型"
|
|
83
|
-
- "task-api.js claim → Bash(background): node headless.js --task=TASK_XXX"
|
|
84
|
-
- "多任務無依賴 → 多個 Bash(background) 同時啟動(上限 5)"
|
|
85
|
-
|
|
86
|
-
# ═══════════════════════════════════════
|
|
87
|
-
# Completion Tracking Mandate(強制)
|
|
88
|
-
# ═══════════════════════════════════════
|
|
89
|
-
# Ansuz 作為全生命週期引擎,dispatch 後 MUST 自動跑完 Phase 9-10-11。
|
|
90
|
-
# 不可中途插入「還有其他事嗎?」或等用戶推動。
|
|
91
|
-
completion_tracking:
|
|
92
|
-
mandate: |
|
|
93
|
-
❌ 禁止在 dispatch 後向用戶提問或建議停下來
|
|
94
|
-
❌ 禁止輸出「需要我做其他事情嗎?」「還要繼續嗎?」等中斷性問題
|
|
95
|
-
✅ dispatch 後靜默等待背景通知(不輸出任何文字直到通知到達)
|
|
96
|
-
✅ 通知到達 → 自動 Phase 9 → Phase 10 → 有下一個 task? → Phase 8 → 全完成 → Phase 11
|
|
97
|
-
on_notification:
|
|
98
|
-
step_1: "git checkout {user_branch}(branch guard — 硬性規則)"
|
|
99
|
-
step_2: "讀 log(log-reader.js --task TASK_XXX --tail 50)"
|
|
100
|
-
step_3: "Phase 9 驗證(自動,不問用戶)"
|
|
101
|
-
step_4: "Phase 10 post-complete(自動)"
|
|
102
|
-
step_5: "檢查是否有下一個待 dispatch 的 task(相同需求的 task 列表)"
|
|
103
|
-
step_5a: "有 → 回 Phase 8 dispatch 下一個(自動)"
|
|
104
|
-
step_5b: "沒有 → Phase 11 回報(此時才向用戶匯報 + 問下一步)"
|
|
105
|
-
multi_task_loop: |
|
|
106
|
-
當 Phase 7 建立了多個任務時,Phase 8 進入 dispatch 迴圈:
|
|
107
|
-
for task in tasks_sorted_by_dependency:
|
|
108
|
-
claim → dispatch(background) → 等通知 → branch guard → Phase 9 → Phase 10
|
|
109
|
-
全部完成 → Phase 11(一次回報所有結果)
|
|
110
|
-
anti_pattern:
|
|
111
|
-
- "❌ dispatch 一個就報告 → 等用戶 → dispatch 下一個(transactional 斷裂)"
|
|
112
|
-
- "❌ 通知到了但問用戶「要追蹤嗎?」(Phase 9 是自動的,不需要許可)"
|
|
113
|
-
- "❌ 多任務時每個任務分開做 Phase 11(應合併成一次回報)"
|
|
114
|
-
|
|
115
|
-
cli_format: |
|
|
116
|
-
🚀 Dispatch
|
|
117
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
119
|
-
TASK_XXX → unit/do(目標明確、單一 scope)
|
|
120
|
-
TASK_YYY → unit/do(獨立任務、可並行)
|
|
121
|
-
|
|
122
|
-
並行: 2 個 headless 進程
|
|
123
|
-
監控: node {CORE}/.formation/tools/log-reader.js --latest unit --tail 30
|
|
124
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
125
|
-
|
|
126
|
-
interaction:
|
|
127
|
-
type: "auto"
|
|
128
|
-
instruction: "輸出 cli_format 後直接 dispatch,不問用戶。dispatch 後靜默等待通知,自動跑完 Phase 9-10-11。"
|
|
129
|
-
|
|
130
|
-
checklist:
|
|
131
|
-
- "⚠️ DISPATCH DECISION GATE: 確認任務性質是「實作/執行」而非「分析/審計/討論」。分析類 → in-session Skill,不 dispatch。長 session 中尤其注意 pattern contamination。"
|
|
132
|
-
- "陣型已選擇(最輕量原則)"
|
|
133
|
-
- "所有任務已 claim(active 狀態)+ scope 無重疊"
|
|
134
|
-
- "⚠️ SYMBOL PREDICTION(dispatch 前必做): 對每個任務的 scope_paths 執行 kenaz_lsp_callers → 萃取 predicted_symbols(≤20)→ task-api update 寫入任務 YAML"
|
|
135
|
-
- "dispatch 數量 ≤5"
|
|
136
|
-
- "cli_format 已輸出後立即執行 Bash(run_in_background=true)"
|
|
137
|
-
- "⚠️ POST-DISPATCH BRANCH GUARD: 每個背景任務通知回來後,第一個動作必須是 git checkout {user_branch}"
|
|
138
|
-
- "⚠️ COMPLETION TRACKING: dispatch 後不輸出任何中斷性問題,靜默等通知 → 自動 Phase 9-10-11"
|
|
139
|
-
|
|
140
|
-
context_hints:
|
|
141
|
-
input_from: "phase_7"
|
|
142
|
-
key_data: ["task_ids", "formation_choice", "parallel_groups"]
|
|
143
|
-
|
|
144
|
-
inject:
|
|
145
|
-
rules: []
|
|
146
|
-
specialist: []
|
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
phase: 9
|
|
2
|
-
name: "結果驗證"
|
|
3
|
-
goal: "驗證 agent 產出,確保符合任務要求"
|
|
4
|
-
|
|
5
|
-
ddx_trigger:
|
|
6
|
-
when: "agent 輸出不確定、或結果與預期不符時"
|
|
7
|
-
action: "懶載入 modules/ddx.yaml — 問『如果不是 agent 說的原因,還可能是什麼?』"
|
|
8
|
-
|
|
9
|
-
# ─────────────────────────────────────────────────────────────────
|
|
10
|
-
# Forseti Verification — Three-Level Automated Verification Engine
|
|
11
|
-
# ─────────────────────────────────────────────────────────────────
|
|
12
|
-
|
|
13
|
-
forseti_verification:
|
|
14
|
-
description: |
|
|
15
|
-
Forseti is a three-level automated verification engine that runs
|
|
16
|
-
CLI commands (L1), service probes (L2), and Playwright E2E (L3).
|
|
17
|
-
Dispatch only when task meets trigger threshold — otherwise fall
|
|
18
|
-
back to minimal_verification.
|
|
19
|
-
|
|
20
|
-
trigger_threshold:
|
|
21
|
-
description: "Forseti is triggered if ANY of the following conditions is true"
|
|
22
|
-
conditions:
|
|
23
|
-
- priority is P0 or P1
|
|
24
|
-
- rigor is "high"
|
|
25
|
-
- tags contain "fix" or "regression"
|
|
26
|
-
- task has a non-empty verification spec (verification.level_1 or level_2 or level_3)
|
|
27
|
-
skip_when:
|
|
28
|
-
- priority is P2 with rigor "low" or "medium"
|
|
29
|
-
- priority is P3
|
|
30
|
-
- task is documentation-only (role: docs, no scope_paths with code files)
|
|
31
|
-
- task is design/style-only with no logic changes
|
|
32
|
-
|
|
33
|
-
dispatch:
|
|
34
|
-
command: |
|
|
35
|
-
node {CORE}/.formation/tools/forseti-verify.js \
|
|
36
|
-
--task=TASK_XXX \
|
|
37
|
-
[--project-path={PROJECT_PATH}]
|
|
38
|
-
note: "直接執行 forseti-verify.js,不走 headless.js formation skill"
|
|
39
|
-
verdict_path: "{PROJECT_PATH}/.formation/logs/forseti/TASK_XXX/verdict.json"
|
|
40
|
-
|
|
41
|
-
verdict_handling:
|
|
42
|
-
read_verdict: |
|
|
43
|
-
Read verdict JSON from: .formation/logs/forseti/TASK_XXX/verdict.json
|
|
44
|
-
Fields: overall (PASS|PARTIAL|FAIL), level_results[], evidence_dir, generated_at
|
|
45
|
-
on_PASS: "→ 繼續正常 on_success 流程 → Phase 10"
|
|
46
|
-
on_PARTIAL: |
|
|
47
|
-
⚠️ Partial verification (some levels skipped — service offline or no E2E spec)
|
|
48
|
-
→ PARTIAL is NOT automatic success. Map every required acceptance criterion to passing evidence.
|
|
49
|
-
→ Continue on_success only when all required checks passed and every skipped check is
|
|
50
|
-
explicitly optional or not applicable, with a recorded reason. Keep the raw verdict PARTIAL.
|
|
51
|
-
→ Missing spec, unavailable service, or missing evidence for any required check → UNVERIFIED.
|
|
52
|
-
Do not downgrade a required check to optional merely because it cannot run.
|
|
53
|
-
on_UNVERIFIED: |
|
|
54
|
-
Record missing required checks and the blocking condition; keep the task open.
|
|
55
|
-
Restore the prerequisite or supplement the verification plan and rerun.
|
|
56
|
-
Do not call on_success, complete, archive, or merge based on missing evidence.
|
|
57
|
-
UNVERIFIED is an Ansuz assessment, not a new Forseti CLI verdict or task status.
|
|
58
|
-
on_FAIL: |
|
|
59
|
-
❌ Forseti reported FAIL → 觸發 FIX 閉環
|
|
60
|
-
→ 執行 fix_loop 流程(見下方)
|
|
61
|
-
|
|
62
|
-
fix_loop:
|
|
63
|
-
description: "FAIL 閉環:建 FIX 任務 → 回 Phase 8 → Forseti 再驗。max 3 輪防無限迴圈。"
|
|
64
|
-
max_fix_rounds: 3
|
|
65
|
-
loop_guard: |
|
|
66
|
-
在 task context 中追蹤 fix_round(從 technical_notes.fix_round 讀取,預設 0)
|
|
67
|
-
if fix_round >= max_fix_rounds:
|
|
68
|
-
→ 停止自動建 FIX
|
|
69
|
-
→ escalate 給用戶,附上全部 verdict evidence
|
|
70
|
-
steps:
|
|
71
|
-
1_read_evidence: |
|
|
72
|
-
讀取 verdict JSON 中的 level_results[].failures 和 evidence_dir
|
|
73
|
-
提取失敗命令、exit codes、stdout/stderr(各取前 1000 chars)
|
|
74
|
-
2_create_fix_task: |
|
|
75
|
-
node {CORE}/.collaboration/core/task-api.js \
|
|
76
|
-
[--project-path {PROJECT_PATH}] create \
|
|
77
|
-
--title "[FIX] {原任務標題} — Forseti L{N} FAIL" \
|
|
78
|
-
--source=TASK_XXX \
|
|
79
|
-
--tags="fix,verification,forseti" \
|
|
80
|
-
--priority={原任務 priority} \
|
|
81
|
-
--role={原任務 role} \
|
|
82
|
-
--scope_paths={原任務 scope_paths}
|
|
83
|
-
context 欄位必須包含:
|
|
84
|
-
- forseti_evidence: {verdict JSON 完整路徑}
|
|
85
|
-
- fix_round: {current_round + 1}
|
|
86
|
-
- failure_summary: {level_results failures 摘要}
|
|
87
|
-
- original_task_id: TASK_XXX
|
|
88
|
-
3_update_anchor: |
|
|
89
|
-
Read-modify-write ansuz_motivational_state.json (graceful degradation):
|
|
90
|
-
file: {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json
|
|
91
|
-
if file not found → skip silently, continue to next step
|
|
92
|
-
match_logic: FIX_task.tags ∩ anchor.source_tags — OR logic (any tag overlap = match)
|
|
93
|
-
note: anchor.source_tags must contain domain-specific tags only (e.g. tunnel, pty, synapse).
|
|
94
|
-
Generic tags like "fix", "code", "feature" must NOT be in source_tags — they cause all anchors to match.
|
|
95
|
-
on_match:
|
|
96
|
-
if anchor.resolved === true:
|
|
97
|
-
resolved = false
|
|
98
|
-
resolved_at = null
|
|
99
|
-
incompleteness = 0.3 ← problem recurred; reset base before increment
|
|
100
|
-
incompleteness = min(anchor.incompleteness + 0.15, 1.0)
|
|
101
|
-
note: resolved anchor starts at 0.3 → +0.15 = 0.45 total
|
|
102
|
-
fix_cycle_count = anchor.fix_cycle_count + 1
|
|
103
|
-
last_touched = today (ISO8601 date, YYYY-MM-DD)
|
|
104
|
-
on_no_match → create new anchor:
|
|
105
|
-
concept = FIX task title stripped of '[FIX] ' prefix, truncated to 50 chars
|
|
106
|
-
source_tags = FIX task tags (array)
|
|
107
|
-
incompleteness = 0.3
|
|
108
|
-
fix_cycle_count = 1
|
|
109
|
-
last_touched = today (ISO8601 date)
|
|
110
|
-
write_back:
|
|
111
|
-
update anchors[] with the matched/new anchor
|
|
112
|
-
session_count = session_count + 1
|
|
113
|
-
last_updated = ISO8601 datetime now
|
|
114
|
-
preserve personality_seed unchanged
|
|
115
|
-
on IO error / file lock → skip silently, do NOT abort fix_loop
|
|
116
|
-
4_preserve_original: |
|
|
117
|
-
Keep the original task open and link the FIX task and failed evidence.
|
|
118
|
-
Creating a FIX task does not satisfy the original acceptance criteria.
|
|
119
|
-
Only after the FIX is verified, rerun the original required checks and
|
|
120
|
-
complete the original through the normal authorized completion lifecycle.
|
|
121
|
-
5_dispatch_fix: |
|
|
122
|
-
⚠️ 立即回到 Phase 8 dispatch FIX 任務,不可停在 backlog
|
|
123
|
-
→ Phase 8(FIX) → dispatch → Phase 9(FIX) → Forseti 再驗
|
|
124
|
-
Only verified tasks may proceed to authorized post-complete archive + git.
|
|
125
|
-
escalate_when: |
|
|
126
|
-
fix_round >= max_fix_rounds:
|
|
127
|
-
❌ 自動修復已達上限({max_fix_rounds} 輪)
|
|
128
|
-
→ 停止迴圈,升級給用戶
|
|
129
|
-
輸出:
|
|
130
|
-
- 所有 verdict JSON 路徑
|
|
131
|
-
- 每輪失敗摘要
|
|
132
|
-
- 建議:人工介入或換策略
|
|
133
|
-
|
|
134
|
-
# ─────────────────────────────────────────────────────────────────
|
|
135
|
-
# Minimal Verification — For tasks that skip Forseti
|
|
136
|
-
# ─────────────────────────────────────────────────────────────────
|
|
137
|
-
|
|
138
|
-
minimal_verification:
|
|
139
|
-
description: |
|
|
140
|
-
When task does NOT meet Forseti trigger threshold, run applicable local
|
|
141
|
-
checks from the owning package and task acceptance criteria. Compilation,
|
|
142
|
-
typechecking, lint and grep do not prove changed runtime behavior.
|
|
143
|
-
Record concrete commands, working directories, exit codes and evidence.
|
|
144
|
-
If acceptance requires a service or E2E check, it remains required even on
|
|
145
|
-
this path; do not waive it because the task was routed to minimal verification.
|
|
146
|
-
when: "Forseti trigger_threshold NOT met"
|
|
147
|
-
checks:
|
|
148
|
-
rust_project: |
|
|
149
|
-
if scope_paths contain .rs files:
|
|
150
|
-
Resolve the owning Cargo.toml within PROJECT_PATH; run cargo check with
|
|
151
|
-
that manifest and relevant tests covering changed behavior.
|
|
152
|
-
typescript_project: |
|
|
153
|
-
if scope_paths contain .ts or .tsx files:
|
|
154
|
-
Resolve the owning package and tsconfig; run its installed typechecker
|
|
155
|
-
and relevant behavioral tests. Do not assume the repository root owns
|
|
156
|
-
the code or that typechecking alone meets behavioral acceptance criteria.
|
|
157
|
-
javascript_project: |
|
|
158
|
-
if scope_paths contain .js, .jsx, .mjs or .cjs files:
|
|
159
|
-
Resolve the owning package.json, test configuration and concrete tests.
|
|
160
|
-
Run the existing configured test runner with the relevant test targets.
|
|
161
|
-
For node:test suites, use node --test <explicit test paths>; for Jest,
|
|
162
|
-
Vitest or another runner use the installed project runner and its config.
|
|
163
|
-
Do not invent an npm test script, install packages automatically, or use
|
|
164
|
-
syntax-only checks as behavioral proof. Missing runner/tests → UNVERIFIED
|
|
165
|
-
until equivalent executable acceptance evidence exists or tests are added.
|
|
166
|
-
documentation_only: |
|
|
167
|
-
Only when scope contains no executable code or behavior-bearing config:
|
|
168
|
-
Check diff/scope, referenced paths and links, and document consistency.
|
|
169
|
-
For YAML policy/config changes, parse the file and check relevant contract
|
|
170
|
-
invariants; text checks verify policy consistency, not agent compliance.
|
|
171
|
-
Behavior-bearing configuration additionally needs applicable behavior checks.
|
|
172
|
-
fallback: |
|
|
173
|
-
For other executable artifacts, select the owning toolchain's relevant checks.
|
|
174
|
-
If required checks cannot be identified or run, record UNVERIFIED, not PASS.
|
|
175
|
-
For mixed scopes, run every applicable branch; do not stop at the first match.
|
|
176
|
-
Only optional/not-applicable checks may be skipped, with a recorded reason.
|
|
177
|
-
on_FAIL: "→ 同 on_failure 流程(retry / create_fix / escalate)"
|
|
178
|
-
on_UNVERIFIED: "Keep task open; report missing required evidence, supplement checks or restore prerequisites; no on_success/complete/archive/merge."
|
|
179
|
-
on_PASS: "Only when every required acceptance criterion has passing evidence → on_success → authorized Phase 10."
|
|
180
|
-
|
|
181
|
-
# ─────────────────────────────────────────────────────────────────
|
|
182
|
-
# Standard Verification Actions
|
|
183
|
-
# ─────────────────────────────────────────────────────────────────
|
|
184
|
-
|
|
185
|
-
actions:
|
|
186
|
-
- "檔案變更符合任務 scope_paths?"
|
|
187
|
-
- "git commit 存在?(git log --oneline | grep TASK_XXX)"
|
|
188
|
-
- "acceptance_criteria 全部滿足?"
|
|
189
|
-
- "交叉比對原始碼 — 不盲信 agent 輸出"
|
|
190
|
-
- "kenaz_lsp_callers — 分析變更的影響範圍"
|
|
191
|
-
- "無引入 regression?"
|
|
192
|
-
- |
|
|
193
|
-
DIFF-ISOLATION verification (derived from VC33 session insight):
|
|
194
|
-
Run `git diff {BASE_COMMIT}...{TASK_BRANCH} -- {file_path}` per scope_path file
|
|
195
|
-
to isolate agent's actual changes from file noise. Use this BEFORE full-file
|
|
196
|
-
re-read — diff-based verification is cheaper (O(Δ) vs O(file)) and catches
|
|
197
|
-
silent deletions/reverts that grep alone misses. If diff for any requirement-
|
|
198
|
-
named file is empty when it should not be → INCOMPLETE → create FIX task.
|
|
199
|
-
- |
|
|
200
|
-
phantom reconciliation check(若任務 technical_notes 含 phantom_ids):
|
|
201
|
-
1. parse phantom_ids from task YAML technical_notes
|
|
202
|
-
2. for each phantom_id:
|
|
203
|
-
check: kenaz_lsp_symbols / Grep 該 symbol 是否已出現在預定檔案
|
|
204
|
-
reconciled: 已出現在預定位置
|
|
205
|
-
pending: 找不到 → ⚠️ agent 可能未在預定位置寫入代碼
|
|
206
|
-
3. 無 phantom_ids → skipped
|
|
207
|
-
note: post-complete.js 已觸發 reindex,reconcile_phantom 應已自動執行
|
|
208
|
-
|
|
209
|
-
cognitive_checkpoint:
|
|
210
|
-
rule: "驗證完成後,必須判斷是否需要 inscribe。不可跳過此判斷"
|
|
211
|
-
check: |
|
|
212
|
-
- bug 根因 non-obvious? → inscribe type=fix
|
|
213
|
-
- 隱藏 side-effect 或使用限制? → inscribe type=risk
|
|
214
|
-
- 非顯然的設計決策? → inscribe type=decision
|
|
215
|
-
- 跨 3+ symbol 的概念? → forge Sigil
|
|
216
|
-
- 以上都沒有 → 跳過,不為了寫而寫
|
|
217
|
-
verify_runes: "agent 寫了 rune → 交叉比對原始碼;不準確的 rune 用 supersedes 取代"
|
|
218
|
-
mem0_protocol:
|
|
219
|
-
description: "Mem0-style ADD/MERGE/DELETE protocol for session insights (TASK_940)"
|
|
220
|
-
trigger: "Before inscribing any rune, execute this protocol"
|
|
221
|
-
|
|
222
|
-
# ─── Step 0: Rule-level recall (ansuz_rules.yaml) ───
|
|
223
|
-
# Before inscribing a rune, check if a behavioral RULE already covers this insight.
|
|
224
|
-
# If a rule exists, rune inscription is redundant — skip or reference the rule instead.
|
|
225
|
-
rule_recall:
|
|
226
|
-
file: "{PROJECT_PATH}/.kenaz/specialist/ansuz_rules.yaml"
|
|
227
|
-
steps:
|
|
228
|
-
- |
|
|
229
|
-
0a. READ ansuz_rules.yaml → parse rules[] array
|
|
230
|
-
- |
|
|
231
|
-
0b. For each rule where status is "active" or "proposed":
|
|
232
|
-
Compare semantically: does this rule already cover the insight you are about to inscribe?
|
|
233
|
-
- YES (>70% overlap with active rule) → SKIP inscription entirely.
|
|
234
|
-
The rule is authoritative; a rune would be redundant.
|
|
235
|
-
- YES (>70% overlap with proposed rule) → SKIP inscription.
|
|
236
|
-
Instead, note the rule_id for Phase 11 sessions_observed increment.
|
|
237
|
-
- PARTIAL overlap → Proceed to rune inscription, but reference the rule_id
|
|
238
|
-
in the rune's related_rune_ids or context field.
|
|
239
|
-
- NO overlap → Proceed to standard rune recall (Step 1 below).
|
|
240
|
-
- |
|
|
241
|
-
0c. If ansuz_rules.yaml is unreadable or missing → skip rule recall,
|
|
242
|
-
proceed to standard rune recall. Do NOT abort.
|
|
243
|
-
|
|
244
|
-
# ─── Steps 1-6: Rune-level recall and inscription ───
|
|
245
|
-
steps:
|
|
246
|
-
- |
|
|
247
|
-
1. RECALL: synapse_recall(query=<insight topic>, limit=5, projectPath=PROJECT_PATH)
|
|
248
|
-
Find existing runes on the same symbol or concept.
|
|
249
|
-
- |
|
|
250
|
-
2. EVALUATE overlap:
|
|
251
|
-
- If existing rune covers >70% of the same insight → MERGE
|
|
252
|
-
- If existing rune contradicts the new insight → FLAG for review
|
|
253
|
-
- If no relevant runes exist → ADD as new
|
|
254
|
-
- If new evidence invalidates an existing rune → DELETE (supersede)
|
|
255
|
-
- |
|
|
256
|
-
3. MERGE: synapse_inscribe(... supersedes=<old_rune_id>, related_rune_ids=[<old_rune_id>])
|
|
257
|
-
Combine content from both runes. Increment confidence if corroborated.
|
|
258
|
-
- |
|
|
259
|
-
4. FLAG contradiction: inscribe new rune with type=risk, content includes
|
|
260
|
-
"CONTRADICTION with rune {old_rune_id}: {description}".
|
|
261
|
-
Do NOT auto-delete the old rune — let deliberate review decide.
|
|
262
|
-
- |
|
|
263
|
-
5. ADD: synapse_inscribe(... confidence >= 0.6) as normal.
|
|
264
|
-
- |
|
|
265
|
-
6. DELETE: synapse_inscribe(... supersedes=<invalidated_rune_id>,
|
|
266
|
-
content="INVALIDATED: {reason}"). The old rune is excluded from future recall.
|
|
267
|
-
rules:
|
|
268
|
-
- "Always recall before inscribing — duplicates waste recall bandwidth"
|
|
269
|
-
- "Overlap is semantic, not literal — two runes about the same concept count even if worded differently"
|
|
270
|
-
- "Rule-level recall (Step 0) takes precedence — if a rule covers the insight, do not create a redundant rune"
|
|
271
|
-
- "MEM-LANG-001 applies — all inscribe content in English"
|
|
272
|
-
phantom_reconciled: |
|
|
273
|
-
parse phantom_ids from task YAML technical_notes
|
|
274
|
-
for each phantom_id:
|
|
275
|
-
check: kenaz_lsp_symbols / Grep for the symbol at the intended file
|
|
276
|
-
reconciled: symbol present at intended location → ✅ verified
|
|
277
|
-
pending: symbol not found → ⚠️ agent may not have written code at intended location
|
|
278
|
-
no phantom_ids: skipped
|
|
279
|
-
|
|
280
|
-
self_reflection_detection:
|
|
281
|
-
description: "Detect moments during task execution that warrant a self-model update in Phase 11"
|
|
282
|
-
rule: "Only flag when trigger is concrete and evidenced — do not flag speculatively"
|
|
283
|
-
triggers:
|
|
284
|
-
user_correction:
|
|
285
|
-
detect: "User explicitly corrects agent behavior, judgment, or output during this session"
|
|
286
|
-
example: "User says 'no, don't do that', overrides agent's decision, or points out a systematic mistake"
|
|
287
|
-
flag_type: "user_correction"
|
|
288
|
-
decision_surprise:
|
|
289
|
-
detect: "Outcome of an agent decision differs significantly from the agent's own expectation"
|
|
290
|
-
example: "Agent predicted approach X would work; actual result revealed a flawed assumption"
|
|
291
|
-
flag_type: "decision_surprise"
|
|
292
|
-
principle_conflict:
|
|
293
|
-
detect: "Agent action contradicted a stated principle or known tendency in its own self-model"
|
|
294
|
-
example: "Agent skipped cognitive checkpoint despite B-001 naming exactly this blind spot"
|
|
295
|
-
flag_type: "principle_conflict"
|
|
296
|
-
first_time_encounter:
|
|
297
|
-
detect: "Agent encounters a pattern, constraint, or domain it has not handled before"
|
|
298
|
-
example: "New cross-language coupling pattern not previously observed in any tendency entry"
|
|
299
|
-
flag_type: "first_time_encounter"
|
|
300
|
-
new_observation_category:
|
|
301
|
-
detect: "Agent observes a behavioral pattern about itself that does not fit any existing tendencies[], blind_spots[], or growth_edges[] category"
|
|
302
|
-
example: "Agent notices it consistently front-loads verification steps before writing code — this is a distinct pattern not yet in tendencies"
|
|
303
|
-
flag_type: "new_observation_category"
|
|
304
|
-
output:
|
|
305
|
-
variable: "self_reflection_flags"
|
|
306
|
-
schema: "list of {type: string, description: string, evidence: string}"
|
|
307
|
-
note: "Empty list if no triggers fire. Non-empty list is passed to Phase 11 self_reflection_protocol."
|
|
308
|
-
|
|
309
|
-
outcome_comparison:
|
|
310
|
-
description: |
|
|
311
|
-
After verification passes, compare Phase 3 predictions with actual outcomes.
|
|
312
|
-
Computes surprise_score and valence, updates cumulative accuracy stats,
|
|
313
|
-
and injects high-surprise events as outcome neurons into Thalamus.
|
|
314
|
-
trigger: "on_success — after task verification passes"
|
|
315
|
-
note: "Actual comparison logic lives in post-complete.js (compareOutcomePrediction). Phase 9 triggers it conceptually; post-complete executes it."
|
|
316
|
-
metrics:
|
|
317
|
-
surprise_score: |
|
|
318
|
-
Normalized Jaccard distance between predicted files and actual files:
|
|
319
|
-
intersection = predicted ∩ actual
|
|
320
|
-
union = predicted ∪ actual
|
|
321
|
-
surprise_score = 1 - (|intersection| / |union|)
|
|
322
|
-
Range: 0.0 (perfect prediction) to 1.0 (complete miss)
|
|
323
|
-
valence: |
|
|
324
|
-
positive: actual outcome succeeded and surprise_score < 0.3
|
|
325
|
-
negative: actual outcome failed OR surprise_score >= 0.5
|
|
326
|
-
neutral: otherwise
|
|
327
|
-
accuracy_tracking:
|
|
328
|
-
file: "{PROJECT_PATH}/.kenaz/specialist/ansuz_accuracy.json"
|
|
329
|
-
schema: |
|
|
330
|
-
{
|
|
331
|
-
"total_predictions": N,
|
|
332
|
-
"accurate_predictions": N, // surprise_score < 0.3
|
|
333
|
-
"running_accuracy": 0.0-1.0, // accurate / total
|
|
334
|
-
"last_updated": "ISO-8601",
|
|
335
|
-
"recent_surprises": [ // last 10 high-surprise events
|
|
336
|
-
{ "task_id": "TASK_XXX", "surprise_score": 0.8, "valence": "negative", "timestamp": "ISO-8601" }
|
|
337
|
-
]
|
|
338
|
-
}
|
|
339
|
-
prevention_analysis:
|
|
340
|
-
when: "任務 P0/P1,或 fix/regression,或核心路徑"
|
|
341
|
-
action: "懶載入 modules/prevention.yaml — 三級預防分析"
|
|
342
|
-
skip_when: "P2/P3 新功能、文件/設計任務、typo/style 修復"
|
|
343
|
-
|
|
344
|
-
loop_guard:
|
|
345
|
-
when: "同一 source/feature_id 的 FIX 任務累計 >= 2 次"
|
|
346
|
-
action: "懶載入 modules/loop_guard.yaml — 強制 Socratic Thinking,暫停 dispatch"
|
|
347
|
-
|
|
348
|
-
on_success:
|
|
349
|
-
- "node {CORE}/.collaboration/core/task-api.js [--project-path {PROJECT_PATH}] complete TASK_XXX"
|
|
350
|
-
- |
|
|
351
|
-
anchor_decay (graceful degradation):
|
|
352
|
-
file: {PROJECT_PATH}/.kenaz/ansuz_motivational_state.json
|
|
353
|
-
if file not found → skip silently
|
|
354
|
-
match_logic: task.tags ∩ anchor.source_tags — OR logic (any tag overlap = match)
|
|
355
|
-
same matching strategy as FIX path (fix_loop.3_update_anchor)
|
|
356
|
-
note: anchor.source_tags must contain domain-specific tags only — see fix_loop.3_update_anchor note.
|
|
357
|
-
decay: incompleteness = max(anchor.incompleteness - 0.05, 0.0)
|
|
358
|
-
write_back:
|
|
359
|
-
update matched anchors[]
|
|
360
|
-
session_count = session_count + 1
|
|
361
|
-
last_updated = ISO8601 datetime now
|
|
362
|
-
preserve personality_seed unchanged
|
|
363
|
-
on IO error / file lock → skip silently, do NOT abort on_success
|
|
364
|
-
- "→ 觸發 prevention_analysis(如符合條件)→ Phase 10"
|
|
365
|
-
|
|
366
|
-
on_failure:
|
|
367
|
-
analysis:
|
|
368
|
-
- "讀 log 找失敗根因"
|
|
369
|
-
- "判斷:可重試 | 需補 context | 需建 FIX | 需換策略 | 需升級"
|
|
370
|
-
actions:
|
|
371
|
-
retry: "重派同任務 — 補充失敗原因和缺失 context"
|
|
372
|
-
create_fix_and_dispatch: |
|
|
373
|
-
1. task-api.js create 建立 [FIX] 任務(tags: fix,verification)
|
|
374
|
-
2. Keep the original task open; link the FIX task and failed evidence.
|
|
375
|
-
3. Do not complete/archive the original until the FIX passes and the original
|
|
376
|
-
required acceptance checks are rerun successfully through the authorized lifecycle.
|
|
377
|
-
4. ⚠️ 立即回到 Phase 8 dispatch FIX — 不可停在 backlog
|
|
378
|
-
change_strategy: "換陣型(如 unit → solo 增加分析深度)"
|
|
379
|
-
escalate: "升級給用戶 — 附上已嘗試的方法和失敗原因"
|
|
380
|
-
block: "node {CORE}/.collaboration/core/task-api.js --project-path={PROJECT_PATH} move TASK_XXX blocked"
|
|
381
|
-
critical_rule: "⚠️ 建完 FIX 後「必須」立即 dispatch。Phase 9 → 建 FIX → Phase 8(FIX) → dispatch → Phase 9(FIX) → ..."
|
|
382
|
-
|
|
383
|
-
cli_format:
|
|
384
|
-
success: |
|
|
385
|
-
✅ TASK_XXX 驗證通過
|
|
386
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
387
|
-
變更: {檔案清單}
|
|
388
|
-
Commit: {commit hash}
|
|
389
|
-
驗收: {N}/{N} 通過
|
|
390
|
-
Forseti: {PASS|PARTIAL|SKIPPED}
|
|
391
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
392
|
-
failure: |
|
|
393
|
-
❌ TASK_XXX 驗證失敗
|
|
394
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
395
|
-
根因: {分析結果}
|
|
396
|
-
Forseti: {FAIL — level_results 摘要}
|
|
397
|
-
行動: {重派/建FIX並dispatch/換策略/升級}
|
|
398
|
-
FIX Round: {N}/{max_fix_rounds}
|
|
399
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
400
|
-
unverified: |
|
|
401
|
-
⚠️ TASK_XXX 尚未驗證完成 (UNVERIFIED)
|
|
402
|
-
Required checks missing: {checks_and_reasons}
|
|
403
|
-
Raw Forseti verdict: {verdict_or_not_run}
|
|
404
|
-
Next action: {restore_prerequisite_or_supplement_checks}
|
|
405
|
-
Task remains open; this is not a successful completion.
|
|
406
|
-
|
|
407
|
-
interaction:
|
|
408
|
-
type: "auto"
|
|
409
|
-
instruction: "自動執行,結果併入 Phase 11。若建 FIX 任務,必須迴圈回 Phase 8 dispatch,不可停在 backlog"
|
|
410
|
-
|
|
411
|
-
checklist:
|
|
412
|
-
- "acceptance_criteria 全部驗證(逐條核對)"
|
|
413
|
-
- "git commit 存在且對應 TASK_XXX"
|
|
414
|
-
- "forseti_verification 觸發判斷已完成(觸發 Forseti 或執行 minimal_verification)"
|
|
415
|
-
- "cognitive_checkpoint 已判斷(inscribe 或明確跳過)"
|
|
416
|
-
|
|
417
|
-
context_hints:
|
|
418
|
-
input_from: "phase_8"
|
|
419
|
-
key_data: ["dispatched_tasks", "expected_branches"]
|
|
420
|
-
|
|
421
|
-
inject:
|
|
422
|
-
rules:
|
|
423
|
-
- synapse-cognitive-fusion.yaml
|
|
424
|
-
specialist: []
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
index_version: "1.0"
|
|
2
|
-
series: "Bifrost Hook Parity Task Series"
|
|
3
|
-
produced_by: TASK_1234
|
|
4
|
-
architecture_source: ".formation/bifrost/CGDD_hook_lifecycle.js"
|
|
5
|
-
|
|
6
|
-
# ─────────────────────────────────────────────────────────────────
|
|
7
|
-
# CRITICAL: CGDD task number labels are WRONG
|
|
8
|
-
# ─────────────────────────────────────────────────────────────────
|
|
9
|
-
cgdd_number_mismatch: >
|
|
10
|
-
CGDD_hook_lifecycle.js was written before backlog was finalized. The task numbers
|
|
11
|
-
inside CGDD (TASK_1228 = SessionStart, TASK_1229 = UserPromptSubmit, etc.) do NOT
|
|
12
|
-
match actual backlog assignments. Use this index, not the CGDD task labels.
|
|
13
|
-
|
|
14
|
-
# ─────────────────────────────────────────────────────────────────
|
|
15
|
-
# TASK BRIEFS
|
|
16
|
-
# ─────────────────────────────────────────────────────────────────
|
|
17
|
-
tasks:
|
|
18
|
-
TASK_1228:
|
|
19
|
-
brief: ".specialist/Ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml"
|
|
20
|
-
event: UserPromptSubmit
|
|
21
|
-
file: ".formation/bifrost/session.js"
|
|
22
|
-
creates: "dispatchBifrostHook() + normalizeUserPromptSubmit()"
|
|
23
|
-
parallel_with: [TASK_1229]
|
|
24
|
-
blocks: [TASK_1230, TASK_1231]
|
|
25
|
-
|
|
26
|
-
TASK_1229:
|
|
27
|
-
brief: ".specialist/Ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml"
|
|
28
|
-
events: [PreToolUse, PostToolUse]
|
|
29
|
-
file: ".formation/bifrost/openai/relay.js"
|
|
30
|
-
creates: "relay.js dispatchBifrostHook() + capturedThreadId + normalizeToolEvent() + 8 call sites"
|
|
31
|
-
parallel_with: [TASK_1228, TASK_1230]
|
|
32
|
-
blocks: [TASK_1231]
|
|
33
|
-
|
|
34
|
-
TASK_1230:
|
|
35
|
-
brief: ".specialist/Ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml"
|
|
36
|
-
events: [SessionStart, Stop]
|
|
37
|
-
file: ".formation/bifrost/session.js"
|
|
38
|
-
creates: "normalizeSessionStart() + normalizeStop() + sessionStartedAt + resultCapture + stdout tee"
|
|
39
|
-
prerequisite: TASK_1228 # needs dispatchBifrostHook to exist
|
|
40
|
-
parallel_with: [TASK_1229]
|
|
41
|
-
blocks: [TASK_1231]
|
|
42
|
-
|
|
43
|
-
TASK_1231:
|
|
44
|
-
brief: ".specialist/Ansuz/specs/brief_TASK_1231_verification.yaml"
|
|
45
|
-
role: verification_gate
|
|
46
|
-
produces: ".formation/bifrost/VERIFICATION_hook_parity.md"
|
|
47
|
-
prerequisites: [TASK_1228, TASK_1229, TASK_1230]
|
|
48
|
-
no_code_changes: true
|
|
49
|
-
|
|
50
|
-
# ─────────────────────────────────────────────────────────────────
|
|
51
|
-
# RECOMMENDED DISPATCH ORDER
|
|
52
|
-
# ─────────────────────────────────────────────────────────────────
|
|
53
|
-
dispatch_order:
|
|
54
|
-
wave_1:
|
|
55
|
-
tasks: [TASK_1228, TASK_1229]
|
|
56
|
-
note: "TASK_1228 and TASK_1229 touch different files — safe to dispatch in parallel"
|
|
57
|
-
wave_2:
|
|
58
|
-
tasks: [TASK_1230]
|
|
59
|
-
note: "Depends on TASK_1228 (dispatchBifrostHook must exist in session.js)"
|
|
60
|
-
wave_3:
|
|
61
|
-
tasks: [TASK_1231]
|
|
62
|
-
note: "Verification gate — all three implementation tasks must be done first"
|
|
63
|
-
|
|
64
|
-
# ─────────────────────────────────────────────────────────────────
|
|
65
|
-
# EVENT → FILE OWNERSHIP QUICK REFERENCE
|
|
66
|
-
# ─────────────────────────────────────────────────────────────────
|
|
67
|
-
event_ownership:
|
|
68
|
-
SessionStart:
|
|
69
|
-
dispatcher: ".formation/bifrost/session.js::normalizeSessionStart()"
|
|
70
|
-
consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
|
|
71
|
-
UserPromptSubmit:
|
|
72
|
-
dispatcher: ".formation/bifrost/session.js::normalizeUserPromptSubmit()"
|
|
73
|
-
consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → maybeEmitReminder() [EXISTING]"
|
|
74
|
-
PreToolUse:
|
|
75
|
-
dispatcher: ".formation/bifrost/openai/relay.js::normalizeToolEvent()"
|
|
76
|
-
consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
|
|
77
|
-
PostToolUse:
|
|
78
|
-
dispatcher: ".formation/bifrost/openai/relay.js::normalizeToolEvent()"
|
|
79
|
-
consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → createLinked/syncStatus [EXISTING]"
|
|
80
|
-
Stop:
|
|
81
|
-
dispatcher: ".formation/bifrost/session.js::normalizeStop()"
|
|
82
|
-
consumer: ".specialist/tools/task-bridge.js::handleHookEvent() → no-op"
|
|
83
|
-
|
|
84
|
-
# ─────────────────────────────────────────────────────────────────
|
|
85
|
-
# SHARED UTILITY
|
|
86
|
-
# ─────────────────────────────────────────────────────────────────
|
|
87
|
-
shared_utility:
|
|
88
|
-
dispatchBifrostHook:
|
|
89
|
-
exists_in: [session.js, relay.js]
|
|
90
|
-
note: "Two separate implementations — same pattern, different require paths. session.js version created by TASK_1228. relay.js version created by TASK_1229."
|
|
91
|
-
session_require: "path.resolve(__dirname, '../..', '.specialist/tools/task-bridge.js')"
|
|
92
|
-
relay_require: "path.resolve(__dirname, '../../..', '.specialist/tools/task-bridge.js')"
|