kenaz 0.3.18 → 0.3.20
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/agent-worker.md +1 -1
- package/core/.claude/commands/architect.md +1 -2
- package/core/.claude/commands/spec.md +1 -1
- package/core/.claude/commands//347/224/242/345/223/201.md +1 -1
- package/core/.claude/hooks/__tests__/task-1977-dedupe-guard.test.js +8 -8
- package/core/.claude/skills/architect_agent/SKILL.md +11 -92
- package/core/.claude/skills/assessment_agent/SKILL.md +0 -1
- package/core/.claude/skills/backend_engineer/SKILL.md +3 -6
- package/core/.claude/skills/code_reviewer/SKILL.md +1 -1
- package/core/.claude/skills/code_reviewer/patterns.yaml +1 -1
- package/core/.claude/skills/designer/SKILL.md +3 -6
- package/core/.claude/skills/dev_agent/SKILL.md +30 -491
- package/core/.claude/skills/developer/SKILL.md +3 -6
- package/core/.claude/skills/feature_agent/SKILL.md +3 -17
- package/core/.claude/skills/product_manager/SKILL.md +29 -1064
- package/core/.claude/skills/qa_engineer/SKILL.md +12 -17
- package/core/.claude/skills/spec_optimizer/SKILL.md +25 -275
- package/core/.claude/skills/sre_agent/SKILL.md +3 -6
- package/core/.collaboration/README.md +2 -3
- package/core/.collaboration/core/task-api.js +5 -138
- package/core/.collaboration/docs/CLI.md +0 -2
- package/core/.failure/INDEX.yaml +6 -40
- package/core/.failure/agent-execution/FAIL-013-search-cwd-drift-and-case-mismatch.yaml +1 -1
- package/core/.failure/tools/README.md +9 -227
- package/core/.formation/bifrost/launch.js +1 -6
- package/core/.formation/bifrost/launch.test.js +1 -1
- package/core/.formation/bifrost/shared/ansuz-boot-policy.js +3 -3
- package/core/.formation/bifrost/shared/ansuz-boot-policy.test.js +1 -2
- package/core/.formation/tools/__tests__/arms.test.js +41 -0
- package/core/.formation/tools/__tests__/diagnose-bug.test.js +10 -0
- package/core/.formation/tools/__tests__/m1-hmap-convid.test.js +1 -124
- package/core/.formation/tools/arms.js +48 -0
- package/core/.formation/tools/dispatch.js +24 -15
- package/core/.formation/tools/kenaz-stats.js +32 -8
- package/core/.formation/tools/kenaz-stats.test.js +15 -2
- package/core/.formation/tools/loader.js +17 -140
- package/core/.formation/tools/post-complete.js +0 -31
- package/core/.formation/tools/prompt.js +16 -1
- package/core/.formation/tools/prompt.test.js +20 -0
- package/core/.rule/INDEX.yaml +0 -18
- package/core/.rule/general/agent-workflow.yaml +14 -164
- package/core/.rule/general/project-self-containment.yaml +8 -19
- package/core/.rule/general/rust-verify-target.yaml +6 -5
- package/core/.rule/general/synapse-code-intelligence.yaml +3 -3
- package/core/.specialist/Amelia/capability.yaml +12 -12
- package/core/.specialist/Amelia/workflow.yaml +2 -2
- package/core/.specialist/Ansuz/SYSTEM_DOC.md +20 -578
- package/core/.specialist/Ansuz/cognitive_principles.yaml +2 -3
- package/core/.specialist/Ansuz/concepts/boot_rules_summary.yaml +0 -1
- package/core/.specialist/Ansuz/concepts/deep_knowledge_pointers.yaml +1 -2
- package/core/.specialist/Ansuz/core.yaml +6 -108
- package/core/.specialist/Ansuz/guards/lesson_guards.yaml +0 -3
- package/core/.specialist/Ansuz/identity_contract.yaml +0 -1
- package/core/.specialist/Ansuz/knowledge.yaml +0 -4
- package/core/.specialist/Ansuz/rule.yaml +0 -1
- package/core/.specialist/Ansuz/tools/handoff-session-identity.test.js +6 -150
- package/core/.specialist/tests/runtime-discovery/README.md +1 -1
- package/core/.specialist/tools/__tests__/task-2374-usage-counter.test.js +1 -12
- package/core/.specialist/tools/ansuz-boot-fast.js +7 -4
- package/core/.specialist/tools/ansuz-boot-fast.test.js +10 -3
- package/core/.specialist/tools/prompt-files.test.js +1 -0
- package/core/.specialist/tools/task-bridge.js +1 -66
- package/core/.system/README.md +11 -552
- package/core/.system/collaboration/README.md +10 -174
- package/core/CLAUDE.md +1 -6
- package/core/KENAZ_CORE_VERSION +1 -1
- package/core/dev/scripts/js-yaml-resolution.test.js +1 -1
- package/core/dev/scripts/peer-identity-e2e.js +402 -0
- package/core/dev/scripts/peer-identity-e2e.md +47 -0
- package/core/dev/scripts/relay-admin.js +94 -0
- package/core/dev/scripts/relay-admin.test.js +131 -0
- package/core/dev/scripts/run-rust-tests.js +9 -45
- package/core/dev/scripts/rust-verify-worktree.js +4 -4
- package/core/dev/scripts/verify-target-dir.js +6 -6
- package/core/plugins/kenaz/INVENTORY.md +8 -8
- package/core/plugins/kenaz/README.md +10 -0
- package/core/plugins/kenaz/commands/architect.md +1 -2
- package/core/plugins/kenaz/commands/spec.md +1 -1
- package/core/plugins/kenaz/commands//347/224/242/345/223/201.md +1 -1
- package/core/plugins/kenaz/guidance.md +1 -1
- package/core/plugins/kenaz/hooks/kenaz-hook.js +2 -1
- package/core/plugins/kenaz/hooks/sdk-gate.js +9 -0
- package/core/plugins/kenaz/scripts/kenaz.test.js +15 -3
- package/core/plugins/kenaz/scripts/sync.js +1 -1
- package/core/plugins/kenaz/scripts/ygg.js +8 -0
- package/core/plugins/kenaz/scripts/ygg.test.js +72 -0
- package/core/plugins/kenaz/skills/architect_agent/SKILL.md +11 -92
- package/core/plugins/kenaz/skills/assessment_agent/SKILL.md +0 -1
- package/core/plugins/kenaz/skills/backend_engineer/SKILL.md +3 -6
- package/core/plugins/kenaz/skills/code_reviewer/SKILL.md +1 -1
- package/core/plugins/kenaz/skills/code_reviewer/patterns.yaml +1 -1
- package/core/plugins/kenaz/skills/designer/SKILL.md +3 -6
- package/core/plugins/kenaz/skills/dev_agent/SKILL.md +30 -491
- package/core/plugins/kenaz/skills/developer/SKILL.md +3 -6
- package/core/plugins/kenaz/skills/feature_agent/SKILL.md +3 -17
- package/core/plugins/kenaz/skills/product_manager/SKILL.md +29 -1064
- package/core/plugins/kenaz/skills/qa_engineer/SKILL.md +12 -17
- package/core/plugins/kenaz/skills/spec_optimizer/SKILL.md +25 -275
- package/core/plugins/kenaz/skills/sre_agent/SKILL.md +3 -6
- package/core/plugins/kenaz-peer/hooks/register.test.ts +32 -0
- package/core/plugins/kenaz-peer/hooks/register.ts +9 -0
- package/package.json +6 -6
- package/core/.claude/commands/archive.md +0 -24
- package/core/.claude/commands/init.md +0 -112
- package/core/.claude/commands/legacy_dev.md +0 -18
- package/core/.claude/commands/product-review.md +0 -131
- package/core/.claude/commands/strategy.md +0 -141
- package/core/.claude/commands/sunny.md +0 -1
- package/core/.claude/commands//347/224/242/345/223/201/346/252/242/350/246/226.md +0 -129
- package/core/.claude/commands//351/200/262/345/272/246.md +0 -15
- package/core/.claude/hooks/__tests__/substrate.test.js +0 -122
- package/core/.claude/hooks/_substrate-paths.js +0 -95
- package/core/.claude/hooks/context-check.js +0 -51
- package/core/.claude/hooks/fatigue-check.js +0 -52
- package/core/.claude/hooks/handoff-snapshot-on-commit.js +0 -154
- package/core/.claude/hooks/handoff-snapshot-on-question.js +0 -158
- package/core/.claude/hooks/handoff-staleness.js +0 -197
- package/core/.claude/hooks/jev-thalamus-context.js +0 -17
- package/core/.claude/hooks/jev-thalamus-context.test.js +0 -41
- package/core/.claude/hooks/lease-release.js +0 -119
- package/core/.claude/hooks/lease-touch.js +0 -96
- package/core/.claude/hooks/reflex-feedback.js +0 -5
- package/core/.claude/hooks/session-init.ps1 +0 -49
- package/core/.claude/hooks/sound-event.js +0 -70
- package/core/.claude/hooks/sound-event.sh +0 -37
- package/core/.claude/hooks/stream-delta.js +0 -169
- package/core/.claude/no-hooks.settings.json +0 -3
- package/core/.claude/skills/legacy_dev/SKILL.md +0 -202
- package/core/.claude/skills/sunny/SKILL.md +0 -74
- package/core/.collaboration/cli/commands/assign.js +0 -39
- package/core/.collaboration/cli/commands/claim.js +0 -33
- package/core/.collaboration/cli/commands/complete.js +0 -44
- package/core/.collaboration/cli/commands/create.js +0 -110
- package/core/.collaboration/cli/commands/get.js +0 -83
- package/core/.collaboration/cli/commands/index.js +0 -52
- package/core/.collaboration/cli/commands/list.js +0 -51
- package/core/.collaboration/cli/commands/lock.js +0 -45
- package/core/.collaboration/cli/commands/rebuild.js +0 -39
- package/core/.collaboration/cli/commands/search.js +0 -61
- package/core/.collaboration/cli/commands/stats.js +0 -61
- package/core/.collaboration/cli/commands/transfer.js +0 -41
- package/core/.collaboration/cli/commands/unlock.js +0 -48
- package/core/.collaboration/cli/formatters/help-formatter.js +0 -70
- package/core/.collaboration/cli/formatters/index.js +0 -7
- package/core/.collaboration/cli/task-cli.js +0 -46
- package/core/.collaboration/cli/utils/arg-parser.js +0 -74
- package/core/.collaboration/cli/utils/git-user.js +0 -25
- package/core/.collaboration/cli/utils/index.js +0 -9
- package/core/.collaboration/cli/utils/output.js +0 -10
- package/core/.collaboration/config/default.yaml +0 -189
- package/core/.collaboration/core/conflict-resolver.js +0 -461
- package/core/.collaboration/core/conflict-resolver.test.js +0 -389
- package/core/.collaboration/core/migrate-legacy.js +0 -260
- package/core/.collaboration/docs/API.md +0 -787
- package/core/.collaboration/docs/ARCHITECTURE.md +0 -596
- package/core/.collaboration/docs/FAQ.md +0 -695
- package/core/.collaboration/docs/MIGRATION.md +0 -804
- package/core/.collaboration/docs/examples/README.md +0 -320
- package/core/.collaboration/docs/examples/advanced-queries.js +0 -261
- package/core/.collaboration/docs/examples/basic-usage.js +0 -184
- package/core/.collaboration/docs/examples/team-workflow.js +0 -352
- package/core/.failure/agent-execution/FAIL-001-agent-no-output.yaml +0 -391
- package/core/.failure/agent-execution/FAIL-007-pm-lead-wrong-team-invocation.yaml +0 -0
- package/core/.failure/agent-execution/FAIL-010-phase0-poem-format-skipped.yaml +0 -28
- package/core/.failure/agent-execution/FAIL-010-skipping-cognitive-checkpoint-after-verification.yaml +0 -59
- package/core/.failure/agent-execution/FAIL-012-grep-shortcut-during-investigation.yaml +0 -85
- package/core/.failure/architecture/FAIL-006-python-version-compatibility.yaml +0 -445
- package/core/.failure/pipeline/FAIL-003-queue-pollution.yaml +0 -335
- package/core/.failure/pipeline/README.md +0 -95
- package/core/.failure/retired/FAIL-009-skipping-synapse-pulse-before-code-change.yaml +0 -49
- package/core/.failure/tools/USAGE_GUIDE.md +0 -323
- package/core/.failure/tools/check_failures.ps1 +0 -387
- package/core/.failure/tools/log_failure.ps1 +0 -474
- package/core/.formation/.episode-input.json +0 -10
- package/core/.formation/.merge-lock +0 -1
- package/core/.formation/lead.yaml +0 -118
- package/core/.formation/legacy.bak/designer.yaml +0 -57
- package/core/.formation/legacy.bak/pm.yaml +0 -57
- package/core/.formation/legacy.bak/qa.yaml +0 -57
- package/core/.formation/legacy.bak/review.yaml +0 -62
- package/core/.formation/legacy.bak/scheduler.yaml +0 -129
- package/core/.formation/legacy.bak/sre.yaml +0 -57
- package/core/.formation/role-map.yaml +0 -274
- package/core/.formation/roles/_shared/modules/code_review.yaml +0 -98
- package/core/.formation/roles/_shared/modules/security.yaml +0 -103
- package/core/.formation/roles/_shared/modules/testing.yaml +0 -14
- package/core/.formation/roles/backend/role.yaml +0 -93
- package/core/.formation/roles/code_reviewer/role.yaml +0 -102
- package/core/.formation/roles/database_optimizer/role.yaml +0 -107
- package/core/.formation/roles/designer/role.yaml +0 -66
- package/core/.formation/roles/developer/role.yaml +0 -75
- package/core/.formation/roles/frontend/role.yaml +0 -134
- package/core/.formation/roles/incident_response/role.yaml +0 -89
- package/core/.formation/roles/qa/role.yaml +0 -89
- package/core/.formation/roles/security/role.yaml +0 -87
- package/core/.formation/roles/sre/role.yaml +0 -66
- package/core/.formation/skills/coordinator.yaml +0 -52
- package/core/.formation/solo/diagnosis.yaml +0 -78
- package/core/.formation/solo/strategy.yaml +0 -121
- package/core/.formation/tests/hello.txt +0 -2
- package/core/.formation/tools/coordinator.js +0 -350
- package/core/.formation/tools/jev-correction.js +0 -214
- package/core/.formation/tools/jev-correction.test.js +0 -178
- package/core/.formation/tools/log-reader.js +0 -232
- package/core/.formation/tools/revert-daemon-state.js +0 -162
- package/core/.formation/tools/test-drift.js +0 -148
- package/core/.formation/unit/heimdall.yaml +0 -96
- package/core/.formation/unit/plan.yaml +0 -67
- package/core/.formation/unit/think.yaml +0 -58
- package/core/.kenaz/MUNINN_SNAPSHOT9_EPISODE.json +0 -32
- package/core/.kenaz/MUNINN_SNAPSHOT9_RUNE.json +0 -23
- package/core/.kenaz/MUNINN_SNAPSHOT9_SUMMARY.md +0 -89
- package/core/.kenaz/ash_TASK_1428-20260507.json +0 -14
- package/core/.kenaz/muninn_episode_write.ps1 +0 -17
- package/core/.kenaz/muninn_snapshot11_rune_candidates.md +0 -63
- package/core/.kenaz/muninn_snapshot1_rune_candidates.md +0 -49
- package/core/.kenaz/runes_TASK_1428.json +0 -57
- package/core/.kenaz/tmp_heimdall_proposal_8d3e392.json +0 -13
- package/core/.kenaz/tmp_props.json +0 -1
- package/core/.kenaz/tmp_sounddrop_t1_prompt.txt +0 -371
- package/core/.rule/MECHANIZED.md +0 -61
- package/core/.rule/general/cortex-memory-recall.yaml +0 -446
- package/core/.rule/general/pipeline.yaml +0 -246
- package/core/.rule/general/sunny-access-control.yaml +0 -60
- package/core/.rule/general/system-invariants.yaml +0 -231
- package/core/.rule/pipeline/PPL-002-completed-task-archival.yaml +0 -528
- package/core/.rule/pipeline/auto-update.yaml +0 -282
- package/core/.rule/pipeline/task-execution.yaml +0 -365
- package/core/.specialist/Ansuz/concepts/phase_protocol.yaml +0 -65
- package/core/.specialist/Ansuz/experiments/boot_ablation_replay.js +0 -197
- package/core/.specialist/Ansuz/tools/bootstrap-anchors.js +0 -289
- package/core/.specialist/Ansuz/workflow.yaml +0 -1225
- package/core/.specialist/experiments/rg_benchmark.js +0 -523
- package/core/.specialist/experiments/rg_benchmark_results.json +0 -27
- package/core/.specialist/tools/jev-optional-context.js +0 -107
- package/core/.specialist/tools/jev-optional-context.test.js +0 -152
- package/core/.specialist/tools/memory-action-log.js +0 -839
- package/core/.specialist/tools/phase-gate.js +0 -3534
- package/core/.specialist/tools/phase-gate.test.js +0 -85
- package/core/.specialist/tools/precompute-runner.js +0 -444
- package/core/.specialist/tools/rule-engine.js +0 -621
- package/core/.specialist/tools/task-bridge-jev.test.js +0 -170
- package/core/.synapse/memory-shared.json.sync +0 -1
- package/core/.system/agent-skills/README.md +0 -724
- package/core/.system/cli-tools/README.md +0 -724
- package/core/.system/cortex/MODULES.md +0 -1046
- package/core/.system/dashboard/FRONTEND.md +0 -812
- package/core/.system/dashboard/README.md +0 -737
- package/core/.system/failure/README.md +0 -723
- package/core/.system/formation/LEGACY_SKILLS.md +0 -974
- package/core/.system/formation/POST_COMPLETE.md +0 -602
- package/core/.system/formation/README.md +0 -1094
- package/core/.system/formation/TOOLS_REFERENCE.md +0 -1145
- package/core/.system/kenaz/README.md +0 -787
- package/core/.system/memory/README.md +0 -719
- package/core/.system/pipeline/README.md +0 -712
- package/core/.system/rule/README.md +0 -794
- package/core/.system/sunny/README.md +0 -476
- package/core/.system/sunny/RULES.json +0 -89
- package/core/.system/sunny/knowledge/INDEX.md +0 -37
- package/core/.system/sunny/knowledge/agent-teams-api.md +0 -0
- package/core/.system/sunny/knowledge/ansuz-specialist.md +0 -500
- package/core/.system/sunny/knowledge/claude-cli-spawn.md +0 -177
- package/core/.system/sunny/knowledge/collaboration-api.md +0 -925
- package/core/.system/sunny/teammates/README.md +0 -107
- package/core/.system/sunny/teammates/how_to_use.yaml +0 -101
- package/core/.system/sunny/teammates/tools/headless/launcher.js +0 -318
- package/core/.system/sunny/teammates/tools/powershell/launcher.js +0 -241
- package/core/.system/sunny/teammates/tools/powershell/start.bat +0 -50
- package/core/.system/sunny/teammates/tools/utils/env.js +0 -96
- package/core/.system/sunny/teammates/tools/utils/format-output.js +0 -329
- package/core/.system/sunny/tools.json +0 -101
- package/core/dev/scripts/cleanup-queue.js +0 -184
- package/core/dev/scripts/cleanup_queue.js +0 -86
- package/core/dev/scripts/legacy/README.md +0 -39
- package/core/dev/scripts/legacy/dev_agent_scheduler.ps1.bak +0 -536
- package/core/dev/scripts/legacy/multi_agent_scheduler.ps1.bak +0 -1978
- package/core/dev/scripts/matrix/CLI_README.md +0 -214
- package/core/dev/scripts/matrix/README.md +0 -310
- package/core/dev/scripts/matrix/package-lock.json +0 -4266
- package/core/dev/scripts/matrix/package.json +0 -55
- package/core/dev/scripts/matrix/src/abbreviations.ts +0 -295
- package/core/dev/scripts/matrix/src/cli/commands/convert.ts +0 -211
- package/core/dev/scripts/matrix/src/cli/commands/create.ts +0 -95
- package/core/dev/scripts/matrix/src/cli/commands/delete.ts +0 -102
- package/core/dev/scripts/matrix/src/cli/commands/list-tags.ts.wip +0 -140
- package/core/dev/scripts/matrix/src/cli/commands/manage-tags.ts.wip +0 -173
- package/core/dev/scripts/matrix/src/cli/commands/query.ts +0 -261
- package/core/dev/scripts/matrix/src/cli/commands/read.ts +0 -77
- package/core/dev/scripts/matrix/src/cli/commands/stats.ts.wip +0 -168
- package/core/dev/scripts/matrix/src/cli/commands/tokens.ts.wip +0 -126
- package/core/dev/scripts/matrix/src/cli/commands/update.ts +0 -147
- package/core/dev/scripts/matrix/src/cli/commands/validate.ts +0 -275
- package/core/dev/scripts/matrix/src/cli/index.ts +0 -350
- package/core/dev/scripts/matrix/src/cli/utils/file-handler.ts +0 -72
- package/core/dev/scripts/matrix/src/cli/utils/logger.ts +0 -65
- package/core/dev/scripts/matrix/src/index.ts +0 -62
- package/core/dev/scripts/matrix/src/indexer/tag-indexer.ts +0 -165
- package/core/dev/scripts/matrix/src/parser.ts +0 -281
- package/core/dev/scripts/matrix/src/serializer.ts +0 -151
- package/core/dev/scripts/matrix/src/validator.ts +0 -301
- package/core/dev/scripts/matrix/tests/abbreviations.test.ts +0 -122
- package/core/dev/scripts/matrix/tests/cli.test.ts +0 -177
- package/core/dev/scripts/matrix/tests/convert.test.ts +0 -143
- package/core/dev/scripts/matrix/tests/parser.test.ts +0 -203
- package/core/dev/scripts/matrix/tests/query.test.ts +0 -85
- package/core/dev/scripts/matrix/tests/serializer.test.ts +0 -197
- package/core/dev/scripts/matrix/tests/validate.test.ts +0 -141
- package/core/dev/scripts/matrix/tests/validator.test.ts +0 -167
- package/core/dev/scripts/matrix/tsconfig.json +0 -20
- package/core/dev/scripts/matrix/types/index.d.ts +0 -111
- package/core/dev/scripts/matrix/types/index.d.ts.map +0 -1
- package/core/dev/scripts/matrix/types/index.js +0 -8
- package/core/dev/scripts/matrix/types/index.js.map +0 -1
- package/core/dev/scripts/matrix/types/index.ts +0 -124
- package/core/dev/scripts/memory-usage-report.js +0 -152
- package/core/dev/scripts/probe/ansuz-scaffold-ablation.js +0 -579
- package/core/dev/scripts/probe/ansuz-scaffold-ablation.test.js +0 -244
- package/core/dev/scripts/probe/hook-latency-probe.js +0 -315
- package/core/dev/scripts/probe/hook-latency-probe.test.js +0 -105
- package/core/dev/scripts/probe/prediction-signal-auc.js +0 -483
- package/core/dev/scripts/probe/prediction-signal-auc.test.js +0 -200
- package/core/dev/scripts/test-pty-ws-tunnel.js +0 -229
- package/core/dev/scripts/validate_pipeline.js +0 -197
- package/core/dev/spikes/task2145-evidence-20261004/backend-log-excerpt.txt +0 -56
- package/core/dev/spikes/task2145-evidence-20261004/graph.shadow +0 -0
- package/core/dev/spikes/task2145-evidence-20261004/graph.wal +0 -0
- package/core/dev/spikes/task2145-evidence-20261004/graph_corrupt_suspect.marker +0 -1
- package/core/plugins/kenaz/commands/strategy.md +0 -141
|
@@ -78,7 +78,7 @@ description: QA Lead(溝通者)- 測試策略、團隊調度、品質保證
|
|
|
78
78
|
|
|
79
79
|
**你的操作**:
|
|
80
80
|
1. 讀取 `dev/PRODUCT_SPEC.md` - 了解專案規格
|
|
81
|
-
2. 讀取相關任務文件(`
|
|
81
|
+
2. 讀取相關任務文件(`node "${CLAUDE_PLUGIN_ROOT}/hooks/core-resolve.js" .collaboration/core/task-api.js get TASK_XXX`)- 了解驗收標準
|
|
82
82
|
3. 讀取 `.failure/INDEX.yaml` - 檢查相關失敗模式(AGT-005 規則)
|
|
83
83
|
|
|
84
84
|
**CLI 匯報格式**:
|
|
@@ -156,14 +156,14 @@ description: QA Lead(溝通者)- 測試策略、團隊調度、品質保證
|
|
|
156
156
|
4. 搜尋相關代碼(Grep `backend/` 或 `src/`)
|
|
157
157
|
5. 檢查 API 文檔(Read `dev/API_SPEC.md`)
|
|
158
158
|
6. 查閱歷史缺陷(Grep `dev/BUG_LIST.md`)
|
|
159
|
-
7.
|
|
159
|
+
7. 查閱類似任務(`task-api.js search KEYWORD`)
|
|
160
160
|
|
|
161
161
|
**CLI 匯報格式**:
|
|
162
162
|
```
|
|
163
163
|
🔍 背景調研
|
|
164
164
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
165
165
|
相關 Feature: F-XXX
|
|
166
|
-
驗收標準:
|
|
166
|
+
驗收標準: `task-api.js get TASK_XXX`
|
|
167
167
|
現有測試: tests/test_user_service.py
|
|
168
168
|
測試覆蓋率: 65%(需提升至 80%)
|
|
169
169
|
相關代碼: backend/services/user_service.py
|
|
@@ -735,10 +735,10 @@ Agent 類型根據缺陷性質分配(後端 bug→backend, 前端 bug→fronte
|
|
|
735
735
|
|
|
736
736
|
```bash
|
|
737
737
|
# 讀取新建立的任務文件
|
|
738
|
-
|
|
738
|
+
node "${CLAUDE_PLUGIN_ROOT}/hooks/core-resolve.js" .collaboration/core/task-api.js list --status backlog | grep fix
|
|
739
739
|
|
|
740
|
-
#
|
|
741
|
-
|
|
740
|
+
# 確認任務卡已建立
|
|
741
|
+
node "${CLAUDE_PLUGIN_ROOT}/hooks/core-resolve.js" .collaboration/core/task-api.js search fix
|
|
742
742
|
```
|
|
743
743
|
|
|
744
744
|
#### 10.5 最終匯報
|
|
@@ -757,8 +757,7 @@ cat dev/pipeline/TASK_QUEUE.json | grep "fix" -A 5
|
|
|
757
757
|
| TASK_204 | 缺少 rate limiting | backend | P1 |
|
|
758
758
|
|
|
759
759
|
Pipeline 已更新:
|
|
760
|
-
✓
|
|
761
|
-
✓ PROGRESS.md
|
|
760
|
+
✓ 任務卡(+4 修復任務)
|
|
762
761
|
|
|
763
762
|
Issue Report: dev/qa/QA_ISSUES_20260215_143000.md
|
|
764
763
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -875,7 +874,7 @@ Issue Report: dev/qa/QA_ISSUES_20260215_143000.md
|
|
|
875
874
|
🔍 背景調研
|
|
876
875
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
877
876
|
相關 Feature: F-003(用戶系統)
|
|
878
|
-
驗收標準:
|
|
877
|
+
驗收標準: `task-api.js get TASK_089`
|
|
879
878
|
現有測試: 無
|
|
880
879
|
測試覆蓋率: 0%(需建立測試)
|
|
881
880
|
相關代碼: backend/services/auth_service.py
|
|
@@ -981,8 +980,7 @@ Task(
|
|
|
981
980
|
| TASK_204 | 缺少 rate limiting | backend | P1 |
|
|
982
981
|
|
|
983
982
|
Pipeline 已更新:
|
|
984
|
-
✓
|
|
985
|
-
✓ PROGRESS.md
|
|
983
|
+
✓ 任務卡(+4 修復任務)
|
|
986
984
|
|
|
987
985
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
988
986
|
下一步: 執行 `/Ansuz` 派工修復,完成後 `/qa` 回歸測試
|
|
@@ -1246,12 +1244,9 @@ QA Team 將遵循以下規範(參考 `.rule/code/` 規則):
|
|
|
1246
1244
|
|
|
1247
1245
|
執行任務前,檢查相關失敗模式(遵循 AGT-005 規則):
|
|
1248
1246
|
|
|
1249
|
-
```
|
|
1250
|
-
#
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
# 檢查測試相關失敗模式
|
|
1254
|
-
.\.failure\tools\check_failures.ps1 -ScopePath "tests/"
|
|
1247
|
+
```bash
|
|
1248
|
+
# 讀索引,再 Grep 與任務 scope 相關的失敗記錄
|
|
1249
|
+
Grep pattern="tests|關鍵字" path=".failure/"
|
|
1255
1250
|
```
|
|
1256
1251
|
|
|
1257
1252
|
**常見失敗模式**:
|
|
@@ -4,296 +4,46 @@ aliases:
|
|
|
4
4
|
- 規格優化
|
|
5
5
|
- spec
|
|
6
6
|
- optimizer
|
|
7
|
-
description: 專案規格優化、文件整理、知識沉澱專家。根據 .failure、.
|
|
7
|
+
description: 專案規格優化、文件整理、知識沉澱專家。根據 .failure、.rule 與任務卡進行系統性改良。
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Spec Optimizer Agent
|
|
11
11
|
|
|
12
12
|
## 角色
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
規格優化與知識管理專家:提升規格品質、整理開發經驗、優化文件。
|
|
15
15
|
|
|
16
16
|
## 核心職責
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- 識別規格漂移(Spec Drift)
|
|
23
|
-
|
|
24
|
-
### 2. 文件整理
|
|
25
|
-
- 更新 `.memory/CONTEXT.md`(專案概況)
|
|
26
|
-
- 更新 `C:/Users/User/.claude/projects/.../memory/MEMORY.md`(個人教訓)
|
|
27
|
-
- 整理 `dev/pipeline/PROGRESS.md`
|
|
28
|
-
- 維護 `.rule/` 規則庫
|
|
29
|
-
|
|
30
|
-
### 3. 知識沉澱
|
|
31
|
-
- 從 `.failure/` 提取失敗經驗
|
|
32
|
-
- 將重複失敗模式提升為 `.rule/` 規則
|
|
33
|
-
- 記錄關鍵決策和權衡(ADR)
|
|
34
|
-
- 建立最佳實踐文件
|
|
35
|
-
|
|
36
|
-
### 4. 系統改良
|
|
37
|
-
- 分析工作流程瓶頸
|
|
38
|
-
- 提出改進建議
|
|
39
|
-
- 優化 Agent 協作流程
|
|
40
|
-
- 建立自動化腳本
|
|
41
|
-
|
|
42
|
-
## 技能
|
|
43
|
-
|
|
44
|
-
* **文件撰寫**:清晰、結構化的技術文件
|
|
45
|
-
* **知識管理**:分類、索引、檢索優化
|
|
46
|
-
* **模式識別**:從失敗中發現規律
|
|
47
|
-
* **規格設計**:Feature ID、驗收標準、追溯性
|
|
48
|
-
* **流程優化**:識別瓶頸、自動化機會
|
|
18
|
+
1. **規格優化**:審查 `dev/PRODUCT_SPEC.md`;確保 Feature ID(F-XXX)完整;驗證規格與實作一致;識別規格漂移。
|
|
19
|
+
2. **文件整理**:維護 `.rule/` 規則庫與 `.failure/` 失敗索引;更新 PRODUCT_SPEC 的 Feature 狀態。
|
|
20
|
+
3. **知識沉澱**:重複出現的失敗提升為規則;教訓用 `kenaz learn add` 或 Claude 原生記憶檔。
|
|
21
|
+
4. **系統改良**:找出文件間不一致、過期描述並修正。
|
|
49
22
|
|
|
50
23
|
## 工作流程
|
|
51
24
|
|
|
52
|
-
###
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- `dev/PRODUCT_SPEC.md`(了解專案規格)
|
|
59
|
-
- `dev/pipeline/PROGRESS.md`(了解最新進度)
|
|
60
|
-
- `.memory/CONTEXT.md`(了解專案現狀)
|
|
61
|
-
- `.failure/INDEX.yaml`(了解失敗記錄)
|
|
62
|
-
|
|
63
|
-
2. 識別待處理事項:
|
|
64
|
-
- 哪些 Feature 已完成但未更新狀態?
|
|
65
|
-
- 哪些失敗模式重複出現(需要提升為規則)?
|
|
66
|
-
- 哪些記憶點需要更新?
|
|
67
|
-
- 哪些文件缺失或過時?
|
|
68
|
-
|
|
69
|
-
3. 提出整理計劃:
|
|
70
|
-
```
|
|
71
|
-
發現以下待整理事項:
|
|
72
|
-
1. PRODUCT_SPEC.md - F-007 狀態需更新為 completed
|
|
73
|
-
2. MEMORY.md - 缺少 2/4-2/5 的開發教訓
|
|
74
|
-
3. .failure/ - FAIL-003 重複出現,建議提升為規則
|
|
75
|
-
|
|
76
|
-
預估時間:30 分鐘
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### 階段 2:執行整理
|
|
80
|
-
|
|
81
|
-
**優先順序**:
|
|
82
|
-
1. **Critical**:規格漂移修正、嚴重失敗記錄
|
|
83
|
-
2. **High**:MEMORY.md 更新、重要決策記錄
|
|
84
|
-
3. **Medium**:CONTEXT.md 更新、文件格式優化
|
|
85
|
-
4. **Low**:錦上添花的改進
|
|
86
|
-
|
|
87
|
-
**執行原則**:
|
|
88
|
-
- ✅ 保持文件簡潔(CONTEXT.md < 100 行)
|
|
89
|
-
- ✅ 使用結構化格式(Markdown 表格、清單)
|
|
90
|
-
- ✅ 提供可執行範例(程式碼片段、指令)
|
|
91
|
-
- ✅ 記錄時間戳和來源
|
|
92
|
-
- ✅ 交叉引用相關文件
|
|
93
|
-
|
|
94
|
-
**範例輸出**:
|
|
95
|
-
|
|
96
|
-
#### 更新 MEMORY.md
|
|
97
|
-
```markdown
|
|
98
|
-
## .failure 系統 (2026-02-05)
|
|
99
|
-
|
|
100
|
-
### 系統建立完成
|
|
101
|
-
- 五大分類:Agent 執行、代碼品質、架構、Pipeline、數據完整性
|
|
102
|
-
- 三個初始失敗記錄:FAIL-001, FAIL-002, FAIL-003
|
|
103
|
-
- 自動化工具:check_failures.ps1, log_failure.ps1, fix_json.js
|
|
104
|
-
|
|
105
|
-
### 關鍵學習
|
|
106
|
-
1. **JSON BOM 問題**(FAIL-002):Windows 編輯器會加 BOM,導致解析失敗
|
|
107
|
-
- 解決:使用 fix_json.js 自動移除
|
|
108
|
-
2. **Queue 污染問題**(FAIL-003):Scheduler 從 completed/ 同步導致
|
|
109
|
-
- 解決:改為手動封存(/archive 指令)
|
|
110
|
-
```
|
|
25
|
+
### 1. 評估現狀
|
|
26
|
+
讀取:
|
|
27
|
+
* `dev/PRODUCT_SPEC.md`
|
|
28
|
+
* `.failure/INDEX.yaml`(失敗模式索引)
|
|
29
|
+
* `.rule/INDEX.yaml`(規則索引)
|
|
30
|
+
* 任務狀態:`node "${CLAUDE_PLUGIN_ROOT}/hooks/core-resolve.js" .collaboration/core/task-api.js stats`、`list --status done`
|
|
111
31
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
32
|
+
### 2. 執行整理
|
|
33
|
+
* 更新 PRODUCT_SPEC.md 中已完成 Feature 的狀態
|
|
34
|
+
* 失敗模式在 INDEX 中補齊或標為 retired;重複 2 次以上的提升為 `.rule/` 規則
|
|
35
|
+
* 清除過期文件描述(指向已刪除檔案、已退役系統的段落)
|
|
115
36
|
|
|
116
|
-
|
|
117
|
-
|------|------|------|
|
|
118
|
-
| 錯誤學習系統 (.failure/) | ✅ | 五分類、三失敗記錄、自動化工具 |
|
|
119
|
-
| 手動記憶點封存 (/archive) | ✅ | 取代自動清理,用戶控制 |
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
#### 更新 PRODUCT_SPEC.md
|
|
123
|
-
```yaml
|
|
124
|
-
# F-007: 錯誤學習系統 (.failure)
|
|
125
|
-
- Status: completed ✅
|
|
126
|
-
- Completed: 2026-02-05
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### 階段 3:驗證品質
|
|
130
|
-
|
|
131
|
-
**檢查清單**:
|
|
132
|
-
- [ ] 所有 Markdown 語法正確
|
|
133
|
-
- [ ] 程式碼範例可執行
|
|
134
|
-
- [ ] 時間戳記錄完整
|
|
135
|
-
- [ ] 交叉引用連結有效
|
|
136
|
-
- [ ] 文件長度適中(< 200 行警告)
|
|
137
|
-
- [ ] 結構清晰(標題層級正確)
|
|
138
|
-
|
|
139
|
-
**驗證方法**:
|
|
37
|
+
### 3. 驗證品質
|
|
140
38
|
```bash
|
|
141
|
-
#
|
|
142
|
-
markdownlint .memory/*.md
|
|
143
|
-
|
|
144
|
-
# 驗證 JSON 文件
|
|
145
|
-
node .failure/tools/validate_json.js dev/pipeline/TASK_QUEUE.json
|
|
146
|
-
|
|
147
|
-
# 檢查文件大小
|
|
148
|
-
wc -l .memory/CONTEXT.md
|
|
39
|
+
node .failure/tools/validate_json.js <json 檔> # 若有 JSON 檔需驗證
|
|
149
40
|
```
|
|
41
|
+
確認被修改的文件沒有指向不存在的路徑(Grep 驗證)。
|
|
150
42
|
|
|
151
|
-
###
|
|
152
|
-
|
|
153
|
-
**格式**:
|
|
154
|
-
```
|
|
155
|
-
## ✅ 整理完成
|
|
156
|
-
|
|
157
|
-
### 更新的文件
|
|
158
|
-
1. .memory/CONTEXT.md - 新增 .failure 系統、/archive 指令
|
|
159
|
-
2. MEMORY.md - 新增 2/4-2/5 開發教訓章節
|
|
160
|
-
3. dev/PRODUCT_SPEC.md - F-007 標記為 completed
|
|
161
|
-
|
|
162
|
-
### 關鍵改進
|
|
163
|
-
- 記錄了 .failure 系統的完整建立過程
|
|
164
|
-
- 沉澱了 JSON BOM、Queue 污染的解決方案
|
|
165
|
-
- 更新了專案現狀,新 Agent 可快速理解
|
|
166
|
-
|
|
167
|
-
### 建議下一步
|
|
168
|
-
- 考慮將 FAIL-003 提升為 PPL-003 規則(已重複 2 次)
|
|
169
|
-
- 定期執行 /archive 清理 Queue
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## 文件路徑索引
|
|
175
|
-
|
|
176
|
-
### 必讀文件
|
|
177
|
-
| 路徑 | 用途 | 更新頻率 |
|
|
178
|
-
|------|------|---------|
|
|
179
|
-
| `dev/PRODUCT_SPEC.md` | 產品規格與 Feature 狀態 | 每個 Feature 完成時 |
|
|
180
|
-
| `.memory/CONTEXT.md` | 專案概況(< 100 行) | 每週或重大變更時 |
|
|
181
|
-
| `C:/Users/User/.claude/.../MEMORY.md` | 個人教訓與最佳實踐 | 每次遇到新問題時 |
|
|
182
|
-
| `dev/pipeline/PROGRESS.md` | 任務進度追蹤 | 每次任務狀態變更 |
|
|
183
|
-
|
|
184
|
-
### 參考文件
|
|
185
|
-
| 路徑 | 用途 |
|
|
186
|
-
|------|------|
|
|
187
|
-
| `.failure/INDEX.yaml` | 失敗記錄索引 |
|
|
188
|
-
| `.rule/INDEX.yaml` | 規則索引 |
|
|
189
|
-
| `CLAUDE.md` | 專案指導文件 |
|
|
190
|
-
| `.memory/COMPLETED_TASKS.json` | 歷史已完成任務 |
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## 特殊場景處理
|
|
195
|
-
|
|
196
|
-
### 場景 1:新 Agent Session 開始
|
|
197
|
-
**目標**:讓新 Agent 快速理解專案狀態
|
|
198
|
-
|
|
199
|
-
**執行**:
|
|
200
|
-
1. 確保 `.memory/CONTEXT.md` 是最新的
|
|
201
|
-
2. 檢查 `PROGRESS.md` 的 Last Update 時間
|
|
202
|
-
3. 驗證 Feature 狀態與實際一致
|
|
203
|
-
|
|
204
|
-
### 場景 2:重大失敗發生
|
|
205
|
-
**目標**:記錄失敗並防止重複
|
|
206
|
-
|
|
207
|
-
**執行**:
|
|
208
|
-
1. 使用 `.failure/tools/log_failure.ps1` 記錄
|
|
209
|
-
2. 分析是否與現有失敗記錄重複
|
|
210
|
-
3. 如果重複 >= 2 次,提議提升為 `.rule/` 規則
|
|
211
|
-
|
|
212
|
-
### 場景 3:Feature 完成
|
|
213
|
-
**目標**:更新規格狀態
|
|
214
|
-
|
|
215
|
-
**執行**:
|
|
216
|
-
1. 更新 `PRODUCT_SPEC.md` 中的 Feature 狀態
|
|
217
|
-
2. 記錄完成時間
|
|
218
|
-
3. 更新 `CONTEXT.md` 的已完成功能列表
|
|
219
|
-
|
|
220
|
-
### 場景 4:定期維護
|
|
221
|
-
**目標**:保持文件健康
|
|
222
|
-
|
|
223
|
-
**執行**(建議每週一次):
|
|
224
|
-
1. 檢查 `CONTEXT.md` 行數(目標 < 100 行)
|
|
225
|
-
2. 封存舊任務(執行 `/archive`)
|
|
226
|
-
3. 清理過時的記憶點
|
|
227
|
-
4. 驗證所有文件的 Markdown 格式
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## 輸出範本
|
|
232
|
-
|
|
233
|
-
### 快速整理(30 分鐘)
|
|
234
|
-
```markdown
|
|
235
|
-
## 📝 快速整理報告
|
|
236
|
-
|
|
237
|
-
### 更新內容
|
|
238
|
-
1. ✅ CONTEXT.md - 新增 [功能名稱]
|
|
239
|
-
2. ✅ MEMORY.md - 記錄 [日期] 的教訓
|
|
240
|
-
3. ✅ PRODUCT_SPEC.md - 更新 F-XXX 狀態
|
|
241
|
-
|
|
242
|
-
### 關鍵變更
|
|
243
|
-
- [變更 1]
|
|
244
|
-
- [變更 2]
|
|
245
|
-
|
|
246
|
-
### 時間消耗
|
|
247
|
-
- 評估:5 分鐘
|
|
248
|
-
- 執行:20 分鐘
|
|
249
|
-
- 驗證:5 分鐘
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### 完整整理(1-2 小時)
|
|
253
|
-
```markdown
|
|
254
|
-
## 📚 完整整理報告
|
|
255
|
-
|
|
256
|
-
### 執行摘要
|
|
257
|
-
本次整理涵蓋 [日期範圍],更新了 [N] 個文件,記錄了 [N] 個關鍵學習。
|
|
258
|
-
|
|
259
|
-
### 更新文件
|
|
260
|
-
| 文件 | 變更類型 | 說明 |
|
|
261
|
-
|------|---------|------|
|
|
262
|
-
| CONTEXT.md | 新增 | 新功能 X |
|
|
263
|
-
| MEMORY.md | 新增章節 | 失敗教訓 Y |
|
|
264
|
-
| PRODUCT_SPEC.md | 狀態更新 | F-XXX completed |
|
|
265
|
-
|
|
266
|
-
### 關鍵學習
|
|
267
|
-
1. **[學習 1]**:[描述 + 解決方案]
|
|
268
|
-
2. **[學習 2]**:[描述 + 解決方案]
|
|
269
|
-
|
|
270
|
-
### 提升為規則的建議
|
|
271
|
-
- FAIL-XXX → RULE-XXX:[理由]
|
|
272
|
-
|
|
273
|
-
### 下一步建議
|
|
274
|
-
- [ ] [建議 1]
|
|
275
|
-
- [ ] [建議 2]
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
## 注意事項
|
|
281
|
-
|
|
282
|
-
1. **保持簡潔**:CONTEXT.md 務必 < 100 行,過長則分離到其他文件
|
|
283
|
-
2. **時間戳**:所有記憶點必須記錄日期
|
|
284
|
-
3. **可執行**:程式碼範例必須能直接執行
|
|
285
|
-
4. **交叉引用**:相關內容互相連結
|
|
286
|
-
5. **版本控制**:重大變更前先備份
|
|
287
|
-
|
|
288
|
-
## 協作方式
|
|
289
|
-
|
|
290
|
-
**與其他 Agent 的分工**:
|
|
291
|
-
- **Product Manager**:建立任務 → Spec Optimizer 更新規格
|
|
292
|
-
- **Dev Agent**:完成開發 → Spec Optimizer 記錄經驗
|
|
293
|
-
- **QA Engineer**:發現 Bug → Spec Optimizer 記錄失敗模式
|
|
43
|
+
### 4. 輸出總結
|
|
44
|
+
列出:更新的文件、關鍵改進、建議下一步。
|
|
294
45
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
- 定期維護(建議每週)
|
|
46
|
+
## 特殊場景
|
|
47
|
+
* **重大失敗發生**:先記錄到 `.failure/`,再評估是否提升為規則。
|
|
48
|
+
* **Feature 完成**:更新 PRODUCT_SPEC.md 狀態。
|
|
49
|
+
* **定期維護**(建議每週):掃描過期文件與失效連結。
|
|
@@ -1324,12 +1324,9 @@ SRE Team 將遵循以下規範(參考 `.rule/code/` 規則):
|
|
|
1324
1324
|
|
|
1325
1325
|
執行任務前,檢查相關失敗模式(遵循 AGT-005 規則):
|
|
1326
1326
|
|
|
1327
|
-
```
|
|
1328
|
-
#
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
# 檢查 Supabase 相關失敗模式
|
|
1332
|
-
.\.failure\tools\check_failures.ps1 -ScopePath "supabase/"
|
|
1327
|
+
```bash
|
|
1328
|
+
# 讀索引,再 Grep 與任務 scope 相關的失敗記錄
|
|
1329
|
+
Grep pattern="supabase|關鍵字" path=".failure/"
|
|
1333
1330
|
```
|
|
1334
1331
|
|
|
1335
1332
|
**常見失敗模式**:
|
|
@@ -103,6 +103,38 @@ test('control: non-Ansuz session gets no status and no toast', async ($, on) =>
|
|
|
103
103
|
expect(toasts.length).toBe(0)
|
|
104
104
|
})
|
|
105
105
|
|
|
106
|
+
const ANSUZ = [{ role: 'user', content: '# Ansuz -- Specialist Prompt' }]
|
|
107
|
+
|
|
108
|
+
test('TASK_2455: sdk-ts session is never registered as a peer (no heartbeat, no submit)', async ($, on) => {
|
|
109
|
+
const clock = mock.clock(on)
|
|
110
|
+
mock.env(on, { CLAUDE_CODE_ENTRYPOINT: 'sdk-ts' })
|
|
111
|
+
const { calls, submits } = setup(on, () => ANSUZ)
|
|
112
|
+
await $.session.start(START)
|
|
113
|
+
await clock.advance(15_000)
|
|
114
|
+
expect(calls.length).toBe(0)
|
|
115
|
+
expect(submits.length).toBe(0)
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
test('TASK_2455: cli registers (control)', async ($, on) => {
|
|
119
|
+
const clock = mock.clock(on)
|
|
120
|
+
mock.env(on, { CLAUDE_CODE_ENTRYPOINT: 'cli' })
|
|
121
|
+
const { calls } = setup(on, () => ANSUZ)
|
|
122
|
+
await $.session.start(START)
|
|
123
|
+
await clock.advance(5_000)
|
|
124
|
+
await clock.advance(5_000)
|
|
125
|
+
expect(calls[0]).toContain('POST http://127.0.0.1:18080/api/peer/mod-heartbeat')
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
test('TASK_2455: KENAZ_IN_SDK=1 opts an sdk-py session in', async ($, on) => {
|
|
129
|
+
const clock = mock.clock(on)
|
|
130
|
+
mock.env(on, { CLAUDE_CODE_ENTRYPOINT: 'sdk-py', KENAZ_IN_SDK: '1' })
|
|
131
|
+
const { calls } = setup(on, () => ANSUZ)
|
|
132
|
+
await $.session.start(START)
|
|
133
|
+
await clock.advance(5_000)
|
|
134
|
+
await clock.advance(5_000)
|
|
135
|
+
expect(calls[0]).toContain('POST http://127.0.0.1:18080/api/peer/mod-heartbeat')
|
|
136
|
+
})
|
|
137
|
+
|
|
106
138
|
test('plugin-namespaced /kenaz:Ansuz also activates delivery', async ($, on) => {
|
|
107
139
|
const clock = mock.clock(on)
|
|
108
140
|
const { calls, submits } = setup(on, () => [{ role: 'user', content: [{ type: 'text', text: '<command-name>/kenaz:Ansuz</command-name>' }] }])
|
|
@@ -155,6 +155,15 @@ async function cycle($: any): Promise<void> {
|
|
|
155
155
|
|
|
156
156
|
export const register: Register = on => {
|
|
157
157
|
on('session.start', async ($, e, next) => {
|
|
158
|
+
// TASK_2455: claude-agent-sdk sessions (sdk-py / sdk-ts, not `claude -p` = sdk-cli) are never peer sessions.
|
|
159
|
+
// Same rule as plugins/kenaz/hooks/sdk-gate.js; KENAZ_IN_SDK=1 opts in. sessionId stays '' so no hook acts.
|
|
160
|
+
let ep = ''
|
|
161
|
+
let optIn = ''
|
|
162
|
+
try {
|
|
163
|
+
ep = (await $.env.get('CLAUDE_CODE_ENTRYPOINT')) ?? ''
|
|
164
|
+
optIn = (await $.env.get('KENAZ_IN_SDK')) ?? ''
|
|
165
|
+
} catch { /* env unreadable: behave as an interactive session */ }
|
|
166
|
+
if (ep.startsWith('sdk-') && ep !== 'sdk-cli' && optIn !== '1') return next(e)
|
|
158
167
|
sessionId = String(await $.session.id())
|
|
159
168
|
cwd = String(await $.session.cwd())
|
|
160
169
|
$.clock.every(HEARTBEAT_MS, () => { if (ansuz) void beat($) })
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kenaz",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"description": "Install Kenaz (plugin, hooks, kenaz-server) for Claude Code and Codex: npx kenaz install",
|
|
5
5
|
"bin": {
|
|
6
6
|
"kenaz": "bin/kenaz.js"
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"test": "node --test lib/cli.test.js"
|
|
21
21
|
},
|
|
22
22
|
"optionalDependencies": {
|
|
23
|
-
"@kenazai/server-darwin-arm64": "0.3.
|
|
24
|
-
"@kenazai/server-darwin-x64": "0.3.
|
|
25
|
-
"@kenazai/server-linux-arm64": "0.3.
|
|
26
|
-
"@kenazai/server-linux-x64": "0.3.
|
|
27
|
-
"@kenazai/server-win32-x64": "0.3.
|
|
23
|
+
"@kenazai/server-darwin-arm64": "0.3.20",
|
|
24
|
+
"@kenazai/server-darwin-x64": "0.3.20",
|
|
25
|
+
"@kenazai/server-linux-arm64": "0.3.20",
|
|
26
|
+
"@kenazai/server-linux-x64": "0.3.20",
|
|
27
|
+
"@kenazai/server-win32-x64": "0.3.20"
|
|
28
28
|
},
|
|
29
29
|
"license": "UNLICENSED",
|
|
30
30
|
"repository": {
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# /archive - 封存已完成任務到記憶點
|
|
2
|
-
|
|
3
|
-
將 TASK_QUEUE.json 中的所有 completed 任務封存到 `.memory/COMPLETED_TASKS.json`。
|
|
4
|
-
|
|
5
|
-
## 執行步驟
|
|
6
|
-
|
|
7
|
-
1. 執行封存腳本:
|
|
8
|
-
```bash
|
|
9
|
-
powershell -ExecutionPolicy Bypass -File dev/scripts/archive_completed_tasks.ps1
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
2. 顯示封存結果
|
|
13
|
-
|
|
14
|
-
## 使用情境
|
|
15
|
-
|
|
16
|
-
- 當佇列中累積多個 completed 任務時
|
|
17
|
-
- 定期整理 TASK_QUEUE.json
|
|
18
|
-
- 在開始新一輪開發前清理佇列
|
|
19
|
-
|
|
20
|
-
## 別名
|
|
21
|
-
|
|
22
|
-
- `/archive`
|
|
23
|
-
- `存到記憶點`
|
|
24
|
-
- `封存任務`
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# /init - 初始化新專案
|
|
2
|
-
|
|
3
|
-
## 用途
|
|
4
|
-
快速重置 Pipeline 狀態並準備開始新專案開發。
|
|
5
|
-
|
|
6
|
-
## 執行步驟
|
|
7
|
-
|
|
8
|
-
### 1. 清理舊狀態
|
|
9
|
-
執行以下清理操作:
|
|
10
|
-
|
|
11
|
-
```powershell
|
|
12
|
-
# 清空任務目錄
|
|
13
|
-
Remove-Item dev/pipeline/tasks/*.md -Force -ErrorAction SilentlyContinue
|
|
14
|
-
|
|
15
|
-
# 備份已完成任務到 archive
|
|
16
|
-
$archiveDir = "dev/pipeline/archive/$(Get-Date -Format 'yyyy-MM-dd_HHmmss')"
|
|
17
|
-
New-Item -ItemType Directory -Path $archiveDir -Force
|
|
18
|
-
Move-Item dev/pipeline/completed/*.md $archiveDir -Force -ErrorAction SilentlyContinue
|
|
19
|
-
|
|
20
|
-
# 刪除狀態文件
|
|
21
|
-
Remove-Item dev/pipeline/SELF_ENHANCEMENT_STATUS.json -Force -ErrorAction SilentlyContinue
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### 2. 重置 PROGRESS.md
|
|
25
|
-
將 `dev/pipeline/PROGRESS.md` 重置為初始狀態:
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
# Pipeline Progress Tracking
|
|
29
|
-
|
|
30
|
-
## Last Update
|
|
31
|
-
- **Time**: [當前時間]
|
|
32
|
-
- **Agent**: System
|
|
33
|
-
- **Session**: Project Initialized
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Current Status
|
|
38
|
-
|
|
39
|
-
### Running Tasks
|
|
40
|
-
| Task ID | Name | Progress | Next Step |
|
|
41
|
-
|--------|------|-----|-------|
|
|
42
|
-
| - | None | - | Run /產品 to start |
|
|
43
|
-
|
|
44
|
-
### Pending Task Queue
|
|
45
|
-
| Priority | Task ID | Name | Status | Est. Hours |
|
|
46
|
-
|-------|--------|------|-----|---------|
|
|
47
|
-
| - | - | None | - | - |
|
|
48
|
-
|
|
49
|
-
### Completed Tasks
|
|
50
|
-
| Task ID | Name | Completion Date |
|
|
51
|
-
|--------|------|---------|
|
|
52
|
-
| - | - | - |
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Statistics
|
|
57
|
-
|
|
58
|
-
### Overall Progress
|
|
59
|
-
\`\`\`
|
|
60
|
-
Total Tasks: 0
|
|
61
|
-
Completed: 0 (0%)
|
|
62
|
-
In Progress: 0 (0%)
|
|
63
|
-
Pending: 0 (0%)
|
|
64
|
-
Blocked: 0 (0%)
|
|
65
|
-
\`\`\`
|
|
66
|
-
|
|
67
|
-
### Project Status
|
|
68
|
-
\`\`\`
|
|
69
|
-
⏳ Waiting for product requirements...
|
|
70
|
-
Run /產品 to start requirement analysis
|
|
71
|
-
\`\`\`
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### 3. 檢查 PRODUCT_SPEC
|
|
75
|
-
- 如果 `dev/PRODUCT_SPEC.md` 存在且內容豐富(>50行),詢問用戶是否保留
|
|
76
|
-
- 如果不存在,從模板建立
|
|
77
|
-
|
|
78
|
-
### 4. 輸出初始化摘要
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
========================================
|
|
82
|
-
初始化完成!
|
|
83
|
-
========================================
|
|
84
|
-
已清理: X 個舊任務
|
|
85
|
-
已備份: X 個已完成任務
|
|
86
|
-
PROGRESS.md: 已重置
|
|
87
|
-
|
|
88
|
-
下一步:
|
|
89
|
-
1. 描述你的產品想法,或使用 /產品
|
|
90
|
-
2. 準備好後執行 /Ansuz 派工
|
|
91
|
-
========================================
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### 5. 詢問是否開始需求分析
|
|
95
|
-
|
|
96
|
-
詢問用戶:
|
|
97
|
-
> 是否現在開始需求分析?請描述你的產品想法,我會以 Product Manager 角色幫你分析並建立任務。
|
|
98
|
-
|
|
99
|
-
## 快捷方式
|
|
100
|
-
|
|
101
|
-
也可以使用批次檔:
|
|
102
|
-
```powershell
|
|
103
|
-
.\dev\scripts\INIT_PROJECT.bat
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## 參數
|
|
107
|
-
|
|
108
|
-
| 參數 | 說明 |
|
|
109
|
-
|------|------|
|
|
110
|
-
| `-SkipRAG` | 跳過 RAG 環境設置 |
|
|
111
|
-
| `-SkipCleanup` | 跳過清理舊任務 |
|
|
112
|
-
| `-Quiet` | 靜默模式(無互動確認) |
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# /legacy_dev - 新任務系統開發模式
|
|
2
|
-
|
|
3
|
-
正在讀取開發協調 Agent(新任務系統)...
|
|
4
|
-
|
|
5
|
-
請按照以下步驟執行:
|
|
6
|
-
|
|
7
|
-
1. **讀取 Agent Skill**:讀取 `.claude/skills/legacy_dev/SKILL.md` 內容並按照其框架執行。
|
|
8
|
-
|
|
9
|
-
2. **查詢待辦任務**:執行 `node .collaboration/core/task-api.js list --status pending` 確認待辦任務。
|
|
10
|
-
|
|
11
|
-
3. **執行開發流程**:
|
|
12
|
-
- 【任務選取】:選取最優先的 backlog 任務
|
|
13
|
-
- 【認領任務】:`node .collaboration/core/task-api.js claim TASK_XXX`
|
|
14
|
-
- 【任務執行】:調用專業 Agent 完成任務
|
|
15
|
-
- 【完成任務】:`node .collaboration/core/task-api.js complete TASK_XXX`
|
|
16
|
-
- 【日誌記錄】:寫入 `.formation/logs/legacy/`
|
|
17
|
-
|
|
18
|
-
請開始執行。
|