vralphy 0.0.5 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/commands/init.d.ts +6 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +67 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/context.d.ts +29 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +175 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/init.d.ts +21 -4
- package/dist/lib/init.d.ts.map +1 -1
- package/dist/lib/init.js +117 -7
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/prompts.d.ts +4 -0
- package/dist/lib/prompts.d.ts.map +1 -1
- package/dist/lib/prompts.js +38 -0
- package/dist/lib/prompts.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,10 +39,12 @@ npx vralphy init
|
|
|
39
39
|
|
|
40
40
|
This creates:
|
|
41
41
|
- `specs/` - Feature specifications directory
|
|
42
|
-
- `AGENTS.md` -
|
|
42
|
+
- `AGENTS.md` - **AI-generated** operational guide (build/test commands)
|
|
43
43
|
- `.vralphy/prompts/` - Prompt templates (plan.md, build.md, spec.md)
|
|
44
44
|
- `IMPLEMENTATION_PLAN.md` - Task tracking
|
|
45
45
|
|
|
46
|
+
**AI-Powered Init:** When an AI engine (claude/opencode/codex) is available, `vralphy init` uses AI to analyze your project and generate a smart, project-specific AGENTS.md. Falls back to template-based generation if no engine is found.
|
|
47
|
+
|
|
46
48
|
2. **Create specifications:**
|
|
47
49
|
```bash
|
|
48
50
|
vralphy spec authentication
|
|
@@ -72,7 +74,17 @@ npx vralphy init
|
|
|
72
74
|
vralphy build [iterations] # Build mode (default: unlimited)
|
|
73
75
|
vralphy plan [iterations] # Plan mode
|
|
74
76
|
vralphy spec [topic] # Interactive spec creation
|
|
75
|
-
vralphy init # Initialize project
|
|
77
|
+
vralphy init # Initialize project (AI-powered)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Init Command Options
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
vralphy init # AI-powered init (default)
|
|
84
|
+
vralphy init --no-ai # Skip AI, use template fallback
|
|
85
|
+
vralphy init --approve # Review AGENTS.md before saving
|
|
86
|
+
vralphy init --engine codex # Use specific engine for AI generation
|
|
87
|
+
vralphy init --from /path/to/dir # Initialize from different directory
|
|
76
88
|
```
|
|
77
89
|
|
|
78
90
|
### Utility Commands
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export interface
|
|
1
|
+
export interface InitCommandOptions {
|
|
2
2
|
from?: string;
|
|
3
|
+
noAi?: boolean;
|
|
4
|
+
approve?: boolean;
|
|
5
|
+
engine?: string;
|
|
6
|
+
verbose?: boolean;
|
|
3
7
|
}
|
|
4
8
|
/**
|
|
5
9
|
* Execute init command
|
|
6
10
|
*/
|
|
7
|
-
export declare function initCommand(options:
|
|
11
|
+
export declare function initCommand(options: InitCommandOptions): Promise<void>;
|
|
8
12
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D5E"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,23 +1,63 @@
|
|
|
1
|
+
import { createInterface } from 'readline';
|
|
1
2
|
import { initProject } from '../lib/init.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prompt user for confirmation
|
|
5
|
+
*/
|
|
6
|
+
async function confirm(message) {
|
|
7
|
+
const rl = createInterface({
|
|
8
|
+
input: process.stdin,
|
|
9
|
+
output: process.stdout,
|
|
10
|
+
});
|
|
11
|
+
return new Promise((resolve) => {
|
|
12
|
+
rl.question(`${message} [y/N] `, (answer) => {
|
|
13
|
+
rl.close();
|
|
14
|
+
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
2
18
|
/**
|
|
3
19
|
* Execute init command
|
|
4
20
|
*/
|
|
5
21
|
export async function initCommand(options) {
|
|
6
22
|
const dir = options.from ?? process.cwd();
|
|
7
23
|
console.log(`Initializing vralphy in: ${dir}`);
|
|
24
|
+
// Build init options
|
|
25
|
+
const initOptions = {
|
|
26
|
+
noAi: options.noAi,
|
|
27
|
+
approve: options.approve,
|
|
28
|
+
verbose: options.verbose,
|
|
29
|
+
};
|
|
30
|
+
// Validate engine if specified
|
|
31
|
+
if (options.engine) {
|
|
32
|
+
const validEngines = ['claude', 'opencode', 'codex'];
|
|
33
|
+
if (!validEngines.includes(options.engine)) {
|
|
34
|
+
console.error(`Invalid engine: ${options.engine}. Valid options: ${validEngines.join(', ')}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
initOptions.engine = options.engine;
|
|
38
|
+
}
|
|
8
39
|
try {
|
|
9
|
-
|
|
10
|
-
if (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
40
|
+
// If --approve flag is set, we need to handle the approval flow
|
|
41
|
+
if (options.approve && !options.noAi) {
|
|
42
|
+
// First run with approve mode - AI generates but we need to confirm
|
|
43
|
+
const result = await initProject(dir, { ...initOptions, approve: true });
|
|
44
|
+
if (result.agentsMdContent) {
|
|
45
|
+
console.log('\n--- Generated AGENTS.md Preview ---\n');
|
|
46
|
+
console.log(result.agentsMdContent);
|
|
47
|
+
console.log('\n--- End Preview ---\n');
|
|
48
|
+
const approved = await confirm('Save this AGENTS.md?');
|
|
49
|
+
if (!approved) {
|
|
50
|
+
console.log('Initialization cancelled.');
|
|
51
|
+
process.exit(0);
|
|
52
|
+
}
|
|
14
53
|
}
|
|
54
|
+
// Report results
|
|
55
|
+
reportResults(result.created, result.skipped);
|
|
15
56
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
57
|
+
else {
|
|
58
|
+
// Normal flow (no approval needed)
|
|
59
|
+
const { created, skipped } = await initProject(dir, initOptions);
|
|
60
|
+
reportResults(created, skipped);
|
|
21
61
|
}
|
|
22
62
|
console.log('\nInitialization complete!');
|
|
23
63
|
console.log('\nNext steps:');
|
|
@@ -31,4 +71,21 @@ export async function initCommand(options) {
|
|
|
31
71
|
process.exit(1);
|
|
32
72
|
}
|
|
33
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Report created and skipped files
|
|
76
|
+
*/
|
|
77
|
+
function reportResults(created, skipped) {
|
|
78
|
+
if (created.length > 0) {
|
|
79
|
+
console.log('\nCreated:');
|
|
80
|
+
for (const file of created) {
|
|
81
|
+
console.log(` + ${file}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (skipped.length > 0) {
|
|
85
|
+
console.log('\nSkipped (already exist):');
|
|
86
|
+
for (const file of skipped) {
|
|
87
|
+
console.log(` - ${file}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
34
91
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { dirname, join } from 'path';
|
|
3
6
|
import { resolveConfig } from './lib/config.js';
|
|
4
7
|
import { buildCommand } from './commands/build.js';
|
|
5
8
|
import { planCommand } from './commands/plan.js';
|
|
@@ -9,11 +12,14 @@ import { detectEngines } from './lib/engines/index.js';
|
|
|
9
12
|
import { listSkills } from './lib/skills.js';
|
|
10
13
|
import { listAgents } from './lib/agents.js';
|
|
11
14
|
import { getSkillsDir, getAgentsDir } from './lib/config.js';
|
|
15
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
+
const __dirname = dirname(__filename);
|
|
17
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8'));
|
|
12
18
|
const program = new Command();
|
|
13
19
|
program
|
|
14
20
|
.name('vralphy')
|
|
15
21
|
.description('CLI tool implementing the Ralph Playbook methodology')
|
|
16
|
-
.version(
|
|
22
|
+
.version(packageJson.version);
|
|
17
23
|
program
|
|
18
24
|
.option('--engine <engine>', 'Engine selection (claude|opencode|codex)', 'claude')
|
|
19
25
|
.option('--model <model>', 'Primary model (default: opus)', 'opus')
|
|
@@ -51,8 +57,14 @@ program
|
|
|
51
57
|
.command('init')
|
|
52
58
|
.description('Initialize project for vralphy')
|
|
53
59
|
.option('--from <path>', 'Initialize from existing project')
|
|
60
|
+
.option('--no-ai', 'Skip AI generation, use template fallback')
|
|
61
|
+
.option('--approve', 'Review AGENTS.md before saving')
|
|
62
|
+
.option('--engine <engine>', 'Specify engine for AI generation (claude|opencode|codex)')
|
|
54
63
|
.action(async (cmdOpts) => {
|
|
55
|
-
|
|
64
|
+
const globalOpts = program.opts();
|
|
65
|
+
// Commander parses --no-ai as ai: false, so we convert to noAi: true
|
|
66
|
+
const noAi = cmdOpts.ai === false;
|
|
67
|
+
await initCommand({ ...cmdOpts, noAi, verbose: globalOpts.verbose });
|
|
56
68
|
});
|
|
57
69
|
program
|
|
58
70
|
.command('engines')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface ProjectContext {
|
|
2
|
+
buildSystem: 'node' | 'rust' | 'go' | 'python' | 'unknown';
|
|
3
|
+
packageJson?: {
|
|
4
|
+
name: string;
|
|
5
|
+
scripts: Record<string, string>;
|
|
6
|
+
};
|
|
7
|
+
cargoToml?: {
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
goMod?: {
|
|
11
|
+
module: string;
|
|
12
|
+
};
|
|
13
|
+
existingDocs: {
|
|
14
|
+
claudeMd?: string;
|
|
15
|
+
agentsMd?: string;
|
|
16
|
+
cursorRules?: string;
|
|
17
|
+
readme?: string;
|
|
18
|
+
};
|
|
19
|
+
srcStructure?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Gather project context for AI-powered init
|
|
23
|
+
*/
|
|
24
|
+
export declare function gatherProjectContext(dir: string): Promise<ProjectContext>;
|
|
25
|
+
/**
|
|
26
|
+
* Format project context for the AI prompt
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatContextForPrompt(ctx: ProjectContext): string;
|
|
29
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3D,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;IACF,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyCD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA6E/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CA2DlE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { existsSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
/**
|
|
6
|
+
* Read file content with optional truncation
|
|
7
|
+
*/
|
|
8
|
+
async function readFileTruncated(path, maxChars) {
|
|
9
|
+
if (!existsSync(path))
|
|
10
|
+
return undefined;
|
|
11
|
+
try {
|
|
12
|
+
const content = await readFile(path, 'utf-8');
|
|
13
|
+
return content.slice(0, maxChars);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get directory listing, limited to maxLines
|
|
21
|
+
*/
|
|
22
|
+
async function getDirStructure(dir, maxLines) {
|
|
23
|
+
if (!existsSync(dir))
|
|
24
|
+
return undefined;
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
const child = spawn('ls', ['-la', '--color=never'], { cwd: dir });
|
|
27
|
+
let output = '';
|
|
28
|
+
child.stdout.on('data', (data) => {
|
|
29
|
+
output += data.toString();
|
|
30
|
+
});
|
|
31
|
+
child.on('close', () => {
|
|
32
|
+
const lines = output.split('\n').slice(0, maxLines);
|
|
33
|
+
resolve(lines.join('\n'));
|
|
34
|
+
});
|
|
35
|
+
child.on('error', () => {
|
|
36
|
+
resolve(undefined);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Gather project context for AI-powered init
|
|
42
|
+
*/
|
|
43
|
+
export async function gatherProjectContext(dir) {
|
|
44
|
+
const context = {
|
|
45
|
+
buildSystem: 'unknown',
|
|
46
|
+
existingDocs: {},
|
|
47
|
+
};
|
|
48
|
+
// Detect build system and read package files
|
|
49
|
+
const packageJsonPath = join(dir, 'package.json');
|
|
50
|
+
const cargoTomlPath = join(dir, 'Cargo.toml');
|
|
51
|
+
const goModPath = join(dir, 'go.mod');
|
|
52
|
+
const pyprojectPath = join(dir, 'pyproject.toml');
|
|
53
|
+
const requirementsPath = join(dir, 'requirements.txt');
|
|
54
|
+
if (existsSync(packageJsonPath)) {
|
|
55
|
+
context.buildSystem = 'node';
|
|
56
|
+
try {
|
|
57
|
+
const content = await readFile(packageJsonPath, 'utf-8');
|
|
58
|
+
const pkg = JSON.parse(content);
|
|
59
|
+
context.packageJson = {
|
|
60
|
+
name: pkg.name ?? 'unknown',
|
|
61
|
+
scripts: pkg.scripts ?? {},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore parse errors
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (existsSync(cargoTomlPath)) {
|
|
69
|
+
context.buildSystem = 'rust';
|
|
70
|
+
try {
|
|
71
|
+
const content = await readFile(cargoTomlPath, 'utf-8');
|
|
72
|
+
const nameMatch = content.match(/name\s*=\s*"([^"]+)"/);
|
|
73
|
+
if (nameMatch) {
|
|
74
|
+
context.cargoToml = { name: nameMatch[1] };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Ignore parse errors
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (existsSync(goModPath)) {
|
|
82
|
+
context.buildSystem = 'go';
|
|
83
|
+
try {
|
|
84
|
+
const content = await readFile(goModPath, 'utf-8');
|
|
85
|
+
const moduleMatch = content.match(/module\s+(\S+)/);
|
|
86
|
+
if (moduleMatch) {
|
|
87
|
+
context.goMod = { module: moduleMatch[1] };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Ignore parse errors
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (existsSync(pyprojectPath) || existsSync(requirementsPath)) {
|
|
95
|
+
context.buildSystem = 'python';
|
|
96
|
+
}
|
|
97
|
+
// Read existing documentation files in parallel
|
|
98
|
+
const [claudeMd, agentsMd, cursorRules, readme] = await Promise.all([
|
|
99
|
+
readFileTruncated(join(dir, 'CLAUDE.md'), 2000) ??
|
|
100
|
+
readFileTruncated(join(dir, 'claude.md'), 2000),
|
|
101
|
+
readFileTruncated(join(dir, 'AGENTS.md'), 2000) ??
|
|
102
|
+
readFileTruncated(join(dir, 'agents.md'), 2000),
|
|
103
|
+
readFileTruncated(join(dir, '.cursorrules'), 2000) ??
|
|
104
|
+
readFileTruncated(join(dir, '.cursor/rules'), 2000),
|
|
105
|
+
readFileTruncated(join(dir, 'README.md'), 1500) ??
|
|
106
|
+
readFileTruncated(join(dir, 'readme.md'), 1500),
|
|
107
|
+
]);
|
|
108
|
+
context.existingDocs = {
|
|
109
|
+
claudeMd,
|
|
110
|
+
agentsMd,
|
|
111
|
+
cursorRules,
|
|
112
|
+
readme,
|
|
113
|
+
};
|
|
114
|
+
// Get src structure if exists
|
|
115
|
+
const srcDir = join(dir, 'src');
|
|
116
|
+
if (existsSync(srcDir)) {
|
|
117
|
+
context.srcStructure = await getDirStructure(srcDir, 50);
|
|
118
|
+
}
|
|
119
|
+
return context;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Format project context for the AI prompt
|
|
123
|
+
*/
|
|
124
|
+
export function formatContextForPrompt(ctx) {
|
|
125
|
+
const sections = [];
|
|
126
|
+
// Build system
|
|
127
|
+
sections.push(`### Build System: ${ctx.buildSystem}`);
|
|
128
|
+
// Package info
|
|
129
|
+
if (ctx.packageJson) {
|
|
130
|
+
sections.push(`\n### package.json`);
|
|
131
|
+
sections.push(`Name: ${ctx.packageJson.name}`);
|
|
132
|
+
if (Object.keys(ctx.packageJson.scripts).length > 0) {
|
|
133
|
+
sections.push('Scripts:');
|
|
134
|
+
for (const [name, cmd] of Object.entries(ctx.packageJson.scripts)) {
|
|
135
|
+
sections.push(` - ${name}: ${cmd}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (ctx.cargoToml) {
|
|
140
|
+
sections.push(`\n### Cargo.toml`);
|
|
141
|
+
sections.push(`Name: ${ctx.cargoToml.name}`);
|
|
142
|
+
}
|
|
143
|
+
if (ctx.goMod) {
|
|
144
|
+
sections.push(`\n### go.mod`);
|
|
145
|
+
sections.push(`Module: ${ctx.goMod.module}`);
|
|
146
|
+
}
|
|
147
|
+
// Existing docs
|
|
148
|
+
if (ctx.existingDocs.claudeMd) {
|
|
149
|
+
sections.push('\n### Existing CLAUDE.md (first 2000 chars)');
|
|
150
|
+
sections.push('```');
|
|
151
|
+
sections.push(ctx.existingDocs.claudeMd);
|
|
152
|
+
sections.push('```');
|
|
153
|
+
}
|
|
154
|
+
if (ctx.existingDocs.cursorRules) {
|
|
155
|
+
sections.push('\n### Existing .cursorrules (first 2000 chars)');
|
|
156
|
+
sections.push('```');
|
|
157
|
+
sections.push(ctx.existingDocs.cursorRules);
|
|
158
|
+
sections.push('```');
|
|
159
|
+
}
|
|
160
|
+
if (ctx.existingDocs.readme) {
|
|
161
|
+
sections.push('\n### README.md (first 1500 chars)');
|
|
162
|
+
sections.push('```');
|
|
163
|
+
sections.push(ctx.existingDocs.readme);
|
|
164
|
+
sections.push('```');
|
|
165
|
+
}
|
|
166
|
+
// Source structure
|
|
167
|
+
if (ctx.srcStructure) {
|
|
168
|
+
sections.push('\n### src/ directory structure');
|
|
169
|
+
sections.push('```');
|
|
170
|
+
sections.push(ctx.srcStructure);
|
|
171
|
+
sections.push('```');
|
|
172
|
+
}
|
|
173
|
+
return sections.join('\n');
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/init.d.ts
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
import { EngineName } from './engines/index.js';
|
|
2
|
+
export interface InitOptions {
|
|
3
|
+
noAi?: boolean;
|
|
4
|
+
approve?: boolean;
|
|
5
|
+
engine?: EngineName;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface InitResult {
|
|
9
|
+
created: string[];
|
|
10
|
+
skipped: string[];
|
|
11
|
+
agentsMdContent?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Template-based init (fallback when no AI available)
|
|
15
|
+
*/
|
|
16
|
+
export declare function templateBasedInit(dir: string): Promise<InitResult>;
|
|
17
|
+
/**
|
|
18
|
+
* AI-powered init using the specified engine
|
|
19
|
+
*/
|
|
20
|
+
export declare function aiPoweredInit(dir: string, engineName: EngineName, options: InitOptions): Promise<InitResult>;
|
|
1
21
|
/**
|
|
2
22
|
* Initialize a project for vralphy
|
|
3
23
|
*/
|
|
4
|
-
export declare function initProject(dir?: string): Promise<
|
|
5
|
-
created: string[];
|
|
6
|
-
skipped: string[];
|
|
7
|
-
}>;
|
|
24
|
+
export declare function initProject(dir?: string, options?: InitOptions): Promise<InitResult>;
|
|
8
25
|
//# sourceMappingURL=init.d.ts.map
|
package/dist/lib/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAE1F,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAsJD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BxE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA+ErB;AA6ED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,GAAE,MAAsB,EAC3B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
|
package/dist/lib/init.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { readFile, writeFile, mkdir } from 'fs/promises';
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { DEFAULT_PLAN_PROMPT, DEFAULT_BUILD_PROMPT, DEFAULT_SPEC_PROMPT } from './prompts.js';
|
|
4
|
+
import { DEFAULT_PLAN_PROMPT, DEFAULT_BUILD_PROMPT, DEFAULT_SPEC_PROMPT, DEFAULT_INIT_PROMPT } from './prompts.js';
|
|
5
|
+
import { gatherProjectContext, formatContextForPrompt } from './context.js';
|
|
6
|
+
import { detectEngines, getEngine } from './engines/index.js';
|
|
5
7
|
/**
|
|
6
8
|
* Detect project info from package.json
|
|
7
9
|
*/
|
|
@@ -87,9 +89,9 @@ async function extractFromDocs(dir) {
|
|
|
87
89
|
return patterns.slice(0, 10);
|
|
88
90
|
}
|
|
89
91
|
/**
|
|
90
|
-
* Generate lightweight AGENTS.md (max ~60 lines)
|
|
92
|
+
* Generate lightweight AGENTS.md (max ~60 lines) using template
|
|
91
93
|
*/
|
|
92
|
-
function
|
|
94
|
+
function generateAgentsMdTemplate(info) {
|
|
93
95
|
const lines = [];
|
|
94
96
|
lines.push('## Build & Run');
|
|
95
97
|
lines.push('');
|
|
@@ -126,9 +128,9 @@ function generateAgentsMd(info) {
|
|
|
126
128
|
return lines.join('\n');
|
|
127
129
|
}
|
|
128
130
|
/**
|
|
129
|
-
*
|
|
131
|
+
* Template-based init (fallback when no AI available)
|
|
130
132
|
*/
|
|
131
|
-
export async function
|
|
133
|
+
export async function templateBasedInit(dir) {
|
|
132
134
|
const created = [];
|
|
133
135
|
const skipped = [];
|
|
134
136
|
const info = {
|
|
@@ -141,6 +143,96 @@ export async function initProject(dir = process.cwd()) {
|
|
|
141
143
|
]);
|
|
142
144
|
Object.assign(info, pkgInfo, cargoInfo, goInfo);
|
|
143
145
|
info.patterns = await extractFromDocs(dir);
|
|
146
|
+
// Create scaffold and return the generated content
|
|
147
|
+
const agentsMdContent = generateAgentsMdTemplate(info);
|
|
148
|
+
const scaffoldResult = await createScaffold(dir, agentsMdContent);
|
|
149
|
+
return {
|
|
150
|
+
created: scaffoldResult.created,
|
|
151
|
+
skipped: scaffoldResult.skipped,
|
|
152
|
+
agentsMdContent,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* AI-powered init using the specified engine
|
|
157
|
+
*/
|
|
158
|
+
export async function aiPoweredInit(dir, engineName, options) {
|
|
159
|
+
const engine = getEngine(engineName);
|
|
160
|
+
// Gather project context
|
|
161
|
+
const context = await gatherProjectContext(dir);
|
|
162
|
+
const formattedContext = formatContextForPrompt(context);
|
|
163
|
+
// Build the prompt
|
|
164
|
+
const prompt = DEFAULT_INIT_PROMPT.replace('${projectContext}', formattedContext);
|
|
165
|
+
if (options.verbose) {
|
|
166
|
+
console.log('\n--- AI Init Prompt ---');
|
|
167
|
+
console.log(prompt);
|
|
168
|
+
console.log('--- End Prompt ---\n');
|
|
169
|
+
}
|
|
170
|
+
// Execute AI engine
|
|
171
|
+
const executeOptions = {
|
|
172
|
+
model: 'sonnet', // Use sonnet for init - fast and cost-effective
|
|
173
|
+
executor: 'sonnet',
|
|
174
|
+
headless: true,
|
|
175
|
+
skipPermissions: true,
|
|
176
|
+
outputFormat: 'text',
|
|
177
|
+
verbose: options.verbose ?? false,
|
|
178
|
+
};
|
|
179
|
+
let agentsMdContent = '';
|
|
180
|
+
console.log(`\nGenerating AGENTS.md with ${engineName}...`);
|
|
181
|
+
try {
|
|
182
|
+
for await (const chunk of engine.execute(prompt, executeOptions)) {
|
|
183
|
+
if (chunk.type === 'text' && chunk.content) {
|
|
184
|
+
agentsMdContent += chunk.content;
|
|
185
|
+
if (!options.approve) {
|
|
186
|
+
process.stdout.write(chunk.content);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else if (chunk.type === 'error') {
|
|
190
|
+
throw new Error(chunk.error);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
console.error('\nAI generation failed, falling back to template...');
|
|
196
|
+
if (options.verbose && error instanceof Error) {
|
|
197
|
+
console.error('Error:', error.message);
|
|
198
|
+
}
|
|
199
|
+
return templateBasedInit(dir);
|
|
200
|
+
}
|
|
201
|
+
// Clean up the content (remove any markdown code fences if present)
|
|
202
|
+
agentsMdContent = agentsMdContent.trim();
|
|
203
|
+
if (agentsMdContent.startsWith('```markdown')) {
|
|
204
|
+
agentsMdContent = agentsMdContent.slice('```markdown'.length);
|
|
205
|
+
}
|
|
206
|
+
else if (agentsMdContent.startsWith('```md')) {
|
|
207
|
+
agentsMdContent = agentsMdContent.slice('```md'.length);
|
|
208
|
+
}
|
|
209
|
+
else if (agentsMdContent.startsWith('```')) {
|
|
210
|
+
agentsMdContent = agentsMdContent.slice(3);
|
|
211
|
+
}
|
|
212
|
+
if (agentsMdContent.endsWith('```')) {
|
|
213
|
+
agentsMdContent = agentsMdContent.slice(0, -3);
|
|
214
|
+
}
|
|
215
|
+
agentsMdContent = agentsMdContent.trim();
|
|
216
|
+
// Validate line count
|
|
217
|
+
const lineCount = agentsMdContent.split('\n').length;
|
|
218
|
+
if (lineCount > 80) {
|
|
219
|
+
console.warn(`\nWarning: Generated AGENTS.md is ${lineCount} lines (target: 60). Consider trimming.`);
|
|
220
|
+
}
|
|
221
|
+
console.log('\n');
|
|
222
|
+
// Create scaffold with AI-generated content
|
|
223
|
+
const scaffoldResult = await createScaffold(dir, agentsMdContent);
|
|
224
|
+
return {
|
|
225
|
+
created: scaffoldResult.created,
|
|
226
|
+
skipped: scaffoldResult.skipped,
|
|
227
|
+
agentsMdContent,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Create project scaffold (directories, files)
|
|
232
|
+
*/
|
|
233
|
+
async function createScaffold(dir, agentsMdContent) {
|
|
234
|
+
const created = [];
|
|
235
|
+
const skipped = [];
|
|
144
236
|
// Create specs/ directory
|
|
145
237
|
const specsDir = join(dir, 'specs');
|
|
146
238
|
if (!existsSync(specsDir)) {
|
|
@@ -150,10 +242,10 @@ export async function initProject(dir = process.cwd()) {
|
|
|
150
242
|
else {
|
|
151
243
|
skipped.push('specs/');
|
|
152
244
|
}
|
|
153
|
-
// Create AGENTS.md in project root
|
|
245
|
+
// Create AGENTS.md in project root
|
|
154
246
|
const agentsMd = join(dir, 'AGENTS.md');
|
|
155
247
|
if (!existsSync(agentsMd)) {
|
|
156
|
-
await writeFile(agentsMd,
|
|
248
|
+
await writeFile(agentsMd, agentsMdContent);
|
|
157
249
|
created.push('AGENTS.md');
|
|
158
250
|
}
|
|
159
251
|
else {
|
|
@@ -205,4 +297,22 @@ export async function initProject(dir = process.cwd()) {
|
|
|
205
297
|
}
|
|
206
298
|
return { created, skipped };
|
|
207
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Initialize a project for vralphy
|
|
302
|
+
*/
|
|
303
|
+
export async function initProject(dir = process.cwd(), options = {}) {
|
|
304
|
+
// Check for available engines if AI mode is enabled
|
|
305
|
+
if (!options.noAi) {
|
|
306
|
+
const availableEngines = await detectEngines();
|
|
307
|
+
if (availableEngines.length > 0) {
|
|
308
|
+
// Use specified engine or first available
|
|
309
|
+
const engineToUse = options.engine && availableEngines.includes(options.engine)
|
|
310
|
+
? options.engine
|
|
311
|
+
: availableEngines[0];
|
|
312
|
+
return aiPoweredInit(dir, engineToUse, options);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Fall back to template-based init
|
|
316
|
+
return templateBasedInit(dir);
|
|
317
|
+
}
|
|
208
318
|
//# sourceMappingURL=init.js.map
|
package/dist/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/prompts.d.ts
CHANGED
|
@@ -34,6 +34,10 @@ export declare const DEFAULT_PLAN_PROMPT = "0a. Study `specs/*` with up to 250 p
|
|
|
34
34
|
* Default build mode prompt
|
|
35
35
|
*/
|
|
36
36
|
export declare const DEFAULT_BUILD_PROMPT = "0a. Study `specs/*` with up to 500 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md.\n0c. For reference, the application source code is in `src/*`.\n\n1. Your task is to implement functionality per the specifications using parallel subagents. Follow @IMPLEMENTATION_PLAN.md and choose the most important item to address. Before making changes, search the codebase (don't assume not implemented) using ${executor} subagents. You may use up to 500 parallel ${executor} subagents for searches/reads and only 1 ${executor} subagent for build/tests. Use ${model} subagents when complex reasoning is needed (debugging, architectural decisions).\n\n2. After implementing functionality or resolving problems, run the tests for that unit of code that was improved. If functionality is missing then it's your job to add it as per the application specifications. Ultrathink.\n\n3. When you discover issues, immediately update @IMPLEMENTATION_PLAN.md with your findings using a subagent. When resolved, update and remove the item.\n\n4. When the tests pass, update @IMPLEMENTATION_PLAN.md, then `git add -A` then `git commit` with a message describing the changes. After the commit, `git push`.\n\n99999. When authoring documentation, capture the why \u2014 tests and implementation importance.\n999999. Single sources of truth, no migrations/adapters. If tests unrelated to your work fail, resolve them as part of the increment.\n9999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1.\n99999999. You may add extra logging if required to debug issues.\n999999999. Keep @IMPLEMENTATION_PLAN.md current with learnings using a subagent \u2014 future work depends on this.\n9999999999. When you learn something new about how to run the application, update @AGENTS.md using a subagent but keep it brief.\n99999999999. For any bugs you notice, resolve them or document them in @IMPLEMENTATION_PLAN.md even if unrelated to current work.\n999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.\n9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.\n99999999999999. IMPORTANT: Keep @AGENTS.md operational only \u2014 status updates belong in `IMPLEMENTATION_PLAN.md`. A bloated AGENTS.md pollutes every future loop's context.\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
|
|
37
|
+
/**
|
|
38
|
+
* Default init mode prompt for AI-powered AGENTS.md generation
|
|
39
|
+
*/
|
|
40
|
+
export declare const DEFAULT_INIT_PROMPT = "You are initializing a project for AI-assisted development. Generate a lightweight AGENTS.md file.\n\n## Project Context\n${projectContext}\n\n## Requirements\n- Maximum 60 lines total\n- OPERATIONAL ONLY: build, run, test, lint, typecheck commands\n- Include project-specific patterns discovered from existing docs\n- Focus on commands that actually exist in the project\n- NO: changelogs, TODOs, verbose explanations, generic advice\n\n## Output Sections\n\nGenerate ONLY these sections (skip if no relevant commands):\n\n## Build & Run\n- Build: `command`\n- Dev: `command`\n\n## Validation\n- Tests: `command`\n- Typecheck: `command`\n- Lint: `command`\n\n## Tech Stack\n- Brief list of main technologies\n\n## Codebase Patterns\n- Bullet points of project-specific conventions (extracted from existing docs)\n\n## IMPORTANT\nIf critical information is missing (like how to run tests), ask UP TO 3 clarifying questions first.\nOutput ONLY the AGENTS.md content, no preamble or explanation.\n";
|
|
37
41
|
/**
|
|
38
42
|
* Default spec mode prompt
|
|
39
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiBzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAmCD;;GAEG;AACH,eAAO,MAAM,mBAAmB,u0EAQR,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB,++GAsBT,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,mBAAmB,y2DA4CR,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiBzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAmCD;;GAEG;AACH,eAAO,MAAM,mBAAmB,u0EAQR,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB,++GAsBT,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,mBAAmB,w+BAkC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,y2DA4CR,CAAC"}
|
package/dist/lib/prompts.js
CHANGED
|
@@ -129,6 +129,44 @@ export const DEFAULT_BUILD_PROMPT = `0a. Study \`specs/*\` with up to 500 parall
|
|
|
129
129
|
9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.
|
|
130
130
|
99999999999999. IMPORTANT: Keep @AGENTS.md operational only — status updates belong in \`IMPLEMENTATION_PLAN.md\`. A bloated AGENTS.md pollutes every future loop's context.
|
|
131
131
|
${LAZY_LOADING_SECTION}`;
|
|
132
|
+
/**
|
|
133
|
+
* Default init mode prompt for AI-powered AGENTS.md generation
|
|
134
|
+
*/
|
|
135
|
+
export const DEFAULT_INIT_PROMPT = `You are initializing a project for AI-assisted development. Generate a lightweight AGENTS.md file.
|
|
136
|
+
|
|
137
|
+
## Project Context
|
|
138
|
+
\${projectContext}
|
|
139
|
+
|
|
140
|
+
## Requirements
|
|
141
|
+
- Maximum 60 lines total
|
|
142
|
+
- OPERATIONAL ONLY: build, run, test, lint, typecheck commands
|
|
143
|
+
- Include project-specific patterns discovered from existing docs
|
|
144
|
+
- Focus on commands that actually exist in the project
|
|
145
|
+
- NO: changelogs, TODOs, verbose explanations, generic advice
|
|
146
|
+
|
|
147
|
+
## Output Sections
|
|
148
|
+
|
|
149
|
+
Generate ONLY these sections (skip if no relevant commands):
|
|
150
|
+
|
|
151
|
+
## Build & Run
|
|
152
|
+
- Build: \`command\`
|
|
153
|
+
- Dev: \`command\`
|
|
154
|
+
|
|
155
|
+
## Validation
|
|
156
|
+
- Tests: \`command\`
|
|
157
|
+
- Typecheck: \`command\`
|
|
158
|
+
- Lint: \`command\`
|
|
159
|
+
|
|
160
|
+
## Tech Stack
|
|
161
|
+
- Brief list of main technologies
|
|
162
|
+
|
|
163
|
+
## Codebase Patterns
|
|
164
|
+
- Bullet points of project-specific conventions (extracted from existing docs)
|
|
165
|
+
|
|
166
|
+
## IMPORTANT
|
|
167
|
+
If critical information is missing (like how to run tests), ask UP TO 3 clarifying questions first.
|
|
168
|
+
Output ONLY the AGENTS.md content, no preamble or explanation.
|
|
169
|
+
`;
|
|
132
170
|
/**
|
|
133
171
|
* Default spec mode prompt
|
|
134
172
|
*/
|
package/dist/lib/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
|