murmur8 4.1.1 → 4.3.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 (50) hide show
  1. package/.blueprint/agents/AGENT_SPECIFICATION_ALEX.md +33 -3
  2. package/.blueprint/features/feature_config-factory/FEATURE_SPEC.md +138 -0
  3. package/.blueprint/features/feature_config-factory/IMPLEMENTATION_PLAN.md +187 -0
  4. package/.blueprint/features/feature_config-factory/handoff-nigel.md +57 -0
  5. package/.blueprint/features/feature_export-history/FEATURE_SPEC.md +215 -0
  6. package/.blueprint/features/feature_export-history/IMPLEMENTATION_PLAN.md +48 -0
  7. package/.blueprint/features/feature_export-history/story-basic-export.md +48 -0
  8. package/.blueprint/features/feature_export-history/story-date-filter.md +42 -0
  9. package/.blueprint/features/feature_export-history/story-feature-filter.md +42 -0
  10. package/.blueprint/features/feature_export-history/story-file-output.md +48 -0
  11. package/.blueprint/features/feature_export-history/story-status-filter.md +42 -0
  12. package/.blueprint/features/feature_extract-prompt-util/FEATURE_SPEC.md +42 -0
  13. package/.blueprint/features/feature_fix-status-icons/FEATURE_SPEC.md +37 -0
  14. package/.blueprint/features/feature_murm-subagent/FEATURE_SPEC.md +137 -0
  15. package/.blueprint/features/feature_murm-subagent/SKILL_CHANGES.md +345 -0
  16. package/.blueprint/features/feature_split-cli-commands/FEATURE_SPEC.md +125 -0
  17. package/.blueprint/features/feature_split-cli-commands/IMPLEMENTATION_PLAN.md +119 -0
  18. package/.blueprint/features/feature_split-cli-commands/handoff-nigel.md +45 -0
  19. package/.blueprint/features/feature_theme-adoption/FEATURE_SPEC.md +143 -0
  20. package/.blueprint/features/feature_theme-adoption/IMPLEMENTATION_PLAN.md +68 -0
  21. package/.blueprint/features/feature_theme-adoption/handoff-nigel.md +35 -0
  22. package/.blueprint/templates/BACKLOG_TEMPLATE.md +46 -0
  23. package/README.md +26 -10
  24. package/SKILL.md +377 -3
  25. package/bin/cli.js +20 -384
  26. package/package.json +1 -1
  27. package/src/commands/feedback-config.js +32 -0
  28. package/src/commands/help.js +81 -0
  29. package/src/commands/history.js +42 -0
  30. package/src/commands/init.js +12 -0
  31. package/src/commands/insights.js +23 -0
  32. package/src/commands/murm-config.js +52 -0
  33. package/src/commands/murm.js +109 -0
  34. package/src/commands/queue.js +19 -0
  35. package/src/commands/retry-config.js +28 -0
  36. package/src/commands/stack-config.js +32 -0
  37. package/src/commands/update.js +12 -0
  38. package/src/commands/utils.js +24 -0
  39. package/src/commands/validate.js +15 -0
  40. package/src/config-factory.js +190 -0
  41. package/src/feedback.js +5 -2
  42. package/src/history.js +92 -1
  43. package/src/init.js +1 -15
  44. package/src/insights.js +19 -16
  45. package/src/retry.js +5 -2
  46. package/src/stack.js +4 -1
  47. package/src/theme.js +4 -4
  48. package/src/update.js +2 -15
  49. package/src/utils.js +26 -0
  50. package/src/validate.js +5 -12
@@ -0,0 +1,143 @@
1
+ # Feature Specification — Theme Adoption
2
+
3
+ ## 1. Feature Intent
4
+ **Why this feature exists.**
5
+
6
+ - `src/theme.js` provides consistent murmuration-themed formatting (glyphs, colors, progress bars)
7
+ - Currently only used by murm.js for parallel execution output
8
+ - Other CLI output (history, insights, validate, configs) uses plain text
9
+ - Inconsistent visual experience across commands
10
+ - Theme constants and helpers should be reused project-wide
11
+
12
+ > Technical enhancement — adopt theme.js across all CLI output.
13
+
14
+ ---
15
+
16
+ ## 2. Scope
17
+ ### In Scope
18
+ - Use `colorize()` for success/error/warning messages across all commands
19
+ - Use `formatStageStart()` pattern for pipeline stage output in SKILL.md execution
20
+ - Use `progressBar()` where applicable (history stats, insights)
21
+ - Use status icons consistently (checkmarks, X marks, warnings)
22
+ - Respect TTY detection for color output
23
+
24
+ ### Out of Scope
25
+ - Creating new theme elements
26
+ - Changing the banner or glyph design
27
+ - Adding animation or spinners to non-murm commands
28
+ - Changing the fundamental output structure of commands
29
+
30
+ ---
31
+
32
+ ## 3. Actors Involved
33
+ **Who interacts with this feature.**
34
+
35
+ - **CLI User**: Sees consistent, themed output across all commands
36
+ - **Developer**: Uses theme.js helpers instead of inline ANSI codes
37
+
38
+ ---
39
+
40
+ ## 4. Behaviour Overview
41
+ **What the feature does, conceptually.**
42
+
43
+ Before:
44
+ ```
45
+ Retry Configuration
46
+ Max retries: 3
47
+ Window size: 10
48
+ ```
49
+
50
+ After:
51
+ ```
52
+ Retry Configuration
53
+
54
+ Max retries: 3
55
+ Window size: 10
56
+ High failure threshold: 0.2
57
+
58
+ Stage Strategies:
59
+ alex : simplify-prompt -> add-context
60
+ ```
61
+ (With colored headers when TTY detected)
62
+
63
+ **Files to update:**
64
+ - `src/validate.js` — use `colorize()` for pass/fail indicators
65
+ - `src/history.js` — use status icons and colors for status display
66
+ - `src/insights.js` — use `colorize()` for recommendations
67
+ - `src/retry.js` — use `colorize()` in `displayConfig()`
68
+ - `src/feedback.js` — use `colorize()` in `displayConfig()`
69
+ - `src/stack.js` — use `colorize()` in `displayStackConfig()`
70
+
71
+ ---
72
+
73
+ ## 5. State & Lifecycle Interactions
74
+ **How this feature touches the system lifecycle.**
75
+
76
+ - No state changes — output formatting only
77
+ - Respects existing TTY detection patterns
78
+
79
+ ---
80
+
81
+ ## 6. Rules & Decision Logic
82
+ **New or exercised rules.**
83
+
84
+ | Rule | Description |
85
+ |------|-------------|
86
+ | TTY detection | Use `process.stdout.isTTY` to enable/disable colors |
87
+ | Success indicators | Green checkmark (✓) or `colorize(text, 'green')` |
88
+ | Error indicators | Red X (✗) or `colorize(text, 'red')` |
89
+ | Warning indicators | Yellow warning (⚠) or `colorize(text, 'yellow')` |
90
+ | Headers | Cyan for section headers |
91
+
92
+ ---
93
+
94
+ ## 7. Dependencies
95
+ **What this feature relies on.**
96
+
97
+ - `src/theme.js` — already exists with all needed exports
98
+ - No new dependencies
99
+
100
+ ---
101
+
102
+ ## 8. Non-Functional Considerations
103
+
104
+ - **Accessibility**: Plain text fallback when not TTY (pipes, redirects)
105
+ - **Consistency**: Same visual language across all commands
106
+ - **Maintainability**: Centralized theme makes future changes easy
107
+
108
+ ---
109
+
110
+ ## 9. Assumptions & Open Questions
111
+
112
+ **Assumptions:**
113
+ - All modules can safely import from theme.js without circular dependencies
114
+ - TTY detection is sufficient for determining color support
115
+
116
+ **Open Questions:**
117
+ - Should `STATUS_ICONS` in theme.js be updated from `parallel_*` to `murm_*`? (See fix-status-icons in FEATURE_IDEAS.md)
118
+ - Should a `--no-color` flag be added globally?
119
+
120
+ ---
121
+
122
+ ## 10. Impact on System Specification
123
+
124
+ - No impact — visual enhancement only
125
+ - Does not change system boundaries or behaviour
126
+
127
+ ---
128
+
129
+ ## 11. Handover to BA (Cass)
130
+
131
+ **Skip Cass stage** — this is a technical enhancement feature with no user stories needed.
132
+
133
+ Direct handover to Nigel for test creation:
134
+ - Tests should verify output includes expected formatting
135
+ - Tests should verify TTY=false produces plain text
136
+ - Tests should verify no regressions in output content
137
+
138
+ ---
139
+
140
+ ## 12. Change Log (Feature-Level)
141
+ | Date | Change | Reason | Raised By |
142
+ |------|--------|--------|-----------|
143
+ | 2026-03-03 | Initial spec | Consistent CLI theming | Alex |
@@ -0,0 +1,68 @@
1
+ # Implementation Plan — Theme Adoption
2
+
3
+ ## Overview
4
+ Adopt theme.js across all CLI output modules for consistent visual formatting. Replace inline ANSI codes with centralized `colorize()` helper.
5
+
6
+ ## Changes Required
7
+
8
+ ### 1. src/validate.js
9
+ **Current state:** Uses inline ANSI codes for colors
10
+ **Change:** Import `colorize` from theme.js and use it
11
+
12
+ ```javascript
13
+ // Before
14
+ const green = useColor ? '\x1b[32m' : '';
15
+ const red = useColor ? '\x1b[31m' : '';
16
+ const reset = useColor ? '\x1b[0m' : '';
17
+
18
+ // After
19
+ const { colorize } = require('./theme');
20
+ // Use colorize(text, 'green', useColor)
21
+ ```
22
+
23
+ ### 2. src/insights.js
24
+ **Current state:** No theme imports, plain section headers
25
+ **Change:** Import `colorize`, apply to section headers
26
+
27
+ - Header "Pipeline Insights" - cyan
28
+ - Section headers (BOTTLENECK ANALYSIS, etc.) - cyan
29
+ - Recommendations - yellow
30
+
31
+ ### 3. src/retry.js
32
+ **Current state:** Plain text output in displayConfig()
33
+ **Change:** Import `colorize`, apply to header
34
+
35
+ - Header "Retry Configuration" - cyan
36
+ - Section "Stage Strategies" - cyan
37
+
38
+ ### 4. src/feedback.js
39
+ **Current state:** Plain text output in displayConfig()
40
+ **Change:** Import `colorize`, apply to header
41
+
42
+ - Header "Feedback Configuration" - cyan
43
+ - Section "Issue Mappings" - cyan
44
+
45
+ ### 5. src/stack.js
46
+ **Current state:** Plain text output in displayStackConfig()
47
+ **Change:** Import `colorize`, apply to header
48
+
49
+ - Header "Stack Configuration" - cyan
50
+
51
+ ### 6. src/history.js
52
+ **Current state:** Already imports colorize from theme.js
53
+ **Change:** No changes needed - already compliant
54
+
55
+ ## TTY Detection Pattern
56
+ All display functions should:
57
+ 1. Check `process.stdout.isTTY` to determine if colors should be enabled
58
+ 2. Pass this as `useColor` parameter to `colorize()`
59
+
60
+ ## Implementation Order
61
+ 1. validate.js - Replace inline ANSI with colorize import
62
+ 2. insights.js - Add colorize for headers
63
+ 3. retry.js - Add colorize for displayConfig
64
+ 4. feedback.js - Add colorize for displayConfig
65
+ 5. stack.js - Add colorize for displayStackConfig
66
+
67
+ ## Testing
68
+ Run `node --test test/feature_theme-adoption.test.js` after each change.
@@ -0,0 +1,35 @@
1
+ # Nigel Handoff — Theme Adoption
2
+
3
+ ## Summary
4
+ Created test suite for theme adoption across CLI modules. Tests verify:
5
+ - `colorize()` function usage for colored output
6
+ - TTY detection pattern (useColor parameter)
7
+ - Plain text fallback when colors disabled
8
+ - Consistent status icons (checkmark/X)
9
+ - Section headers in config displays
10
+
11
+ ## Test File
12
+ `test/feature_theme-adoption.test.js`
13
+
14
+ ## Test Coverage
15
+ | Module | Tests |
16
+ |--------|-------|
17
+ | theme.js | Exports, colorize behavior |
18
+ | validate.js | formatOutput with/without color |
19
+ | insights.js | Section headers |
20
+ | retry.js | displayConfig output |
21
+ | feedback.js | displayConfig output |
22
+ | stack.js | displayStackConfig output |
23
+
24
+ ## Implementation Notes for Codey
25
+ 1. **validate.js** - Replace inline ANSI codes with `colorize()` import from theme.js
26
+ 2. **insights.js** - Add colorize import, apply to section headers (BOTTLENECK ANALYSIS, etc.)
27
+ 3. **retry.js** - Add colorize import, theme the header and optionally section labels
28
+ 4. **feedback.js** - Add colorize import, theme the header
29
+ 5. **stack.js** - Add colorize import, theme the header
30
+ 6. **history.js** - Already imports colorize, verify consistent usage
31
+
32
+ ## Key Patterns
33
+ - Use `process.stdout.isTTY` to determine `useColor`
34
+ - Pass `useColor` boolean to `colorize(text, color, useColor)`
35
+ - Green for success, red for error, yellow for warning, cyan for headers
@@ -0,0 +1,46 @@
1
+ # Feature Backlog
2
+
3
+ ## Definitions
4
+
5
+ | Priority | Meaning |
6
+ |----------|---------|
7
+ | P0 | Critical — blocker |
8
+ | P1 | High — do soon |
9
+ | P2 | Medium — planned |
10
+ | P3 | Low — future |
11
+
12
+ | Effort | Meaning |
13
+ |--------|---------|
14
+ | S | Small — <1 hour |
15
+ | M | Medium — 1-3 hours |
16
+ | L | Large — 3-8 hours |
17
+ | XL | Extra Large — 1+ days |
18
+
19
+ | Status | Meaning |
20
+ |--------|---------|
21
+ | ⏳ | Ready to implement |
22
+ | 🚧 | In progress |
23
+ | ❓ | Needs clarification |
24
+
25
+ ---
26
+
27
+ ## Backlog
28
+
29
+ | Status | P | E | Slug | Description |
30
+ |--------|---|---|------|-------------|
31
+ | ⏳ | P1 | M | example-feature | Brief description of what this feature does |
32
+
33
+ ---
34
+
35
+ ## Details
36
+
37
+ ### example-feature
38
+
39
+ Additional context only if the one-line description is insufficient. Keep brief.
40
+
41
+ ---
42
+
43
+ ## Notes
44
+
45
+ - Items removed automatically when pipeline completes successfully
46
+ - Run with: `/implement-feature "slug"` or `npx murmur8 murm slug-a slug-b`
package/README.md CHANGED
@@ -1,9 +1,17 @@
1
1
  # murmur8
2
2
 
3
- A multi-agent workflow framework for automated feature development In Claude Code and Copilot CLI. Four specialised AI agents collaborate in sequence to take features from specification to implementation, with built-in feedback loops and self-improvement capabilities.
3
+ A multi-agent workflow framework for automated feature development. Four specialised AI agents collaborate in sequence to take features from specification to implementation, with built-in feedback loops and self-improvement capabilities.
4
4
 
5
5
  Like a murmuration of starlings, individual agents move together as one, each responding to its neighbours to create something greater than the sum of its parts.
6
6
 
7
+ # TLDR - Using murmur8
8
+
9
+ ## Using murmur8 inside Claude Code or Copilot CLI
10
+ Initialize with `npx murmur8 init`, then run `/implement-feature your-feature` in Claude Code or Copilot CLI. Four AI agents collaborate to turn your idea into tested, working code — from spec to implementation. Add up to 3 feature slugs and the murmuration magic will build them in paralell in an isolated git worktree.
11
+
12
+ ## Using murmur8 outside of Claude Code or Copilot CLI
13
+ Initialize with `npx murmur8 init`, then run `npx murmur8 murm feature-a feature-b` from your terminal. Each feature gets an isolated git worktree and runs its own pipeline. Successful features auto-merge to main. Use `--dry-run` to preview the plan first.
14
+
7
15
  ## Upgrading to v4.0
8
16
 
9
17
  v4.0 completes the murmuration theming by renaming all parallel internals. Existing users should be aware of the following breaking changes.
@@ -98,6 +106,13 @@ This updates `.blueprint/agents/`, `.blueprint/templates/`, `.blueprint/ways_of_
98
106
  | `npx murmur8 history --stats` | View aggregate statistics |
99
107
  | `npx murmur8 history --all` | View all runs |
100
108
  | `npx murmur8 history clear` | Clear history |
109
+ | `npx murmur8 history export` | Export history as CSV (default) |
110
+ | `npx murmur8 history export --format=json` | Export as JSON |
111
+ | `npx murmur8 history export --since=YYYY-MM-DD` | Filter by start date |
112
+ | `npx murmur8 history export --until=YYYY-MM-DD` | Filter by end date |
113
+ | `npx murmur8 history export --status=<status>` | Filter by status (success/failed/paused) |
114
+ | `npx murmur8 history export --feature=<slug>` | Filter by feature slug |
115
+ | `npx murmur8 history export --output=<path>` | Write to file instead of stdout |
101
116
  | `npx murmur8 insights` | Analyze patterns and get recommendations |
102
117
  | `npx murmur8 insights --feedback` | View feedback correlation analysis |
103
118
  | `npx murmur8 insights --bottlenecks` | View bottleneck analysis |
@@ -129,20 +144,21 @@ This updates `.blueprint/agents/`, `.blueprint/templates/`, `.blueprint/ways_of_
129
144
  | `npx murmur8 murm-config` | View murmuration pipeline configuration |
130
145
  | `npx murmur8 murm-config set <key> <value>` | Modify murmuration settings |
131
146
 
132
- ## Usage
147
+ ## Skill usage
133
148
 
134
149
  Run the pipeline with the `/implement-feature` skill in Claude Code:
135
150
 
136
151
  ```bash
137
152
  /implement-feature # Interactive
138
- /implement-feature "user-auth" # New feature
139
- /implement-feature "user-auth" --no-feedback # Skip feedback collection
140
- /implement-feature "user-auth" --no-validate # Skip pre-flight validation
141
- /implement-feature "user-auth" --no-history # Skip history recording
142
- /implement-feature "user-auth" --no-commit # Skip auto-commit
143
- /implement-feature "user-auth" --pause-after=alex|cass|nigel|codey-plan
144
- /implement-feature "user-auth" --with-stories # Force include Cass stage
145
- /implement-feature "user-auth" --skip-stories # Force skip Cass stage
153
+ /implement-feature "Your Slug" # New feature
154
+ /implement-feature "Your Slug" --no-feedback # Skip feedback collection
155
+ /implement-feature "Your Slug" --no-validate # Skip pre-flight validation
156
+ /implement-feature "Your Slug" --no-history # Skip history recording
157
+ /implement-feature "Your Slug" --no-commit # Skip auto-commit
158
+ /implement-feature "Your Slug" --pause-after=alex|cass|nigel|codey-plan
159
+ /implement-feature "Your Slug" --with-stories # Force include Cass stage
160
+ /implement-feature "Your Slug" --skip-stories # Force skip Cass stage
161
+ /implement-feature "Your Slug A" "Your Slug B" "Your Slug C" # Runs murmuration with sub agents within a single instance of the CLI.
146
162
  ```
147
163
 
148
164
  ## Smart Story Routing (v2.7)