maestro-flow-one 0.1.0
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/LICENSE +21 -0
- package/README.md +173 -0
- package/bin/maestro-flow.js +730 -0
- package/claude/maestro-flow/SKILL.md +239 -0
- package/claude/maestro-flow/chains/templates.json +256 -0
- package/claude/maestro-flow/commands/learn/decompose.md +176 -0
- package/claude/maestro-flow/commands/learn/follow.md +167 -0
- package/claude/maestro-flow/commands/learn/investigate.md +221 -0
- package/claude/maestro-flow/commands/learn/retro.md +303 -0
- package/claude/maestro-flow/commands/learn/second-opinion.md +167 -0
- package/claude/maestro-flow/commands/lifecycle/amend.md +300 -0
- package/claude/maestro-flow/commands/lifecycle/analyze.md +126 -0
- package/claude/maestro-flow/commands/lifecycle/brainstorm.md +100 -0
- package/claude/maestro-flow/commands/lifecycle/composer.md +354 -0
- package/claude/maestro-flow/commands/lifecycle/execute.md +114 -0
- package/claude/maestro-flow/commands/lifecycle/fork.md +86 -0
- package/claude/maestro-flow/commands/lifecycle/init.md +78 -0
- package/claude/maestro-flow/commands/lifecycle/learn.md +140 -0
- package/claude/maestro-flow/commands/lifecycle/link-coordinate.md +71 -0
- package/claude/maestro-flow/commands/lifecycle/merge.md +61 -0
- package/claude/maestro-flow/commands/lifecycle/overlay.md +178 -0
- package/claude/maestro-flow/commands/lifecycle/plan.md +138 -0
- package/claude/maestro-flow/commands/lifecycle/player.md +404 -0
- package/claude/maestro-flow/commands/lifecycle/quick.md +56 -0
- package/claude/maestro-flow/commands/lifecycle/roadmap.md +164 -0
- package/claude/maestro-flow/commands/lifecycle/ui-design.md +93 -0
- package/claude/maestro-flow/commands/lifecycle/update.md +176 -0
- package/claude/maestro-flow/commands/lifecycle/verify.md +90 -0
- package/claude/maestro-flow/commands/manage/codebase-rebuild.md +75 -0
- package/claude/maestro-flow/commands/manage/codebase-refresh.md +57 -0
- package/claude/maestro-flow/commands/manage/harvest.md +94 -0
- package/claude/maestro-flow/commands/manage/issue-discover.md +77 -0
- package/claude/maestro-flow/commands/manage/issue.md +73 -0
- package/claude/maestro-flow/commands/manage/knowhow-capture.md +193 -0
- package/claude/maestro-flow/commands/manage/knowhow.md +77 -0
- package/claude/maestro-flow/commands/manage/learn.md +67 -0
- package/claude/maestro-flow/commands/manage/status.md +51 -0
- package/claude/maestro-flow/commands/manage/wiki.md +62 -0
- package/claude/maestro-flow/commands/milestone/audit.md +68 -0
- package/claude/maestro-flow/commands/milestone/complete.md +75 -0
- package/claude/maestro-flow/commands/milestone/release.md +96 -0
- package/claude/maestro-flow/commands/quality/auto-test.md +124 -0
- package/claude/maestro-flow/commands/quality/debug.md +115 -0
- package/claude/maestro-flow/commands/quality/refactor.md +55 -0
- package/claude/maestro-flow/commands/quality/retrospective.md +78 -0
- package/claude/maestro-flow/commands/quality/review.md +108 -0
- package/claude/maestro-flow/commands/quality/sync.md +51 -0
- package/claude/maestro-flow/commands/quality/test.md +103 -0
- package/claude/maestro-flow/commands/spec/add.md +49 -0
- package/claude/maestro-flow/commands/spec/load.md +51 -0
- package/claude/maestro-flow/commands/spec/remove.md +51 -0
- package/claude/maestro-flow/commands/spec/setup.md +51 -0
- package/claude/maestro-flow/commands/wiki/connect.md +62 -0
- package/claude/maestro-flow/commands/wiki/digest.md +69 -0
- package/codex/maestro-flow/SKILL.md +505 -0
- package/codex/maestro-flow/chains/templates.json +256 -0
- package/codex/maestro-flow/commands/learn/decompose.md +113 -0
- package/codex/maestro-flow/commands/learn/follow.md +83 -0
- package/codex/maestro-flow/commands/learn/investigate.md +83 -0
- package/codex/maestro-flow/commands/learn/retro.md +83 -0
- package/codex/maestro-flow/commands/learn/second-opinion.md +86 -0
- package/codex/maestro-flow/commands/lifecycle/amend.md +300 -0
- package/codex/maestro-flow/commands/lifecycle/analyze.md +483 -0
- package/codex/maestro-flow/commands/lifecycle/brainstorm.md +397 -0
- package/codex/maestro-flow/commands/lifecycle/composer.md +213 -0
- package/codex/maestro-flow/commands/lifecycle/execute.md +318 -0
- package/codex/maestro-flow/commands/lifecycle/fork.md +98 -0
- package/codex/maestro-flow/commands/lifecycle/init.md +134 -0
- package/codex/maestro-flow/commands/lifecycle/learn.md +80 -0
- package/codex/maestro-flow/commands/lifecycle/link-coordinate.md +257 -0
- package/codex/maestro-flow/commands/lifecycle/merge.md +69 -0
- package/codex/maestro-flow/commands/lifecycle/overlay.md +119 -0
- package/codex/maestro-flow/commands/lifecycle/plan.md +460 -0
- package/codex/maestro-flow/commands/lifecycle/player.md +323 -0
- package/codex/maestro-flow/commands/lifecycle/quick.md +124 -0
- package/codex/maestro-flow/commands/lifecycle/roadmap.md +468 -0
- package/codex/maestro-flow/commands/lifecycle/ui-design.md +135 -0
- package/codex/maestro-flow/commands/lifecycle/update.md +176 -0
- package/codex/maestro-flow/commands/lifecycle/verify.md +468 -0
- package/codex/maestro-flow/commands/manage/codebase-rebuild.md +347 -0
- package/codex/maestro-flow/commands/manage/codebase-refresh.md +66 -0
- package/codex/maestro-flow/commands/manage/harvest.md +91 -0
- package/codex/maestro-flow/commands/manage/issue-discover.md +431 -0
- package/codex/maestro-flow/commands/manage/issue.md +75 -0
- package/codex/maestro-flow/commands/manage/knowhow-capture.md +110 -0
- package/codex/maestro-flow/commands/manage/knowhow.md +95 -0
- package/codex/maestro-flow/commands/manage/learn.md +137 -0
- package/codex/maestro-flow/commands/manage/status.md +76 -0
- package/codex/maestro-flow/commands/manage/wiki.md +55 -0
- package/codex/maestro-flow/commands/milestone/audit.md +87 -0
- package/codex/maestro-flow/commands/milestone/complete.md +91 -0
- package/codex/maestro-flow/commands/milestone/release.md +70 -0
- package/codex/maestro-flow/commands/quality/auto-test.md +547 -0
- package/codex/maestro-flow/commands/quality/debug.md +334 -0
- package/codex/maestro-flow/commands/quality/refactor.md +151 -0
- package/codex/maestro-flow/commands/quality/retrospective.md +292 -0
- package/codex/maestro-flow/commands/quality/review.md +364 -0
- package/codex/maestro-flow/commands/quality/sync.md +111 -0
- package/codex/maestro-flow/commands/quality/test.md +498 -0
- package/codex/maestro-flow/commands/spec/add.md +101 -0
- package/codex/maestro-flow/commands/spec/load.md +77 -0
- package/codex/maestro-flow/commands/spec/remove.md +69 -0
- package/codex/maestro-flow/commands/spec/setup.md +75 -0
- package/codex/maestro-flow/commands/wiki/connect.md +73 -0
- package/codex/maestro-flow/commands/wiki/digest.md +87 -0
- package/package.json +24 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-add
|
|
3
|
+
description: Add a spec entry to the appropriate specs file by category
|
|
4
|
+
argument-hint: "<category> <content>"
|
|
5
|
+
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Add a spec entry using `<spec-entry>` closed-tag format. Each category maps 1:1 to a single target file.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
$spec-add "coding Always use named exports for utility functions"
|
|
13
|
+
$spec-add "learning Off-by-one in pagination when page=0"
|
|
14
|
+
$spec-add "arch Use Zod for runtime validation over io-ts"
|
|
15
|
+
$spec-add "quality All API endpoints must return structured error objects"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Valid categories**: coding, arch, quality, debug, test, review, learning, bug, pattern, decision, rule, validation.
|
|
19
|
+
|
|
20
|
+
**CLI alternative**: `maestro spec add <category> "<title>" "<content>" --keywords kw1,kw2 --source <src>`. Used by workflow agents (analyze, plan, execute) for programmatic spec enrichment.
|
|
21
|
+
</purpose>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
$ARGUMENTS — `<category> <content>` where category selects the target file.
|
|
25
|
+
|
|
26
|
+
**Category-to-file mapping (1:1, same as spec-load):**
|
|
27
|
+
| Category | Target file |
|
|
28
|
+
|----------|------------|
|
|
29
|
+
| `coding` | `coding-conventions.md` |
|
|
30
|
+
| `arch` | `architecture-constraints.md` |
|
|
31
|
+
| `quality` | `quality-rules.md` |
|
|
32
|
+
| `debug` | `debug-notes.md` |
|
|
33
|
+
| `test` | `test-conventions.md` |
|
|
34
|
+
| `review` | `review-standards.md` |
|
|
35
|
+
| `learning` | `learnings.md` |
|
|
36
|
+
| `bug` | `learnings.md` |
|
|
37
|
+
| `pattern` | `coding-conventions.md` |
|
|
38
|
+
| `decision` | `architecture-constraints.md` |
|
|
39
|
+
| `rule` | `quality-rules.md` |
|
|
40
|
+
| `validation` | `quality-rules.md` |
|
|
41
|
+
|
|
42
|
+
Extended types (`bug`, `pattern`, `decision`, `rule`, `validation`) are stored in the file of their closest core category but retain their specific category in the `<spec-entry>` tag.
|
|
43
|
+
</context>
|
|
44
|
+
|
|
45
|
+
<execution>
|
|
46
|
+
|
|
47
|
+
### Step 1: Parse Input
|
|
48
|
+
|
|
49
|
+
Extract category (first token) and content (remainder) from arguments.
|
|
50
|
+
- Validate category is one of: coding, arch, quality, debug, test, review, learning, bug, pattern, decision, rule, validation (E003 if invalid)
|
|
51
|
+
- Validate content is non-empty (E001 if missing)
|
|
52
|
+
|
|
53
|
+
### Step 2: Validate Specs Directory
|
|
54
|
+
|
|
55
|
+
Verify `.workflow/specs/` exists (E002).
|
|
56
|
+
|
|
57
|
+
### Step 3: Route to File
|
|
58
|
+
|
|
59
|
+
Resolve target file from category-to-file mapping table. If the target file does not exist, create it with a basic header.
|
|
60
|
+
|
|
61
|
+
### Step 4: Extract Keywords
|
|
62
|
+
|
|
63
|
+
Auto-extract 3-5 relevant keywords from the content. Keywords should be:
|
|
64
|
+
- Lowercase, no spaces (use hyphens for multi-word)
|
|
65
|
+
- Domain-specific terms that would help future lookup
|
|
66
|
+
- Avoid generic words (code, file, function, etc.)
|
|
67
|
+
|
|
68
|
+
### Step 5: Write Entry
|
|
69
|
+
|
|
70
|
+
Append `<spec-entry>` closed-tag block to target file:
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
<spec-entry category="{category}" keywords="{kw1},{kw2},{kw3}" date="{YYYY-MM-DD}">
|
|
74
|
+
|
|
75
|
+
### {title extracted from content}
|
|
76
|
+
|
|
77
|
+
{content}
|
|
78
|
+
|
|
79
|
+
</spec-entry>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Step 6: Confirm
|
|
83
|
+
|
|
84
|
+
Display: category, target file, extracted keywords, and commands for verify (`/spec-load`) and remove (`/spec-remove`).
|
|
85
|
+
</execution>
|
|
86
|
+
|
|
87
|
+
<error_codes>
|
|
88
|
+
| Code | Severity | Description |
|
|
89
|
+
|------|----------|-------------|
|
|
90
|
+
| E001 | fatal | Category and content are both required |
|
|
91
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `Skill({ skill: "maestro-flow", args: "--cmd spec-setup" })` first |
|
|
92
|
+
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, bug, pattern, decision, rule, validation |
|
|
93
|
+
</error_codes>
|
|
94
|
+
|
|
95
|
+
<success_criteria>
|
|
96
|
+
- [ ] Category and content parsed and validated
|
|
97
|
+
- [ ] Keywords auto-extracted from content (3-5 terms)
|
|
98
|
+
- [ ] Entry written in `<spec-entry>` closed-tag format with keywords attribute
|
|
99
|
+
- [ ] Entry appended to correct target file
|
|
100
|
+
- [ ] Confirmation displayed with keywords and verify command
|
|
101
|
+
</success_criteria>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-load
|
|
3
|
+
description: Load relevant specs for current context, optionally filtered by category or keyword
|
|
4
|
+
argument-hint: "[--category <type>] [--keyword <word>]"
|
|
5
|
+
allowed-tools: Read, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Load relevant specs filtered by category (file-level) and/or keyword (entry-level via `<spec-entry>` tags).
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
<context>
|
|
13
|
+
$ARGUMENTS — optional category filter and keyword.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$spec-load
|
|
17
|
+
$spec-load "--category coding"
|
|
18
|
+
$spec-load "--keyword auth"
|
|
19
|
+
$spec-load "--category coding --keyword naming"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Category-to-file mapping (1:1, same as spec-add):**
|
|
23
|
+
|
|
24
|
+
| Category | File loaded |
|
|
25
|
+
|----------|------------|
|
|
26
|
+
| `coding` | `coding-conventions.md` |
|
|
27
|
+
| `arch` | `architecture-constraints.md` |
|
|
28
|
+
| `quality` | `quality-rules.md` |
|
|
29
|
+
| `debug` | `debug-notes.md` |
|
|
30
|
+
| `test` | `test-conventions.md` |
|
|
31
|
+
| `review` | `review-standards.md` |
|
|
32
|
+
| `learning` | `learnings.md` |
|
|
33
|
+
| `bug` | `learnings.md` |
|
|
34
|
+
| `pattern` | `coding-conventions.md` |
|
|
35
|
+
| `decision` | `architecture-constraints.md` |
|
|
36
|
+
| `rule` | `quality-rules.md` |
|
|
37
|
+
| `validation` | `quality-rules.md` |
|
|
38
|
+
| `all` (default) | All spec files |
|
|
39
|
+
|
|
40
|
+
Extended types (`bug`, `pattern`, `decision`, `rule`, `validation`) are stored in their closest core category's file but retain their specific category in the `<spec-entry>` tag.
|
|
41
|
+
|
|
42
|
+
**Keyword filtering**: When `--keyword` is provided, only entries with matching keyword in their `<spec-entry keywords="...">` attribute are returned. Legacy entries (heading format) are filtered by text grep.
|
|
43
|
+
</context>
|
|
44
|
+
|
|
45
|
+
<execution>
|
|
46
|
+
|
|
47
|
+
### Step 1: Validate Specs Directory
|
|
48
|
+
|
|
49
|
+
Verify `.workflow/specs/` exists (E001).
|
|
50
|
+
|
|
51
|
+
### Step 2: Parse Arguments
|
|
52
|
+
|
|
53
|
+
Extract optional `--category` and `--keyword` flags.
|
|
54
|
+
|
|
55
|
+
### Step 3: Load via CLI
|
|
56
|
+
|
|
57
|
+
Run `maestro spec load [--category <cat>] [--keyword <word>]`. If CLI unavailable, read files directly and apply keyword filter.
|
|
58
|
+
|
|
59
|
+
### Step 4: Display Results
|
|
60
|
+
|
|
61
|
+
Show matched entries grouped by filename and category, with `<spec-entry>` tags stripped.
|
|
62
|
+
</execution>
|
|
63
|
+
|
|
64
|
+
<error_codes>
|
|
65
|
+
| Code | Severity | Description |
|
|
66
|
+
|------|----------|-------------|
|
|
67
|
+
| E001 | fatal | `.workflow/specs/` not initialized -- run `Skill({ skill: "maestro-flow", args: "--cmd spec-setup" })` first |
|
|
68
|
+
| W001 | warning | No matching specs for keyword -- showing all in category |
|
|
69
|
+
</error_codes>
|
|
70
|
+
|
|
71
|
+
<success_criteria>
|
|
72
|
+
- [ ] `.workflow/specs/` directory validated
|
|
73
|
+
- [ ] Category and keyword parsed from arguments
|
|
74
|
+
- [ ] Files loaded per category mapping
|
|
75
|
+
- [ ] Keyword filtering applied at entry level (via `<spec-entry>` keywords)
|
|
76
|
+
- [ ] Results displayed with file references and stripped tags
|
|
77
|
+
</success_criteria>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-remove
|
|
3
|
+
description: Remove a spec entry from a specs file by entry ID using maestro wiki remove-entry
|
|
4
|
+
argument-hint: "<entry-id>"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Remove a `<spec-entry>` block from a specs container file. Symmetric with `spec-add`.
|
|
10
|
+
Uses `maestro wiki remove-entry` for atomic removal with automatic index update.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<required_reading>
|
|
14
|
+
@~/.maestro/workflows/specs-remove.md
|
|
15
|
+
</required_reading>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
$ARGUMENTS — entry ID to remove (e.g., `spec-learnings-003`)
|
|
19
|
+
|
|
20
|
+
**Entry ID format**: `spec-{file-stem}-{NNN}` — sub-node ID from WikiIndexer atomic indexing.
|
|
21
|
+
|
|
22
|
+
**Discovery**:
|
|
23
|
+
- `maestro wiki list --type spec --json` — list all spec entries
|
|
24
|
+
- `/spec-load --keyword <term>` — find by keyword
|
|
25
|
+
- `maestro wiki search "<query>"` — BM25 search
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<execution>
|
|
29
|
+
|
|
30
|
+
### Step 1: Parse Input
|
|
31
|
+
|
|
32
|
+
Extract entry ID from arguments.
|
|
33
|
+
- Validate non-empty (E001 if missing)
|
|
34
|
+
- Validate `.workflow/specs/` exists (E002 if not)
|
|
35
|
+
|
|
36
|
+
### Step 2: Lookup Entry
|
|
37
|
+
|
|
38
|
+
Run `maestro wiki get <entry-id> --json`. Validate: entry exists (E003), is spec sub-node with `type="spec"` and `parent` set (E004). Extract title, category, keywords, container path.
|
|
39
|
+
|
|
40
|
+
### Step 3: Confirm
|
|
41
|
+
|
|
42
|
+
Display entry details. Ask user to confirm unless `-y` flag present.
|
|
43
|
+
|
|
44
|
+
### Step 4: Remove
|
|
45
|
+
|
|
46
|
+
Run `maestro wiki remove-entry <entry-id>`. WikiIndexer auto-updates `wiki-index.json`.
|
|
47
|
+
|
|
48
|
+
### Step 5: Verify & Report
|
|
49
|
+
|
|
50
|
+
Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Display removed ID, source file, and commands for verify/re-add.
|
|
51
|
+
</execution>
|
|
52
|
+
|
|
53
|
+
<error_codes>
|
|
54
|
+
| Code | Severity | Description |
|
|
55
|
+
|------|----------|-------------|
|
|
56
|
+
| E001 | fatal | Entry ID is required -- usage: `/spec-remove <entry-id>` |
|
|
57
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first |
|
|
58
|
+
| E003 | fatal | Entry ID not found in wiki index |
|
|
59
|
+
| E004 | fatal | Entry is not a spec sub-node (wrong type or no parent) |
|
|
60
|
+
</error_codes>
|
|
61
|
+
|
|
62
|
+
<success_criteria>
|
|
63
|
+
- [ ] Entry ID parsed and validated
|
|
64
|
+
- [ ] Entry found in wiki index (type=spec, has parent)
|
|
65
|
+
- [ ] User confirmed removal
|
|
66
|
+
- [ ] Entry removed via `maestro wiki remove-entry`
|
|
67
|
+
- [ ] Wiki index auto-updated
|
|
68
|
+
- [ ] Confirmation displayed
|
|
69
|
+
</success_criteria>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-setup
|
|
3
|
+
description: Initialize project specs by scanning codebase for conventions and tech stack
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Initialize project specs by scanning the codebase and generating spec files in `.workflow/specs/`.
|
|
10
|
+
Core files (coding, arch, learning) always created. Optional files created only when relevant signals detected.
|
|
11
|
+
|
|
12
|
+
Triggered automatically by `maestro-init` for **existing projects** (source files detected). Greenfield projects skip this — specs are populated progressively by analyze, plan, and execute stages.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
$spec-setup
|
|
16
|
+
```
|
|
17
|
+
</purpose>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
No arguments. Scans the codebase and generates spec files in `.workflow/specs/`.
|
|
21
|
+
</context>
|
|
22
|
+
|
|
23
|
+
<execution>
|
|
24
|
+
|
|
25
|
+
### Step 1: Validate Preconditions
|
|
26
|
+
|
|
27
|
+
Verify `.workflow/` exists (E001) and project contains source files (E002).
|
|
28
|
+
|
|
29
|
+
### Step 2: Scan Codebase
|
|
30
|
+
|
|
31
|
+
Detect conventions and tech stack by scanning:
|
|
32
|
+
- Package files (`package.json`, `Cargo.toml`, `go.mod`, etc.)
|
|
33
|
+
- Config files (`.eslintrc`, `tsconfig.json`, `.prettierrc`, etc.)
|
|
34
|
+
- Source structure (directories, naming patterns, import style)
|
|
35
|
+
- Test patterns (framework, naming, location)
|
|
36
|
+
|
|
37
|
+
### Step 3: Generate Core Spec Files (always)
|
|
38
|
+
|
|
39
|
+
Create `.workflow/specs/` directory and write:
|
|
40
|
+
|
|
41
|
+
1. **`coding-conventions.md`** — Detected naming, import, formatting patterns (category: `coding`)
|
|
42
|
+
2. **`architecture-constraints.md`** — Structural rules, layer boundaries (category: `arch`)
|
|
43
|
+
3. **`learnings.md`** — Initialized with format instructions for future entries (category: `learning`)
|
|
44
|
+
|
|
45
|
+
### Step 4: Generate Optional Spec Files (when signals detected)
|
|
46
|
+
|
|
47
|
+
| File | Created when |
|
|
48
|
+
|------|-------------|
|
|
49
|
+
| `quality-rules.md` | Linter config, CI config, or lint scripts detected |
|
|
50
|
+
| `test-conventions.md` | Test framework, test files, or test scripts detected |
|
|
51
|
+
| `debug-notes.md` | Skipped — created on demand via `spec-add debug` |
|
|
52
|
+
| `review-standards.md` | Skipped — created on demand via `spec-add review` |
|
|
53
|
+
|
|
54
|
+
### Step 5: Display Report
|
|
55
|
+
|
|
56
|
+
List created files with categories. Show next steps: `/spec-add <category> <content>`, available categories (core + extended), `/spec-remove`, wiki graph commands.
|
|
57
|
+
|
|
58
|
+
</execution>
|
|
59
|
+
|
|
60
|
+
<error_codes>
|
|
61
|
+
|
|
62
|
+
| Code | Severity | Description |
|
|
63
|
+
|------|----------|-------------|
|
|
64
|
+
| E001 | fatal | `.workflow/` not initialized -- run `Skill({ skill: "maestro-flow", args: "--cmd maestro-init" })` first |
|
|
65
|
+
| E002 | fatal | No source files found in project |
|
|
66
|
+
| W001 | warning | Convention detection uncertain -- marked `[UNCERTAIN]` |
|
|
67
|
+
|
|
68
|
+
</error_codes>
|
|
69
|
+
|
|
70
|
+
<success_criteria>
|
|
71
|
+
- [ ] `.workflow/specs/` directory created
|
|
72
|
+
- [ ] 3 core spec files always created (coding, arch, learning)
|
|
73
|
+
- [ ] Optional files created only when relevant signals detected
|
|
74
|
+
- [ ] Completion report displayed with category labels
|
|
75
|
+
</success_criteria>
|
|
@@ -0,0 +1,73 @@
|
|
|
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, knowhow, 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 category/parent
|
|
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/category)
|
|
35
|
+
- **Type bridge**: Different types referencing same concept but unlinked
|
|
36
|
+
- **Parent cluster**: Entries sharing the same parent but not linked to each other
|
|
37
|
+
|
|
38
|
+
### Stage 3: Score Candidates
|
|
39
|
+
Score = 0.4 x tag_overlap + 0.3 x title_bm25 + 0.2 x same_category + 0.1 x type_bridge. Filter by `--min-similarity`, rank desc, limit by `--max`.
|
|
40
|
+
|
|
41
|
+
### Stage 4: Present Suggestions
|
|
42
|
+
Display ranked suggestions with scores, reasons, projected health delta.
|
|
43
|
+
If not `--fix`: display and exit.
|
|
44
|
+
|
|
45
|
+
### Stage 5: Apply (--fix only)
|
|
46
|
+
For each suggestion: get entry → append target to `related` → update via `maestro wiki update`.
|
|
47
|
+
Re-run `maestro wiki health` for delta.
|
|
48
|
+
|
|
49
|
+
### Stage 6: Persist
|
|
50
|
+
Write `wiki-connections-{date}.md`. Append graph insights to `lessons.jsonl` (source: "wiki-connect").
|
|
51
|
+
|
|
52
|
+
**Next steps:** `/wiki-digest <topic>`, `/manage-wiki health`, `/learn-follow <wiki-id>`, `maestro wiki graph`
|
|
53
|
+
</execution>
|
|
54
|
+
|
|
55
|
+
<error_codes>
|
|
56
|
+
| Code | Severity | Condition | Recovery |
|
|
57
|
+
|------|----------|-----------|----------|
|
|
58
|
+
| E001 | error | No wiki entries found | Initialize wiki content |
|
|
59
|
+
| W001 | warning | No candidates above threshold | Lower --min-similarity |
|
|
60
|
+
| W002 | warning | Some wiki updates failed during --fix | Retry manually |
|
|
61
|
+
| W003 | warning | Health score unchanged after fix | Connections may not affect specific metrics |
|
|
62
|
+
</error_codes>
|
|
63
|
+
|
|
64
|
+
<success_criteria>
|
|
65
|
+
- [ ] Wiki index loaded with type distribution
|
|
66
|
+
- [ ] Baseline health score recorded
|
|
67
|
+
- [ ] Orphans identified and rescue candidates generated
|
|
68
|
+
- [ ] Candidates scored and ranked
|
|
69
|
+
- [ ] Suggestions displayed with scores and reasons
|
|
70
|
+
- [ ] If --fix: entries updated, new health score reported
|
|
71
|
+
- [ ] Report written to `wiki-connections-{date}.md`
|
|
72
|
+
- [ ] Graph insights appended to `lessons.jsonl`
|
|
73
|
+
</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
|
+
memory ████░ ███░░ ░░░░░
|
|
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`, `/manage-wiki cleanup`, `/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>
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "maestro-flow-one",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "All Maestro workflow commands as a single Claude Code skill — intent routing, decision gates, minimal closed-loop chains",
|
|
5
|
+
"bin": {
|
|
6
|
+
"maestro-flow": "bin/maestro-flow.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"install-skill": "node bin/maestro-flow.js install"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"claude-code",
|
|
13
|
+
"workflow",
|
|
14
|
+
"maestro",
|
|
15
|
+
"skill",
|
|
16
|
+
"cli"
|
|
17
|
+
],
|
|
18
|
+
"author": "catlog22",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/catlog22/maestro-flow-one.git"
|
|
23
|
+
}
|
|
24
|
+
}
|