@fredericboyer/dev-team 0.6.0 → 0.8.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/README.md +12 -11
- package/dist/bin/dev-team.js +12 -12
- package/dist/bin/dev-team.js.map +1 -1
- package/dist/create-agent.js +6 -6
- package/dist/create-agent.js.map +1 -1
- package/dist/doctor.js +15 -16
- package/dist/doctor.js.map +1 -1
- package/dist/files.js +2 -0
- package/dist/files.js.map +1 -1
- package/dist/init.js +55 -44
- package/dist/init.js.map +1 -1
- package/dist/scan.js +9 -9
- package/dist/scan.js.map +1 -1
- package/dist/skill-recommendations.d.ts +57 -0
- package/dist/skill-recommendations.js +290 -0
- package/dist/skill-recommendations.js.map +1 -0
- package/dist/status.js +11 -11
- package/dist/status.js.map +1 -1
- package/dist/update.d.ts +1 -4
- package/dist/update.js +178 -59
- package/dist/update.js.map +1 -1
- package/package.json +3 -3
- package/templates/CLAUDE.md +9 -7
- package/templates/agents/dev-team-beck.md +14 -2
- package/templates/agents/dev-team-borges.md +4 -4
- package/templates/agents/dev-team-conway.md +15 -3
- package/templates/agents/dev-team-deming.md +20 -2
- package/templates/agents/dev-team-drucker.md +21 -7
- package/templates/agents/dev-team-hamilton.md +14 -2
- package/templates/agents/dev-team-mori.md +14 -2
- package/templates/agents/dev-team-tufte.md +14 -2
- package/templates/agents/dev-team-voss.md +14 -2
- package/templates/hooks/dev-team-post-change-review.js +1 -25
- package/templates/hooks/dev-team-pre-commit-gate.js +80 -47
- package/templates/hooks/dev-team-watch-list.js +3 -3
- package/templates/settings.json +6 -20
- package/templates/skill-recommendations.json +169 -0
- package/templates/skills/dev-team-assess/SKILL.md +167 -0
- package/templates/skills/dev-team-audit/SKILL.md +8 -3
- package/templates/skills/dev-team-merge/SKILL.md +95 -0
- package/templates/skills/dev-team-review/SKILL.md +11 -4
- package/templates/skills/dev-team-task/SKILL.md +34 -44
- package/dist/parallel.d.ts +0 -127
- package/dist/parallel.js +0 -323
- package/dist/parallel.js.map +0 -1
- package/templates/hooks/dev-team-parallel-loop.js +0 -188
- package/templates/hooks/dev-team-task-loop.js +0 -73
package/dist/update.js
CHANGED
|
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.compareSemver = compareSemver;
|
|
6
7
|
exports.update = update;
|
|
7
8
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const
|
|
9
|
+
const files_js_1 = require("./files.js");
|
|
9
10
|
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const
|
|
11
|
+
const init_js_1 = require("./init.js");
|
|
11
12
|
const MIGRATIONS = [
|
|
12
13
|
{
|
|
13
14
|
version: "0.4.0",
|
|
@@ -39,19 +40,29 @@ const MIGRATIONS = [
|
|
|
39
40
|
],
|
|
40
41
|
},
|
|
41
42
|
];
|
|
42
|
-
function
|
|
43
|
+
function compareSemver(a, b) {
|
|
44
|
+
const pa = a.split(".").map((n) => parseInt(n, 10));
|
|
45
|
+
const pb = b.split(".").map((n) => parseInt(n, 10));
|
|
46
|
+
for (let i = 0; i < 3; i++) {
|
|
47
|
+
const diff = (pa[i] || 0) - (pb[i] || 0);
|
|
48
|
+
if (diff !== 0)
|
|
49
|
+
return diff;
|
|
50
|
+
}
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
function runMigrations(prefs, fromVersion, devTeamDir) {
|
|
43
54
|
const log = [];
|
|
44
55
|
for (const migration of MIGRATIONS) {
|
|
45
56
|
// Skip migrations for versions already applied
|
|
46
|
-
if (fromVersion
|
|
57
|
+
if (compareSemver(fromVersion, migration.version) >= 0)
|
|
47
58
|
continue;
|
|
48
59
|
if (migration.agentRenames) {
|
|
49
60
|
for (const rename of migration.agentRenames) {
|
|
50
|
-
const agentsDir = path_1.default.join(
|
|
51
|
-
const memoryDir = path_1.default.join(
|
|
61
|
+
const agentsDir = path_1.default.join(devTeamDir, "agents");
|
|
62
|
+
const memoryDir = path_1.default.join(devTeamDir, "agent-memory");
|
|
52
63
|
// Rename agent file
|
|
53
64
|
const oldAgentPath = path_1.default.join(agentsDir, rename.oldFile);
|
|
54
|
-
if ((0,
|
|
65
|
+
if ((0, files_js_1.fileExists)(oldAgentPath)) {
|
|
55
66
|
try {
|
|
56
67
|
fs_1.default.unlinkSync(oldAgentPath);
|
|
57
68
|
}
|
|
@@ -63,8 +74,8 @@ function runMigrations(prefs, fromVersion, claudeDir) {
|
|
|
63
74
|
// Rename memory directory (preserve calibration data)
|
|
64
75
|
const oldMemDir = path_1.default.join(memoryDir, rename.oldFile.replace(".md", ""));
|
|
65
76
|
const newMemDir = path_1.default.join(memoryDir, rename.newFile.replace(".md", ""));
|
|
66
|
-
if ((0,
|
|
67
|
-
!(0,
|
|
77
|
+
if ((0, files_js_1.fileExists)(path_1.default.join(oldMemDir, "MEMORY.md")) &&
|
|
78
|
+
!(0, files_js_1.fileExists)(path_1.default.join(newMemDir, "MEMORY.md"))) {
|
|
68
79
|
try {
|
|
69
80
|
fs_1.default.mkdirSync(newMemDir, { recursive: true });
|
|
70
81
|
fs_1.default.renameSync(path_1.default.join(oldMemDir, "MEMORY.md"), path_1.default.join(newMemDir, "MEMORY.md"));
|
|
@@ -86,21 +97,129 @@ function runMigrations(prefs, fromVersion, claudeDir) {
|
|
|
86
97
|
return log;
|
|
87
98
|
}
|
|
88
99
|
// Derived from init.ts — single source of truth, no drift
|
|
89
|
-
const AGENT_FILES = Object.fromEntries(
|
|
90
|
-
const HOOK_FILES = Object.fromEntries(
|
|
100
|
+
const AGENT_FILES = Object.fromEntries(init_js_1.ALL_AGENTS.map((a) => [a.label, a.file]));
|
|
101
|
+
const HOOK_FILES = Object.fromEntries(init_js_1.QUALITY_HOOKS.map((h) => [h.label, h.file]));
|
|
91
102
|
// Skills auto-discovered at runtime from templates/skills/
|
|
92
103
|
/**
|
|
93
104
|
* Update flow: upgrades installed agents, hooks, and skills to latest templates.
|
|
94
105
|
* Preserves user customizations in CLAUDE.md and agent memory files.
|
|
95
106
|
*/
|
|
107
|
+
/**
|
|
108
|
+
* Migrates files from .claude/ to .dev-team/ directory structure.
|
|
109
|
+
* Preserves all user content (memories, learnings).
|
|
110
|
+
*/
|
|
111
|
+
function migrateFromClaude(targetDir) {
|
|
112
|
+
const log = [];
|
|
113
|
+
const claudeDir = path_1.default.join(targetDir, ".claude");
|
|
114
|
+
const devTeamDir = path_1.default.join(targetDir, ".dev-team");
|
|
115
|
+
// Directories to move
|
|
116
|
+
const dirMappings = [
|
|
117
|
+
{ from: path_1.default.join(claudeDir, "agents"), to: path_1.default.join(devTeamDir, "agents") },
|
|
118
|
+
{ from: path_1.default.join(claudeDir, "agent-memory"), to: path_1.default.join(devTeamDir, "agent-memory") },
|
|
119
|
+
{ from: path_1.default.join(claudeDir, "hooks"), to: path_1.default.join(devTeamDir, "hooks") },
|
|
120
|
+
{ from: path_1.default.join(claudeDir, "skills"), to: path_1.default.join(devTeamDir, "skills") },
|
|
121
|
+
];
|
|
122
|
+
// Protected files that must never be overwritten during migration
|
|
123
|
+
const protectedPatterns = ["learnings.md", "MEMORY.md"];
|
|
124
|
+
for (const { from, to } of dirMappings) {
|
|
125
|
+
if ((0, files_js_1.dirExists)(from)) {
|
|
126
|
+
const files = (0, files_js_1.listFilesRecursive)(from);
|
|
127
|
+
for (const filePath of files) {
|
|
128
|
+
const relativePath = path_1.default.relative(from, filePath);
|
|
129
|
+
const destPath = path_1.default.join(to, relativePath);
|
|
130
|
+
// Never overwrite existing files in .dev-team/ (partial migration safety)
|
|
131
|
+
if (!(0, files_js_1.fileExists)(destPath)) {
|
|
132
|
+
(0, files_js_1.copyFile)(filePath, destPath);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
log.push(`Migrated ${path_1.default.basename(from)}/ → .dev-team/${path_1.default.basename(to)}/`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// File mappings
|
|
139
|
+
const fileMappings = [
|
|
140
|
+
{
|
|
141
|
+
from: path_1.default.join(claudeDir, "dev-team-learnings.md"),
|
|
142
|
+
to: path_1.default.join(devTeamDir, "learnings.md"),
|
|
143
|
+
},
|
|
144
|
+
{ from: path_1.default.join(claudeDir, "dev-team.json"), to: path_1.default.join(devTeamDir, "config.json") },
|
|
145
|
+
];
|
|
146
|
+
for (const { from, to } of fileMappings) {
|
|
147
|
+
if ((0, files_js_1.fileExists)(from)) {
|
|
148
|
+
const isProtected = protectedPatterns.some((p) => to.endsWith(p));
|
|
149
|
+
// Never overwrite protected files (learnings, memory)
|
|
150
|
+
if (!isProtected || !(0, files_js_1.fileExists)(to)) {
|
|
151
|
+
(0, files_js_1.copyFile)(from, to);
|
|
152
|
+
}
|
|
153
|
+
log.push(`Migrated ${path_1.default.basename(from)} → .dev-team/${path_1.default.basename(to)}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Rewrite settings.json hook paths from .claude/hooks/ to .dev-team/hooks/
|
|
157
|
+
const settingsPath = path_1.default.join(claudeDir, "settings.json");
|
|
158
|
+
const settingsContent = (0, files_js_1.readFile)(settingsPath);
|
|
159
|
+
if (settingsContent) {
|
|
160
|
+
const updated = settingsContent.replace(/\.claude\/hooks\//g, ".dev-team/hooks/");
|
|
161
|
+
(0, files_js_1.writeFile)(settingsPath, updated);
|
|
162
|
+
log.push("Rewrote settings.json hook paths to .dev-team/hooks/");
|
|
163
|
+
}
|
|
164
|
+
// Clean up old .claude/ files (except settings.json and settings.local.json)
|
|
165
|
+
for (const { from } of dirMappings) {
|
|
166
|
+
if ((0, files_js_1.dirExists)(from)) {
|
|
167
|
+
try {
|
|
168
|
+
fs_1.default.rmSync(from, { recursive: true });
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// best effort
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
for (const { from } of fileMappings) {
|
|
176
|
+
if ((0, files_js_1.fileExists)(from)) {
|
|
177
|
+
try {
|
|
178
|
+
fs_1.default.unlinkSync(from);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// best effort
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Clean up other dev-team files in .claude/
|
|
186
|
+
const otherFiles = [
|
|
187
|
+
path_1.default.join(claudeDir, "dev-team-review-pending.json"),
|
|
188
|
+
path_1.default.join(claudeDir, "dev-team-task.json"),
|
|
189
|
+
];
|
|
190
|
+
for (const f of otherFiles) {
|
|
191
|
+
if ((0, files_js_1.fileExists)(f)) {
|
|
192
|
+
try {
|
|
193
|
+
fs_1.default.unlinkSync(f);
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// best effort
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return log;
|
|
201
|
+
}
|
|
96
202
|
async function update(targetDir) {
|
|
97
203
|
console.log("\ndev-team update — Upgrading to latest templates\n");
|
|
98
204
|
const claudeDir = path_1.default.join(targetDir, ".claude");
|
|
99
|
-
const
|
|
205
|
+
const devTeamDir = path_1.default.join(targetDir, ".dev-team");
|
|
206
|
+
// Check if migration from .claude/ to .dev-team/ is needed
|
|
207
|
+
const oldPrefsPath = path_1.default.join(claudeDir, "dev-team.json");
|
|
208
|
+
const newPrefsPath = path_1.default.join(devTeamDir, "config.json");
|
|
209
|
+
const needsMigration = (0, files_js_1.fileExists)(oldPrefsPath) && !(0, files_js_1.fileExists)(newPrefsPath);
|
|
210
|
+
if (needsMigration) {
|
|
211
|
+
console.log("Migrating from .claude/ to .dev-team/ directory structure...\n");
|
|
212
|
+
const migrationLog = migrateFromClaude(targetDir);
|
|
213
|
+
for (const entry of migrationLog) {
|
|
214
|
+
console.log(` ${entry}`);
|
|
215
|
+
}
|
|
216
|
+
console.log("");
|
|
217
|
+
}
|
|
218
|
+
const prefsPath = newPrefsPath;
|
|
100
219
|
// Step 1: Read existing preferences
|
|
101
|
-
const prefsContent = (0,
|
|
220
|
+
const prefsContent = (0, files_js_1.readFile)(prefsPath);
|
|
102
221
|
if (!prefsContent) {
|
|
103
|
-
console.error("Error: No dev-team.json found. Run `npx dev-team init` first.");
|
|
222
|
+
console.error("Error: No .dev-team/config.json found. Run `npx dev-team init` first.");
|
|
104
223
|
process.exit(1);
|
|
105
224
|
}
|
|
106
225
|
let prefs;
|
|
@@ -110,7 +229,7 @@ async function update(targetDir) {
|
|
|
110
229
|
catch {
|
|
111
230
|
const backupPath = prefsPath + ".bak";
|
|
112
231
|
try {
|
|
113
|
-
(0,
|
|
232
|
+
(0, files_js_1.copyFile)(prefsPath, backupPath);
|
|
114
233
|
console.error(`Error: dev-team.json is corrupted. Backed up to ${backupPath}. Run \`npx dev-team init\` to reinitialize.`);
|
|
115
234
|
}
|
|
116
235
|
catch {
|
|
@@ -118,7 +237,7 @@ async function update(targetDir) {
|
|
|
118
237
|
}
|
|
119
238
|
process.exit(1);
|
|
120
239
|
}
|
|
121
|
-
const packageVersion = (0,
|
|
240
|
+
const packageVersion = (0, files_js_1.getPackageVersion)();
|
|
122
241
|
if (prefs.version === packageVersion) {
|
|
123
242
|
console.log(`Already at latest version (v${packageVersion})`);
|
|
124
243
|
}
|
|
@@ -126,10 +245,10 @@ async function update(targetDir) {
|
|
|
126
245
|
console.log(`Upgrading from v${prefs.version} to v${packageVersion}`);
|
|
127
246
|
}
|
|
128
247
|
// Run version migrations before updating agents
|
|
129
|
-
const
|
|
130
|
-
if (
|
|
248
|
+
const agentMigrationLog = runMigrations(prefs, prefs.version || "0.0.0", devTeamDir);
|
|
249
|
+
if (agentMigrationLog.length > 0) {
|
|
131
250
|
console.log("Migrations:");
|
|
132
|
-
for (const entry of
|
|
251
|
+
for (const entry of agentMigrationLog) {
|
|
133
252
|
console.log(` ${entry}`);
|
|
134
253
|
}
|
|
135
254
|
console.log("");
|
|
@@ -137,7 +256,7 @@ async function update(targetDir) {
|
|
|
137
256
|
console.log(` Agents: ${prefs.agents.join(", ")}`);
|
|
138
257
|
console.log(` Hooks: ${prefs.hooks.join(", ")}`);
|
|
139
258
|
console.log("");
|
|
140
|
-
const templates = (0,
|
|
259
|
+
const templates = (0, files_js_1.templateDir)();
|
|
141
260
|
const summary = {
|
|
142
261
|
agents: { updated: [], added: [] },
|
|
143
262
|
hooks: { updated: [], added: [] },
|
|
@@ -146,34 +265,34 @@ async function update(targetDir) {
|
|
|
146
265
|
settings: false,
|
|
147
266
|
};
|
|
148
267
|
// Step 2: Update agents
|
|
149
|
-
const agentsDir = path_1.default.join(
|
|
150
|
-
const memoryDir = path_1.default.join(
|
|
268
|
+
const agentsDir = path_1.default.join(devTeamDir, "agents");
|
|
269
|
+
const memoryDir = path_1.default.join(devTeamDir, "agent-memory");
|
|
151
270
|
for (const label of prefs.agents) {
|
|
152
271
|
const file = AGENT_FILES[label];
|
|
153
272
|
if (!file)
|
|
154
273
|
continue;
|
|
155
274
|
const src = path_1.default.join(templates, "agents", file);
|
|
156
275
|
const dest = path_1.default.join(agentsDir, file);
|
|
157
|
-
if (!(0,
|
|
276
|
+
if (!(0, files_js_1.fileExists)(src))
|
|
158
277
|
continue;
|
|
159
|
-
if ((0,
|
|
160
|
-
const srcContent = (0,
|
|
161
|
-
const destContent = (0,
|
|
278
|
+
if ((0, files_js_1.fileExists)(dest)) {
|
|
279
|
+
const srcContent = (0, files_js_1.readFile)(src);
|
|
280
|
+
const destContent = (0, files_js_1.readFile)(dest);
|
|
162
281
|
if (srcContent !== destContent) {
|
|
163
|
-
(0,
|
|
282
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
164
283
|
summary.agents.updated.push(label);
|
|
165
284
|
}
|
|
166
285
|
}
|
|
167
286
|
else {
|
|
168
|
-
(0,
|
|
287
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
169
288
|
summary.agents.added.push(label);
|
|
170
289
|
}
|
|
171
290
|
// Create memory template if missing (never overwrite existing memory)
|
|
172
291
|
const agentName = file.replace(".md", "");
|
|
173
292
|
const memorySrc = path_1.default.join(templates, "agent-memory", agentName, "MEMORY.md");
|
|
174
293
|
const memoryDest = path_1.default.join(memoryDir, agentName, "MEMORY.md");
|
|
175
|
-
if (!(0,
|
|
176
|
-
(0,
|
|
294
|
+
if (!(0, files_js_1.fileExists)(memoryDest) && (0, files_js_1.fileExists)(memorySrc)) {
|
|
295
|
+
(0, files_js_1.copyFile)(memorySrc, memoryDest);
|
|
177
296
|
}
|
|
178
297
|
}
|
|
179
298
|
// Detect new agents available in templates but not in preferences
|
|
@@ -181,39 +300,39 @@ async function update(targetDir) {
|
|
|
181
300
|
if (prefs.agents.includes(label))
|
|
182
301
|
continue;
|
|
183
302
|
const src = path_1.default.join(templates, "agents", file);
|
|
184
|
-
if ((0,
|
|
303
|
+
if ((0, files_js_1.fileExists)(src)) {
|
|
185
304
|
const dest = path_1.default.join(agentsDir, file);
|
|
186
|
-
(0,
|
|
305
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
187
306
|
summary.agents.added.push(label);
|
|
188
307
|
prefs.agents.push(label);
|
|
189
308
|
const agentName = file.replace(".md", "");
|
|
190
309
|
const memorySrc = path_1.default.join(templates, "agent-memory", agentName, "MEMORY.md");
|
|
191
310
|
const memoryDest = path_1.default.join(memoryDir, agentName, "MEMORY.md");
|
|
192
|
-
if (!(0,
|
|
193
|
-
(0,
|
|
311
|
+
if (!(0, files_js_1.fileExists)(memoryDest) && (0, files_js_1.fileExists)(memorySrc)) {
|
|
312
|
+
(0, files_js_1.copyFile)(memorySrc, memoryDest);
|
|
194
313
|
}
|
|
195
314
|
}
|
|
196
315
|
}
|
|
197
316
|
// Step 3: Update hooks
|
|
198
|
-
const hooksDir = path_1.default.join(
|
|
317
|
+
const hooksDir = path_1.default.join(devTeamDir, "hooks");
|
|
199
318
|
for (const label of prefs.hooks) {
|
|
200
319
|
const file = HOOK_FILES[label];
|
|
201
320
|
if (!file)
|
|
202
321
|
continue;
|
|
203
322
|
const src = path_1.default.join(templates, "hooks", file);
|
|
204
323
|
const dest = path_1.default.join(hooksDir, file);
|
|
205
|
-
if (!(0,
|
|
324
|
+
if (!(0, files_js_1.fileExists)(src))
|
|
206
325
|
continue;
|
|
207
|
-
if ((0,
|
|
208
|
-
const srcContent = (0,
|
|
209
|
-
const destContent = (0,
|
|
326
|
+
if ((0, files_js_1.fileExists)(dest)) {
|
|
327
|
+
const srcContent = (0, files_js_1.readFile)(src);
|
|
328
|
+
const destContent = (0, files_js_1.readFile)(dest);
|
|
210
329
|
if (srcContent !== destContent) {
|
|
211
|
-
(0,
|
|
330
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
212
331
|
summary.hooks.updated.push(label);
|
|
213
332
|
}
|
|
214
333
|
}
|
|
215
334
|
else {
|
|
216
|
-
(0,
|
|
335
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
217
336
|
summary.hooks.added.push(label);
|
|
218
337
|
}
|
|
219
338
|
}
|
|
@@ -222,16 +341,16 @@ async function update(targetDir) {
|
|
|
222
341
|
if (prefs.hooks.includes(label))
|
|
223
342
|
continue;
|
|
224
343
|
const src = path_1.default.join(templates, "hooks", file);
|
|
225
|
-
if ((0,
|
|
344
|
+
if ((0, files_js_1.fileExists)(src)) {
|
|
226
345
|
const dest = path_1.default.join(hooksDir, file);
|
|
227
|
-
(0,
|
|
346
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
228
347
|
summary.hooks.added.push(label);
|
|
229
348
|
prefs.hooks.push(label);
|
|
230
349
|
}
|
|
231
350
|
}
|
|
232
351
|
// Step 4: Update settings
|
|
233
352
|
const settingsPath = path_1.default.join(claudeDir, "settings.json");
|
|
234
|
-
const settingsContent = (0,
|
|
353
|
+
const settingsContent = (0, files_js_1.readFile)(path_1.default.join(templates, "settings.json"));
|
|
235
354
|
if (settingsContent) {
|
|
236
355
|
const settingsTemplate = JSON.parse(settingsContent);
|
|
237
356
|
const selectedHookFiles = prefs.hooks.map((label) => HOOK_FILES[label]).filter(Boolean);
|
|
@@ -247,46 +366,46 @@ async function update(targetDir) {
|
|
|
247
366
|
filteredSettings.hooks[event] = filteredEntries;
|
|
248
367
|
}
|
|
249
368
|
}
|
|
250
|
-
(0,
|
|
369
|
+
(0, files_js_1.mergeSettings)(settingsPath, filteredSettings);
|
|
251
370
|
summary.settings = true;
|
|
252
371
|
}
|
|
253
372
|
// Step 5: Update skills (auto-discovered from templates/skills/)
|
|
254
|
-
const skillsDir = path_1.default.join(
|
|
373
|
+
const skillsDir = path_1.default.join(devTeamDir, "skills");
|
|
255
374
|
const skillsSrcDir = path_1.default.join(templates, "skills");
|
|
256
|
-
const discoveredSkills = (0,
|
|
375
|
+
const discoveredSkills = (0, files_js_1.listSubdirectories)(skillsSrcDir);
|
|
257
376
|
for (const skillDir of discoveredSkills) {
|
|
258
377
|
const src = path_1.default.join(skillsSrcDir, skillDir, "SKILL.md");
|
|
259
378
|
const dest = path_1.default.join(skillsDir, skillDir, "SKILL.md");
|
|
260
|
-
if (!(0,
|
|
379
|
+
if (!(0, files_js_1.fileExists)(src))
|
|
261
380
|
continue;
|
|
262
|
-
if ((0,
|
|
263
|
-
const srcContent = (0,
|
|
264
|
-
const destContent = (0,
|
|
381
|
+
if ((0, files_js_1.fileExists)(dest)) {
|
|
382
|
+
const srcContent = (0, files_js_1.readFile)(src);
|
|
383
|
+
const destContent = (0, files_js_1.readFile)(dest);
|
|
265
384
|
if (srcContent !== destContent) {
|
|
266
|
-
(0,
|
|
385
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
267
386
|
summary.skills.updated.push(skillDir.replace("dev-team-", ""));
|
|
268
387
|
}
|
|
269
388
|
}
|
|
270
389
|
else {
|
|
271
|
-
(0,
|
|
390
|
+
(0, files_js_1.copyFile)(src, dest);
|
|
272
391
|
summary.skills.added.push(skillDir.replace("dev-team-", ""));
|
|
273
392
|
}
|
|
274
393
|
}
|
|
275
394
|
// Step 6: Update CLAUDE.md (preserves user content outside markers)
|
|
276
395
|
const claudeMdPath = path_1.default.join(targetDir, "CLAUDE.md");
|
|
277
|
-
const claudeMdTemplate = (0,
|
|
396
|
+
const claudeMdTemplate = (0, files_js_1.readFile)(path_1.default.join(templates, "CLAUDE.md"));
|
|
278
397
|
if (claudeMdTemplate) {
|
|
279
|
-
summary.claudeMd = (0,
|
|
398
|
+
summary.claudeMd = (0, files_js_1.mergeClaudeMd)(claudeMdPath, claudeMdTemplate);
|
|
280
399
|
}
|
|
281
400
|
// Step 7: Update shared learnings template (only if missing)
|
|
282
401
|
const learningsSrc = path_1.default.join(templates, "dev-team-learnings.md");
|
|
283
|
-
const learningsDest = path_1.default.join(
|
|
284
|
-
if (!(0,
|
|
285
|
-
(0,
|
|
402
|
+
const learningsDest = path_1.default.join(devTeamDir, "learnings.md");
|
|
403
|
+
if (!(0, files_js_1.fileExists)(learningsDest)) {
|
|
404
|
+
(0, files_js_1.copyFile)(learningsSrc, learningsDest);
|
|
286
405
|
}
|
|
287
406
|
// Step 8: Save updated preferences (stamp current package version)
|
|
288
407
|
prefs.version = packageVersion;
|
|
289
|
-
(0,
|
|
408
|
+
(0, files_js_1.writeFile)(prefsPath, JSON.stringify(prefs, null, 2) + "\n");
|
|
290
409
|
// Step 9: Print summary
|
|
291
410
|
console.log("Update summary:\n");
|
|
292
411
|
const agentChanges = [...summary.agents.updated, ...summary.agents.added];
|
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":";;;;;AA+IA,wBAuQC;AAtZD,gDAAwB;AACxB,mCAUiB;AAEjB,4CAAoB;AACpB,iCAAmD;AAcnD,MAAM,UAAU,GAAgB;IAC9B;QACE,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE;YACZ;gBACE,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oBAAoB;aAC9B;YACD;gBACE,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mBAAmB;aAC7B;YACD;gBACE,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oBAAoB;aAC9B;YACD;gBACE,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qBAAqB;aAC/B;SACF;KACF;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,KAAkB,EAAE,WAAmB,EAAE,SAAiB;IAC/E,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,+CAA+C;QAC/C,IAAI,WAAW,IAAI,SAAS,CAAC,OAAO;YAAE,SAAS;QAE/C,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC5C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACjD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAEvD,oBAAoB;gBACpB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1D,IAAI,IAAA,kBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9B,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC;gBAED,sDAAsD;gBACtD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1E,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1E,IACE,IAAA,kBAAU,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAC7C,CAAC,IAAA,kBAAU,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAC9C,CAAC;oBACD,IAAI,CAAC;wBACH,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC7C,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;wBACpF,YAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACP,kEAAkE;oBACpE,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvE,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAkBD,0DAA0D;AAC1D,MAAM,WAAW,GAA2B,MAAM,CAAC,WAAW,CAC5D,iBAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CACzC,CAAC;AAEF,MAAM,UAAU,GAA2B,MAAM,CAAC,WAAW,CAC3D,oBAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC;AAEF,2DAA2D;AAE3D;;;GAGG;AACI,KAAK,UAAU,MAAM,CAAC,SAAiB;IAC5C,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAExD,oCAAoC;IACpC,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAkB,CAAC;IACvB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;QACtC,IAAI,CAAC;YACH,IAAA,gBAAQ,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,mDAAmD,UAAU,8CAA8C,CAC5G,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;IAE3C,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,+BAA+B,cAAc,GAAG,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,OAAO,QAAQ,cAAc,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,gDAAgD;IAChD,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,IAAA,mBAAW,GAAE,CAAC;IAChC,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,wBAAwB;IACxB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC;YAAE,SAAS;QAE/B,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;YACnC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,sEAAsE;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,IAAI,IAAA,kBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YACrD,IAAA,gBAAQ,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC3C,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACxC,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChE,IAAI,CAAC,IAAA,kBAAU,EAAC,UAAU,CAAC,IAAI,IAAA,kBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,IAAA,gBAAQ,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC;YAAE,SAAS;QAE/B,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;YACnC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1C,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvC,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IACxE,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,gBAAgB,GAAiB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExF,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,eAAe,GAAkB,OAAO;iBAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACf,GAAG,KAAK;gBACR,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAClE;aACF,CAAC,CAAC;iBACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE7C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAA,qBAAa,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,iEAAiE;IACjE,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAA,0BAAkB,EAAC,YAAY,CAAC,CAAC;IAE1D,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC;YAAE,SAAS;QAE/B,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;YACnC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAA,gBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACrE,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,IAAA,qBAAa,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACnE,CAAC;IAED,6DAA6D;IAC7D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACpE,IAAI,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,IAAA,gBAAQ,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;IAC/B,IAAA,iBAAS,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5D,wBAAwB;IACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1E,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,WAAW,CAAC,MAAM,KAAK,CAAC;QACxB,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,OAAO,CAAC,QAAQ,KAAK,WAAW,EAChC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fredericboyer/dev-team",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Adversarial AI agent team for any project — installs Claude Code agents, hooks, and skills that enforce quality through productive friction",
|
|
5
5
|
"main": "dist/init.js",
|
|
6
6
|
"types": "dist/init.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"pretest": "npm run build",
|
|
18
|
-
"test": "node --test tests/unit/files.test.js tests/unit/hooks.test.js tests/unit/scan.test.js tests/unit/
|
|
18
|
+
"test": "node --test tests/unit/files.test.js tests/unit/hooks.test.js tests/unit/scan.test.js tests/unit/skill-recommendations.test.js tests/unit/create-agent.test.js tests/unit/cli.test.js tests/integration/fresh-project.test.js tests/integration/idempotency.test.js tests/integration/update.test.js tests/scenarios/node-project.test.js tests/scenarios/python-project.test.js tests/scenarios/upgrade-path.test.js",
|
|
19
19
|
"test:unit": "node --test tests/unit/files.test.js tests/unit/hooks.test.js",
|
|
20
20
|
"test:integration": "node --test tests/integration/fresh-project.test.js tests/integration/idempotency.test.js",
|
|
21
21
|
"test:scenarios": "node --test tests/scenarios/node-project.test.js tests/scenarios/python-project.test.js tests/scenarios/upgrade-path.test.js",
|
|
@@ -51,6 +51,6 @@
|
|
|
51
51
|
"@types/node": "^25.5.0",
|
|
52
52
|
"oxfmt": "^0.41.0",
|
|
53
53
|
"oxlint": "^1.56.0",
|
|
54
|
-
"typescript": "^
|
|
54
|
+
"typescript": "^6.0.2"
|
|
55
55
|
}
|
|
56
56
|
}
|
package/templates/CLAUDE.md
CHANGED
|
@@ -39,7 +39,7 @@ For non-trivial work: explore the area first, then implement, then review.
|
|
|
39
39
|
- **Conway** — auto-flagged when release artifacts change (package.json, changelog, version files, release/publish/deploy workflows, etc.)
|
|
40
40
|
|
|
41
41
|
**End-of-workflow agents:**
|
|
42
|
-
- **Borges** — mandatory at end of every `/dev-team:task`, `/dev-team:review`, and `/dev-team:
|
|
42
|
+
- **Borges** — mandatory at end of every `/dev-team:task`, `/dev-team:review`, `/dev-team:audit`, and `/dev-team:assess`. Reviews memory freshness, cross-agent coherence, and system improvement opportunities.
|
|
43
43
|
|
|
44
44
|
**Orchestration:**
|
|
45
45
|
- **Drucker** — delegates tasks to the right implementing agent and spawns reviewers. Szabo, Knuth, and Brooks review all code changes. Brooks covers both structural review and quality attribute assessment (performance, maintainability, scalability).
|
|
@@ -56,11 +56,10 @@ When working on multiple independent issues, use parallel agents on separate bra
|
|
|
56
56
|
|
|
57
57
|
When a dev-team hook outputs `ACTION REQUIRED — spawn these agents`, you MUST:
|
|
58
58
|
1. Spawn each listed agent as a **background** subagent using the Agent tool with `subagent_type: "general-purpose"`
|
|
59
|
-
2. Include the agent's full definition by reading from `.
|
|
59
|
+
2. Include the agent's full definition by reading from `.dev-team/agents/<agent>.md`
|
|
60
60
|
3. Include the changed file path and instruction to produce classified findings
|
|
61
|
-
4. After all reviews complete, delete `.claude/dev-team-review-pending.json`
|
|
62
61
|
|
|
63
|
-
Do NOT skip this. Do NOT treat hook output as optional.
|
|
62
|
+
Do NOT skip this. Do NOT treat hook output as optional. If you believe a review is unnecessary for trivial changes, explain why to the user.
|
|
64
63
|
|
|
65
64
|
### Skills
|
|
66
65
|
|
|
@@ -68,6 +67,9 @@ Do NOT skip this. Do NOT treat hook output as optional. The pre-commit gate will
|
|
|
68
67
|
- `/dev-team:task` — start an iterative task loop with adversarial review gates
|
|
69
68
|
- `/dev-team:review` — orchestrated multi-agent parallel review of changes
|
|
70
69
|
- `/dev-team:audit` — full codebase security + quality + tooling audit
|
|
70
|
+
- `/dev-team:merge` — merge a PR with Copilot review handling, auto-merge, CI monitoring, and post-merge actions
|
|
71
|
+
- `/dev-team:security-status` — check code scanning, Dependabot, and secret scanning alerts
|
|
72
|
+
- `/dev-team:assess` — audit knowledge base health (learnings, agent memory, CLAUDE.md)
|
|
71
73
|
|
|
72
74
|
### Learnings — where to write what
|
|
73
75
|
|
|
@@ -75,11 +77,11 @@ All project and process learnings MUST go to in-repo files, NOT to machine-local
|
|
|
75
77
|
|
|
76
78
|
| What | Where | Examples |
|
|
77
79
|
|------|-------|---------|
|
|
78
|
-
| Project patterns, process rules, tech debt, overruled challenges | `.
|
|
79
|
-
| Agent-specific calibration | `.
|
|
80
|
+
| Project patterns, process rules, tech debt, overruled challenges | `.dev-team/learnings.md` | "We use PostgreSQL", "Hooks over guidelines", "Knuth's finding X was overruled because Y" |
|
|
81
|
+
| Agent-specific calibration | `.dev-team/agent-memory/<agent>/MEMORY.md` | Szabo: "Auth uses JWT not sessions", Knuth: "Coverage weak in parsers" |
|
|
80
82
|
| Formal architecture decisions | `docs/adr/` | ADR format, not learnings |
|
|
81
83
|
| User-specific preferences only | Machine-local memory | Personal style, name, role — things that vary per person, not per project |
|
|
82
84
|
|
|
83
|
-
When the human gives feedback about process, coding style, or tool behavior: write it to
|
|
85
|
+
When the human gives feedback about process, coding style, or tool behavior: write it to `.dev-team/learnings.md`. Only use machine-local memory for things that are truly personal and would not apply to another developer on the same project.
|
|
84
86
|
|
|
85
87
|
<!-- dev-team:end -->
|
|
@@ -16,8 +16,9 @@ Your philosophy: "Red, green, refactor — in that order, every time."
|
|
|
16
16
|
|
|
17
17
|
Before writing tests:
|
|
18
18
|
1. Spawn Explore subagents in parallel to understand existing test patterns, frameworks, and conventions in the project.
|
|
19
|
-
2.
|
|
20
|
-
3.
|
|
19
|
+
2. **Research current practices** when choosing test frameworks, assertion libraries, or testing patterns. Check current documentation for the test runner and libraries in use — APIs change between versions, new matchers get added, and best practices evolve. Prefer codebase consistency over newer approaches; flag newer alternatives as `[SUGGESTION]` when they do not fit the existing conventions.
|
|
20
|
+
3. If @dev-team-knuth has produced findings, use them as your starting point — they identify the gaps, you fill them.
|
|
21
|
+
4. Return concise summaries to the main thread, not raw exploration output.
|
|
21
22
|
|
|
22
23
|
After completing tests:
|
|
23
24
|
1. Run the tests and report results.
|
|
@@ -66,3 +67,14 @@ After completing work, write key learnings to your MEMORY.md:
|
|
|
66
67
|
- Flaky test patterns identified and avoided
|
|
67
68
|
- Over-mocking patterns identified and refactored
|
|
68
69
|
- Challenges you raised that were accepted (reinforce) or overruled (calibrate)
|
|
70
|
+
|
|
71
|
+
## Learnings Output (mandatory)
|
|
72
|
+
|
|
73
|
+
After completing work, you MUST:
|
|
74
|
+
1. **Write to your MEMORY.md** (`.dev-team/agent-memory/dev-team-beck/MEMORY.md`) with key learnings from this task. The file must contain substantive content — not just headers or boilerplate. Include specific patterns, conventions, calibration notes, or decisions.
|
|
75
|
+
2. **Output a "Learnings" section** in your response summarizing what was written:
|
|
76
|
+
- What was surprising or non-obvious about this task?
|
|
77
|
+
- What should be calibrated for next time? (e.g., assumptions that were wrong, patterns that worked well)
|
|
78
|
+
- Where was this recorded? (`agent memory` for agent-specific calibration / `team learnings` for shared process rules / `ADR` for architectural decisions)
|
|
79
|
+
|
|
80
|
+
If you skip the MEMORY.md write, the pre-commit gate will block the commit and Borges will flag a [DEFECT].
|
|
@@ -16,15 +16,15 @@ Your philosophy: "A library that is not maintained becomes a labyrinth."
|
|
|
16
16
|
|
|
17
17
|
You are spawned **at the end of every task** — after implementation and review are complete, before the final summary is presented to the human.
|
|
18
18
|
|
|
19
|
-
You **write directly** to `.
|
|
19
|
+
You **write directly** to `.dev-team/learnings.md` — shared team facts (benchmarks, conventions, tech debt) that require no domain expertise.
|
|
20
20
|
|
|
21
|
-
For individual agent memories (`.
|
|
21
|
+
For individual agent memories (`.dev-team/agent-memory/*/MEMORY.md`), you **audit and direct** but do not write. Flag stale entries, contradictions, and gaps — then instruct the domain agent to update its own memory. Only the domain expert should write to its own calibration file. This prevents cross-domain miscalibration.
|
|
22
22
|
|
|
23
23
|
You do **not** modify code, agent definitions, hooks, or configuration.
|
|
24
24
|
|
|
25
25
|
### 1. Update shared learnings (you write this)
|
|
26
26
|
|
|
27
|
-
Read and update `.
|
|
27
|
+
Read and update `.dev-team/learnings.md`:
|
|
28
28
|
1. Are quality benchmarks current (test count, agent count, hook count)? Update them.
|
|
29
29
|
2. Are coding conventions still accurate? Fix or add as needed.
|
|
30
30
|
3. Are known tech debt items still open or were they resolved? Update status.
|
|
@@ -33,7 +33,7 @@ Read and update `.claude/dev-team-learnings.md`:
|
|
|
33
33
|
### 2. Audit agent memories (you direct, agents write)
|
|
34
34
|
|
|
35
35
|
For each agent that participated in the task:
|
|
36
|
-
1. Read their `MEMORY.md` in `.
|
|
36
|
+
1. Read their `MEMORY.md` in `.dev-team/agent-memory/<agent>/`
|
|
37
37
|
2. Check: are learnings from this task captured? Are old entries still accurate?
|
|
38
38
|
3. Flag stale entries (patterns that changed, challenges that were overruled, outdated benchmarks)
|
|
39
39
|
4. Flag if approaching the 200-line cap — recommend compression
|