murmur8 3.5.0 → 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.
- package/.blueprint/agents/TEAM_MANIFESTO.md +1 -1
- package/README.md +93 -49
- package/SKILL.md +17 -1
- package/bin/cli.js +69 -48
- package/package.json +3 -2
- package/src/history.js +1 -11
- package/src/index.js +3 -0
- package/src/init.js +41 -5
- package/src/{parallel.js → murm.js} +150 -114
- package/src/theme.js +119 -0
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
|
-
'#
|
|
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 "
|
|
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/
|
|
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
|
|
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
|
|