@bradtaylorsf/alpha-loop 1.0.1 → 1.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.
- package/dist/cli.js +7 -20
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +126 -111
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/review.js +28 -0
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/scan.d.ts +5 -0
- package/dist/commands/scan.js +129 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sync.d.ts +3 -1
- package/dist/commands/sync.js +52 -21
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/templates.d.ts +16 -0
- package/dist/lib/templates.js +59 -0
- package/dist/lib/templates.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { program } from 'commander';
|
|
3
|
-
import { initCommand } from './commands/init.js';
|
|
4
3
|
import { historyCommand } from './commands/history.js';
|
|
5
4
|
import { scanCommand } from './commands/scan.js';
|
|
6
5
|
import { visionCommand } from './commands/vision.js';
|
|
7
6
|
import { authCommand } from './commands/auth.js';
|
|
8
|
-
import { syncCommand
|
|
9
|
-
import { loadConfig } from './lib/config.js';
|
|
10
|
-
import { log } from './lib/logger.js';
|
|
7
|
+
import { syncCommand } from './commands/sync.js';
|
|
11
8
|
program
|
|
12
9
|
.name('alpha-loop')
|
|
13
10
|
.description('Agent-agnostic automated development loop')
|
|
14
|
-
.version('1.0
|
|
11
|
+
.version('1.1.0');
|
|
15
12
|
program
|
|
16
13
|
.command('init')
|
|
17
|
-
.description('
|
|
18
|
-
.action(
|
|
14
|
+
.description('Full project onboarding: config, templates, vision, scan, sync')
|
|
15
|
+
.action(async () => {
|
|
16
|
+
const { initCommand } = await import('./commands/init.js');
|
|
17
|
+
await initCommand();
|
|
18
|
+
});
|
|
19
19
|
program
|
|
20
20
|
.command('run')
|
|
21
21
|
.description('Run the loop — fetches matching issues and processes them all, then exits')
|
|
@@ -55,19 +55,6 @@ program
|
|
|
55
55
|
.description('Sync .alpha-loop/templates/ to all configured harnesses')
|
|
56
56
|
.option('--check', 'Check for drift without syncing (exits non-zero if drift found)')
|
|
57
57
|
.action(syncCommand);
|
|
58
|
-
program
|
|
59
|
-
.command('migrate')
|
|
60
|
-
.description('Migrate legacy skills/, AGENTS.md, .claude/agents/ into .alpha-loop/templates/')
|
|
61
|
-
.action(() => {
|
|
62
|
-
migrateToTemplates();
|
|
63
|
-
const config = loadConfig();
|
|
64
|
-
if (config.harnesses.length > 0) {
|
|
65
|
-
const result = syncAgentAssets(config.harnesses);
|
|
66
|
-
if (result.synced) {
|
|
67
|
-
log.success('Synced templates to configured harnesses');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
58
|
program
|
|
72
59
|
.command('resume')
|
|
73
60
|
.description('Resume stranded work — push branches, run review, open PRs')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function initCommand(): void
|
|
1
|
+
export declare function initCommand(): Promise<void>;
|
package/dist/commands/init.js
CHANGED
|
@@ -1,38 +1,25 @@
|
|
|
1
|
-
import { existsSync, writeFileSync, readFileSync, mkdirSync, realpathSync } from 'node:fs';
|
|
2
|
-
import { join, dirname } from 'node:path';
|
|
3
|
-
import { detectRepo, loadConfig } from '../lib/config.js';
|
|
4
|
-
import { exec } from '../lib/shell.js';
|
|
5
|
-
import { log } from '../lib/logger.js';
|
|
6
|
-
import { syncAgentAssets } from './sync.js';
|
|
7
1
|
/**
|
|
8
|
-
*
|
|
9
|
-
* Works whether running from src/ (tsx) or dist/ (compiled) or as an npm package.
|
|
2
|
+
* Init Command — full project onboarding for alpha-loop.
|
|
10
3
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
4
|
+
* Steps:
|
|
5
|
+
* 1. Create config (.alpha-loop.yaml)
|
|
6
|
+
* 2. Set up .gitignore
|
|
7
|
+
* 3. Detect and migrate legacy layout (skills/ at root, .claude/agents/)
|
|
8
|
+
* 4. Seed .alpha-loop/templates/ from distribution (fills gaps only)
|
|
9
|
+
* 5. Install playwright-cli skills (if available)
|
|
10
|
+
* 6. Run vision (interactive, if TTY)
|
|
11
|
+
* 7. Run scan (generates context + instructions)
|
|
12
|
+
* 8. Sync templates to configured harnesses
|
|
13
|
+
* 9. Install GitHub issue template
|
|
14
|
+
* 10. Commit generated files
|
|
13
15
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
startDir = process.cwd();
|
|
22
|
-
}
|
|
23
|
-
// Walk up from the entrypoint to find templates/
|
|
24
|
-
let dir = startDir;
|
|
25
|
-
for (let i = 0; i < 5; i++) {
|
|
26
|
-
const candidate = join(dir, 'templates');
|
|
27
|
-
if (existsSync(candidate))
|
|
28
|
-
return candidate;
|
|
29
|
-
const parent = dirname(dir);
|
|
30
|
-
if (parent === dir)
|
|
31
|
-
break;
|
|
32
|
-
dir = parent;
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
16
|
+
import { existsSync, writeFileSync, readFileSync, readdirSync, copyFileSync, mkdirSync } from 'node:fs';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
import { detectRepo, loadConfig } from '../lib/config.js';
|
|
19
|
+
import { exec } from '../lib/shell.js';
|
|
20
|
+
import { log } from '../lib/logger.js';
|
|
21
|
+
import { syncAgentAssets, migrateToTemplates } from './sync.js';
|
|
22
|
+
import { findDistributionTemplatesDir } from '../lib/templates.js';
|
|
36
23
|
const CONFIG_FILE = '.alpha-loop.yaml';
|
|
37
24
|
const ISSUE_TEMPLATE = `name: Agent-Ready Task
|
|
38
25
|
description: A well-structured task for the automated agent loop to implement
|
|
@@ -115,8 +102,7 @@ dev_command: pnpm dev
|
|
|
115
102
|
port: 3000
|
|
116
103
|
auto_merge: true
|
|
117
104
|
|
|
118
|
-
# Coding harnesses to sync skills/agents to
|
|
119
|
-
# See full list: https://github.com/nicepkg/playwright-cli
|
|
105
|
+
# Coding harnesses to sync skills/agents to
|
|
120
106
|
harnesses:
|
|
121
107
|
- claude-code
|
|
122
108
|
- codex
|
|
@@ -126,9 +112,6 @@ max_issues: 20
|
|
|
126
112
|
max_session_duration: 7200 # 2 hours in seconds
|
|
127
113
|
`;
|
|
128
114
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Copy a directory recursively using the shell (simple and reliable).
|
|
131
|
-
*/
|
|
132
115
|
function copyDir(src, dest) {
|
|
133
116
|
mkdirSync(dest, { recursive: true });
|
|
134
117
|
exec(`cp -R "${src}/"* "${dest}/" 2>/dev/null || true`);
|
|
@@ -137,12 +120,9 @@ const GITIGNORE_ENTRIES = [
|
|
|
137
120
|
'# Alpha-loop ephemeral data (not shared)',
|
|
138
121
|
'.alpha-loop/sessions/',
|
|
139
122
|
'.alpha-loop/auth/',
|
|
123
|
+
'.alpha-loop/templates/*.bak',
|
|
140
124
|
'.worktrees/',
|
|
141
125
|
];
|
|
142
|
-
/**
|
|
143
|
-
* Ensure .gitignore tracks learnings but ignores sessions, auth, and worktrees.
|
|
144
|
-
* Also removes stale entries that previously ignored learnings.
|
|
145
|
-
*/
|
|
146
126
|
function ensureGitignore() {
|
|
147
127
|
const gitignorePath = '.gitignore';
|
|
148
128
|
let content = existsSync(gitignorePath) ? readFileSync(gitignorePath, 'utf-8') : '';
|
|
@@ -156,7 +136,6 @@ function ensureGitignore() {
|
|
|
156
136
|
changed = true;
|
|
157
137
|
log.info('Removed .alpha-loop/learnings/ from .gitignore (learnings are now tracked)');
|
|
158
138
|
}
|
|
159
|
-
// Add required ignore entries
|
|
160
139
|
const missing = GITIGNORE_ENTRIES.filter((entry) => !content.includes(entry));
|
|
161
140
|
if (missing.length > 0) {
|
|
162
141
|
const suffix = (content.endsWith('\n') || content === '') ? '' : '\n';
|
|
@@ -168,10 +147,12 @@ function ensureGitignore() {
|
|
|
168
147
|
log.success('Updated .gitignore for alpha-loop');
|
|
169
148
|
}
|
|
170
149
|
}
|
|
171
|
-
export function initCommand() {
|
|
172
|
-
|
|
150
|
+
export async function initCommand() {
|
|
151
|
+
const projectDir = process.cwd();
|
|
152
|
+
// --- Step 1: Create config ---
|
|
153
|
+
log.step('Step 1: Configuration');
|
|
173
154
|
if (existsSync(CONFIG_FILE)) {
|
|
174
|
-
log.info(`${CONFIG_FILE} already exists — skipping
|
|
155
|
+
log.info(`${CONFIG_FILE} already exists — skipping`);
|
|
175
156
|
}
|
|
176
157
|
else {
|
|
177
158
|
let repo = detectRepo();
|
|
@@ -185,27 +166,70 @@ export function initCommand() {
|
|
|
185
166
|
writeFileSync(CONFIG_FILE, configTemplate(repo));
|
|
186
167
|
log.success(`Created ${CONFIG_FILE}`);
|
|
187
168
|
}
|
|
188
|
-
//
|
|
189
|
-
|
|
190
|
-
// - Track learnings (team-shared knowledge)
|
|
191
|
-
// - Ignore sessions (local logs, screenshots, ephemeral data)
|
|
192
|
-
// - Ignore auth (browser state with credentials)
|
|
169
|
+
// --- Step 2: Set up .gitignore ---
|
|
170
|
+
log.step('Step 2: Git ignore');
|
|
193
171
|
ensureGitignore();
|
|
194
|
-
//
|
|
172
|
+
// --- Step 3: Detect and migrate legacy layout (before seeding, to preserve user skills) ---
|
|
173
|
+
log.step('Step 3: Legacy migration');
|
|
174
|
+
migrateToTemplates(projectDir);
|
|
175
|
+
// --- Step 4: Seed .alpha-loop/templates/ from distribution (only fills gaps) ---
|
|
176
|
+
log.step('Step 4: Seed templates');
|
|
177
|
+
const distTemplatesDir = findDistributionTemplatesDir();
|
|
178
|
+
const projectTemplatesDir = join(projectDir, '.alpha-loop', 'templates');
|
|
179
|
+
if (distTemplatesDir) {
|
|
180
|
+
// Seed skills
|
|
181
|
+
const distSkills = join(distTemplatesDir, 'skills');
|
|
182
|
+
const projectSkills = join(projectTemplatesDir, 'skills');
|
|
183
|
+
if (existsSync(distSkills)) {
|
|
184
|
+
const skillNames = readdirSync(distSkills, { withFileTypes: true })
|
|
185
|
+
.filter((d) => d.isDirectory()).map((d) => d.name);
|
|
186
|
+
let installed = 0;
|
|
187
|
+
for (const name of skillNames) {
|
|
188
|
+
const dest = join(projectSkills, name);
|
|
189
|
+
if (!existsSync(dest)) {
|
|
190
|
+
copyDir(join(distSkills, name), dest);
|
|
191
|
+
installed++;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (installed > 0) {
|
|
195
|
+
log.success(`Seeded ${installed} skill(s) to .alpha-loop/templates/skills/`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Seed agents
|
|
199
|
+
const distAgents = join(distTemplatesDir, 'agents');
|
|
200
|
+
const projectAgents = join(projectTemplatesDir, 'agents');
|
|
201
|
+
if (existsSync(distAgents)) {
|
|
202
|
+
mkdirSync(projectAgents, { recursive: true });
|
|
203
|
+
const agentFiles = readdirSync(distAgents).filter((f) => f.endsWith('.md'));
|
|
204
|
+
let installed = 0;
|
|
205
|
+
for (const file of agentFiles) {
|
|
206
|
+
const dest = join(projectAgents, file);
|
|
207
|
+
if (!existsSync(dest)) {
|
|
208
|
+
copyFileSync(join(distAgents, file), dest);
|
|
209
|
+
installed++;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (installed > 0) {
|
|
213
|
+
log.success(`Seeded ${installed} agent(s) to .alpha-loop/templates/agents/`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
log.warn('Distribution templates not found — skipping seed');
|
|
219
|
+
}
|
|
220
|
+
// --- Step 5: Install playwright-cli skills ---
|
|
221
|
+
log.step('Step 5: Playwright CLI');
|
|
195
222
|
const which = exec('which playwright-cli');
|
|
196
223
|
if (which.exitCode === 0) {
|
|
197
|
-
log.info('Installing playwright-cli skills...');
|
|
198
224
|
const result = exec('playwright-cli install --skills');
|
|
199
225
|
if (result.exitCode === 0) {
|
|
200
226
|
log.success('Playwright CLI skills installed');
|
|
201
|
-
//
|
|
202
|
-
// Copy to skills/ (source of truth) so our sync propagates to .agents/skills/ too.
|
|
227
|
+
// Copy to templates source of truth
|
|
203
228
|
const installed = join('.claude', 'skills', 'playwright-cli');
|
|
204
|
-
const
|
|
205
|
-
if (existsSync(installed) && !existsSync(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
log.info('Copied playwright-cli skill to skills/ (source of truth)');
|
|
229
|
+
const dest = join(projectTemplatesDir, 'skills', 'playwright-cli');
|
|
230
|
+
if (existsSync(installed) && !existsSync(dest)) {
|
|
231
|
+
copyDir(installed, dest);
|
|
232
|
+
log.info('Copied playwright-cli skill to .alpha-loop/templates/skills/');
|
|
209
233
|
}
|
|
210
234
|
}
|
|
211
235
|
else {
|
|
@@ -213,70 +237,61 @@ export function initCommand() {
|
|
|
213
237
|
}
|
|
214
238
|
}
|
|
215
239
|
else {
|
|
216
|
-
log.info('playwright-cli not found — skipping
|
|
240
|
+
log.info('playwright-cli not found — skipping. Install with: npm install -g @playwright/cli@latest');
|
|
217
241
|
}
|
|
218
|
-
//
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
const skillNames = exec(`ls "${templateSkills}"`).stdout.trim().split('\n').filter(Boolean);
|
|
226
|
-
let installed = 0;
|
|
227
|
-
for (const name of skillNames) {
|
|
228
|
-
const dest = join('skills', name);
|
|
229
|
-
if (!existsSync(dest)) {
|
|
230
|
-
mkdirSync('skills', { recursive: true });
|
|
231
|
-
copyDir(join(templateSkills, name), dest);
|
|
232
|
-
installed++;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
if (installed > 0) {
|
|
236
|
-
log.success(`Installed ${installed} base skill(s): ${skillNames.filter(n => !existsSync(join('skills', n)) || installed > 0).join(', ')}`);
|
|
237
|
-
}
|
|
242
|
+
// --- Step 6: Vision (interactive) ---
|
|
243
|
+
if (process.stdin.isTTY) {
|
|
244
|
+
const { hasVision } = await import('../lib/vision.js');
|
|
245
|
+
if (!hasVision()) {
|
|
246
|
+
log.step('Step 6: Project vision');
|
|
247
|
+
const { visionCommand } = await import('./vision.js');
|
|
248
|
+
await visionCommand();
|
|
238
249
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const templateAgents = join(templatesDir, 'agents');
|
|
242
|
-
if (existsSync(templateAgents)) {
|
|
243
|
-
const agentFiles = exec(`ls "${templateAgents}"`).stdout.trim().split('\n').filter(Boolean);
|
|
244
|
-
for (const file of agentFiles) {
|
|
245
|
-
// .claude/agents/ for Claude
|
|
246
|
-
const claudeDest = join('.claude', 'agents', file);
|
|
247
|
-
if (!existsSync(claudeDest)) {
|
|
248
|
-
mkdirSync(join('.claude', 'agents'), { recursive: true });
|
|
249
|
-
exec(`cp "${join(templateAgents, file)}" "${claudeDest}"`);
|
|
250
|
-
}
|
|
251
|
-
// .codex/agents/ for Codex (TOML format would be different, but .md works as fallback)
|
|
252
|
-
const codexDest = join('.codex', 'agents', file);
|
|
253
|
-
if (!existsSync(codexDest)) {
|
|
254
|
-
mkdirSync(join('.codex', 'agents'), { recursive: true });
|
|
255
|
-
exec(`cp "${join(templateAgents, file)}" "${codexDest}"`);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
log.success(`Installed agent definitions: ${agentFiles.join(', ')}`);
|
|
250
|
+
else {
|
|
251
|
+
log.step('Step 6: Project vision (already exists)');
|
|
259
252
|
}
|
|
260
253
|
}
|
|
261
254
|
else {
|
|
262
|
-
log.
|
|
255
|
+
log.step('Step 6: Project vision (skipped — non-interactive)');
|
|
256
|
+
}
|
|
257
|
+
// --- Step 7: Scan (context + instructions) ---
|
|
258
|
+
log.step('Step 7: Scan codebase');
|
|
259
|
+
const { scanCommand } = await import('./scan.js');
|
|
260
|
+
scanCommand();
|
|
261
|
+
// --- Step 8: Sync to harnesses ---
|
|
262
|
+
log.step('Step 8: Sync to harnesses');
|
|
263
|
+
const config = loadConfig();
|
|
264
|
+
const harnesses = config.harnesses.length > 0 ? config.harnesses : ['claude-code', 'codex'];
|
|
265
|
+
const syncResult = syncAgentAssets(harnesses);
|
|
266
|
+
if (syncResult.synced) {
|
|
267
|
+
log.success(`Synced templates to ${harnesses.join(', ')}`);
|
|
263
268
|
}
|
|
264
|
-
//
|
|
269
|
+
// --- Step 9: GitHub issue template ---
|
|
270
|
+
log.step('Step 9: Issue template');
|
|
265
271
|
const templateDir = join('.github', 'ISSUE_TEMPLATE');
|
|
266
272
|
const templateFile = join(templateDir, 'agent-ready.yml');
|
|
267
273
|
if (!existsSync(templateFile)) {
|
|
268
274
|
mkdirSync(templateDir, { recursive: true });
|
|
269
275
|
writeFileSync(templateFile, ISSUE_TEMPLATE);
|
|
270
|
-
log.success('Created GitHub issue template
|
|
276
|
+
log.success('Created GitHub issue template');
|
|
271
277
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
const
|
|
278
|
-
if (
|
|
279
|
-
|
|
278
|
+
else {
|
|
279
|
+
log.info('Issue template already exists');
|
|
280
|
+
}
|
|
281
|
+
// --- Step 10: Commit ---
|
|
282
|
+
log.step('Step 10: Commit generated files');
|
|
283
|
+
const statusResult = exec('git status --porcelain .alpha-loop/ .claude/ .agents/ .codex/ CLAUDE.md AGENTS.md .gitignore .github/');
|
|
284
|
+
if (statusResult.stdout.trim()) {
|
|
285
|
+
exec('git add .alpha-loop/ .claude/ .agents/ .codex/ CLAUDE.md AGENTS.md .gitignore .github/ 2>/dev/null || true');
|
|
286
|
+
const diffCheck = exec('git diff --cached --quiet');
|
|
287
|
+
if (diffCheck.exitCode !== 0) {
|
|
288
|
+
exec('git commit -m "chore: initialize alpha-loop (skills, agents, context, instructions)"');
|
|
289
|
+
log.success('Committed generated files');
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
log.info('No new files to commit');
|
|
280
294
|
}
|
|
295
|
+
log.success('Alpha-loop initialization complete!');
|
|
281
296
|
}
|
|
282
297
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/review.js
CHANGED
|
@@ -11,6 +11,7 @@ import { formatTimestamp } from '../lib/shell.js';
|
|
|
11
11
|
import { spawnAgent } from '../lib/agent.js';
|
|
12
12
|
import { createPR } from '../lib/github.js';
|
|
13
13
|
import { syncAgentAssets } from './sync.js';
|
|
14
|
+
import { findDistributionTemplatesDir, diffSkills } from '../lib/templates.js';
|
|
14
15
|
/** Directories that proposed changes are allowed to target. */
|
|
15
16
|
const ALLOWED_PREFIXES = [
|
|
16
17
|
'.alpha-loop/templates/skills/',
|
|
@@ -497,6 +498,33 @@ export async function reviewCommand(options) {
|
|
|
497
498
|
});
|
|
498
499
|
log.success(`${safeProposals.length} improvement(s) proposed`);
|
|
499
500
|
displayProposals(safeProposals);
|
|
501
|
+
// --- Check for skill upgrades from distribution templates ---
|
|
502
|
+
const distTemplatesDir = findDistributionTemplatesDir();
|
|
503
|
+
if (distTemplatesDir) {
|
|
504
|
+
const distSkillsDir = join(distTemplatesDir, 'skills');
|
|
505
|
+
const projectSkillsDir = join(projectDir, '.alpha-loop', 'templates', 'skills');
|
|
506
|
+
const upgrades = diffSkills(distSkillsDir, projectSkillsDir);
|
|
507
|
+
if (upgrades.length > 0) {
|
|
508
|
+
log.info('');
|
|
509
|
+
log.step(`Skill upgrades available (${upgrades.length}):`);
|
|
510
|
+
for (const u of upgrades) {
|
|
511
|
+
log.info(` ${u.status === 'new' ? '[NEW]' : '[UPDATE]'} ${u.name}`);
|
|
512
|
+
}
|
|
513
|
+
if (options.apply) {
|
|
514
|
+
// Apply skill upgrades
|
|
515
|
+
mkdirSync(projectSkillsDir, { recursive: true });
|
|
516
|
+
for (const u of upgrades) {
|
|
517
|
+
const destDir = join(projectSkillsDir, u.name);
|
|
518
|
+
mkdirSync(destDir, { recursive: true });
|
|
519
|
+
writeFileSync(join(destDir, 'SKILL.md'), u.distContent);
|
|
520
|
+
log.success(`Upgraded skill: ${u.name}`);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
log.info(' Run with --apply to install these upgrades.');
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
500
528
|
// --- Apply or save ---
|
|
501
529
|
if (options.apply) {
|
|
502
530
|
if (!config.repo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/scan.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
1
|
export declare function scanCommand(): void;
|
|
2
|
+
/**
|
|
3
|
+
* Generate or update the instructions file at .alpha-loop/templates/instructions.md.
|
|
4
|
+
* If no existing file, generates from scratch. If existing, merges with fresh scan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateInstructions(projectDir: string, model: string): void;
|
package/dist/commands/scan.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
3
4
|
import { exec } from '../lib/shell.js';
|
|
4
5
|
import { log } from '../lib/logger.js';
|
|
5
6
|
import { assertSafeShellArg, loadConfig } from '../lib/config.js';
|
|
@@ -25,12 +26,66 @@ const SCAN_PROMPT = `Analyze this codebase and produce a concise project context
|
|
|
25
26
|
- Recent changes: (will be filled in by the loop)
|
|
26
27
|
|
|
27
28
|
Keep each section to 3-5 bullet points. Be specific to THIS codebase, not generic advice. Under 400 words total.`;
|
|
29
|
+
/**
|
|
30
|
+
* Prompt for generating the lean instructions file.
|
|
31
|
+
* Contains ONLY project context — procedural content (testing, git, security) lives in skills.
|
|
32
|
+
*/
|
|
33
|
+
const INSTRUCTIONS_PROMPT = `Analyze this codebase and produce a concise project instructions file for AI coding agents working in this repo.
|
|
34
|
+
|
|
35
|
+
Output ONLY this markdown structure with the marker comment on the first line:
|
|
36
|
+
|
|
37
|
+
<!-- managed by alpha-loop -->
|
|
38
|
+
# [Project Name]
|
|
39
|
+
|
|
40
|
+
## Overview
|
|
41
|
+
[2-3 sentences: what this project is, what it does, who it's for]
|
|
42
|
+
|
|
43
|
+
## Tech Stack
|
|
44
|
+
- Language: [e.g., TypeScript (strict mode, ESM)]
|
|
45
|
+
- Runtime: [e.g., Node.js 20+]
|
|
46
|
+
- Framework: [e.g., Express 5, React 19]
|
|
47
|
+
- Package manager: [e.g., pnpm]
|
|
48
|
+
- Key dependencies: [top 3-5 important dependencies]
|
|
49
|
+
|
|
50
|
+
## Directory Structure
|
|
51
|
+
[List key directories and what they contain — only the important ones, not every folder]
|
|
52
|
+
|
|
53
|
+
## Code Style
|
|
54
|
+
[Naming conventions, import ordering, formatting rules, architectural patterns — be specific to THIS codebase]
|
|
55
|
+
|
|
56
|
+
## Non-Negotiables
|
|
57
|
+
[Critical rules that must never be violated — security, data safety, patterns that break things if not followed]
|
|
58
|
+
|
|
59
|
+
IMPORTANT RULES:
|
|
60
|
+
- Do NOT include testing procedures, git workflow, code review checklists, or security scanning procedures — those belong in separate skills, not here.
|
|
61
|
+
- Do NOT include build/deploy commands — those are operational, not instructional.
|
|
62
|
+
- Keep it under 150 lines. Be specific to THIS codebase, not generic advice.
|
|
63
|
+
- The marker comment "<!-- managed by alpha-loop -->" MUST be the very first line.`;
|
|
64
|
+
/**
|
|
65
|
+
* Prompt for merging an existing instructions file with fresh scan results.
|
|
66
|
+
*/
|
|
67
|
+
const INSTRUCTIONS_MERGE_PROMPT = `You are updating a project instructions file for AI coding agents.
|
|
68
|
+
|
|
69
|
+
Below is the EXISTING instructions file and the CURRENT state of the codebase. Your job is to:
|
|
70
|
+
1. PRESERVE any user customizations and project-specific rules in the existing file
|
|
71
|
+
2. UPDATE sections that are stale or incorrect based on the current codebase
|
|
72
|
+
3. ADD any important new context discovered in the codebase
|
|
73
|
+
4. REMOVE information that is no longer accurate
|
|
74
|
+
|
|
75
|
+
The marker comment "<!-- managed by alpha-loop -->" MUST remain as the very first line.
|
|
76
|
+
|
|
77
|
+
IMPORTANT: Do NOT add testing procedures, git workflow, code review checklists, or security scanning — those belong in skills, not instructions. Keep the same 5-section structure (Overview, Tech Stack, Directory Structure, Code Style, Non-Negotiables). Keep it under 150 lines.
|
|
78
|
+
|
|
79
|
+
## EXISTING INSTRUCTIONS FILE:
|
|
80
|
+
|
|
81
|
+
`;
|
|
28
82
|
export function scanCommand() {
|
|
29
83
|
const projectDir = process.cwd();
|
|
30
84
|
const contextDir = path.join(projectDir, '.alpha-loop');
|
|
31
85
|
const contextFile = path.join(contextDir, 'context.md');
|
|
32
86
|
const config = loadConfig();
|
|
33
87
|
fs.mkdirSync(contextDir, { recursive: true });
|
|
88
|
+
// --- Generate project context ---
|
|
34
89
|
log.step('Scanning codebase for project context...');
|
|
35
90
|
const model = assertSafeShellArg(config.model ?? 'opus', 'model');
|
|
36
91
|
const result = exec(`echo ${JSON.stringify(SCAN_PROMPT)} | claude -p --model ${model} --dangerously-skip-permissions --output-format text 2>/dev/null`, { cwd: projectDir });
|
|
@@ -46,5 +101,79 @@ export function scanCommand() {
|
|
|
46
101
|
else {
|
|
47
102
|
log.error(`Project context generation failed: ${result.stderr || 'empty output'}`);
|
|
48
103
|
}
|
|
104
|
+
// --- Generate instructions file ---
|
|
105
|
+
generateInstructions(projectDir, model);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate or update the instructions file at .alpha-loop/templates/instructions.md.
|
|
109
|
+
* If no existing file, generates from scratch. If existing, merges with fresh scan.
|
|
110
|
+
*/
|
|
111
|
+
export function generateInstructions(projectDir, model) {
|
|
112
|
+
const templatesDir = path.join(projectDir, '.alpha-loop', 'templates');
|
|
113
|
+
fs.mkdirSync(templatesDir, { recursive: true });
|
|
114
|
+
const instructionsFile = path.join(templatesDir, 'instructions.md');
|
|
115
|
+
const existing = fs.existsSync(instructionsFile)
|
|
116
|
+
? fs.readFileSync(instructionsFile, 'utf-8')
|
|
117
|
+
: null;
|
|
118
|
+
if (existing) {
|
|
119
|
+
// Merge mode: preserve user customizations, update stale content
|
|
120
|
+
log.step('Updating instructions file...');
|
|
121
|
+
// Back up existing before merge
|
|
122
|
+
fs.writeFileSync(instructionsFile + '.bak', existing, 'utf-8');
|
|
123
|
+
const mergePrompt = INSTRUCTIONS_MERGE_PROMPT + existing +
|
|
124
|
+
'\n\n## OUTPUT:\nProduce the updated instructions file. Output ONLY the markdown content, nothing else.';
|
|
125
|
+
// Write prompt to temp file to avoid shell injection from file content
|
|
126
|
+
const safeModel = assertSafeShellArg(model, 'model');
|
|
127
|
+
const promptFile = path.join(tmpdir(), `alpha-loop-merge-${Date.now()}.txt`);
|
|
128
|
+
fs.writeFileSync(promptFile, mergePrompt, 'utf-8');
|
|
129
|
+
const mergeResult = exec(`claude -p --model ${safeModel} --dangerously-skip-permissions --output-format text < "${promptFile}" 2>/dev/null`, { cwd: projectDir });
|
|
130
|
+
try {
|
|
131
|
+
fs.unlinkSync(promptFile);
|
|
132
|
+
}
|
|
133
|
+
catch { /* cleanup best-effort */ }
|
|
134
|
+
if (mergeResult.exitCode === 0 && mergeResult.stdout.trim()) {
|
|
135
|
+
let output = mergeResult.stdout.trim();
|
|
136
|
+
// Ensure marker is present
|
|
137
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
138
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
139
|
+
}
|
|
140
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
141
|
+
log.success('Instructions file updated (backup at instructions.md.bak)');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
log.warn('Instructions merge failed, keeping existing file');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
// Fresh generation
|
|
149
|
+
log.step('Generating baseline instructions file...');
|
|
150
|
+
const safeModel = assertSafeShellArg(model, 'model');
|
|
151
|
+
const genPromptFile = path.join(tmpdir(), `alpha-loop-gen-${Date.now()}.txt`);
|
|
152
|
+
fs.writeFileSync(genPromptFile, INSTRUCTIONS_PROMPT, 'utf-8');
|
|
153
|
+
const genResult = exec(`claude -p --model ${safeModel} --dangerously-skip-permissions --output-format text < "${genPromptFile}" 2>/dev/null`, { cwd: projectDir });
|
|
154
|
+
try {
|
|
155
|
+
fs.unlinkSync(genPromptFile);
|
|
156
|
+
}
|
|
157
|
+
catch { /* cleanup best-effort */ }
|
|
158
|
+
if (genResult.exitCode === 0 && genResult.stdout.trim()) {
|
|
159
|
+
let output = genResult.stdout.trim();
|
|
160
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
161
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
162
|
+
}
|
|
163
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
164
|
+
log.success(`Instructions file generated: ${instructionsFile}`);
|
|
165
|
+
}
|
|
166
|
+
else if (genResult.stdout?.trim()) {
|
|
167
|
+
let output = genResult.stdout.trim();
|
|
168
|
+
if (!output.startsWith('<!-- managed by alpha-loop -->')) {
|
|
169
|
+
output = '<!-- managed by alpha-loop -->\n' + output;
|
|
170
|
+
}
|
|
171
|
+
fs.writeFileSync(instructionsFile, output + '\n');
|
|
172
|
+
log.warn('Claude exited with errors but produced instructions output');
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
log.warn('Instructions generation failed — will retry on next scan');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
49
178
|
}
|
|
50
179
|
//# sourceMappingURL=scan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;iHAqB6F,CAAC;AAElH,MAAM,UAAU,WAAW;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,CACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,KAAK,kEAAkE,EAClI,EAAE,GAAG,EAAE,UAAU,EAAE,CACpB,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export type HarnessConfig = {
|
|
2
2
|
skillsDir: string;
|
|
3
3
|
agentsDir?: string;
|
|
4
|
+
instructionsFile?: string;
|
|
4
5
|
};
|
|
5
6
|
export declare const HARNESS_REGISTRY: Record<string, HarnessConfig>;
|
|
7
|
+
/** Marker that identifies files managed by alpha-loop (safe to overwrite). */
|
|
8
|
+
export declare const MANAGED_MARKER = "<!-- managed by alpha-loop -->";
|
|
6
9
|
export type SyncResult = {
|
|
7
10
|
synced: boolean;
|
|
8
11
|
docSynced: boolean;
|
|
@@ -23,7 +26,6 @@ export declare function syncAgentAssets(harnesses: string[], options?: {
|
|
|
23
26
|
*
|
|
24
27
|
* Moves:
|
|
25
28
|
* skills/ → .alpha-loop/templates/skills/
|
|
26
|
-
* AGENTS.md → .alpha-loop/templates/instructions.md
|
|
27
29
|
* .claude/agents/ → .alpha-loop/templates/agents/
|
|
28
30
|
*
|
|
29
31
|
* Does NOT delete the originals — the next sync run will recreate them
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sync Command — keep skills
|
|
2
|
+
* Sync Command — keep skills, sub-agents, and instructions in sync across coding harnesses.
|
|
3
3
|
*
|
|
4
4
|
* Source of truth: .alpha-loop/templates/
|
|
5
5
|
* skills/ → each harness's skillsDir
|
|
6
6
|
* agents/ → each harness's agentsDir (if defined)
|
|
7
|
+
* instructions.md → each harness's instructionsFile (e.g., CLAUDE.md, AGENTS.md)
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* (.claude/agents/implementer.md, etc.), not in the project instructions file.
|
|
9
|
+
* Instructions files are only overwritten if they contain the "<!-- managed by alpha-loop -->"
|
|
10
|
+
* marker. Existing hand-written CLAUDE.md/AGENTS.md files are never touched.
|
|
11
11
|
*
|
|
12
12
|
* Harnesses to sync are read from the `harnesses` array supplied by the caller
|
|
13
13
|
* (typically loaded from .alpha-loop.yaml). Only harnesses that exist in the
|
|
@@ -17,46 +17,46 @@ import { existsSync, copyFileSync, mkdirSync, readdirSync, statSync, readFileSyn
|
|
|
17
17
|
import { join } from 'node:path';
|
|
18
18
|
import { log } from '../lib/logger.js';
|
|
19
19
|
export const HARNESS_REGISTRY = {
|
|
20
|
-
amp: { skillsDir: '.agents/skills' },
|
|
21
|
-
antigravity: { skillsDir: '.agents/skills' },
|
|
20
|
+
amp: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
21
|
+
antigravity: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
22
22
|
augment: { skillsDir: '.augment/skills' },
|
|
23
23
|
bob: { skillsDir: '.bob/skills' },
|
|
24
|
-
'claude-code': { skillsDir: '.claude/skills', agentsDir: '.claude/agents' },
|
|
24
|
+
'claude-code': { skillsDir: '.claude/skills', agentsDir: '.claude/agents', instructionsFile: 'CLAUDE.md' },
|
|
25
25
|
openclaw: { skillsDir: 'skills' },
|
|
26
|
-
cline: { skillsDir: '.agents/skills' },
|
|
27
|
-
warp: { skillsDir: '.agents/skills' },
|
|
26
|
+
cline: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
27
|
+
warp: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
28
28
|
codebuddy: { skillsDir: '.codebuddy/skills' },
|
|
29
|
-
codex: { skillsDir: '.agents/skills', agentsDir: '.codex/agents' },
|
|
29
|
+
codex: { skillsDir: '.agents/skills', agentsDir: '.codex/agents', instructionsFile: 'AGENTS.md' },
|
|
30
30
|
'command-code': { skillsDir: '.commandcode/skills' },
|
|
31
31
|
continue: { skillsDir: '.continue/skills' },
|
|
32
32
|
cortex: { skillsDir: '.cortex/skills' },
|
|
33
33
|
crush: { skillsDir: '.crush/skills' },
|
|
34
|
-
cursor: { skillsDir: '.agents/skills' },
|
|
35
|
-
deepagents: { skillsDir: '.agents/skills' },
|
|
34
|
+
cursor: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
35
|
+
deepagents: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
36
36
|
droid: { skillsDir: '.factory/skills' },
|
|
37
|
-
firebender: { skillsDir: '.agents/skills' },
|
|
38
|
-
'gemini-cli': { skillsDir: '.agents/skills' },
|
|
39
|
-
'github-copilot': { skillsDir: '.agents/skills' },
|
|
37
|
+
firebender: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
38
|
+
'gemini-cli': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
39
|
+
'github-copilot': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
40
40
|
goose: { skillsDir: '.goose/skills' },
|
|
41
41
|
junie: { skillsDir: '.junie/skills' },
|
|
42
42
|
'iflow-cli': { skillsDir: '.iflow/skills' },
|
|
43
43
|
kilo: { skillsDir: '.kilocode/skills' },
|
|
44
|
-
'kimi-cli': { skillsDir: '.agents/skills' },
|
|
44
|
+
'kimi-cli': { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
45
45
|
'kiro-cli': { skillsDir: '.kiro/skills' },
|
|
46
46
|
kode: { skillsDir: '.kode/skills' },
|
|
47
47
|
mcpjam: { skillsDir: '.mcpjam/skills' },
|
|
48
48
|
'mistral-vibe': { skillsDir: '.vibe/skills' },
|
|
49
49
|
mux: { skillsDir: '.mux/skills' },
|
|
50
|
-
opencode: { skillsDir: '.agents/skills' },
|
|
50
|
+
opencode: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
51
51
|
openhands: { skillsDir: '.openhands/skills' },
|
|
52
52
|
pi: { skillsDir: '.pi/skills' },
|
|
53
53
|
qoder: { skillsDir: '.qoder/skills' },
|
|
54
54
|
'qwen-code': { skillsDir: '.qwen/skills' },
|
|
55
|
-
replit: { skillsDir: '.agents/skills' },
|
|
55
|
+
replit: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
56
56
|
roo: { skillsDir: '.roo/skills' },
|
|
57
57
|
trae: { skillsDir: '.trae/skills' },
|
|
58
58
|
'trae-cn': { skillsDir: '.trae/skills' },
|
|
59
|
-
universal: { skillsDir: '.agents/skills' },
|
|
59
|
+
universal: { skillsDir: '.agents/skills', instructionsFile: 'AGENTS.md' },
|
|
60
60
|
windsurf: { skillsDir: '.windsurf/skills' },
|
|
61
61
|
zencoder: { skillsDir: '.zencoder/skills' },
|
|
62
62
|
neovate: { skillsDir: '.neovate/skills' },
|
|
@@ -69,6 +69,9 @@ export const HARNESS_REGISTRY = {
|
|
|
69
69
|
const TEMPLATES_DIR = '.alpha-loop/templates';
|
|
70
70
|
const TEMPLATE_SKILLS_SUBDIR = 'skills';
|
|
71
71
|
const TEMPLATE_AGENTS_SUBDIR = 'agents';
|
|
72
|
+
const TEMPLATE_INSTRUCTIONS_FILE = 'instructions.md';
|
|
73
|
+
/** Marker that identifies files managed by alpha-loop (safe to overwrite). */
|
|
74
|
+
export const MANAGED_MARKER = '<!-- managed by alpha-loop -->';
|
|
72
75
|
// Legacy root-level fallbacks
|
|
73
76
|
const LEGACY_SKILLS_DIR = 'skills';
|
|
74
77
|
const LEGACY_CLAUDE_AGENTS_DIR = '.claude/agents';
|
|
@@ -142,10 +145,12 @@ function resolveTemplateSources(projectDir) {
|
|
|
142
145
|
const templatesBase = join(projectDir, TEMPLATES_DIR);
|
|
143
146
|
const templateSkills = join(templatesBase, TEMPLATE_SKILLS_SUBDIR);
|
|
144
147
|
const templateAgents = join(templatesBase, TEMPLATE_AGENTS_SUBDIR);
|
|
148
|
+
const templateInstructions = join(templatesBase, TEMPLATE_INSTRUCTIONS_FILE);
|
|
145
149
|
if (existsSync(templatesBase)) {
|
|
146
150
|
return {
|
|
147
151
|
skillsDir: templateSkills,
|
|
148
152
|
agentsDir: templateAgents,
|
|
153
|
+
instructionsFile: templateInstructions,
|
|
149
154
|
isLegacy: false,
|
|
150
155
|
};
|
|
151
156
|
}
|
|
@@ -153,10 +158,11 @@ function resolveTemplateSources(projectDir) {
|
|
|
153
158
|
const legacySkills = join(projectDir, LEGACY_SKILLS_DIR);
|
|
154
159
|
if (existsSync(legacySkills)) {
|
|
155
160
|
log.warn(`Legacy layout detected (${LEGACY_SKILLS_DIR}/ at project root). ` +
|
|
156
|
-
`Run "alpha-loop
|
|
161
|
+
`Run "alpha-loop init" to migrate to ${TEMPLATES_DIR}/.`);
|
|
157
162
|
return {
|
|
158
163
|
skillsDir: legacySkills,
|
|
159
164
|
agentsDir: join(projectDir, LEGACY_CLAUDE_AGENTS_DIR),
|
|
165
|
+
instructionsFile: '', // No instructions in legacy layout
|
|
160
166
|
isLegacy: true,
|
|
161
167
|
};
|
|
162
168
|
}
|
|
@@ -213,6 +219,32 @@ export function syncAgentAssets(harnesses, options = {}) {
|
|
|
213
219
|
result.synced = true;
|
|
214
220
|
}
|
|
215
221
|
}
|
|
222
|
+
// -- Instructions file --
|
|
223
|
+
if (config.instructionsFile && sources.instructionsFile && existsSync(sources.instructionsFile)) {
|
|
224
|
+
const targetFile = join(projectDir, config.instructionsFile);
|
|
225
|
+
if (!filesMatch(sources.instructionsFile, targetFile)) {
|
|
226
|
+
// Safety: only overwrite if the target doesn't exist or contains the managed marker
|
|
227
|
+
const targetExists = existsSync(targetFile);
|
|
228
|
+
const targetManaged = targetExists &&
|
|
229
|
+
readFileSync(targetFile, 'utf-8').startsWith(MANAGED_MARKER);
|
|
230
|
+
if (!targetExists || targetManaged) {
|
|
231
|
+
if (check) {
|
|
232
|
+
log.warn(`Drift [${harness}]: ${config.instructionsFile} differs from template instructions.md`);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
mkdirSync(join(targetFile, '..'), { recursive: true });
|
|
236
|
+
copyFileSync(sources.instructionsFile, targetFile);
|
|
237
|
+
log.info(`Synced [${harness}] instructions.md → ${config.instructionsFile}`);
|
|
238
|
+
}
|
|
239
|
+
result.docSynced = true;
|
|
240
|
+
result.synced = true;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
log.warn(`Skipping ${config.instructionsFile} — file exists without alpha-loop marker. ` +
|
|
244
|
+
`Run "alpha-loop scan" to generate a managed instructions file.`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
216
248
|
}
|
|
217
249
|
return result;
|
|
218
250
|
}
|
|
@@ -221,7 +253,6 @@ export function syncAgentAssets(harnesses, options = {}) {
|
|
|
221
253
|
*
|
|
222
254
|
* Moves:
|
|
223
255
|
* skills/ → .alpha-loop/templates/skills/
|
|
224
|
-
* AGENTS.md → .alpha-loop/templates/instructions.md
|
|
225
256
|
* .claude/agents/ → .alpha-loop/templates/agents/
|
|
226
257
|
*
|
|
227
258
|
* Does NOT delete the originals — the next sync run will recreate them
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAY,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAYvC,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,GAAG,EAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,WAAW,EAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,OAAO,EAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE;IAChD,GAAG,EAAa,EAAE,SAAS,EAAE,aAAa,EAAE;IAC5C,aAAa,EAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC3G,QAAQ,EAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;IACvC,KAAK,EAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,IAAI,EAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,SAAS,EAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE;IAClD,KAAK,EAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC1G,cAAc,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE;IACpD,QAAQ,EAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE;IACjD,MAAM,EAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAC/C,KAAK,EAAW,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,MAAM,EAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,UAAU,EAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,KAAK,EAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE;IAChD,UAAU,EAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,YAAY,EAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,gBAAgB,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAChF,KAAK,EAAW,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,KAAK,EAAW,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,WAAW,EAAK,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,IAAI,EAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE;IACjD,UAAU,EAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,UAAU,EAAM,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,IAAI,EAAY,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,MAAM,EAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAC/C,cAAc,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,GAAG,EAAa,EAAE,SAAS,EAAE,aAAa,EAAE;IAC5C,QAAQ,EAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,SAAS,EAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE;IAClD,EAAE,EAAc,EAAE,SAAS,EAAE,YAAY,EAAE;IAC3C,KAAK,EAAW,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,WAAW,EAAK,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,MAAM,EAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,GAAG,EAAa,EAAE,SAAS,EAAE,aAAa,EAAE;IAC5C,IAAI,EAAY,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,SAAS,EAAO,EAAE,SAAS,EAAE,cAAc,EAAE;IAC7C,SAAS,EAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE;IAC9E,QAAQ,EAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE;IACjD,QAAQ,EAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE;IACjD,OAAO,EAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE;IAChD,KAAK,EAAW,EAAE,SAAS,EAAE,eAAe,EAAE;IAC9C,IAAI,EAAY,EAAE,SAAS,EAAE,cAAc,EAAE;CAC9C,CAAC;AAEF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AACxC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AACxC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAErD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,gCAAgC,CAAC;AAE/D,8BAA8B;AAC9B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAElD,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E;;GAEG;AACH,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IACxC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7C,+CAA+C;IAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY;IAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAExD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAaD,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACnE,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IAE7E,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,cAAc;YACzB,gBAAgB,EAAE,oBAAoB;YACtC,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CACN,2BAA2B,iBAAiB,sBAAsB;YAClE,uCAAuC,aAAa,IAAI,CACzD,CAAC;QACF,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC;YACrD,gBAAgB,EAAE,EAAE,EAAE,mCAAmC;YACzD,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAYD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAmB,EACnB,UAAoD,EAAE;IAEtD,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAC9D,MAAM,MAAM,GAAe,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAE/E,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,qCAAqC,aAAa,+CAA+C,CAAC,CAAC;QAC5G,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,oBAAoB,OAAO,wCAAwC,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,mBAAmB;QACnB,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,MAAM,MAAM,CAAC,SAAS,gCAAgC,CAAC,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACzC,GAAG,CAAC,IAAI,CAAC,WAAW,OAAO,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,MAAM,MAAM,CAAC,SAAS,gCAAgC,CAAC,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACzC,GAAG,CAAC,IAAI,CAAC,WAAW,OAAO,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChG,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;gBACtD,oFAAoF;gBACpF,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC5C,MAAM,aAAa,GAAG,YAAY;oBAChC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE/D,IAAI,CAAC,YAAY,IAAI,aAAa,EAAE,CAAC;oBACnC,IAAI,KAAK,EAAE,CAAC;wBACV,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,MAAM,MAAM,CAAC,gBAAgB,wCAAwC,CAAC,CAAC;oBACnG,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACvD,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;wBACnD,GAAG,CAAC,IAAI,CAAC,WAAW,OAAO,uBAAuB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAC/E,CAAC;oBACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;oBACxB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CACN,YAAY,MAAM,CAAC,gBAAgB,4CAA4C;wBAC/E,gEAAgE,CACjE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IAEH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE;IACnE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACtD,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAwD;QACjE;YACE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;YACjD,KAAK,EAAE,GAAG,iBAAiB,OAAO,aAAa,UAAU;SAC1D;QACD;YACE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;YACjD,KAAK,EAAE,GAAG,wBAAwB,OAAO,aAAa,UAAU;SACjE;KACF,CAAC;IAEF,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;YACrE,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QAC/B,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CACN,kEAAkE,aAAa,gCAAgC,CAChH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,UAAqD,EAAE;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAE1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACjF,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,kCAAkC,aAAa,4CAA4C,CAC5F,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAEhF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Find the distribution templates directory shipped with the alpha-loop npm package.
|
|
3
|
+
* Walks up from the CLI entrypoint, following symlinks for global installs.
|
|
4
|
+
*/
|
|
5
|
+
export declare function findDistributionTemplatesDir(): string | null;
|
|
6
|
+
export type SkillDiff = {
|
|
7
|
+
name: string;
|
|
8
|
+
status: 'new' | 'updated';
|
|
9
|
+
distContent: string;
|
|
10
|
+
projectContent?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Compare project skills against distribution templates.
|
|
14
|
+
* Returns skills that are new or have changed content.
|
|
15
|
+
*/
|
|
16
|
+
export declare function diffSkills(distSkillsDir: string, projectSkillsDir: string): SkillDiff[];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Templates — shared utilities for locating distribution templates
|
|
3
|
+
* and comparing project skills against them.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readdirSync, readFileSync, realpathSync } from 'node:fs';
|
|
6
|
+
import { join, dirname } from 'node:path';
|
|
7
|
+
/**
|
|
8
|
+
* Find the distribution templates directory shipped with the alpha-loop npm package.
|
|
9
|
+
* Walks up from the CLI entrypoint, following symlinks for global installs.
|
|
10
|
+
*/
|
|
11
|
+
export function findDistributionTemplatesDir() {
|
|
12
|
+
let startDir;
|
|
13
|
+
try {
|
|
14
|
+
startDir = dirname(realpathSync(process.argv[1]));
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
startDir = process.cwd();
|
|
18
|
+
}
|
|
19
|
+
let dir = startDir;
|
|
20
|
+
for (let i = 0; i < 5; i++) {
|
|
21
|
+
const candidate = join(dir, 'templates');
|
|
22
|
+
if (existsSync(candidate))
|
|
23
|
+
return candidate;
|
|
24
|
+
const parent = dirname(dir);
|
|
25
|
+
if (parent === dir)
|
|
26
|
+
break;
|
|
27
|
+
dir = parent;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Compare project skills against distribution templates.
|
|
33
|
+
* Returns skills that are new or have changed content.
|
|
34
|
+
*/
|
|
35
|
+
export function diffSkills(distSkillsDir, projectSkillsDir) {
|
|
36
|
+
if (!existsSync(distSkillsDir))
|
|
37
|
+
return [];
|
|
38
|
+
const diffs = [];
|
|
39
|
+
const distSkills = readdirSync(distSkillsDir, { withFileTypes: true })
|
|
40
|
+
.filter((d) => d.isDirectory());
|
|
41
|
+
for (const entry of distSkills) {
|
|
42
|
+
const distSkillFile = join(distSkillsDir, entry.name, 'SKILL.md');
|
|
43
|
+
if (!existsSync(distSkillFile))
|
|
44
|
+
continue;
|
|
45
|
+
const distContent = readFileSync(distSkillFile, 'utf-8');
|
|
46
|
+
const projectSkillFile = join(projectSkillsDir, entry.name, 'SKILL.md');
|
|
47
|
+
if (!existsSync(projectSkillFile)) {
|
|
48
|
+
diffs.push({ name: entry.name, status: 'new', distContent });
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const projectContent = readFileSync(projectSkillFile, 'utf-8');
|
|
52
|
+
if (projectContent !== distContent) {
|
|
53
|
+
diffs.push({ name: entry.name, status: 'updated', distContent, projectContent });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return diffs;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB,EAAE,gBAAwB;IACxE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACnE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,SAAS;QAEzC,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|