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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +173 -0
  3. package/bin/maestro-flow.js +730 -0
  4. package/claude/maestro-flow/SKILL.md +239 -0
  5. package/claude/maestro-flow/chains/templates.json +256 -0
  6. package/claude/maestro-flow/commands/learn/decompose.md +176 -0
  7. package/claude/maestro-flow/commands/learn/follow.md +167 -0
  8. package/claude/maestro-flow/commands/learn/investigate.md +221 -0
  9. package/claude/maestro-flow/commands/learn/retro.md +303 -0
  10. package/claude/maestro-flow/commands/learn/second-opinion.md +167 -0
  11. package/claude/maestro-flow/commands/lifecycle/amend.md +300 -0
  12. package/claude/maestro-flow/commands/lifecycle/analyze.md +126 -0
  13. package/claude/maestro-flow/commands/lifecycle/brainstorm.md +100 -0
  14. package/claude/maestro-flow/commands/lifecycle/composer.md +354 -0
  15. package/claude/maestro-flow/commands/lifecycle/execute.md +114 -0
  16. package/claude/maestro-flow/commands/lifecycle/fork.md +86 -0
  17. package/claude/maestro-flow/commands/lifecycle/init.md +78 -0
  18. package/claude/maestro-flow/commands/lifecycle/learn.md +140 -0
  19. package/claude/maestro-flow/commands/lifecycle/link-coordinate.md +71 -0
  20. package/claude/maestro-flow/commands/lifecycle/merge.md +61 -0
  21. package/claude/maestro-flow/commands/lifecycle/overlay.md +178 -0
  22. package/claude/maestro-flow/commands/lifecycle/plan.md +138 -0
  23. package/claude/maestro-flow/commands/lifecycle/player.md +404 -0
  24. package/claude/maestro-flow/commands/lifecycle/quick.md +56 -0
  25. package/claude/maestro-flow/commands/lifecycle/roadmap.md +164 -0
  26. package/claude/maestro-flow/commands/lifecycle/ui-design.md +93 -0
  27. package/claude/maestro-flow/commands/lifecycle/update.md +176 -0
  28. package/claude/maestro-flow/commands/lifecycle/verify.md +90 -0
  29. package/claude/maestro-flow/commands/manage/codebase-rebuild.md +75 -0
  30. package/claude/maestro-flow/commands/manage/codebase-refresh.md +57 -0
  31. package/claude/maestro-flow/commands/manage/harvest.md +94 -0
  32. package/claude/maestro-flow/commands/manage/issue-discover.md +77 -0
  33. package/claude/maestro-flow/commands/manage/issue.md +73 -0
  34. package/claude/maestro-flow/commands/manage/knowhow-capture.md +193 -0
  35. package/claude/maestro-flow/commands/manage/knowhow.md +77 -0
  36. package/claude/maestro-flow/commands/manage/learn.md +67 -0
  37. package/claude/maestro-flow/commands/manage/status.md +51 -0
  38. package/claude/maestro-flow/commands/manage/wiki.md +62 -0
  39. package/claude/maestro-flow/commands/milestone/audit.md +68 -0
  40. package/claude/maestro-flow/commands/milestone/complete.md +75 -0
  41. package/claude/maestro-flow/commands/milestone/release.md +96 -0
  42. package/claude/maestro-flow/commands/quality/auto-test.md +124 -0
  43. package/claude/maestro-flow/commands/quality/debug.md +115 -0
  44. package/claude/maestro-flow/commands/quality/refactor.md +55 -0
  45. package/claude/maestro-flow/commands/quality/retrospective.md +78 -0
  46. package/claude/maestro-flow/commands/quality/review.md +108 -0
  47. package/claude/maestro-flow/commands/quality/sync.md +51 -0
  48. package/claude/maestro-flow/commands/quality/test.md +103 -0
  49. package/claude/maestro-flow/commands/spec/add.md +49 -0
  50. package/claude/maestro-flow/commands/spec/load.md +51 -0
  51. package/claude/maestro-flow/commands/spec/remove.md +51 -0
  52. package/claude/maestro-flow/commands/spec/setup.md +51 -0
  53. package/claude/maestro-flow/commands/wiki/connect.md +62 -0
  54. package/claude/maestro-flow/commands/wiki/digest.md +69 -0
  55. package/codex/maestro-flow/SKILL.md +505 -0
  56. package/codex/maestro-flow/chains/templates.json +256 -0
  57. package/codex/maestro-flow/commands/learn/decompose.md +113 -0
  58. package/codex/maestro-flow/commands/learn/follow.md +83 -0
  59. package/codex/maestro-flow/commands/learn/investigate.md +83 -0
  60. package/codex/maestro-flow/commands/learn/retro.md +83 -0
  61. package/codex/maestro-flow/commands/learn/second-opinion.md +86 -0
  62. package/codex/maestro-flow/commands/lifecycle/amend.md +300 -0
  63. package/codex/maestro-flow/commands/lifecycle/analyze.md +483 -0
  64. package/codex/maestro-flow/commands/lifecycle/brainstorm.md +397 -0
  65. package/codex/maestro-flow/commands/lifecycle/composer.md +213 -0
  66. package/codex/maestro-flow/commands/lifecycle/execute.md +318 -0
  67. package/codex/maestro-flow/commands/lifecycle/fork.md +98 -0
  68. package/codex/maestro-flow/commands/lifecycle/init.md +134 -0
  69. package/codex/maestro-flow/commands/lifecycle/learn.md +80 -0
  70. package/codex/maestro-flow/commands/lifecycle/link-coordinate.md +257 -0
  71. package/codex/maestro-flow/commands/lifecycle/merge.md +69 -0
  72. package/codex/maestro-flow/commands/lifecycle/overlay.md +119 -0
  73. package/codex/maestro-flow/commands/lifecycle/plan.md +460 -0
  74. package/codex/maestro-flow/commands/lifecycle/player.md +323 -0
  75. package/codex/maestro-flow/commands/lifecycle/quick.md +124 -0
  76. package/codex/maestro-flow/commands/lifecycle/roadmap.md +468 -0
  77. package/codex/maestro-flow/commands/lifecycle/ui-design.md +135 -0
  78. package/codex/maestro-flow/commands/lifecycle/update.md +176 -0
  79. package/codex/maestro-flow/commands/lifecycle/verify.md +468 -0
  80. package/codex/maestro-flow/commands/manage/codebase-rebuild.md +347 -0
  81. package/codex/maestro-flow/commands/manage/codebase-refresh.md +66 -0
  82. package/codex/maestro-flow/commands/manage/harvest.md +91 -0
  83. package/codex/maestro-flow/commands/manage/issue-discover.md +431 -0
  84. package/codex/maestro-flow/commands/manage/issue.md +75 -0
  85. package/codex/maestro-flow/commands/manage/knowhow-capture.md +110 -0
  86. package/codex/maestro-flow/commands/manage/knowhow.md +95 -0
  87. package/codex/maestro-flow/commands/manage/learn.md +137 -0
  88. package/codex/maestro-flow/commands/manage/status.md +76 -0
  89. package/codex/maestro-flow/commands/manage/wiki.md +55 -0
  90. package/codex/maestro-flow/commands/milestone/audit.md +87 -0
  91. package/codex/maestro-flow/commands/milestone/complete.md +91 -0
  92. package/codex/maestro-flow/commands/milestone/release.md +70 -0
  93. package/codex/maestro-flow/commands/quality/auto-test.md +547 -0
  94. package/codex/maestro-flow/commands/quality/debug.md +334 -0
  95. package/codex/maestro-flow/commands/quality/refactor.md +151 -0
  96. package/codex/maestro-flow/commands/quality/retrospective.md +292 -0
  97. package/codex/maestro-flow/commands/quality/review.md +364 -0
  98. package/codex/maestro-flow/commands/quality/sync.md +111 -0
  99. package/codex/maestro-flow/commands/quality/test.md +498 -0
  100. package/codex/maestro-flow/commands/spec/add.md +101 -0
  101. package/codex/maestro-flow/commands/spec/load.md +77 -0
  102. package/codex/maestro-flow/commands/spec/remove.md +69 -0
  103. package/codex/maestro-flow/commands/spec/setup.md +75 -0
  104. package/codex/maestro-flow/commands/wiki/connect.md +73 -0
  105. package/codex/maestro-flow/commands/wiki/digest.md +87 -0
  106. 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
+ }