murmur8 4.0.1 → 4.1.1

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.
@@ -18,7 +18,7 @@ This is our shared manifesto — for every agent and the human. Read it before y
18
18
 
19
19
  ## We build things that matter
20
20
 
21
- We are not here to generate output. We are here to build a product that makes a real impact on the people or agents who use it. Every line of code, every test, every story should serve that purpose. If it doesn't make things better for the user, we ask why we're doing it. We enjoy building
21
+ We are not here to generate output. We are here to build a product that makes a real impact on the people or agents who use it. Every line of code, every test, every story should serve that purpose. If it doesn't make things better for the user, we ask why we're doing it. We enjoy building great things. We don't just make slop!
22
22
 
23
23
  ## We take pride in beautiful code
24
24
 
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # murmur8
2
2
 
3
- A multi-agent workflow framework for automated feature development. Like a murmuration of starlings individual agents moving together as one, each responding to its neighbours to create something greater than the sum of its parts.
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.
4
4
 
5
- Four specialized AI agents collaborate in sequence to take features from specification to implementation, with built-in feedback loops and self-improvement capabilities.
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
7
  ## Upgrading to v4.0
8
8
 
@@ -363,6 +363,30 @@ $ npx murmur8 insights
363
363
  - Avg duration: 14 min → 11 min (improving)
364
364
  ```
365
365
 
366
+ ## Multi-CLI Support (v4.1)
367
+
368
+ The `/implement-feature` skill works with both **Claude Code** and **GitHub Copilot CLI**. During initialization, murmur8 installs the skill to both locations:
369
+
370
+ | CLI | Location |
371
+ |-----|----------|
372
+ | Claude Code | `.claude/commands/implement-feature.md` |
373
+ | Copilot CLI | `.github/skills/implement-feature/SKILL.md` |
374
+
375
+ The Copilot CLI location is a symlink to the Claude Code master, ensuring both tools use identical skill definitions.
376
+
377
+ ### Usage
378
+
379
+ ```bash
380
+ # Initialize (installs skill for both CLIs)
381
+ npx murmur8 init
382
+
383
+ # Then use either CLI:
384
+ /implement-feature user-auth # Works in Claude Code
385
+ /implement-feature user-auth # Works in Copilot CLI
386
+ ```
387
+
388
+ Both CLIs execute the same pipeline: Alex → Cass → Nigel → Codey. The skill uses each CLI's native agent/task mechanism.
389
+
366
390
  ## Token Efficiency (v2.7)
367
391
 
368
392
  Version 2.7 introduces several optimizations to reduce token usage:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "murmur8",
3
- "version": "4.0.1",
3
+ "version": "4.1.1",
4
4
  "description": "Multi-agent workflow framework for automated feature development",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -15,6 +15,7 @@
15
15
  "ai",
16
16
  "automation",
17
17
  "claude",
18
+ "copilot",
18
19
  "feature-development"
19
20
  ],
20
21
  "author": "NewmanJustice",
package/src/init.js CHANGED
@@ -41,7 +41,7 @@ function copyDir(src, dest) {
41
41
  function updateGitignore() {
42
42
  const gitignorePath = path.join(TARGET_DIR, '.gitignore');
43
43
  const entriesToAdd = [
44
- '# agent-workflow',
44
+ '# murmur8',
45
45
  '.claude/implement-queue.json',
46
46
  '.claude/pipeline-history.json',
47
47
  '.claude/stack-config.json'
@@ -61,6 +61,40 @@ function updateGitignore() {
61
61
  }
62
62
  }
63
63
 
64
+ /**
65
+ * Create symlink for Copilot CLI
66
+ * Links .github/skills/implement-feature/SKILL.md -> .claude/commands/implement-feature.md
67
+ */
68
+ function createCopilotSymlink() {
69
+ const copilotSkillDir = path.join(TARGET_DIR, '.github', 'skills', 'implement-feature');
70
+ const copilotSkillPath = path.join(copilotSkillDir, 'SKILL.md');
71
+ const claudeSkillPath = path.join(TARGET_DIR, '.claude', 'commands', 'implement-feature.md');
72
+
73
+ // Relative path from .github/skills/implement-feature/ to .claude/commands/
74
+ const relativePath = path.relative(copilotSkillDir, claudeSkillPath);
75
+
76
+ // Create directory
77
+ fs.mkdirSync(copilotSkillDir, { recursive: true });
78
+
79
+ // Remove existing symlink or file
80
+ if (fs.existsSync(copilotSkillPath)) {
81
+ fs.unlinkSync(copilotSkillPath);
82
+ }
83
+
84
+ // Create symlink
85
+ try {
86
+ fs.symlinkSync(relativePath, copilotSkillPath);
87
+ console.log('Created Copilot CLI symlink at .github/skills/implement-feature/SKILL.md');
88
+ return true;
89
+ } catch (err) {
90
+ console.warn(`Warning: Could not create symlink: ${err.message}`);
91
+ // Fallback: copy the file instead
92
+ fs.copyFileSync(claudeSkillPath, copilotSkillPath);
93
+ console.log('Copied skill to .github/skills/implement-feature/SKILL.md (symlink failed)');
94
+ return false;
95
+ }
96
+ }
97
+
64
98
  async function init() {
65
99
  const blueprintSrc = path.join(PACKAGE_ROOT, '.blueprint');
66
100
  const blueprintDest = path.join(TARGET_DIR, '.blueprint');
@@ -74,25 +108,27 @@ async function init() {
74
108
  if (fs.existsSync(blueprintDest)) {
75
109
  const answer = await prompt('.blueprint directory already exists. Overwrite? (y/N): ');
76
110
  if (answer !== 'y' && answer !== 'yes') {
77
- console.log('Aborted. Use "agent-workflow update" to update existing installation.');
111
+ console.log('Aborted. Use "murmur8 update" to update existing installation.');
78
112
  return;
79
113
  }
80
114
  fs.rmSync(blueprintDest, { recursive: true });
81
115
  }
82
116
 
83
- // Copy skill to .claude/commands/ for Claude Code discovery
117
+ // Copy skill to .claude/commands/ (master location)
84
118
  fs.mkdirSync(claudeCommandsDir, { recursive: true });
85
119
  if (fs.existsSync(skillCommandDest)) {
86
120
  const answer = await prompt('.claude/commands/implement-feature.md already exists. Overwrite? (y/N): ');
87
121
  if (answer !== 'y' && answer !== 'yes') {
88
- console.log('Skipping skill command');
122
+ console.log('Skipping skill installation');
89
123
  } else {
90
124
  fs.copyFileSync(skillSrc, skillCommandDest);
91
125
  console.log('Copied skill to .claude/commands/implement-feature.md');
126
+ createCopilotSymlink();
92
127
  }
93
128
  } else {
94
129
  fs.copyFileSync(skillSrc, skillCommandDest);
95
130
  console.log('Copied skill to .claude/commands/implement-feature.md');
131
+ createCopilotSymlink();
96
132
  }
97
133
 
98
134
  // Copy .blueprint directory
@@ -132,7 +168,7 @@ murmur8 initialized successfully!
132
168
  Next steps:
133
169
  1. Review your tech stack with \`npx murmur8 stack-config\`
134
170
  2. Add business context documents to .business_context/
135
- 3. Run /implement-feature in Claude Code to start your first feature
171
+ 3. Run /implement-feature in Claude Code or Copilot CLI to start your first feature
136
172
  `);
137
173
  }
138
174