maestro-flow 0.5.35 → 0.5.36
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/.agents/agents/cli-explore-agent.md +71 -68
- package/.agents/agents/workflow-analyzer.md +1 -0
- package/.agents/agents/workflow-debugger.md +1 -0
- package/.agents/agents/workflow-executor.md +1 -0
- package/.agents/skills/domain-add/SKILL.md +71 -0
- package/.agents/skills/maestro/SKILL.md +7 -6
- package/.agents/skills/maestro-amend/SKILL.md +0 -2
- package/.agents/skills/maestro-analyze/SKILL.md +9 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +10 -1
- package/.agents/skills/maestro-collab/SKILL.md +14 -1
- package/.agents/skills/maestro-next/SKILL.md +15 -4
- package/.agents/skills/maestro-overlay/SKILL.md +4 -3
- package/.agents/skills/maestro-plan/SKILL.md +12 -3
- package/.agents/skills/maestro-ralph/SKILL.md +89 -14
- package/.agents/skills/maestro-tools-register/SKILL.md +0 -6
- package/.agents/skills/maestro-ui-codify/SKILL.md +0 -2
- package/.agents/skills/manage-kg-extractors/SKILL.md +0 -2
- package/.agents/skills/quality-test/SKILL.md +0 -2
- package/.agents/skills/spec-load/SKILL.md +0 -1
- package/.agents/skills/spec-setup/SKILL.md +0 -1
- package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +13 -7
- package/.agents/skills/team-quality-assurance/roles/scout/role.md +15 -11
- package/.agents/skills/team-tech-debt/roles/scanner/role.md +1 -1
- package/.agents/skills/team-ultra-analyze/roles/explorer/role.md +23 -16
- package/.agy/agents/cli-explore-agent.md +71 -68
- package/.agy/agents/workflow-analyzer.md +1 -0
- package/.agy/agents/workflow-debugger.md +1 -0
- package/.agy/agents/workflow-executor.md +1 -0
- package/.agy/skills/domain-add/SKILL.md +68 -0
- package/.agy/skills/maestro/SKILL.md +7 -6
- package/.agy/skills/maestro-amend/SKILL.md +0 -2
- package/.agy/skills/maestro-analyze/SKILL.md +9 -0
- package/.agy/skills/maestro-brainstorm/SKILL.md +10 -1
- package/.agy/skills/maestro-collab/SKILL.md +14 -1
- package/.agy/skills/maestro-next/SKILL.md +15 -4
- package/.agy/skills/maestro-overlay/SKILL.md +4 -3
- package/.agy/skills/maestro-plan/SKILL.md +12 -3
- package/.agy/skills/maestro-ralph/SKILL.md +89 -14
- package/.agy/skills/maestro-tools-register/SKILL.md +0 -6
- package/.agy/skills/maestro-ui-codify/SKILL.md +0 -2
- package/.agy/skills/manage-kg-extractors/SKILL.md +0 -2
- package/.agy/skills/quality-test/SKILL.md +0 -2
- package/.agy/skills/spec-load/SKILL.md +0 -1
- package/.agy/skills/spec-setup/SKILL.md +0 -1
- package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +13 -7
- package/.agy/skills/team-quality-assurance/roles/scout/role.md +15 -11
- package/.agy/skills/team-tech-debt/roles/scanner/role.md +1 -1
- package/.agy/skills/team-ultra-analyze/roles/explorer/role.md +23 -16
- package/.claude/agents/cli-explore-agent.md +71 -68
- package/.claude/agents/workflow-analyzer.md +1 -0
- package/.claude/agents/workflow-debugger.md +1 -0
- package/.claude/agents/workflow-executor.md +1 -0
- package/.claude/commands/domain-add.md +69 -0
- package/.claude/commands/maestro-amend.md +0 -2
- package/.claude/commands/maestro-analyze.md +9 -0
- package/.claude/commands/maestro-brainstorm.md +10 -1
- package/.claude/commands/maestro-collab.md +14 -1
- package/.claude/commands/maestro-next.md +15 -4
- package/.claude/commands/maestro-overlay.md +4 -3
- package/.claude/commands/maestro-plan.md +12 -3
- package/.claude/commands/maestro-ralph.md +89 -14
- package/.claude/commands/maestro-tools-register.md +0 -6
- package/.claude/commands/maestro-ui-codify.md +0 -2
- package/.claude/commands/maestro.md +7 -6
- package/.claude/commands/manage-kg-extractors.md +0 -2
- package/.claude/commands/quality-test.md +0 -2
- package/.claude/commands/spec-load.md +0 -1
- package/.claude/commands/spec-setup.md +0 -1
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +13 -7
- package/.claude/skills/team-quality-assurance/roles/scout/role.md +15 -11
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +1 -1
- package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +23 -16
- package/.codex/skills/domain-add/SKILL.md +79 -0
- package/.codex/skills/domain-discover/SKILL.md +43 -0
- package/.codex/skills/domain-list/SKILL.md +38 -0
- package/.codex/skills/learn-follow/SKILL.md +0 -3
- package/.codex/skills/learn-investigate/SKILL.md +0 -3
- package/.codex/skills/learn-retro/SKILL.md +0 -2
- package/.codex/skills/maestro/SKILL.md +17 -11
- package/.codex/skills/maestro-amend/SKILL.md +0 -2
- package/.codex/skills/maestro-analyze/SKILL.md +16 -3
- package/.codex/skills/maestro-blueprint/SKILL.md +0 -4
- package/.codex/skills/maestro-brainstorm/SKILL.md +16 -2
- package/.codex/skills/maestro-collab/SKILL.md +14 -1
- package/.codex/skills/maestro-companion/SKILL.md +0 -2
- package/.codex/skills/maestro-fork/SKILL.md +0 -2
- package/.codex/skills/maestro-grill/SKILL.md +0 -1
- package/.codex/skills/maestro-next/SKILL.md +12 -5
- package/.codex/skills/maestro-plan/SKILL.md +17 -2
- package/.codex/skills/maestro-ralph/SKILL.md +4 -3
- package/.codex/skills/maestro-roadmap/SKILL.md +0 -2
- package/.codex/skills/manage-wiki/SKILL.md +0 -2
- package/.codex/skills/odyssey-debug/SKILL.md +0 -2
- package/.codex/skills/odyssey-improve/SKILL.md +0 -6
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +0 -3
- package/.codex/skills/odyssey-ui/SKILL.md +0 -3
- package/.codex/skills/spec-setup/SKILL.md +0 -2
- package/.codex/skills/team-coordinate/SKILL.md +0 -3
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +0 -2
- package/chains/_intent-map.json +36 -0
- package/chains/blueprint-driven.json +49 -0
- package/chains/grill-driven.json +51 -0
- package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js +4 -0
- package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.d.ts +6 -0
- package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js +36 -0
- package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +13 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.d.ts +11 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +492 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +6 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +92 -4
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +1 -1
- package/dashboard/dist-server/src/commands/hooks.js +49 -1
- package/dashboard/dist-server/src/commands/hooks.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge/domain-extractor.js +4 -2
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge-extractor-registry.js +6 -1
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge-extractor-registry.js.map +1 -1
- package/dashboard/dist-server/src/hooks/session-context.js +37 -1
- package/dashboard/dist-server/src/hooks/session-context.js.map +1 -1
- package/dashboard/dist-server/src/search/daemon.d.ts +42 -0
- package/dashboard/dist-server/src/search/daemon.js +180 -0
- package/dashboard/dist-server/src/search/daemon.js.map +1 -0
- package/dashboard/dist-server/src/tools/domain-loader.d.ts +4 -1
- package/dashboard/dist-server/src/tools/domain-loader.js +56 -25
- package/dashboard/dist-server/src/tools/domain-loader.js.map +1 -1
- package/dashboard/dist-server/src/tools/domain-schema.d.ts +1 -1
- package/dashboard/dist-server/src/tools/domain-schema.js +1 -1
- package/dist/shared/agent-types.d.ts +1 -1
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/agents/api-explore/agent-loop.d.ts +14 -0
- package/dist/src/agents/api-explore/agent-loop.d.ts.map +1 -0
- package/dist/src/agents/api-explore/agent-loop.js +86 -0
- package/dist/src/agents/api-explore/agent-loop.js.map +1 -0
- package/dist/src/agents/api-explore/config.d.ts +42 -0
- package/dist/src/agents/api-explore/config.d.ts.map +1 -0
- package/dist/src/agents/api-explore/config.js +99 -0
- package/dist/src/agents/api-explore/config.js.map +1 -0
- package/dist/src/agents/api-explore/index.d.ts +2 -0
- package/dist/src/agents/api-explore/index.d.ts.map +1 -0
- package/dist/src/agents/api-explore/index.js +102 -0
- package/dist/src/agents/api-explore/index.js.map +1 -0
- package/dist/src/agents/api-explore/llm.d.ts +28 -0
- package/dist/src/agents/api-explore/llm.d.ts.map +1 -0
- package/dist/src/agents/api-explore/llm.js +48 -0
- package/dist/src/agents/api-explore/llm.js.map +1 -0
- package/dist/src/agents/api-explore/prompt-parser.d.ts +23 -0
- package/dist/src/agents/api-explore/prompt-parser.d.ts.map +1 -0
- package/dist/src/agents/api-explore/prompt-parser.js +73 -0
- package/dist/src/agents/api-explore/prompt-parser.js.map +1 -0
- package/dist/src/agents/api-explore/runner.d.ts +65 -0
- package/dist/src/agents/api-explore/runner.d.ts.map +1 -0
- package/dist/src/agents/api-explore/runner.js +196 -0
- package/dist/src/agents/api-explore/runner.js.map +1 -0
- package/dist/src/agents/api-explore/session.d.ts +23 -0
- package/dist/src/agents/api-explore/session.d.ts.map +1 -0
- package/dist/src/agents/api-explore/session.js +57 -0
- package/dist/src/agents/api-explore/session.js.map +1 -0
- package/dist/src/agents/api-explore/stream-json-emitter.d.ts +10 -0
- package/dist/src/agents/api-explore/stream-json-emitter.d.ts.map +1 -0
- package/dist/src/agents/api-explore/stream-json-emitter.js +19 -0
- package/dist/src/agents/api-explore/stream-json-emitter.js.map +1 -0
- package/dist/src/agents/api-explore/system-prompt.d.ts +2 -0
- package/dist/src/agents/api-explore/system-prompt.d.ts.map +1 -0
- package/dist/src/agents/api-explore/system-prompt.js +31 -0
- package/dist/src/agents/api-explore/system-prompt.js.map +1 -0
- package/dist/src/agents/api-explore/tools.d.ts +11 -0
- package/dist/src/agents/api-explore/tools.d.ts.map +1 -0
- package/dist/src/agents/api-explore/tools.js +168 -0
- package/dist/src/agents/api-explore/tools.js.map +1 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +3 -0
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/domain.d.ts.map +1 -1
- package/dist/src/commands/domain.js +5 -4
- package/dist/src/commands/domain.js.map +1 -1
- package/dist/src/commands/explore.d.ts +7 -0
- package/dist/src/commands/explore.d.ts.map +1 -0
- package/dist/src/commands/explore.js +201 -0
- package/dist/src/commands/explore.js.map +1 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +49 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/search.d.ts +21 -4
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +289 -93
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/workspace.d.ts.map +1 -1
- package/dist/src/commands/workspace.js +9 -3
- package/dist/src/commands/workspace.js.map +1 -1
- package/dist/src/config/cli-tools-defaults.json +2 -1
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +4 -2
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -1
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.js +6 -1
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.js.map +1 -1
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
- package/dist/src/graph/kg/surface/cli.js +5 -2
- package/dist/src/graph/kg/surface/cli.js.map +1 -1
- package/dist/src/hooks/session-context.d.ts.map +1 -1
- package/dist/src/hooks/session-context.js +37 -1
- package/dist/src/hooks/session-context.js.map +1 -1
- package/dist/src/ralph/cmd-next.js +64 -1
- package/dist/src/ralph/cmd-next.js.map +1 -1
- package/dist/src/ralph/status-schema.d.ts +1 -0
- package/dist/src/ralph/status-schema.d.ts.map +1 -1
- package/dist/src/search/daemon.d.ts +43 -0
- package/dist/src/search/daemon.d.ts.map +1 -0
- package/dist/src/search/daemon.js +180 -0
- package/dist/src/search/daemon.js.map +1 -0
- package/dist/src/tools/__tests__/domain-search-debug.js +3 -1
- package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -1
- package/dist/src/tools/domain-loader.d.ts +4 -1
- package/dist/src/tools/domain-loader.d.ts.map +1 -1
- package/dist/src/tools/domain-loader.js +56 -25
- package/dist/src/tools/domain-loader.js.map +1 -1
- package/dist/src/tools/domain-schema.d.ts +1 -1
- package/dist/src/tools/domain-schema.js +1 -1
- package/dist/src/utils/update-notices.js +12 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +5 -3
- package/shared/agent-types.ts +1 -1
- package/templates/search-tools.md +22 -6
- package/workflows/agy-instructions.md +0 -4
- package/workflows/analyze.md +2 -2
- package/workflows/boundary-grill.md +50 -0
- package/workflows/brainstorm.md +6 -5
- package/workflows/claude-instructions.md +12 -0
- package/workflows/codebase-rebuild.md +0 -1
- package/workflows/codex-instructions.md +12 -0
- package/workflows/debug.md +0 -4
- package/workflows/domain-add.md +115 -0
- package/workflows/execute.md +7 -0
- package/workflows/explore-usage.md +128 -0
- package/workflows/finish-work.md +2 -6
- package/workflows/fork.md +0 -4
- package/workflows/grill.md +14 -1
- package/workflows/harvest.md +0 -3
- package/workflows/impeccable/audit.md +0 -2
- package/workflows/impeccable/codex.md +0 -4
- package/workflows/init.md +9 -0
- package/workflows/interview-mechanics.md +3 -2
- package/workflows/issue-analyze.md +0 -5
- package/workflows/issue-gaps-analyze.codex.md +0 -6
- package/workflows/knowledge-audit.md +0 -4
- package/workflows/learn.md +0 -6
- package/workflows/maestro.codex.md +0 -4
- package/workflows/maestro.md +31 -18
- package/workflows/merge.md +0 -4
- package/workflows/milestone-complete.md +0 -4
- package/workflows/overlays.md +0 -10
- package/workflows/plan.md +0 -2
- package/workflows/roadmap-common.md +0 -4
- package/workflows/tdd.md +0 -2
- package/workflows/tools-spec.md +1 -7
- package/workflows/ui-codify-extract.md +0 -2
- package/workflows/ui-codify-package.md +0 -2
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Maestro for Antigravity CLI
|
|
2
2
|
|
|
3
|
-
Workflow orchestration CLI with MCP endpoint support and extensible architecture, adapted for Antigravity CLI tooling.
|
|
4
|
-
|
|
5
3
|
- **Coding Philosophy**: @~/.maestro/workflows/coding-philosophy.md
|
|
6
4
|
|
|
7
5
|
## Delegate & CLI
|
|
@@ -11,8 +9,6 @@ Workflow orchestration CLI with MCP endpoint support and extensible architecture
|
|
|
11
9
|
|
|
12
10
|
**Strictly follow the cli-tools.json configuration**
|
|
13
11
|
|
|
14
|
-
Available CLI endpoints are dynamically defined by the config file. Use `maestro delegate --to agy` to dispatch tasks to the Antigravity CLI.
|
|
15
|
-
|
|
16
12
|
## Antigravity Tool Priority
|
|
17
13
|
|
|
18
14
|
When choosing between equivalent tools, prefer the agy native primitives over shell fallbacks:
|
package/workflows/analyze.md
CHANGED
|
@@ -163,11 +163,13 @@ Parse $ARGUMENTS to determine mode and flags:
|
|
|
163
163
|
- `constraints[status=open]` → prioritize for analysis
|
|
164
164
|
- `open_questions[]` → seed discussion topics
|
|
165
165
|
6. Load project specs: `specs_content = maestro spec load --category arch`
|
|
166
|
+
7. Load domain glossary: read `.workflow/domain/glossary.yaml`(如存在)— 分析过程中使用 canonical term names 保持术语一致性;新发现的术语候选记入 `context-package.json#domain.terminology[]`
|
|
166
167
|
|
|
167
168
|
**Load prior context** (adhoc/standalone scope):
|
|
168
169
|
1. Read `.workflow/project.md` (if exists) — project vision, Validated requirements, Active requirements, Key Decisions
|
|
169
170
|
2. Read `.workflow/state.json` (if exists) → `accumulated_context` (key_decisions, deferred, blockers)
|
|
170
171
|
3. Load project specs: `specs_content = maestro spec load --category arch`
|
|
172
|
+
4. Load domain glossary: read `.workflow/domain/glossary.yaml`(如存在)
|
|
171
173
|
|
|
172
174
|
**Quick mode routing**: If QUICK_MODE, skip to Step 8 (Decision Extraction) after loading context.
|
|
173
175
|
|
|
@@ -525,8 +527,6 @@ Implementer's choice. Research suggests: {relevant finding from researchContext}
|
|
|
525
527
|
(e.g., "Standard Stack recommends React Query for server state. Common pitfall: avoid mixing with Redux for async.")
|
|
526
528
|
```
|
|
527
529
|
|
|
528
|
-
This makes research findings visible to the planner through context.md without imposing hard constraints.
|
|
529
|
-
|
|
530
530
|
**8.5: Write context.md**
|
|
531
531
|
|
|
532
532
|
Write to `OUTPUT_DIR/context.md`:
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Boundary Grill — Embedded Mini-Review Protocol
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Conflict Types
|
|
5
|
+
|
|
6
|
+
| ID | Signal | Example |
|
|
7
|
+
|----|--------|---------|
|
|
8
|
+
| `RSC` | Decision outside command's scope guard | analyze outputs task-level details (plan scope) |
|
|
9
|
+
| `MOD` | Changes cross 2+ module boundaries | task touches `commands/` and `hooks/` without declaring cross-module |
|
|
10
|
+
| `DEC` | Upstream locked decision contradicts code | locked "use EventEmitter" but code uses Subject at `file:line` |
|
|
11
|
+
|
|
12
|
+
## Trigger
|
|
13
|
+
|
|
14
|
+
Run boundary grill when ANY of:
|
|
15
|
+
- **RSC**: produced decision matches another command's scope guard keywords
|
|
16
|
+
- **MOD**: `ARCHITECTURE.md` exists AND changes touch 2+ top-level modules
|
|
17
|
+
- **DEC**: upstream Locked decisions AND code grep shows contradicting patterns
|
|
18
|
+
|
|
19
|
+
Priority when >3 conflicts: DEC > RSC > MOD.
|
|
20
|
+
|
|
21
|
+
## Protocol
|
|
22
|
+
|
|
23
|
+
Per conflict (max 3 conflicts × 3 questions = 9 total):
|
|
24
|
+
1. State the conflict with `file:line` evidence
|
|
25
|
+
2. Ask 2-3 adversarial questions via AskUserQuestion — challenge with code reality
|
|
26
|
+
3. Resolve: RESOLVED (evidence-based) / DEFERRED (needs escalation) / ACCEPTED_RISK
|
|
27
|
+
|
|
28
|
+
**Auto mode (`-y`)**: skip questions, resolve via code evidence weighting:
|
|
29
|
+
- RSC → defer to target scope
|
|
30
|
+
- MOD → follow existing cross-module pattern (or flag as risk)
|
|
31
|
+
- DEC → code wins (current code = ground truth)
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
|
|
35
|
+
Append to calling command's primary output:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
## Boundary Grill Results
|
|
39
|
+
|
|
40
|
+
| # | Type | Conflict | Resolution | Evidence |
|
|
41
|
+
|---|------|----------|------------|----------|
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Feed into `context.md`: resolved DEC → amend Locked; unresolved → Deferred with `boundary_grill: true`.
|
|
45
|
+
|
|
46
|
+
## Constraints
|
|
47
|
+
|
|
48
|
+
- Non-blocking — warnings + resolutions, never hard stops
|
|
49
|
+
- Evidence MUST include `file:line` — generic assertions invalid
|
|
50
|
+
- Results visible in command output — no silent swallowing
|
package/workflows/brainstorm.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Workflow: Brainstorm
|
|
2
2
|
|
|
3
|
-
Dual-mode brainstorming: auto pipeline (full multi-role analysis) or single role analysis.
|
|
4
|
-
|
|
5
3
|
## Architecture
|
|
6
4
|
|
|
7
5
|
```
|
|
@@ -202,9 +200,12 @@ Pass into Steps 2 and 3.
|
|
|
202
200
|
|
|
203
201
|
### Step 2: Terminology & Boundary Definition (Auto Mode)
|
|
204
202
|
|
|
205
|
-
1.
|
|
206
|
-
2.
|
|
207
|
-
3.
|
|
203
|
+
1. Load existing domain terms: read `.workflow/domain/glossary.yaml` 中已注册术语,避免重复定义
|
|
204
|
+
2. Extract 5-10 core domain terms (merge upstream locked terms + existing glossary terms)
|
|
205
|
+
3. AskUserQuestion for Non-Goals (multiSelect, include "其他" option)
|
|
206
|
+
4. Store terminology + non_goals to session
|
|
207
|
+
|
|
208
|
+
新候选术语仅存入 `context-package.json#domain.terminology[]`,不直接写 glossary.yaml。由 chain 末尾 `manage-harvest --auto` 触发 finish-work Step 3.5 统一提升为正式术语。
|
|
208
209
|
|
|
209
210
|
**Skip if**: `--yes` (auto-generate terms, empty non-goals)
|
|
210
211
|
|
|
@@ -5,10 +5,22 @@
|
|
|
5
5
|
## Delegate & CLI
|
|
6
6
|
|
|
7
7
|
- **Delegate Usage**: @~/.maestro/workflows/delegate-usage.md
|
|
8
|
+
- **Explore Usage**: @~/.maestro/workflows/explore-usage.md
|
|
8
9
|
- **CLI Endpoints Config**: @~/.maestro/cli-tools.json
|
|
9
10
|
|
|
10
11
|
**Strictly follow the cli-tools.json configuration**
|
|
11
12
|
|
|
13
|
+
## Explore Priority
|
|
14
|
+
|
|
15
|
+
Commands with codebase exploration/search steps should prefer `maestro explore` over inline Grep/Read:
|
|
16
|
+
- **odyssey-\*** (archaeology, explore, discover phases)
|
|
17
|
+
- **analyze, blueprint, grill** (discovery/scan phases)
|
|
18
|
+
- **learn-investigate** (evidence gathering)
|
|
19
|
+
- **issue-discover** (multi-perspective scan)
|
|
20
|
+
- **impeccable teach/explore** (codebase scan)
|
|
21
|
+
|
|
22
|
+
Use structured prompt format (`FIND/SCOPE/EXCLUDE/ATTENTION/EXPECTED`) for targeted searches. Multi-prompt parallel for multi-angle scans.
|
|
23
|
+
|
|
12
24
|
## Knowledge System
|
|
13
25
|
|
|
14
26
|
**Gate rule: On any coding/modification/debugging task, run `maestro search` BEFORE reading code or editing files. Use targeted queries — multiple short searches beat one long one.**
|
|
@@ -204,7 +204,6 @@ Uses the native `maestro kg index` command (`src/graph/analyzers/fs-analyzer.ts`
|
|
|
204
204
|
maestro kg index --src "$PROJECT_ROOT/src"
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
-
This single command performs:
|
|
208
207
|
- File system scan and code entity extraction (nodes, edges)
|
|
209
208
|
- Import/call graph analysis and test pairing (tested_by edges)
|
|
210
209
|
- Layer classification and topological tour generation
|
|
@@ -2,10 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
- **Delegate Usage**: @~/.maestro/workflows/delegate-usage.md
|
|
5
|
+
- **Explore Usage**: @~/.maestro/workflows/explore-usage.md
|
|
5
6
|
- **CLI Endpoints Config**: @~/.maestro/cli-tools.json
|
|
6
7
|
|
|
7
8
|
**Strictly follow the cli-tools.json configuration**
|
|
8
9
|
|
|
10
|
+
## Explore Priority
|
|
11
|
+
|
|
12
|
+
Commands with codebase exploration/search steps should prefer `maestro explore` over inline Grep/Read:
|
|
13
|
+
- **odyssey-\*** (archaeology, explore, discover phases)
|
|
14
|
+
- **analyze, blueprint, grill** (discovery/scan phases)
|
|
15
|
+
- **learn-investigate** (evidence gathering)
|
|
16
|
+
- **issue-discover** (multi-perspective scan)
|
|
17
|
+
- **impeccable teach/explore** (codebase scan)
|
|
18
|
+
|
|
19
|
+
Use structured prompt format (`FIND/SCOPE/EXCLUDE/ATTENTION/EXPECTED`) for targeted searches. Multi-prompt parallel for multi-angle scans.
|
|
20
|
+
|
|
9
21
|
# Coding Philosophy
|
|
10
22
|
|
|
11
23
|
## Core Beliefs
|
package/workflows/debug.md
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Debug Workflow
|
|
2
2
|
|
|
3
|
-
Scientific method debugging with subagent isolation. Three modes: **Standalone** (user describes issue), **From UAT** (`--from-uat`, pre-filled symptoms), **Parallel** (`--parallel`, concurrent agents per gap cluster).
|
|
4
|
-
|
|
5
|
-
Output: `understanding.md` + `evidence.ndjson` per investigation.
|
|
6
|
-
|
|
7
3
|
---
|
|
8
4
|
|
|
9
5
|
## Iron Law
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: domain-add
|
|
3
|
+
alias: domain-add
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workflow: domain-add
|
|
7
|
+
|
|
8
|
+
Register a domain term into `.workflow/domain/glossary.yaml`.
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
$ARGUMENTS: "<canonical> <definition>"
|
|
14
|
+
|
|
15
|
+
canonical -- kebab-case term name (e.g. "auth-token", "event-bus")
|
|
16
|
+
definition -- one-line definition (≤200 chars)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- `.workflow/domain/` directory must exist (run `maestro domain init` if missing)
|
|
22
|
+
|
|
23
|
+
## Execution Steps
|
|
24
|
+
|
|
25
|
+
### Step 1: Parse Arguments
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Parse $ARGUMENTS:
|
|
29
|
+
1. canonical = first token (kebab-case, e.g. "auth-token")
|
|
30
|
+
2. definition = remaining text
|
|
31
|
+
Validate:
|
|
32
|
+
- canonical is non-empty, kebab-case (lowercase, hyphens only)
|
|
33
|
+
- definition is non-empty, ≤200 chars
|
|
34
|
+
On failure: show usage `domain-add <canonical> "<definition>"`, exit
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 2: Check Glossary State
|
|
38
|
+
|
|
39
|
+
Verify `.workflow/domain/glossary.yaml` exists. If not, create via `maestro domain init`.
|
|
40
|
+
|
|
41
|
+
Read existing glossary and check for:
|
|
42
|
+
- **Exact duplicate**: same canonical name already registered → report existing entry, exit
|
|
43
|
+
- **Near match**: Levenshtein distance ≤ 2 or alias overlap → warn, ask to confirm or merge
|
|
44
|
+
|
|
45
|
+
### Step 3: Extract Metadata
|
|
46
|
+
|
|
47
|
+
Auto-derive from the definition and codebase context:
|
|
48
|
+
|
|
49
|
+
- **aliases** (1-3): common abbreviations, Chinese translations, or alternate forms the term is known by
|
|
50
|
+
- **keywords** (3-5): search terms for discovery
|
|
51
|
+
- **tier**: `core` (fundamental project concept) | `extended` (secondary) | `peripheral` (rarely referenced)
|
|
52
|
+
- **relationships**: scan existing glossary for related terms (semantic overlap or dependency)
|
|
53
|
+
|
|
54
|
+
### Step 4: Register Term
|
|
55
|
+
|
|
56
|
+
Write via `maestro domain add`:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
maestro domain add "<canonical>" "<definition>" --tier <tier>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If aliases or relationships identified, update immediately:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
maestro domain update "<canonical>" --aliases "alias1,alias2" --keywords "kw1,kw2,kw3" --relationships "related-term-1,related-term-2"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Records `source.kind = 'manual'`, `source.registered_at = now`.
|
|
69
|
+
|
|
70
|
+
### Step 5: Verify Injection
|
|
71
|
+
|
|
72
|
+
Confirm the term is injectable by checking:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
maestro domain show "<canonical>"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Display: canonical name, definition, aliases, tier, relationships, and verify command:
|
|
79
|
+
```
|
|
80
|
+
maestro domain list
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 6: Report
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
=== DOMAIN TERM REGISTERED ===
|
|
87
|
+
Term: {canonical}
|
|
88
|
+
Definition: {definition}
|
|
89
|
+
Aliases: {alias1, alias2}
|
|
90
|
+
Tier: {tier}
|
|
91
|
+
Related: {rel1, rel2}
|
|
92
|
+
Injection: domain-compact (always) + domain-expanded (on keyword match)
|
|
93
|
+
Next: maestro domain list | maestro domain discover (find more candidates)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Auto-Discovery Alternative
|
|
97
|
+
|
|
98
|
+
For batch registration from codebase scanning:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
maestro domain discover # scan codebase for term candidates
|
|
102
|
+
maestro domain import # batch import from external source
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Domain Term Lifecycle
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
discover/manual → register → active → (optional) deprecated → removed
|
|
109
|
+
↑
|
|
110
|
+
update aliases/keywords/relationships
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Output
|
|
114
|
+
|
|
115
|
+
One domain term entry added to `.workflow/domain/glossary.yaml`.
|
package/workflows/execute.md
CHANGED
|
@@ -589,6 +589,13 @@ Append unique entries to .workflow/specs/learnings.md using <spec-entry> closed-
|
|
|
589
589
|
category="learning", keywords (3-5 terms), date, source="execute"
|
|
590
590
|
|
|
591
591
|
Mark artifact.harvested = true; write state.json (atomic)
|
|
592
|
+
|
|
593
|
+
// Domain knowledge note:
|
|
594
|
+
// E5 仅提取 incremental learnings (spec category=learning)。
|
|
595
|
+
// 完整的知识提取(constraints → spec, decisions → knowhow, terminology → domain glossary)
|
|
596
|
+
// 由 chain 末尾的 manage-harvest --auto 触发 finish-work 统一处理。
|
|
597
|
+
// Domain compact/expanded 注入是 hook 自动行为,execute 期间无需手动加载——
|
|
598
|
+
// 已注册术语通过 keyword-spec-injector 自动注入到 agent context 中。
|
|
592
599
|
```
|
|
593
600
|
|
|
594
601
|
---
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Explore Usage
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
maestro explore "<PROMPT>" [more prompts...] [options]
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
| Scenario | Example |
|
|
10
|
+
|----------|---------|
|
|
11
|
+
| Multi-angle codebase scan | 3 prompts scanning DB/API/error patterns in parallel |
|
|
12
|
+
| Quick code lookup | Single prompt, foreground |
|
|
13
|
+
| Per-prompt endpoint routing | JSON file with different endpoints per prompt |
|
|
14
|
+
| Lightweight read-only analysis | Where delegate is overkill (no session, no history) |
|
|
15
|
+
|
|
16
|
+
**Not for**: write-mode tasks, long sessions, interactive follow-ups — use `delegate` instead.
|
|
17
|
+
|
|
18
|
+
## Options
|
|
19
|
+
|
|
20
|
+
| Option | Description | Default |
|
|
21
|
+
|--------|-------------|---------|
|
|
22
|
+
| `-e, --endpoint <names>` | Endpoint name(s), comma-separated | First available |
|
|
23
|
+
| `--all` | Fan out each prompt to all endpoints | — |
|
|
24
|
+
| `--parallel <n>` | Max concurrent endpoint queues | Config or `4` |
|
|
25
|
+
| `--ep-concurrency <n>` | Max concurrent jobs per endpoint | `1` (serial) |
|
|
26
|
+
| `--max-turns <n>` | Max agent turns per job | Config or `6` |
|
|
27
|
+
| `-f, --file <path>` | Load prompts from JSON or text file | — |
|
|
28
|
+
| `--cd <dir>` | Working directory | Current |
|
|
29
|
+
| `-o, --output-dir <dir>` | Custom session save directory | `.workflow/explore/` |
|
|
30
|
+
| `--no-save` | Skip session save | — |
|
|
31
|
+
| `--json` | Output results as JSON | — |
|
|
32
|
+
|
|
33
|
+
**1 prompt = 1 agent**. Endpoint resolution: `--endpoint` > `--all` > first available.
|
|
34
|
+
|
|
35
|
+
## Prompt Template
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
FIND: [what to search for — the core query]
|
|
39
|
+
SCOPE: [file patterns, directories, or modules]
|
|
40
|
+
EXCLUDE: [what to skip — files, patterns, false positives]
|
|
41
|
+
ATTENTION: [caveats, edge cases, things to watch for]
|
|
42
|
+
EXPECTED: [output format — evidence list, summary, JSON]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Only `FIND` required. Plain text (no `FIND:` prefix) also works.
|
|
46
|
+
|
|
47
|
+
| Field | Role | Example |
|
|
48
|
+
|-------|------|---------|
|
|
49
|
+
| `FIND` | What to search for | `All database query patterns that could cause N+1` |
|
|
50
|
+
| `SCOPE` | Where to look | `src/db/**/*.ts`, `src/api/` |
|
|
51
|
+
| `EXCLUDE` | What to skip | `test files, generated code, node_modules` |
|
|
52
|
+
| `ATTENTION` | What to watch for | `ORM lazy-loading traps, raw SQL in service layer` |
|
|
53
|
+
| `EXPECTED` | Output format | `file:line evidence list with severity` |
|
|
54
|
+
|
|
55
|
+
## Execution Model
|
|
56
|
+
|
|
57
|
+
**Serial within endpoint, parallel across endpoints.**
|
|
58
|
+
|
|
59
|
+
Same API → jobs queue and run one-by-one (avoids rate limits).
|
|
60
|
+
Different APIs → queues run concurrently.
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Endpoint A: [job1] → [job2] → [job3] (serial)
|
|
64
|
+
Endpoint B: [job4] → [job5] (serial)
|
|
65
|
+
↑ parallel ↑
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Raise per-endpoint parallelism with `--ep-concurrency 2` when the API allows it.
|
|
69
|
+
|
|
70
|
+
## Multi-Prompt Input
|
|
71
|
+
|
|
72
|
+
**Inline**: `maestro explore "prompt1" "prompt2" "prompt3"`
|
|
73
|
+
|
|
74
|
+
**JSON file** (`-f prompts.json`):
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
[
|
|
78
|
+
"simple string prompt",
|
|
79
|
+
{ "prompt": "FIND: auth bypass\nSCOPE: src/api/", "endpoint": "deepseek" }
|
|
80
|
+
]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Per-prompt `endpoint` overrides global `--endpoint`.
|
|
84
|
+
|
|
85
|
+
**Text file** (`-f prompts.txt`): paragraphs separated by blank lines.
|
|
86
|
+
|
|
87
|
+
**Mixed**: `maestro explore "inline" -f file.json`
|
|
88
|
+
|
|
89
|
+
## Session
|
|
90
|
+
|
|
91
|
+
Results auto-save to `.workflow/explore/{session-id}.json` per workspace.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
maestro explore show # list sessions
|
|
95
|
+
maestro explore output <id> # view session results
|
|
96
|
+
maestro explore output <id> --json # JSON output
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Endpoint Config
|
|
100
|
+
|
|
101
|
+
File: `~/.maestro/api-explore.json`
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"endpoints": {
|
|
106
|
+
"qwen": { "baseUrl": "https://...", "apiKey": "sk-xxx", "model": "Qwen/Qwen3-8B" },
|
|
107
|
+
"deepseek": { "baseUrl": "https://...", "apiKey": "sk-yyy", "model": "deepseek-chat" }
|
|
108
|
+
},
|
|
109
|
+
"maxTurns": 6,
|
|
110
|
+
"concurrency": 4
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Proxy auto-inherited from `~/.maestro/cli-tools.json`. Legacy single-endpoint and env vars also supported.
|
|
115
|
+
|
|
116
|
+
## Execution Rules
|
|
117
|
+
|
|
118
|
+
Multi-prompt — **background**:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Bash({ command: "maestro explore \"p1\" \"p2\" --json", run_in_background: true })
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Single quick lookup — foreground is fine:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Bash({ command: "maestro explore \"Where is X defined?\"" })
|
|
128
|
+
```
|
package/workflows/finish-work.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Workflow: finish-work
|
|
2
2
|
|
|
3
|
-
Last step of session commands. Inline-extracts spec/knowhow from this single session, then writes `archive.json` so the session enters `wiki search` (strategy 2: only sealed/archived sessions are indexed).
|
|
4
|
-
|
|
5
3
|
## Inputs
|
|
6
4
|
|
|
7
5
|
Caller passes: `SESSION_DIR`, `SESSION_TYPE` (grill | brainstorm | analyze | blueprint | plan | execute | verify), `SESSION_ID`, `LINKED_MILESTONE` (optional).
|
|
@@ -78,10 +76,10 @@ Source priority:
|
|
|
78
76
|
|
|
79
77
|
Process:
|
|
80
78
|
1. 从 session 产物中收集术语候选
|
|
81
|
-
2. 过滤已注册的 `glossary.
|
|
79
|
+
2. 过滤已注册的 `glossary.yaml` terms
|
|
82
80
|
3. 0 个新候选 → 跳过(静默)
|
|
83
81
|
4. ≥ 1 个新候选 → 交互确认(domain 注册始终需要用户确认,`-y` 对 domain 无效)
|
|
84
|
-
5. 确认的术语写入 `glossary.
|
|
82
|
+
5. 确认的术语写入 `glossary.yaml` via `maestro domain add`
|
|
85
83
|
6. 记录到 `archive.json` 的 `extraction.domain_ids[]`
|
|
86
84
|
|
|
87
85
|
Skip conditions:
|
|
@@ -130,8 +128,6 @@ Next: /maestro-milestone-complete will flip lifecycle.status → archived and pr
|
|
|
130
128
|
|
|
131
129
|
## Idempotency
|
|
132
130
|
|
|
133
|
-
Re-running on same session: archive.json overwritten with fresh timestamps. Steps 2-3 skipped when existing `archive.json.extraction.harvested == true` (avoids duplicate spec/knowhow). Force re-extract: delete `archive.json` first.
|
|
134
|
-
|
|
135
131
|
## Boundary
|
|
136
132
|
|
|
137
133
|
- Does NOT flip `archived_at` or move files — that is milestone-complete Step 2.3.
|
package/workflows/fork.md
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Workflow: fork
|
|
2
2
|
|
|
3
|
-
Create a git worktree for an entire milestone, enabling inter-milestone parallel development. Copies `.workflow/` context into the worktree since `.workflow/` is gitignored.
|
|
4
|
-
|
|
5
|
-
Worktrees operate at the **milestone level** — all phases within a milestone are owned by one worktree and executed sequentially inside it. Per-phase parallelism within a milestone is not supported.
|
|
6
|
-
|
|
7
3
|
---
|
|
8
4
|
|
|
9
5
|
## Step 1: Parse Arguments and Flags
|
package/workflows/grill.md
CHANGED
|
@@ -451,7 +451,20 @@ Write `{output_dir}/context-package.json`:
|
|
|
451
451
|
}
|
|
452
452
|
```
|
|
453
453
|
|
|
454
|
-
### 7.2:
|
|
454
|
+
### 7.2: Domain Knowledge Flow
|
|
455
|
+
|
|
456
|
+
Grill 产出的领域术语通过以下路径沉淀到项目知识库:
|
|
457
|
+
|
|
458
|
+
```
|
|
459
|
+
terminology.md (locked terms) ──→ finish-work Step 3.5 ──→ .workflow/domain/glossary.yaml
|
|
460
|
+
context-package.json#domain.terminology[] ──→ finish-work Step 3.5 ──→ glossary.yaml
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
- Grill 期间**不应**直接调用 `maestro domain add` — 术语在 grilling 过程中可能被修改或推翻
|
|
464
|
+
- 所有术语经 Step 5 synthesis 锁定后,由 chain 末尾的 `manage-harvest --auto` 自动触发 finish-work 提取
|
|
465
|
+
- finish-work Step 3.5 的 domain extraction 始终交互确认(`-y` 对 domain 注册无效)
|
|
466
|
+
|
|
467
|
+
### 7.3: Completion Report
|
|
455
468
|
|
|
456
469
|
```
|
|
457
470
|
Grill session {artifact_id} completed.
|
package/workflows/harvest.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Harvest Workflow
|
|
2
2
|
|
|
3
|
-
Extract knowledge from **any workflow artifact** (analysis, brainstorm, debug, lite-plan/fix, scratchpad, sessions) and route into wiki / spec / issue stores.
|
|
4
3
|
|
|
5
4
|
---
|
|
6
5
|
|
|
@@ -260,8 +259,6 @@ For each routed item, record in `.workflow/harvest/harvest-log.jsonl`:
|
|
|
260
259
|
}
|
|
261
260
|
```
|
|
262
261
|
|
|
263
|
-
This log prevents duplicate harvesting in future runs.
|
|
264
|
-
|
|
265
262
|
---
|
|
266
263
|
|
|
267
264
|
## Stage 7: dedup_check
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
Run systematic **technical** quality checks and generate a comprehensive report. Don't fix issues; document them for other commands to address.
|
|
2
2
|
|
|
3
|
-
This is a code-level audit, not a design critique. Check what's measurable and verifiable in the implementation.
|
|
4
|
-
|
|
5
3
|
## Diagnostic Scan
|
|
6
4
|
|
|
7
5
|
Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the criteria below.
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Codex: Visual Direction & Asset Production
|
|
2
2
|
|
|
3
|
-
This file is loaded by `/maestro-impeccable craft` when the harness has native image generation (currently Codex via `image_gen`). Other harnesses skip it. It covers the two craft steps that depend on real image generation: landing the visual direction, and producing the raster assets the implementation will compose.
|
|
4
|
-
|
|
5
|
-
Read this *before* generating any images. The order matters, and the per-step user pauses are what keep generated imagery from drifting away from the brief.
|
|
6
|
-
|
|
7
3
|
### Four stop points before code
|
|
8
4
|
|
|
9
5
|
Steps A through D each end with the user. Do not advance past any of them on your own read of the situation.
|
package/workflows/init.md
CHANGED
|
@@ -113,6 +113,14 @@ If `.workflow/specs/` does not exist:
|
|
|
113
113
|
- Skip spec-setup (nothing to scan)
|
|
114
114
|
- Note: Specs will be progressively populated as pipeline stages produce knowledge
|
|
115
115
|
|
|
116
|
+
## Step 2.5: Domain Init (first-run only)
|
|
117
|
+
|
|
118
|
+
If `.workflow/domain/` does not exist:
|
|
119
|
+
|
|
120
|
+
1. Run `Bash("maestro domain init")` — creates `.workflow/domain/glossary.yaml` with empty terms array
|
|
121
|
+
2. If brownfield project (has source files): run `maestro domain discover --auto` to scan codebase for initial term candidates, present top 5 for confirmation
|
|
122
|
+
3. If greenfield project: skip discovery (no codebase to scan); domain terms will be populated by grill/brainstorm sessions via finish-work extraction
|
|
123
|
+
|
|
116
124
|
|
|
117
125
|
---
|
|
118
126
|
|
|
@@ -126,6 +134,7 @@ Verify all required directories and files exist:
|
|
|
126
134
|
state.json ✓
|
|
127
135
|
config.json ✓
|
|
128
136
|
specs/ ✓
|
|
137
|
+
domain/ ✓ (glossary.yaml)
|
|
129
138
|
research/ ✓ (if research enabled)
|
|
130
139
|
scratch/ ✓ (create empty)
|
|
131
140
|
milestones/ ✓ (create empty)
|
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
- **One decision per turn** via AskUserQuestion, 2-4 options, first marked `(Recommended)`. User can redirect via `Other`.
|
|
4
4
|
- **Search-first**: resolve via state.json → session artifacts → `maestro spec/wiki` → Glob/Grep/Read → Agent(Explore) / delegate. Never ask what code can answer.
|
|
5
5
|
- **Writeback**: each decision **immediately written to disk** before the next question. No batching.
|
|
6
|
-
- **Skip**: auto mode (`-y`)
|
|
7
|
-
- **Decision table**: `| # | Decision | Choice | Source (user / code / default) |`
|
|
6
|
+
- **Skip**: auto mode (`-y`) → 逐问题 Search-first 代答(不跳过整段 interview);仅当代码给出高置信答案时跳过该问题。**例外**:broad intent 的边界澄清永不跳过(即使 `-y`);phase 歧义永不跳过。resume (`-c`) → 跳过已答问题。unambiguous 单一答案输入 → 仅跳过该问题。
|
|
7
|
+
- **Decision table**: `| # | Decision | Choice | Source (user / code / default) | Confidence (high / medium / LOW) |`
|
|
8
|
+
- `code` source:Search-first 派生(state.json / spec / Glob / Grep)。`code` + 非 broad → 可自动定;`code` + broad → 标 `LOW CONFIDENCE` 需用户确认;`default` source → 一律标 `LOW CONFIDENCE`。
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
> **DEPRECATED**: Superseded by `issue-gaps-analyze.md` which adds batch support and context.md output.
|
|
4
4
|
> Use `maestro-analyze --gaps [ISS-ID]` instead.
|
|
5
5
|
|
|
6
|
-
This workflow's executable steps have been removed to prevent divergent implementations.
|
|
7
|
-
|
|
8
6
|
## Migration
|
|
9
7
|
|
|
10
8
|
| Old usage | New usage |
|
|
@@ -20,6 +18,3 @@ This workflow's executable steps have been removed to prevent divergent implemen
|
|
|
20
18
|
- `issue-execute.md` — downstream execution after planning
|
|
21
19
|
|
|
22
20
|
## Notes
|
|
23
|
-
|
|
24
|
-
- Issue records analyzed by the new pipeline still write to `.workflow/issues/issues.jsonl` with `analysis` field (root_cause, impact, related_files, confidence, suggested_approach, analyzed_at, analyzed_by).
|
|
25
|
-
- Status is unchanged by analysis (non-destructive enrichment).
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
# Workflow: Issue Gaps Analysis (Codex — CSV Wave)
|
|
2
2
|
|
|
3
|
-
Root cause analysis for issues via `spawn_agents_on_csv` wave execution.
|
|
4
|
-
Supports single issue (ISS-ID) or batch with classification and parallel analysis.
|
|
5
|
-
Produces analysis records in issues.jsonl and context.md for downstream `plan --gaps`.
|
|
6
|
-
|
|
7
|
-
**Invoked by**: `maestro-analyze --gaps [ISS-ID]` (codex SKILL.md)
|
|
8
|
-
|
|
9
3
|
## Pipeline
|
|
10
4
|
|
|
11
5
|
```
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Knowledge Audit Workflow
|
|
2
2
|
|
|
3
|
-
审查 spec / knowhow / artifact 三大知识存储,识别矛盾、失效、老化、孤儿,通过 keep/deprecate/delete 三态决策淘汰。
|
|
4
|
-
|
|
5
|
-
与 `harvest.md` 对称:harvest 写入知识 → knowledge-audit 清理知识。与 `harvest --prune`(Stage 9)的区别:prune 做物理 GC(孤儿指针、格式损坏),audit 做语义审查(逻辑矛盾、生命周期决策)。
|
|
6
|
-
|
|
7
3
|
---
|
|
8
4
|
|
|
9
5
|
## Prerequisites
|
package/workflows/learn.md
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
# Learn Workflow
|
|
2
2
|
|
|
3
|
-
Atomic insight capture, search, and retrieval. Lightweight gstack-style "eureka moment" log that complements the retrospective workflow: where retrospective extracts insights from completed phases in bulk, `manage-learn` captures one insight at a time during active work.
|
|
4
|
-
|
|
5
3
|
Storage:
|
|
6
4
|
- `.workflow/specs/learnings.md` — append-only container of `<spec-entry>` sub-entries (shared with retrospective output)
|
|
7
5
|
- Auto-indexed by WikiIndexer (no manual index required)
|
|
8
6
|
|
|
9
|
-
**Shared store rationale:** Manual captures (`source: "manual"`), tips (`source: "tip"`), retrospective-distilled insights (`source: "retrospective"`, `lens: <name>` from `quality-retrospective`), and learn-retro insights (`source: "retro-git"` or `source: "retro-decision"` from `learn-retro`) all live in the same store so search and list see the entire knowledge corpus. The `source` field disambiguates origin.
|
|
10
|
-
|
|
11
|
-
This workflow does NOT spawn sub-agents; it may invoke maestro CLI utilities (e.g. `maestro wiki search`, `maestro wiki list`) for list/search subcommands. The core capture flow is a thin file operation: parse → infer → append → confirm.
|
|
12
|
-
|
|
13
7
|
---
|
|
14
8
|
|
|
15
9
|
## Prerequisites
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# Workflow: Maestro (Codex Edition)
|
|
2
2
|
|
|
3
|
-
CSV wave coordinator version of the intelligent coordinator. Replaces `spawn_agent / wait / close_agent` loop with `spawn_agents_on_csv` (max_workers=1) for sequential pipeline execution. Each chain step is a CSV row with `skill_call` column; agents read prior results from session directory for context propagation.
|
|
4
|
-
|
|
5
|
-
> Referenced by: `~/.codex/skills/maestro/SKILL.md`
|
|
6
|
-
|
|
7
3
|
---
|
|
8
4
|
|
|
9
5
|
## Step 1: Parse Arguments
|