maestro-flow 0.3.10 → 0.3.12
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/.claude/agents/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +114 -114
- package/.claude/agents/workflow-collab-planner.md +144 -144
- package/.claude/agents/workflow-debugger.md +102 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +85 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +178 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +119 -119
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +3 -3
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-brainstorm.md +1 -0
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-plan.md +88 -2
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue.md +2 -2
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +3 -2
- package/.claude/commands/quality-retrospective.md +6 -4
- package/.claude/commands/quality-review.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +151 -279
- package/.codex/skills/maestro-analyze/SKILL.md +59 -71
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +95 -110
- package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
- package/.codex/skills/maestro-execute/SKILL.md +435 -446
- package/.codex/skills/maestro-fork/SKILL.md +98 -0
- package/.codex/skills/maestro-init/SKILL.md +172 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +69 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +58 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +95 -107
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +94 -105
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +9 -4
- package/README.zh-CN.md +9 -4
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
- package/dashboard/dist-server/src/hooks/constants.js +4 -2
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/collab.js +4 -4
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +66 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +3 -1
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +4 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +1 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +1 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +95 -9
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +6 -3
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/package.json +2 -1
- package/shared/agent-types.ts +4 -0
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +480 -471
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/debug.md +16 -6
- package/workflows/execute.md +1 -1
- package/workflows/fork.md +100 -36
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +355 -343
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue.md +14 -4
- package/workflows/learn.md +19 -5
- package/workflows/maestro.md +1 -0
- package/workflows/map.md +111 -111
- package/workflows/merge.md +113 -55
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +61 -22
- package/workflows/review.md +17 -4
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/workflows/test.md +12 -2
- package/workflows/ui-style.md +9 -2
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -1,235 +1,242 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: team-testing
|
|
3
|
-
description: Unified team skill for testing team. Progressive test coverage through Generator-Critic loops, shared memory, and dynamic layer selection. Triggers on "team testing".
|
|
4
|
-
allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), followup_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__maestro-tools__team_msg(*)
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `Read
|
|
62
|
-
| `Read` on
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `Bash
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
|
229
|
-
|
|
230
|
-
|
|
|
231
|
-
|
|
|
232
|
-
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
1
|
+
---
|
|
2
|
+
name: team-testing
|
|
3
|
+
description: Unified team skill for testing team. Progressive test coverage through Generator-Critic loops, shared memory, and dynamic layer selection. Triggers on "team testing".
|
|
4
|
+
allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), followup_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__maestro-tools__team_msg(*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<purpose>
|
|
8
|
+
Orchestrate multi-agent test pipeline: strategist -> generator -> executor -> analyst. Progressive layer coverage (L1/L2/L3) with Generator-Critic loops for coverage convergence.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Skill(skill="team-testing", args="task description")
|
|
12
|
+
|
|
|
13
|
+
SKILL.md (this file) = Router
|
|
14
|
+
|
|
|
15
|
+
+--------------+--------------+
|
|
16
|
+
| |
|
|
17
|
+
no --role flag --role <name>
|
|
18
|
+
| |
|
|
19
|
+
Coordinator Worker
|
|
20
|
+
roles/coordinator/role.md roles/<name>/role.md
|
|
21
|
+
|
|
|
22
|
+
+-- analyze -> dispatch -> spawn workers -> STOP
|
|
23
|
+
|
|
|
24
|
+
+-------+-------+-------+-------+
|
|
25
|
+
v v v v
|
|
26
|
+
[strat] [gen] [exec] [analyst]
|
|
27
|
+
team-worker agents, each loads roles/<role>/role.md
|
|
28
|
+
```
|
|
29
|
+
</purpose>
|
|
30
|
+
|
|
31
|
+
<context>
|
|
32
|
+
### Role Registry
|
|
33
|
+
|
|
34
|
+
| Role | Path | Prefix | Inner Loop |
|
|
35
|
+
|------|------|--------|------------|
|
|
36
|
+
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
|
|
37
|
+
| strategist | [roles/strategist/role.md](roles/strategist/role.md) | STRATEGY-* | false |
|
|
38
|
+
| generator | [roles/generator/role.md](roles/generator/role.md) | TESTGEN-* | true |
|
|
39
|
+
| executor | [roles/executor/role.md](roles/executor/role.md) | TESTRUN-* | true |
|
|
40
|
+
| analyst | [roles/analyst/role.md](roles/analyst/role.md) | TESTANA-* | false |
|
|
41
|
+
|
|
42
|
+
### Role Router
|
|
43
|
+
|
|
44
|
+
Parse `$ARGUMENTS`:
|
|
45
|
+
- Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
|
|
46
|
+
- No `--role` -> `roles/coordinator/role.md`, execute entry router
|
|
47
|
+
|
|
48
|
+
### Delegation Lock
|
|
49
|
+
|
|
50
|
+
**Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
|
|
51
|
+
|
|
52
|
+
Before calling ANY tool, apply this check:
|
|
53
|
+
|
|
54
|
+
| Tool Call | Verdict | Reason |
|
|
55
|
+
|-----------|---------|--------|
|
|
56
|
+
| `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `followup_task` | ALLOWED | Orchestration |
|
|
57
|
+
| `list_agents` | ALLOWED | Agent health check |
|
|
58
|
+
| `request_user_input` | ALLOWED | User interaction |
|
|
59
|
+
| `mcp__maestro-tools__team_msg` | ALLOWED | Message bus |
|
|
60
|
+
| `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
|
|
61
|
+
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
62
|
+
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
63
|
+
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
64
|
+
| `Bash("maestro delegate ...")` | BLOCKED | Only workers call CLI |
|
|
65
|
+
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
66
|
+
|
|
67
|
+
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
68
|
+
|
|
69
|
+
**No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
|
|
70
|
+
|
|
71
|
+
### Shared Constants
|
|
72
|
+
|
|
73
|
+
- **Session prefix**: `TST`
|
|
74
|
+
- **Session path**: `.workflow/.team/TST-<slug>-<date>/`
|
|
75
|
+
- **Team name**: `testing`
|
|
76
|
+
- **CLI tools**: `maestro delegate --mode analysis` (read-only), `maestro delegate --mode write` (modifications)
|
|
77
|
+
- **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
|
|
78
|
+
|
|
79
|
+
### Worker Spawn Template
|
|
80
|
+
|
|
81
|
+
Coordinator spawns workers using this template:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
spawn_agent({
|
|
85
|
+
agent_type: "team_worker",
|
|
86
|
+
task_name: "<task-id>",
|
|
87
|
+
fork_turns: "none",
|
|
88
|
+
message: `## Role Assignment
|
|
89
|
+
role: <role>
|
|
90
|
+
role_spec: <skill_root>/roles/<role>/role.md
|
|
91
|
+
session: <session-folder>
|
|
92
|
+
session_id: <session-id>
|
|
93
|
+
requirement: <task-description>
|
|
94
|
+
inner_loop: <true|false>
|
|
95
|
+
|
|
96
|
+
Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
|
|
97
|
+
|
|
98
|
+
## Task Context
|
|
99
|
+
task_id: <task-id>
|
|
100
|
+
title: <task-title>
|
|
101
|
+
description: <task-description>
|
|
102
|
+
pipeline_phase: <pipeline-phase>
|
|
103
|
+
|
|
104
|
+
## Upstream Context
|
|
105
|
+
<prev_context>`
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
After spawning, use `wait_agent({ timeout_ms: 1800000 })` to collect results (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use `close_agent({ target })` each worker.
|
|
110
|
+
|
|
111
|
+
### Model Selection Guide
|
|
112
|
+
|
|
113
|
+
| Role | model | reasoning_effort | Rationale |
|
|
114
|
+
|------|-------|-------------------|-----------|
|
|
115
|
+
| Strategist (STRATEGY-*) | (default) | high | Test strategy requires deep code understanding |
|
|
116
|
+
| Generator (TESTGEN-*) | (default) | high | Test code generation needs precision |
|
|
117
|
+
| Executor (TESTRUN-*) | (default) | medium | Running tests and collecting results, less reasoning |
|
|
118
|
+
| Analyst (TESTANA-*) | (default) | high | Coverage analysis and quality assessment |
|
|
119
|
+
|
|
120
|
+
Override model/reasoning_effort in spawn_agent when cost optimization is needed:
|
|
121
|
+
```
|
|
122
|
+
spawn_agent({
|
|
123
|
+
agent_type: "team_worker",
|
|
124
|
+
task_name: "<task-id>",
|
|
125
|
+
fork_turns: "none",
|
|
126
|
+
model: "<model-override>",
|
|
127
|
+
reasoning_effort: "<effort-level>",
|
|
128
|
+
message: "..."
|
|
129
|
+
})
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### User Commands
|
|
133
|
+
|
|
134
|
+
| Command | Action |
|
|
135
|
+
|---------|--------|
|
|
136
|
+
| `check` / `status` | View pipeline status graph |
|
|
137
|
+
| `resume` / `continue` | Advance to next step |
|
|
138
|
+
| `revise <TASK-ID>` | Revise specific task |
|
|
139
|
+
| `feedback <text>` | Inject feedback for revision |
|
|
140
|
+
|
|
141
|
+
### v4 Agent Coordination
|
|
142
|
+
|
|
143
|
+
#### Message Semantics
|
|
144
|
+
|
|
145
|
+
| Intent | API | Example |
|
|
146
|
+
|--------|-----|---------|
|
|
147
|
+
| Send strategy to running generators | `send_message` | Queue test strategy findings to TESTGEN-* workers |
|
|
148
|
+
| Not used in this skill | `followup_task` | No resident agents -- all workers are one-shot |
|
|
149
|
+
| Check running agents | `list_agents` | Verify parallel generator/executor health |
|
|
150
|
+
|
|
151
|
+
#### Parallel Test Generation
|
|
152
|
+
|
|
153
|
+
Comprehensive pipeline spawns multiple generators (per layer) and executors in parallel:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
// Spawn parallel generators for L1 and L2
|
|
157
|
+
const genNames = ["TESTGEN-001", "TESTGEN-002"]
|
|
158
|
+
for (const name of genNames) {
|
|
159
|
+
spawn_agent({ agent_type: "team_worker", task_name: name, ... })
|
|
160
|
+
}
|
|
161
|
+
wait_agent({ timeout_ms: 1800000 }) // 30 min
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### GC Loop Coordination
|
|
165
|
+
|
|
166
|
+
Generator-Critic loops create dynamic TESTGEN-fix and TESTRUN-fix tasks. The coordinator tracks `gc_rounds[layer]` and creates fix tasks dynamically when coverage is below target.
|
|
167
|
+
|
|
168
|
+
#### Agent Health Check
|
|
169
|
+
|
|
170
|
+
Use `list_agents({})` in handleResume and handleComplete:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
// Reconcile session state with actual running agents
|
|
174
|
+
const running = list_agents({})
|
|
175
|
+
// Compare with tasks.json active_agents
|
|
176
|
+
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
#### Named Agent Targeting
|
|
180
|
+
|
|
181
|
+
Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
|
|
182
|
+
- `send_message({ target: "TESTGEN-001", message: "..." })` -- queue strategy context to running generator
|
|
183
|
+
- `close_agent({ target: "TESTRUN-001" })` -- cleanup by name after wait_agent returns
|
|
184
|
+
|
|
185
|
+
### Completion Action
|
|
186
|
+
|
|
187
|
+
When pipeline completes, coordinator presents:
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
request_user_input({
|
|
191
|
+
questions: [{
|
|
192
|
+
question: "Testing pipeline complete. What would you like to do?",
|
|
193
|
+
header: "Completion",
|
|
194
|
+
multiSelect: false,
|
|
195
|
+
options: [
|
|
196
|
+
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
197
|
+
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
198
|
+
{ label: "Deepen Coverage", description: "Add more test layers or increase coverage targets" }
|
|
199
|
+
]
|
|
200
|
+
}]
|
|
201
|
+
})
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Session Directory
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
.workflow/.team/TST-<slug>-<date>/
|
|
208
|
+
+-- .msg/messages.jsonl # Team message bus
|
|
209
|
+
+-- .msg/meta.json # Session metadata
|
|
210
|
+
+-- wisdom/ # Cross-task knowledge
|
|
211
|
+
+-- strategy/ # Strategist output
|
|
212
|
+
+-- tests/ # Generator output (L1-unit/, L2-integration/, L3-e2e/)
|
|
213
|
+
+-- results/ # Executor output
|
|
214
|
+
+-- analysis/ # Analyst output
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Specs Reference
|
|
218
|
+
|
|
219
|
+
- [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
|
|
220
|
+
- [specs/team-config.json](specs/team-config.json) -- Team configuration
|
|
221
|
+
</context>
|
|
222
|
+
|
|
223
|
+
<error_codes>
|
|
224
|
+
|
|
225
|
+
| Scenario | Resolution |
|
|
226
|
+
|----------|------------|
|
|
227
|
+
| Unknown --role value | Error with available role list |
|
|
228
|
+
| Role not found | Error with expected path (roles/<name>/role.md) |
|
|
229
|
+
| CLI tool fails | Worker fallback to direct implementation |
|
|
230
|
+
| GC loop exceeded | Accept current coverage with warning |
|
|
231
|
+
| Fast-advance conflict | Coordinator reconciles on next callback |
|
|
232
|
+
| Completion action fails | Default to Keep Active |
|
|
233
|
+
</error_codes>
|
|
234
|
+
|
|
235
|
+
<success_criteria>
|
|
236
|
+
- [ ] Role router correctly dispatches to coordinator or worker based on --role flag
|
|
237
|
+
- [ ] Pipeline executes strategist -> generator -> executor -> analyst in order
|
|
238
|
+
- [ ] Parallel generators spawned per test layer (L1/L2/L3)
|
|
239
|
+
- [ ] GC loops create fix tasks dynamically when coverage is below target
|
|
240
|
+
- [ ] Session state persisted after each wave
|
|
241
|
+
- [ ] Completion action presented and handled correctly
|
|
242
|
+
</success_criteria>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wiki-connect
|
|
3
|
+
description: Wiki knowledge graph link discovery and health improvement. Finds orphaned entries, missing connections, transitive gaps. Scores candidates and optionally auto-applies new related links via --fix.
|
|
4
|
+
argument-hint: "[--scope <type>] [--min-similarity N] [--fix] [--max N]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Knowledge graph link discovery. Analyzes wiki index to find orphaned entries, missing
|
|
10
|
+
bidirectional links, and transitive closure gaps. Scores connection candidates and
|
|
11
|
+
optionally auto-applies new `related` links to improve graph connectivity.
|
|
12
|
+
</purpose>
|
|
13
|
+
|
|
14
|
+
<context>
|
|
15
|
+
$ARGUMENTS — optional flags.
|
|
16
|
+
|
|
17
|
+
**Flags:**
|
|
18
|
+
- `--scope <type>` — Limit to wiki type (spec, phase, memory, note, lesson, issue). Default: all.
|
|
19
|
+
- `--min-similarity N` — Threshold 0.0-1.0 (default: 0.3)
|
|
20
|
+
- `--fix` — Auto-apply top suggestions
|
|
21
|
+
- `--max N` — Max suggestions (default: 20)
|
|
22
|
+
|
|
23
|
+
**Output**: `.workflow/learning/wiki-connections-{date}.md`
|
|
24
|
+
</context>
|
|
25
|
+
|
|
26
|
+
<execution>
|
|
27
|
+
|
|
28
|
+
### Stage 1: Load Wiki State
|
|
29
|
+
Parallel `maestro wiki` commands: `list --json`, `health`, `orphans`, `hubs --top 10`.
|
|
30
|
+
|
|
31
|
+
### Stage 2: Identify Connection Candidates
|
|
32
|
+
- **Orphan rescue**: BM25 search by title, tag overlap, same phase
|
|
33
|
+
- **Missing bidirectional**: A→B exists but B→A missing
|
|
34
|
+
- **Transitive closure**: A→B and B→C but no A→C (with shared tags/phase)
|
|
35
|
+
- **Type bridge**: Different types referencing same concept but unlinked
|
|
36
|
+
|
|
37
|
+
### Stage 3: Score Candidates
|
|
38
|
+
```
|
|
39
|
+
score = 0.4 × tag_overlap + 0.3 × title_bm25 + 0.2 × same_phase + 0.1 × type_bridge
|
|
40
|
+
```
|
|
41
|
+
Filter by `--min-similarity`, rank desc, limit by `--max`.
|
|
42
|
+
|
|
43
|
+
### Stage 4: Present Suggestions
|
|
44
|
+
Display ranked suggestions with scores, reasons, projected health delta.
|
|
45
|
+
If not `--fix`: display and exit.
|
|
46
|
+
|
|
47
|
+
### Stage 5: Apply (--fix only)
|
|
48
|
+
For each suggestion: get entry → append target to `related` → update via `maestro wiki update`.
|
|
49
|
+
Re-run `maestro wiki health` for delta.
|
|
50
|
+
|
|
51
|
+
### Stage 6: Persist
|
|
52
|
+
Write `wiki-connections-{date}.md`. Append graph insights to `lessons.jsonl` (source: "wiki-connect").
|
|
53
|
+
|
|
54
|
+
**Next steps:** `/wiki-digest <topic>`, `/learn-follow <wiki-id>`, `maestro wiki graph`
|
|
55
|
+
</execution>
|
|
56
|
+
|
|
57
|
+
<error_codes>
|
|
58
|
+
| Code | Severity | Condition | Recovery |
|
|
59
|
+
|------|----------|-----------|----------|
|
|
60
|
+
| E001 | error | No wiki entries found | Initialize wiki content |
|
|
61
|
+
| W001 | warning | No candidates above threshold | Lower --min-similarity |
|
|
62
|
+
| W002 | warning | Some wiki updates failed during --fix | Retry manually |
|
|
63
|
+
| W003 | warning | Health score unchanged after fix | Connections may not affect specific metrics |
|
|
64
|
+
</error_codes>
|
|
65
|
+
|
|
66
|
+
<success_criteria>
|
|
67
|
+
- [ ] Wiki index loaded with type distribution
|
|
68
|
+
- [ ] Baseline health score recorded
|
|
69
|
+
- [ ] Orphans identified and rescue candidates generated
|
|
70
|
+
- [ ] Candidates scored and ranked
|
|
71
|
+
- [ ] Suggestions displayed with scores and reasons
|
|
72
|
+
- [ ] If --fix: entries updated, new health score reported
|
|
73
|
+
- [ ] Report written to `wiki-connections-{date}.md`
|
|
74
|
+
- [ ] Graph insights appended to `lessons.jsonl`
|
|
75
|
+
</success_criteria>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wiki-digest
|
|
3
|
+
description: Knowledge synthesis from wiki entries. Theme clustering, gap analysis, coverage heatmap (type × theme matrix). Optionally creates knowledge-gap issues. Persists meta-insights to lessons.jsonl.
|
|
4
|
+
argument-hint: "[<topic>|--recent N] [--type <type>] [--format brief|full] [--create-issues]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Knowledge synthesis that generates actionable digests from the wiki knowledge graph.
|
|
10
|
+
Clusters entries by semantic theme, identifies knowledge gaps, and produces a coverage
|
|
11
|
+
heatmap. Unlike `maestro wiki list` (raw entries), this synthesizes and interprets
|
|
12
|
+
the knowledge base with gap analysis and recommended actions.
|
|
13
|
+
</purpose>
|
|
14
|
+
|
|
15
|
+
<context>
|
|
16
|
+
$ARGUMENTS — scope and optional flags.
|
|
17
|
+
|
|
18
|
+
**Scope resolution:**
|
|
19
|
+
- `<topic>` — Search wiki for matching entries
|
|
20
|
+
- `--recent N` — Entries updated in last N days
|
|
21
|
+
- `--type <type>` — Filter by wiki type
|
|
22
|
+
- No args — entire wiki
|
|
23
|
+
|
|
24
|
+
**Flags:**
|
|
25
|
+
- `--format brief` — Compact summary (default)
|
|
26
|
+
- `--format full` — Detailed with per-entry summaries
|
|
27
|
+
- `--create-issues` — Auto-create knowledge-gap issues in issues.jsonl
|
|
28
|
+
|
|
29
|
+
**Output**: `.workflow/learning/digest-{slug}-{date}.md`
|
|
30
|
+
</context>
|
|
31
|
+
|
|
32
|
+
<execution>
|
|
33
|
+
|
|
34
|
+
### Stage 1: Scope & Load
|
|
35
|
+
Load entries via `maestro wiki list/search`. Run `maestro wiki health` for baseline.
|
|
36
|
+
|
|
37
|
+
### Stage 2: Theme Clustering
|
|
38
|
+
Group entries into 3-5 themes via: tag co-occurrence, title BM25 similarity, relationship proximity, type grouping.
|
|
39
|
+
|
|
40
|
+
### Stage 3: Per-Theme Analysis
|
|
41
|
+
Per theme: summary paragraph, key entries (by hub score), gap detection (broken links, orphans, TODO markers, missing perspectives), health score.
|
|
42
|
+
|
|
43
|
+
### Stage 4: Cross-Reference with Lessons
|
|
44
|
+
Search `lessons.jsonl` for related insights. Flag unlinked insights (lessons matching theme but not referenced by wiki entries).
|
|
45
|
+
|
|
46
|
+
### Stage 5: Coverage Heatmap
|
|
47
|
+
Type × theme matrix showing knowledge density:
|
|
48
|
+
```
|
|
49
|
+
Theme 1 Theme 2 Theme 3
|
|
50
|
+
spec ███░░ ░░░░░ █████
|
|
51
|
+
phase ████░ ███░░ ░░░░░
|
|
52
|
+
lesson █░░░░ ██░░░ ████░
|
|
53
|
+
```
|
|
54
|
+
Empty cells = knowledge gaps.
|
|
55
|
+
|
|
56
|
+
### Stage 6: Write Digest
|
|
57
|
+
Produce `digest-{slug}-{date}.md` with themes, heatmap, gaps, unlinked insights, recommended actions.
|
|
58
|
+
|
|
59
|
+
### Stage 7: Gap → Issue (if --create-issues)
|
|
60
|
+
For each gap: dedup against issues.jsonl, append with `type: "knowledge-gap"`, `source: "wiki-digest"`.
|
|
61
|
+
|
|
62
|
+
### Stage 8: Persist
|
|
63
|
+
Append meta-insights to `lessons.jsonl` (source: "wiki-digest"). Display summary.
|
|
64
|
+
|
|
65
|
+
**Next steps:** `/learn-follow <wiki-id>`, `/wiki-connect --fix`, `/learn-decompose <path>`
|
|
66
|
+
</execution>
|
|
67
|
+
|
|
68
|
+
<error_codes>
|
|
69
|
+
| Code | Severity | Condition | Recovery |
|
|
70
|
+
|------|----------|-----------|----------|
|
|
71
|
+
| E001 | error | No wiki entries found | Initialize wiki content |
|
|
72
|
+
| E002 | error | Topic search returned 0 | Broaden topic |
|
|
73
|
+
| W001 | warning | Too few entries (<5) | Themes may be trivial |
|
|
74
|
+
| W002 | warning | lessons.jsonl not found | Skip cross-reference |
|
|
75
|
+
| W003 | warning | Some entry bodies failed to load | Partial summaries |
|
|
76
|
+
</error_codes>
|
|
77
|
+
|
|
78
|
+
<success_criteria>
|
|
79
|
+
- [ ] Scope parsed and entries loaded
|
|
80
|
+
- [ ] Entries clustered into 3-5 semantic themes
|
|
81
|
+
- [ ] Per-theme analysis with gaps identified
|
|
82
|
+
- [ ] Cross-reference with lessons.jsonl completed
|
|
83
|
+
- [ ] Coverage heatmap generated
|
|
84
|
+
- [ ] If --create-issues: gap issues created (deduped)
|
|
85
|
+
- [ ] Digest written to `digest-{slug}-{date}.md`
|
|
86
|
+
- [ ] Meta-insights appended to lessons.jsonl
|
|
87
|
+
</success_criteria>
|