maestro-flow 0.3.9 → 0.3.11
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/workflow-collab-planner.md +1 -1
- package/.claude/agents/workflow-executor.md +1 -1
- package/.claude/agents/workflow-plan-checker.md +1 -1
- package/.claude/agents/workflow-planner.md +1 -1
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-analyze.md +46 -3
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-execute.md +14 -0
- package/.claude/commands/maestro-plan.md +16 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue-discover.md +2 -2
- package/.claude/commands/manage-issue.md +5 -5
- 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 +335 -0
- package/.codex/skills/maestro-analyze/SKILL.md +84 -75
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +233 -0
- package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
- package/.codex/skills/maestro-execute/SKILL.md +435 -438
- package/.codex/skills/maestro-fork/SKILL.md +68 -0
- package/.codex/skills/maestro-init/SKILL.md +171 -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 +62 -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 +66 -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 +34 -31
- 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 +93 -105
- 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 +93 -104
- 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 +14 -11
- package/README.zh-CN.md +14 -11
- package/chains/issue-lifecycle.json +13 -13
- package/chains/singles/issue-analyze.json +3 -3
- package/chains/singles/issue-execute.json +3 -3
- package/chains/singles/issue-plan.json +3 -3
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
- package/dashboard/dist-server/dashboard/src/server/routes/issues.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/execution-handler.js +2 -3
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -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 +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
- package/dashboard/dist-server/src/hooks/constants.js +151 -16
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +5 -0
- package/dist/src/commands/collab.d.ts +1 -34
- package/dist/src/commands/collab.d.ts.map +1 -1
- package/dist/src/commands/collab.js +8 -76
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +5 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +115 -10
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +5 -1
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +7 -3
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
- package/dist/src/commands/install-ui/StatuslineConfig.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.d.ts +7 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +92 -12
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +151 -16
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +2 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +2 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
- package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
- package/dist/src/hooks/guards/preflight-guard.js +95 -0
- package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
- 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/index.d.ts +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- 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/preflight-core.d.ts +37 -0
- package/dist/src/hooks/preflight-core.d.ts.map +1 -0
- package/dist/src/hooks/preflight-core.js +86 -0
- package/dist/src/hooks/preflight-core.js.map +1 -0
- 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 +8 -17
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +269 -112
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +5 -0
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +5 -0
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +5 -0
- package/dist/src/i18n/types.d.ts.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/collab-adapter.d.ts +17 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -1
- package/dist/src/tools/collab-adapter.js +138 -0
- package/dist/src/tools/collab-adapter.js.map +1 -1
- 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 +24 -0
- package/dist/src/tools/merge-validator.d.ts.map +1 -0
- package/dist/src/tools/merge-validator.js +220 -0
- package/dist/src/tools/merge-validator.js.map +1 -0
- 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/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
- package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
- package/templates/search-tools.md +1 -1
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +471 -471
- package/workflows/cli-tools-usage.md +44 -27
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/delegate-usage.md +3 -3
- package/workflows/execute.md +1 -1
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +343 -343
- package/workflows/issue-analyze.md +6 -2
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue-execute.md +6 -3
- package/workflows/issue-plan.md +5 -2
- package/workflows/maestro-coordinate.codex.md +281 -470
- package/workflows/maestro-coordinate.md +14 -14
- package/workflows/maestro-link-coordinate.md +2 -2
- package/workflows/maestro.codex.md +710 -0
- package/workflows/maestro.md +10 -11
- package/workflows/map.md +111 -111
- 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 +1 -1
- 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/.claude/commands/manage-issue-analyze.md +0 -62
- package/.claude/commands/manage-issue-execute.md +0 -73
- package/.claude/commands/manage-issue-plan.md +0 -62
- package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
- package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
- package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
|
@@ -30,7 +30,7 @@ You are a collaborative planner that works within a pre-allocated task ID range.
|
|
|
30
30
|
- Scope area description (what portion of the work to plan)
|
|
31
31
|
- Shared context: plan-note.md, research docs, phase context
|
|
32
32
|
- Overall plan.json (if exists, for wave coordination)
|
|
33
|
-
- **Project specs** — `maestro spec load --category
|
|
33
|
+
- **Project specs** — `maestro spec load --category arch`: architecture constraints, module boundaries. All tasks must respect loaded constraints.
|
|
34
34
|
|
|
35
35
|
## Output
|
|
36
36
|
- `.task/TASK-{assigned-range}.json` -- Task files within assigned range only, following schema:
|
|
@@ -53,7 +53,7 @@ You implement a single task from the execution plan. Each task is executed atomi
|
|
|
53
53
|
- `reference.files` -- Existing files to study for patterns
|
|
54
54
|
- `reference.pattern` -- Pattern to follow
|
|
55
55
|
- `issue_id` -- Linked issue ID (if from gap-fix planning, include in commit message)
|
|
56
|
-
- **Project specs** (MANDATORY) -- Loaded via `maestro spec load --category
|
|
56
|
+
- **Project specs** (MANDATORY) -- Loaded via `maestro spec load --category coding`:
|
|
57
57
|
- Coding conventions (formatting, naming, imports, patterns)
|
|
58
58
|
- Quality rules (enforcement criteria)
|
|
59
59
|
- All specs with `readMode: required` and `category: execution`
|
|
@@ -41,7 +41,7 @@ You validate the quality of execution plans before they proceed to implementatio
|
|
|
41
41
|
## Input
|
|
42
42
|
- `plan.json` and `.task/TASK-*.json` files
|
|
43
43
|
- Requirements source (spec, roadmap, phase context)
|
|
44
|
-
- **Project specs** — `maestro spec load --category
|
|
44
|
+
- **Project specs** — `maestro spec load --category arch`: verify tasks comply with architecture constraints and module boundaries
|
|
45
45
|
|
|
46
46
|
## Output Location
|
|
47
47
|
`.workflow/phases/{NN}-{slug}/plan-check.md`
|
|
@@ -38,7 +38,7 @@ When invoked with `quick` flag:
|
|
|
38
38
|
- `.workflow/phases/{NN}-{slug}/context.md` -- Phase context and decisions
|
|
39
39
|
- `.workflow/phases/{NN}-{slug}/research.md` -- Phase research (if available)
|
|
40
40
|
- Spec references and doc-index
|
|
41
|
-
- **Project specs** (MANDATORY) -- Loaded via `maestro spec load --category
|
|
41
|
+
- **Project specs** (MANDATORY) -- Loaded via `maestro spec load --category arch`:
|
|
42
42
|
- Architecture constraints (module structure, layer boundaries, dependency rules)
|
|
43
43
|
- Coding conventions (naming, imports, patterns)
|
|
44
44
|
- All specs with `readMode: required` and `category: planning`
|
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: learn-decompose
|
|
3
|
-
description: Decompose code into cataloged design patterns, saving findings to specs and wiki
|
|
4
|
-
argument-hint: "<path|module> [--patterns <list>] [--save-spec] [--save-wiki]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Systematic pattern extraction from code. Analyzes a module or directory across 4 dimensions (structural, behavioral, data, error) using parallel agents, then catalogs findings with code anchors. Discovered patterns can be persisted to specs (via `spec-add`) and wiki (via `maestro wiki create`).
|
|
16
|
-
|
|
17
|
-
Unlike `learn-follow` which reads code with forcing questions, this command is purpose-built for pattern identification and cataloging. It produces a reusable pattern catalog that feeds into the spec system.
|
|
18
|
-
</purpose>
|
|
19
|
-
|
|
20
|
-
<context>
|
|
21
|
-
Arguments: $ARGUMENTS
|
|
22
|
-
|
|
23
|
-
**Target resolution:**
|
|
24
|
-
- File path → analyze that file
|
|
25
|
-
- Directory path → analyze all source files in it
|
|
26
|
-
- Module name → Glob for matching directory under `src/`
|
|
27
|
-
|
|
28
|
-
**Flags:**
|
|
29
|
-
- `--patterns <list>` — Comma-separated pattern names to look for (e.g., "observer,factory,middleware"). If omitted, detect all.
|
|
30
|
-
- `--save-spec` — Invoke `Skill({ skill: "spec-add" })` for each newly discovered pattern
|
|
31
|
-
- `--save-wiki` — Create wiki note entries per pattern group via `maestro wiki create --type note`
|
|
32
|
-
|
|
33
|
-
**Storage written:**
|
|
34
|
-
- `.workflow/learning/decompose-{slug}-{YYYY-MM-DD}.md` — Pattern decomposition report
|
|
35
|
-
- `.workflow/learning/lessons.jsonl` — One insight per discovered pattern (source: "decompose")
|
|
36
|
-
- `.workflow/learning/learning-index.json` — Updated index
|
|
37
|
-
- If `--save-spec`: entries appended to `.workflow/specs/coding-conventions.md`
|
|
38
|
-
- If `--save-wiki`: new wiki note entries
|
|
39
|
-
|
|
40
|
-
**Storage read:**
|
|
41
|
-
- Source files at target path
|
|
42
|
-
- `.workflow/specs/coding-conventions.md` — Existing documented patterns (for dedup)
|
|
43
|
-
- `.workflow/learning/lessons.jsonl` — Previously identified patterns (for dedup)
|
|
44
|
-
</context>
|
|
45
|
-
|
|
46
|
-
<execution>
|
|
47
|
-
|
|
48
|
-
### Stage 1: Resolve Target
|
|
49
|
-
- If argument is a file: verify exists, use as single-file target
|
|
50
|
-
- If argument is a directory: list all `.ts`, `.tsx`, `.js`, `.jsx` files (exclude `node_modules`, `dist`, `.test.`)
|
|
51
|
-
- If argument is a module name: Glob `src/**/{module}*` to find matching directory
|
|
52
|
-
- If target unresolvable, AskUserQuestion with suggestions
|
|
53
|
-
|
|
54
|
-
### Stage 2: Load Existing Patterns
|
|
55
|
-
- Read `.workflow/specs/coding-conventions.md` — extract documented patterns
|
|
56
|
-
- Search `lessons.jsonl` for entries with `category: "pattern"` — previously discovered
|
|
57
|
-
- Build dedup set: pattern names already known
|
|
58
|
-
|
|
59
|
-
### Stage 3: Parallel Agent Analysis (4 dimensions)
|
|
60
|
-
Spawn 4 Agents in a single message, each analyzing the target from one dimension:
|
|
61
|
-
|
|
62
|
-
**Agent 1 — Structural Patterns:**
|
|
63
|
-
- Class hierarchy and composition relationships
|
|
64
|
-
- Module boundaries and encapsulation
|
|
65
|
-
- Dependency injection / inversion of control
|
|
66
|
-
- Builder, Factory, Singleton patterns
|
|
67
|
-
- Export structure (barrel files, re-exports)
|
|
68
|
-
|
|
69
|
-
**Agent 2 — Behavioral Patterns:**
|
|
70
|
-
- Event flow (EventEmitter, pub/sub, callbacks)
|
|
71
|
-
- Middleware chains and interceptors
|
|
72
|
-
- Observer/subscriber patterns
|
|
73
|
-
- Command/strategy patterns
|
|
74
|
-
- State machines
|
|
75
|
-
|
|
76
|
-
**Agent 3 — Data Patterns:**
|
|
77
|
-
- Repository / data access patterns
|
|
78
|
-
- DTO / transformation pipelines
|
|
79
|
-
- Caching strategies (memoization, LRU, TTL)
|
|
80
|
-
- Serialization / deserialization
|
|
81
|
-
- Schema validation approaches
|
|
82
|
-
|
|
83
|
-
**Agent 4 — Error Patterns:**
|
|
84
|
-
- Error boundary and propagation
|
|
85
|
-
- Retry / backoff / circuit breaker
|
|
86
|
-
- Fallback chains
|
|
87
|
-
- Validation and guard clauses
|
|
88
|
-
- Logging and observability patterns
|
|
89
|
-
|
|
90
|
-
Each agent returns findings as structured list:
|
|
91
|
-
```json
|
|
92
|
-
[{
|
|
93
|
-
"name": "pattern name",
|
|
94
|
-
"dimension": "structural|behavioral|data|error",
|
|
95
|
-
"confidence": "high|medium|low",
|
|
96
|
-
"anchors": ["file:line", "file:line"],
|
|
97
|
-
"description": "what it does",
|
|
98
|
-
"rationale": "why this approach",
|
|
99
|
-
"tradeoffs": "what was given up"
|
|
100
|
-
}]
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
If `--patterns` specified, instruct agents to focus only on named patterns.
|
|
104
|
-
|
|
105
|
-
### Stage 4: Cross-Reference & Dedup
|
|
106
|
-
- Match agent findings against existing pattern set from Stage 2
|
|
107
|
-
- Mark each finding: `documented` (already in specs), `known` (in lessons), or `new`
|
|
108
|
-
- Flag contradictions: finding conflicts with documented convention
|
|
109
|
-
- Merge duplicate findings across agents (same pattern found by multiple dimensions)
|
|
110
|
-
|
|
111
|
-
### Stage 5: Produce Pattern Catalog
|
|
112
|
-
Build the decomposition report grouped by dimension:
|
|
113
|
-
|
|
114
|
-
```markdown
|
|
115
|
-
# Pattern Decomposition: {target}
|
|
116
|
-
|
|
117
|
-
## Summary
|
|
118
|
-
- Patterns found: N (M new, K documented, J known)
|
|
119
|
-
- Dimensions analyzed: structural, behavioral, data, error
|
|
120
|
-
- Contradictions: N
|
|
121
|
-
|
|
122
|
-
## Structural Patterns
|
|
123
|
-
| Pattern | Confidence | Location | Status |
|
|
124
|
-
|---------|-----------|----------|--------|
|
|
125
|
-
| {name} | high | {file:line} | new / documented / known |
|
|
126
|
-
|
|
127
|
-
### {Pattern Name}
|
|
128
|
-
**Description:** ...
|
|
129
|
-
**Code example:** (inline snippet from anchor)
|
|
130
|
-
**Trade-offs:** ...
|
|
131
|
-
|
|
132
|
-
## Behavioral Patterns
|
|
133
|
-
...
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Stage 6: Persist
|
|
137
|
-
1. Write `.workflow/learning/decompose-{slug}-{date}.md`
|
|
138
|
-
2. Append each **new** pattern to `lessons.jsonl`:
|
|
139
|
-
- `source: "decompose"`, `category: "pattern"`, `confidence: <level>`
|
|
140
|
-
- Tags: `["decompose", "{dimension}", "{target-slug}"]`
|
|
141
|
-
- Stable INS-id from `hash("decompose" + target + pattern_name)`
|
|
142
|
-
3. Update `learning-index.json`
|
|
143
|
-
4. If `--save-spec`: for each new pattern, invoke `Skill({ skill: "spec-add", args: "pattern {description}" })`
|
|
144
|
-
5. If `--save-wiki`: create wiki note per dimension group via `maestro wiki create --type note --slug decompose-{dimension}-{slug}`
|
|
145
|
-
6. Display summary with counts and next steps
|
|
146
|
-
|
|
147
|
-
**Next-step routing:**
|
|
148
|
-
- Follow-along on a specific pattern → `/learn-follow <anchor-file>`
|
|
149
|
-
- Get second opinion on findings → `/learn-second-opinion <target>`
|
|
150
|
-
- Add all new patterns to specs → `/spec-add
|
|
151
|
-
</execution>
|
|
152
|
-
|
|
153
|
-
<error_codes>
|
|
154
|
-
| Code | Severity | Condition | Recovery |
|
|
155
|
-
|------|----------|-----------|----------|
|
|
156
|
-
| E001 | error | Target path not found | Check path exists, or use a module name |
|
|
157
|
-
| E002 | error | No source files found in target directory | Check target has .ts/.js files, exclude filters may be too aggressive |
|
|
158
|
-
| W001 | warning | One or more dimension agents failed — partial results | Proceed with available dimensions, retry failed ones |
|
|
159
|
-
| W002 | warning | coding-conventions.md not found — skipping dedup against specs | All patterns marked as "new" |
|
|
160
|
-
| W003 | warning | Large target (>50 files) — analysis may be slow | Consider narrowing scope with --patterns filter |
|
|
161
|
-
</error_codes>
|
|
162
|
-
|
|
163
|
-
<success_criteria>
|
|
164
|
-
- [ ] Target resolved to concrete file list
|
|
165
|
-
- [ ] Existing patterns loaded for dedup
|
|
166
|
-
- [ ] All 4 dimension agents spawned in parallel
|
|
167
|
-
- [ ] Each finding has: name, dimension, confidence, anchors, description, tradeoffs
|
|
168
|
-
- [ ] Cross-reference performed (documented / known / new status assigned)
|
|
169
|
-
- [ ] Pattern catalog written to `decompose-{slug}-{date}.md`
|
|
170
|
-
- [ ] New patterns appended to `lessons.jsonl` with stable INS-ids
|
|
171
|
-
- [ ] `learning-index.json` updated
|
|
172
|
-
- [ ] If --save-spec: spec entries created for new patterns
|
|
173
|
-
- [ ] If --save-wiki: wiki notes created per dimension group
|
|
174
|
-
- [ ] No files modified outside `.workflow/learning/` (and optionally specs/wiki)
|
|
175
|
-
- [ ] Summary displayed with pattern counts and next-step routing
|
|
176
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: learn-decompose
|
|
3
|
+
description: Decompose code into cataloged design patterns, saving findings to specs and wiki
|
|
4
|
+
argument-hint: "<path|module> [--patterns <list>] [--save-spec] [--save-wiki]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Systematic pattern extraction from code. Analyzes a module or directory across 4 dimensions (structural, behavioral, data, error) using parallel agents, then catalogs findings with code anchors. Discovered patterns can be persisted to specs (via `spec-add`) and wiki (via `maestro wiki create`).
|
|
16
|
+
|
|
17
|
+
Unlike `learn-follow` which reads code with forcing questions, this command is purpose-built for pattern identification and cataloging. It produces a reusable pattern catalog that feeds into the spec system.
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
Arguments: $ARGUMENTS
|
|
22
|
+
|
|
23
|
+
**Target resolution:**
|
|
24
|
+
- File path → analyze that file
|
|
25
|
+
- Directory path → analyze all source files in it
|
|
26
|
+
- Module name → Glob for matching directory under `src/`
|
|
27
|
+
|
|
28
|
+
**Flags:**
|
|
29
|
+
- `--patterns <list>` — Comma-separated pattern names to look for (e.g., "observer,factory,middleware"). If omitted, detect all.
|
|
30
|
+
- `--save-spec` — Invoke `Skill({ skill: "spec-add" })` for each newly discovered pattern
|
|
31
|
+
- `--save-wiki` — Create wiki note entries per pattern group via `maestro wiki create --type note`
|
|
32
|
+
|
|
33
|
+
**Storage written:**
|
|
34
|
+
- `.workflow/learning/decompose-{slug}-{YYYY-MM-DD}.md` — Pattern decomposition report
|
|
35
|
+
- `.workflow/learning/lessons.jsonl` — One insight per discovered pattern (source: "decompose")
|
|
36
|
+
- `.workflow/learning/learning-index.json` — Updated index
|
|
37
|
+
- If `--save-spec`: entries appended to `.workflow/specs/coding-conventions.md`
|
|
38
|
+
- If `--save-wiki`: new wiki note entries
|
|
39
|
+
|
|
40
|
+
**Storage read:**
|
|
41
|
+
- Source files at target path
|
|
42
|
+
- `.workflow/specs/coding-conventions.md` — Existing documented patterns (for dedup)
|
|
43
|
+
- `.workflow/learning/lessons.jsonl` — Previously identified patterns (for dedup)
|
|
44
|
+
</context>
|
|
45
|
+
|
|
46
|
+
<execution>
|
|
47
|
+
|
|
48
|
+
### Stage 1: Resolve Target
|
|
49
|
+
- If argument is a file: verify exists, use as single-file target
|
|
50
|
+
- If argument is a directory: list all `.ts`, `.tsx`, `.js`, `.jsx` files (exclude `node_modules`, `dist`, `.test.`)
|
|
51
|
+
- If argument is a module name: Glob `src/**/{module}*` to find matching directory
|
|
52
|
+
- If target unresolvable, AskUserQuestion with suggestions
|
|
53
|
+
|
|
54
|
+
### Stage 2: Load Existing Patterns
|
|
55
|
+
- Read `.workflow/specs/coding-conventions.md` — extract documented patterns
|
|
56
|
+
- Search `lessons.jsonl` for entries with `category: "pattern"` — previously discovered
|
|
57
|
+
- Build dedup set: pattern names already known
|
|
58
|
+
|
|
59
|
+
### Stage 3: Parallel Agent Analysis (4 dimensions)
|
|
60
|
+
Spawn 4 Agents in a single message, each analyzing the target from one dimension:
|
|
61
|
+
|
|
62
|
+
**Agent 1 — Structural Patterns:**
|
|
63
|
+
- Class hierarchy and composition relationships
|
|
64
|
+
- Module boundaries and encapsulation
|
|
65
|
+
- Dependency injection / inversion of control
|
|
66
|
+
- Builder, Factory, Singleton patterns
|
|
67
|
+
- Export structure (barrel files, re-exports)
|
|
68
|
+
|
|
69
|
+
**Agent 2 — Behavioral Patterns:**
|
|
70
|
+
- Event flow (EventEmitter, pub/sub, callbacks)
|
|
71
|
+
- Middleware chains and interceptors
|
|
72
|
+
- Observer/subscriber patterns
|
|
73
|
+
- Command/strategy patterns
|
|
74
|
+
- State machines
|
|
75
|
+
|
|
76
|
+
**Agent 3 — Data Patterns:**
|
|
77
|
+
- Repository / data access patterns
|
|
78
|
+
- DTO / transformation pipelines
|
|
79
|
+
- Caching strategies (memoization, LRU, TTL)
|
|
80
|
+
- Serialization / deserialization
|
|
81
|
+
- Schema validation approaches
|
|
82
|
+
|
|
83
|
+
**Agent 4 — Error Patterns:**
|
|
84
|
+
- Error boundary and propagation
|
|
85
|
+
- Retry / backoff / circuit breaker
|
|
86
|
+
- Fallback chains
|
|
87
|
+
- Validation and guard clauses
|
|
88
|
+
- Logging and observability patterns
|
|
89
|
+
|
|
90
|
+
Each agent returns findings as structured list:
|
|
91
|
+
```json
|
|
92
|
+
[{
|
|
93
|
+
"name": "pattern name",
|
|
94
|
+
"dimension": "structural|behavioral|data|error",
|
|
95
|
+
"confidence": "high|medium|low",
|
|
96
|
+
"anchors": ["file:line", "file:line"],
|
|
97
|
+
"description": "what it does",
|
|
98
|
+
"rationale": "why this approach",
|
|
99
|
+
"tradeoffs": "what was given up"
|
|
100
|
+
}]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
If `--patterns` specified, instruct agents to focus only on named patterns.
|
|
104
|
+
|
|
105
|
+
### Stage 4: Cross-Reference & Dedup
|
|
106
|
+
- Match agent findings against existing pattern set from Stage 2
|
|
107
|
+
- Mark each finding: `documented` (already in specs), `known` (in lessons), or `new`
|
|
108
|
+
- Flag contradictions: finding conflicts with documented convention
|
|
109
|
+
- Merge duplicate findings across agents (same pattern found by multiple dimensions)
|
|
110
|
+
|
|
111
|
+
### Stage 5: Produce Pattern Catalog
|
|
112
|
+
Build the decomposition report grouped by dimension:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
# Pattern Decomposition: {target}
|
|
116
|
+
|
|
117
|
+
## Summary
|
|
118
|
+
- Patterns found: N (M new, K documented, J known)
|
|
119
|
+
- Dimensions analyzed: structural, behavioral, data, error
|
|
120
|
+
- Contradictions: N
|
|
121
|
+
|
|
122
|
+
## Structural Patterns
|
|
123
|
+
| Pattern | Confidence | Location | Status |
|
|
124
|
+
|---------|-----------|----------|--------|
|
|
125
|
+
| {name} | high | {file:line} | new / documented / known |
|
|
126
|
+
|
|
127
|
+
### {Pattern Name}
|
|
128
|
+
**Description:** ...
|
|
129
|
+
**Code example:** (inline snippet from anchor)
|
|
130
|
+
**Trade-offs:** ...
|
|
131
|
+
|
|
132
|
+
## Behavioral Patterns
|
|
133
|
+
...
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Stage 6: Persist
|
|
137
|
+
1. Write `.workflow/learning/decompose-{slug}-{date}.md`
|
|
138
|
+
2. Append each **new** pattern to `lessons.jsonl`:
|
|
139
|
+
- `source: "decompose"`, `category: "pattern"`, `confidence: <level>`
|
|
140
|
+
- Tags: `["decompose", "{dimension}", "{target-slug}"]`
|
|
141
|
+
- Stable INS-id from `hash("decompose" + target + pattern_name)`
|
|
142
|
+
3. Update `learning-index.json`
|
|
143
|
+
4. If `--save-spec`: for each new pattern, invoke `Skill({ skill: "spec-add", args: "pattern {description}" })`
|
|
144
|
+
5. If `--save-wiki`: create wiki note per dimension group via `maestro wiki create --type note --slug decompose-{dimension}-{slug}`
|
|
145
|
+
6. Display summary with counts and next steps
|
|
146
|
+
|
|
147
|
+
**Next-step routing:**
|
|
148
|
+
- Follow-along on a specific pattern → `/learn-follow <anchor-file>`
|
|
149
|
+
- Get second opinion on findings → `/learn-second-opinion <target>`
|
|
150
|
+
- Add all new patterns to specs → `/spec-add coding ...` per pattern
|
|
151
|
+
</execution>
|
|
152
|
+
|
|
153
|
+
<error_codes>
|
|
154
|
+
| Code | Severity | Condition | Recovery |
|
|
155
|
+
|------|----------|-----------|----------|
|
|
156
|
+
| E001 | error | Target path not found | Check path exists, or use a module name |
|
|
157
|
+
| E002 | error | No source files found in target directory | Check target has .ts/.js files, exclude filters may be too aggressive |
|
|
158
|
+
| W001 | warning | One or more dimension agents failed — partial results | Proceed with available dimensions, retry failed ones |
|
|
159
|
+
| W002 | warning | coding-conventions.md not found — skipping dedup against specs | All patterns marked as "new" |
|
|
160
|
+
| W003 | warning | Large target (>50 files) — analysis may be slow | Consider narrowing scope with --patterns filter |
|
|
161
|
+
</error_codes>
|
|
162
|
+
|
|
163
|
+
<success_criteria>
|
|
164
|
+
- [ ] Target resolved to concrete file list
|
|
165
|
+
- [ ] Existing patterns loaded for dedup
|
|
166
|
+
- [ ] All 4 dimension agents spawned in parallel
|
|
167
|
+
- [ ] Each finding has: name, dimension, confidence, anchors, description, tradeoffs
|
|
168
|
+
- [ ] Cross-reference performed (documented / known / new status assigned)
|
|
169
|
+
- [ ] Pattern catalog written to `decompose-{slug}-{date}.md`
|
|
170
|
+
- [ ] New patterns appended to `lessons.jsonl` with stable INS-ids
|
|
171
|
+
- [ ] `learning-index.json` updated
|
|
172
|
+
- [ ] If --save-spec: spec entries created for new patterns
|
|
173
|
+
- [ ] If --save-wiki: wiki notes created per dimension group
|
|
174
|
+
- [ ] No files modified outside `.workflow/learning/` (and optionally specs/wiki)
|
|
175
|
+
- [ ] Summary displayed with pattern counts and next-step routing
|
|
176
|
+
</success_criteria>
|