@meraki-digital/agent-init 1.0.1 → 1.0.2
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 +2 -2
- package/package.json +1 -1
- package/src/cli.js +14 -14
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ The tool will:
|
|
|
31
31
|
4. Create the agent infrastructure:
|
|
32
32
|
- `AGENTS.md` (symlinked from meraki-standards)
|
|
33
33
|
- `PROJECT.md` (project-specific, you fill this in)
|
|
34
|
-
- `.
|
|
34
|
+
- `.agents/skills/` or `.claude/skills/` (symlinked)
|
|
35
35
|
- `agentic/prd/` structure (optional)
|
|
36
36
|
|
|
37
37
|
## Options
|
|
@@ -65,7 +65,7 @@ On Windows, symlinks require Developer Mode enabled. The tool will detect this a
|
|
|
65
65
|
your-project/
|
|
66
66
|
AGENTS.md # Symlink → ../meraki-standards/AGENTS.md
|
|
67
67
|
PROJECT.md # Project-specific (edit this!)
|
|
68
|
-
.
|
|
68
|
+
.agents/skills/ # Symlink → ../meraki-standards/skills/
|
|
69
69
|
agentic/
|
|
70
70
|
prd/
|
|
71
71
|
proposed/{name}/ # PRDs in development
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -36,7 +36,7 @@ async function ask(rl, question) {
|
|
|
36
36
|
function canSymlink() {
|
|
37
37
|
const testTarget = join(process.env.TMPDIR || '/tmp', `agent-init-target-${process.pid}`);
|
|
38
38
|
const testLink = join(process.env.TMPDIR || '/tmp', `agent-init-link-${process.pid}`);
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
try {
|
|
41
41
|
writeFileSync(testTarget, '');
|
|
42
42
|
symlinkSync(testTarget, testLink);
|
|
@@ -84,8 +84,8 @@ async function runUpdate() {
|
|
|
84
84
|
// Pull latest
|
|
85
85
|
console.log('Updating meraki-standards...');
|
|
86
86
|
try {
|
|
87
|
-
const result = execSync('git pull', {
|
|
88
|
-
cwd: STANDARDS_DIR,
|
|
87
|
+
const result = execSync('git pull', {
|
|
88
|
+
cwd: STANDARDS_DIR,
|
|
89
89
|
encoding: 'utf-8',
|
|
90
90
|
stdio: ['pipe', 'pipe', 'pipe']
|
|
91
91
|
});
|
|
@@ -108,9 +108,9 @@ async function runUpdate() {
|
|
|
108
108
|
{ path: 'instructions', target: `${STANDARDS_DIR}/instructions` },
|
|
109
109
|
];
|
|
110
110
|
|
|
111
|
-
// Detect skills folder (extra ../ because it's inside .
|
|
112
|
-
if (existsSync('.
|
|
113
|
-
expectedLinks.push({ path: '.
|
|
111
|
+
// Detect skills folder (extra ../ because it's inside .agents/ or .claude/)
|
|
112
|
+
if (existsSync('.agents/skills')) {
|
|
113
|
+
expectedLinks.push({ path: '.agents/skills', target: `../${STANDARDS_DIR}/skills` });
|
|
114
114
|
} else if (existsSync('.claude/skills')) {
|
|
115
115
|
expectedLinks.push({ path: '.claude/skills', target: `../${STANDARDS_DIR}/skills` });
|
|
116
116
|
}
|
|
@@ -261,13 +261,13 @@ async function main() {
|
|
|
261
261
|
|
|
262
262
|
// Check for meraki-standards
|
|
263
263
|
console.log('Checking for meraki-standards repo...');
|
|
264
|
-
|
|
264
|
+
|
|
265
265
|
if (!existsSync(STANDARDS_DIR)) {
|
|
266
266
|
console.log(` ${colors.yellow('!')} Not found at ${STANDARDS_DIR}/`);
|
|
267
|
-
|
|
267
|
+
|
|
268
268
|
const rl = createPrompt();
|
|
269
269
|
const answer = await ask(rl, '\nClone meraki-standards now? [Y/n]: ');
|
|
270
|
-
|
|
270
|
+
|
|
271
271
|
if (answer.toLowerCase() === 'n') {
|
|
272
272
|
console.log('\nmeraki-standards is required. Clone it manually:');
|
|
273
273
|
console.log(` cd ${dirname(process.cwd())}`);
|
|
@@ -276,9 +276,9 @@ async function main() {
|
|
|
276
276
|
rl.close();
|
|
277
277
|
process.exit(1);
|
|
278
278
|
}
|
|
279
|
-
|
|
279
|
+
|
|
280
280
|
rl.close();
|
|
281
|
-
|
|
281
|
+
|
|
282
282
|
if (!cloneStandards(STANDARDS_DIR)) {
|
|
283
283
|
process.exit(1);
|
|
284
284
|
}
|
|
@@ -309,10 +309,10 @@ async function main() {
|
|
|
309
309
|
// Interview
|
|
310
310
|
console.log('');
|
|
311
311
|
console.log('Skills folder');
|
|
312
|
-
console.log(' 1) .
|
|
312
|
+
console.log(' 1) .agents/skills (default)');
|
|
313
313
|
console.log(' 2) .claude/skills');
|
|
314
314
|
const skillsChoice = await ask(rl, 'Choice [1]: ');
|
|
315
|
-
const skillsFolder = skillsChoice === '2' ? '.claude/skills' : '.
|
|
315
|
+
const skillsFolder = skillsChoice === '2' ? '.claude/skills' : '.agents/skills';
|
|
316
316
|
|
|
317
317
|
console.log('');
|
|
318
318
|
const projectInput = await ask(rl, 'Project name for initial PRD folder [initial]: ');
|
|
@@ -338,7 +338,7 @@ async function main() {
|
|
|
338
338
|
if (skillsParent !== '.') {
|
|
339
339
|
mkdirSync(skillsParent, { recursive: true });
|
|
340
340
|
}
|
|
341
|
-
// Extra ../ because we're inside .
|
|
341
|
+
// Extra ../ because we're inside .agents/ or .claude/
|
|
342
342
|
linkOrCopy(`../${STANDARDS_DIR}/skills`, skillsFolder, `${skillsFolder}/`, useCopy);
|
|
343
343
|
|
|
344
344
|
// Instructions folder
|