@thynameisjayvee/alpha-cli 0.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/LICENSE +21 -0
- package/README.md +143 -0
- package/bin/alpha.js +15 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +125 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/alpha.d.ts +64 -0
- package/dist/core/alpha.d.ts.map +1 -0
- package/dist/core/alpha.js +94 -0
- package/dist/core/alpha.js.map +1 -0
- package/dist/core/generator/index.d.ts +16 -0
- package/dist/core/generator/index.d.ts.map +1 -0
- package/dist/core/generator/index.js +231 -0
- package/dist/core/generator/index.js.map +1 -0
- package/dist/core/implementation/index.d.ts +22 -0
- package/dist/core/implementation/index.d.ts.map +1 -0
- package/dist/core/implementation/index.js +398 -0
- package/dist/core/implementation/index.js.map +1 -0
- package/dist/core/init/catalog.d.ts +23 -0
- package/dist/core/init/catalog.d.ts.map +1 -0
- package/dist/core/init/catalog.js +87 -0
- package/dist/core/init/catalog.js.map +1 -0
- package/dist/core/init/index.d.ts +10 -0
- package/dist/core/init/index.d.ts.map +1 -0
- package/dist/core/init/index.js +214 -0
- package/dist/core/init/index.js.map +1 -0
- package/dist/core/requirements/index.d.ts +10 -0
- package/dist/core/requirements/index.d.ts.map +1 -0
- package/dist/core/requirements/index.js +232 -0
- package/dist/core/requirements/index.js.map +1 -0
- package/dist/core/reviewer/index.d.ts +29 -0
- package/dist/core/reviewer/index.d.ts.map +1 -0
- package/dist/core/reviewer/index.js +419 -0
- package/dist/core/reviewer/index.js.map +1 -0
- package/dist/core/stack/index.d.ts +10 -0
- package/dist/core/stack/index.d.ts.map +1 -0
- package/dist/core/stack/index.js +243 -0
- package/dist/core/stack/index.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +128 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/config.d.ts +105 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +99 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/file-system.d.ts +17 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +48 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/input.d.ts +18 -0
- package/dist/utils/input.d.ts.map +1 -0
- package/dist/utils/input.js +50 -0
- package/dist/utils/input.js.map +1 -0
- package/dist/utils/logger.d.ts +37 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +109 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +26 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +51 -0
- package/dist/utils/paths.js.map +1 -0
- package/package.json +79 -0
- package/scripts/postinstall.js +110 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/implementation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the alpha command surface.
|
|
3
|
+
*
|
|
4
|
+
* Every agent ecosystem (universal AGENTS.md/SKILL.md, Claude, Cursor) is
|
|
5
|
+
* rendered from this catalog so the documented behaviour never drifts.
|
|
6
|
+
*/
|
|
7
|
+
export interface CommandSpec {
|
|
8
|
+
/** Command name, e.g. "gather". */
|
|
9
|
+
name: string;
|
|
10
|
+
/** One-line summary. */
|
|
11
|
+
summary: string;
|
|
12
|
+
/** When the agent should reach for this command. */
|
|
13
|
+
when: string;
|
|
14
|
+
/** Example invocations (without the leading `alpha`). */
|
|
15
|
+
usage: string[];
|
|
16
|
+
/** What the command produces / where artifacts land. */
|
|
17
|
+
emits: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const ALPHA_TAGLINE = "Alpha is an assistive harness, not an agent. It never edits your code and never spawns agents. The calling LLM is the brain; Alpha scaffolds artifacts, validates input, persists everything under .alpha/, and runs deterministic analysis.";
|
|
20
|
+
export declare const ALPHA_CONVENTIONS: string[];
|
|
21
|
+
export declare const ARTIFACT_LAYOUT: string[];
|
|
22
|
+
export declare const COMMANDS: CommandSpec[];
|
|
23
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/init/catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,iPACsN,CAAC;AAEjP,eAAO,MAAM,iBAAiB,UAM7B,CAAC;AAEF,eAAO,MAAM,eAAe,UAM3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,EAoEjC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the alpha command surface.
|
|
3
|
+
*
|
|
4
|
+
* Every agent ecosystem (universal AGENTS.md/SKILL.md, Claude, Cursor) is
|
|
5
|
+
* rendered from this catalog so the documented behaviour never drifts.
|
|
6
|
+
*/
|
|
7
|
+
export const ALPHA_TAGLINE = 'Alpha is an assistive harness, not an agent. It never edits your code and never spawns agents. The calling LLM is the brain; Alpha scaffolds artifacts, validates input, persists everything under .alpha/, and runs deterministic analysis.';
|
|
8
|
+
export const ALPHA_CONVENTIONS = [
|
|
9
|
+
'Commands are non-interactive by default and write machine output to stdout (human logs go to stderr).',
|
|
10
|
+
'Add --json to any command for a `{ ok, command, data }` envelope.',
|
|
11
|
+
'Steps that need judgement either EMIT a template/questionnaire for you to fill, or INGEST your content via --input <file> (use --input - to read stdin).',
|
|
12
|
+
'Add --interactive to drive a command through human prompts instead.',
|
|
13
|
+
'You apply code changes yourself; `alpha implement` only emits the plan.',
|
|
14
|
+
];
|
|
15
|
+
export const ARTIFACT_LAYOUT = [
|
|
16
|
+
'.alpha/config.json — configuration',
|
|
17
|
+
'.alpha/project-context.json — requirements (from `gather`)',
|
|
18
|
+
'.alpha/tech-stack.json — selected stack (from `stack`)',
|
|
19
|
+
'.alpha/specs/ — generated specifications',
|
|
20
|
+
'.alpha/reports/ — review reports (consumed by `implement`)',
|
|
21
|
+
];
|
|
22
|
+
export const COMMANDS = [
|
|
23
|
+
{
|
|
24
|
+
name: 'init',
|
|
25
|
+
summary: 'Scaffold .alpha/ and (re)generate the agent skill files.',
|
|
26
|
+
when: 'Run once per project, or after upgrading Alpha.',
|
|
27
|
+
usage: ['init', 'init --agents universal,claude,cursor', 'init --force'],
|
|
28
|
+
emits: 'Creates .alpha/, AGENTS.md/SKILL.md, and agent command files.',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'gather',
|
|
32
|
+
summary: 'Capture project requirements.',
|
|
33
|
+
when: 'At the start of a project, or when intent/scope is unclear.',
|
|
34
|
+
usage: [
|
|
35
|
+
'gather',
|
|
36
|
+
'gather --input answers.json',
|
|
37
|
+
'gather --interactive',
|
|
38
|
+
],
|
|
39
|
+
emits: 'Default prints a questionnaire; --input writes .alpha/project-context.json.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'stack',
|
|
43
|
+
summary: 'Decide the tech stack.',
|
|
44
|
+
when: 'After requirements are captured and before building.',
|
|
45
|
+
usage: ['stack', 'stack --input stack.json', 'stack --interactive'],
|
|
46
|
+
emits: 'Default prints reference stacks; --input writes .alpha/tech-stack.json.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'spec',
|
|
50
|
+
summary: 'Author a feature/bugfix specification.',
|
|
51
|
+
when: 'Before implementing a unit of work.',
|
|
52
|
+
usage: [
|
|
53
|
+
'spec',
|
|
54
|
+
'spec --title "User Auth"',
|
|
55
|
+
'spec --input spec.json',
|
|
56
|
+
'spec --interactive',
|
|
57
|
+
],
|
|
58
|
+
emits: 'Default prints an authoring template; --title writes a skeleton; --input persists a finished spec under .alpha/specs/.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'review',
|
|
62
|
+
summary: 'Run deterministic static analysis and write a report.',
|
|
63
|
+
when: 'To find quality/correctness issues before implementing fixes.',
|
|
64
|
+
usage: ['review', 'review --target src/', 'review --json'],
|
|
65
|
+
emits: 'Writes a findings report to .alpha/reports/.',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'implement',
|
|
69
|
+
summary: 'Emit a structured fix plan from the latest review report.',
|
|
70
|
+
when: 'After `review`, to get per-finding prompts you then execute.',
|
|
71
|
+
usage: [
|
|
72
|
+
'implement',
|
|
73
|
+
'implement --severity critical,high',
|
|
74
|
+
'implement --findings finding-0,finding-2',
|
|
75
|
+
'implement --verify',
|
|
76
|
+
],
|
|
77
|
+
emits: 'Prints an implementation plan. Alpha does not edit code — you apply the changes.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'workflow',
|
|
81
|
+
summary: 'Run gather → stack → spec → review → implement in sequence.',
|
|
82
|
+
when: 'For an end-to-end pass.',
|
|
83
|
+
usage: ['workflow', 'workflow --interactive'],
|
|
84
|
+
emits: 'Chains the commands above.',
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/init/catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,CAAC,MAAM,aAAa,GACxB,8OAA8O,CAAC;AAEjP,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,uGAAuG;IACvG,mEAAmE;IACnE,0JAA0J;IAC1J,qEAAqE;IACrE,yEAAyE;CAC1E,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oCAAoC;IACpC,4DAA4D;IAC5D,wDAAwD;IACxD,0CAA0C;IAC1C,4DAA4D;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,0DAA0D;QACnE,IAAI,EAAE,iDAAiD;QACvD,KAAK,EAAE,CAAC,MAAM,EAAE,uCAAuC,EAAE,cAAc,CAAC;QACxE,KAAK,EAAE,+DAA+D;KACvE;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,6DAA6D;QACnE,KAAK,EAAE;YACL,QAAQ;YACR,6BAA6B;YAC7B,sBAAsB;SACvB;QACD,KAAK,EACH,6EAA6E;KAChF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,wBAAwB;QACjC,IAAI,EAAE,sDAAsD;QAC5D,KAAK,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,CAAC;QACnE,KAAK,EACH,yEAAyE;KAC5E;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wCAAwC;QACjD,IAAI,EAAE,qCAAqC;QAC3C,KAAK,EAAE;YACL,MAAM;YACN,0BAA0B;YAC1B,wBAAwB;YACxB,oBAAoB;SACrB;QACD,KAAK,EACH,wHAAwH;KAC3H;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uDAAuD;QAChE,IAAI,EAAE,+DAA+D;QACrE,KAAK,EAAE,CAAC,QAAQ,EAAE,sBAAsB,EAAE,eAAe,CAAC;QAC1D,KAAK,EAAE,8CAA8C;KACtD;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2DAA2D;QACpE,IAAI,EAAE,8DAA8D;QACpE,KAAK,EAAE;YACL,WAAW;YACX,oCAAoC;YACpC,0CAA0C;YAC1C,oBAAoB;SACrB;QACD,KAAK,EACH,kFAAkF;KACrF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,6DAA6D;QACtE,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,CAAC,UAAU,EAAE,wBAAwB,CAAC;QAC7C,KAAK,EAAE,4BAA4B;KACpC;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export type AgentTarget = 'universal' | 'claude' | 'cursor';
|
|
3
|
+
export interface InitOptions {
|
|
4
|
+
/** Comma-separated targets, e.g. "universal,claude,cursor". */
|
|
5
|
+
agents?: string;
|
|
6
|
+
/** Overwrite existing generated files. */
|
|
7
|
+
force?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function runInit(options?: InitOptions): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/init/index.ts"],"names":[],"mappings":";AAgBA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8LD,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFtE"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { existsSync } from 'fs';
|
|
4
|
+
import { logger, emit } from '../../utils/logger.js';
|
|
5
|
+
import { writeFile, fileExists, ensureDir, readFile } from '../../utils/file-system.js';
|
|
6
|
+
import { getProjectRoot, getAlphaDir } from '../../utils/paths.js';
|
|
7
|
+
import { initializeConfig } from '../../utils/config.js';
|
|
8
|
+
import { COMMANDS, ALPHA_TAGLINE, ALPHA_CONVENTIONS, ARTIFACT_LAYOUT, } from './catalog.js';
|
|
9
|
+
function commandList() {
|
|
10
|
+
return COMMANDS.map((c) => `- \`alpha ${c.name}\` — ${c.summary} ${c.when}`).join('\n');
|
|
11
|
+
}
|
|
12
|
+
function commandDetails() {
|
|
13
|
+
return COMMANDS.map((c) => {
|
|
14
|
+
const usage = c.usage.map((u) => ` alpha ${u}`).join('\n');
|
|
15
|
+
return [
|
|
16
|
+
`### \`alpha ${c.name}\``,
|
|
17
|
+
``,
|
|
18
|
+
c.summary,
|
|
19
|
+
``,
|
|
20
|
+
`When: ${c.when}`,
|
|
21
|
+
``,
|
|
22
|
+
`Output: ${c.emits}`,
|
|
23
|
+
``,
|
|
24
|
+
'Usage:',
|
|
25
|
+
'```bash',
|
|
26
|
+
usage,
|
|
27
|
+
'```',
|
|
28
|
+
].join('\n');
|
|
29
|
+
}).join('\n\n');
|
|
30
|
+
}
|
|
31
|
+
function renderAgentsMd() {
|
|
32
|
+
return [
|
|
33
|
+
`# Alpha`,
|
|
34
|
+
``,
|
|
35
|
+
ALPHA_TAGLINE,
|
|
36
|
+
``,
|
|
37
|
+
`## How to call Alpha`,
|
|
38
|
+
``,
|
|
39
|
+
'Use `alpha <command>` (also `pnpm alpha <command>` or `npx alpha <command>`).',
|
|
40
|
+
``,
|
|
41
|
+
`## Conventions`,
|
|
42
|
+
``,
|
|
43
|
+
ALPHA_CONVENTIONS.map((c) => `- ${c}`).join('\n'),
|
|
44
|
+
``,
|
|
45
|
+
`## Commands`,
|
|
46
|
+
``,
|
|
47
|
+
commandList(),
|
|
48
|
+
``,
|
|
49
|
+
commandDetails(),
|
|
50
|
+
``,
|
|
51
|
+
`## Artifacts`,
|
|
52
|
+
``,
|
|
53
|
+
ARTIFACT_LAYOUT.map((a) => `- \`${a.split(' — ')[0]}\` — ${a.split(' — ')[1] ?? ''}`.trim()).join('\n'),
|
|
54
|
+
``,
|
|
55
|
+
].join('\n');
|
|
56
|
+
}
|
|
57
|
+
function renderSkillMd() {
|
|
58
|
+
return [
|
|
59
|
+
`---`,
|
|
60
|
+
`name: alpha`,
|
|
61
|
+
`description: Use the Alpha CLI harness to capture requirements, choose a stack, author specs, run deterministic code review, and produce fix plans. Alpha never edits code or spawns agents — invoke its commands and act on their output yourself.`,
|
|
62
|
+
`---`,
|
|
63
|
+
``,
|
|
64
|
+
`# Alpha skill`,
|
|
65
|
+
``,
|
|
66
|
+
ALPHA_TAGLINE,
|
|
67
|
+
``,
|
|
68
|
+
`When the user asks to gather requirements, pick a tech stack, write a`,
|
|
69
|
+
`specification, review code, or plan fixes, drive the relevant \`alpha\``,
|
|
70
|
+
`command and use its emitted output.`,
|
|
71
|
+
``,
|
|
72
|
+
`## Commands`,
|
|
73
|
+
``,
|
|
74
|
+
commandList(),
|
|
75
|
+
``,
|
|
76
|
+
`See \`AGENTS.md\` for full usage and conventions.`,
|
|
77
|
+
``,
|
|
78
|
+
].join('\n');
|
|
79
|
+
}
|
|
80
|
+
function renderSlashCommand(cmd) {
|
|
81
|
+
return [
|
|
82
|
+
`---`,
|
|
83
|
+
`description: ${cmd.summary}`,
|
|
84
|
+
`---`,
|
|
85
|
+
``,
|
|
86
|
+
`Run the Alpha \`${cmd.name}\` command and act on its output. ${ALPHA_TAGLINE}`,
|
|
87
|
+
``,
|
|
88
|
+
`When: ${cmd.when}`,
|
|
89
|
+
``,
|
|
90
|
+
`Output: ${cmd.emits}`,
|
|
91
|
+
``,
|
|
92
|
+
'Usage:',
|
|
93
|
+
'```bash',
|
|
94
|
+
cmd.usage.map((u) => `alpha ${u}`).join('\n'),
|
|
95
|
+
'```',
|
|
96
|
+
``,
|
|
97
|
+
`Remember: Alpha does not edit code. Read the emitted plan/templates and`,
|
|
98
|
+
`make any changes yourself.`,
|
|
99
|
+
``,
|
|
100
|
+
].join('\n');
|
|
101
|
+
}
|
|
102
|
+
function resolveTargets(options, root) {
|
|
103
|
+
if (options.agents) {
|
|
104
|
+
const requested = options.agents
|
|
105
|
+
.split(',')
|
|
106
|
+
.map((s) => s.trim().toLowerCase())
|
|
107
|
+
.filter(Boolean);
|
|
108
|
+
const valid = ['universal', 'claude', 'cursor'];
|
|
109
|
+
return requested.filter((t) => valid.includes(t));
|
|
110
|
+
}
|
|
111
|
+
// Auto-detect: universal is always emitted.
|
|
112
|
+
const targets = ['universal'];
|
|
113
|
+
if (existsSync(path.join(root, '.claude')) || existsSync(path.join(root, 'CLAUDE.md'))) {
|
|
114
|
+
targets.push('claude');
|
|
115
|
+
}
|
|
116
|
+
if (existsSync(path.join(root, '.cursor'))) {
|
|
117
|
+
targets.push('cursor');
|
|
118
|
+
}
|
|
119
|
+
return targets;
|
|
120
|
+
}
|
|
121
|
+
async function writeIfAllowed(filePath, content, force, written, skipped) {
|
|
122
|
+
if (!force && (await fileExists(filePath))) {
|
|
123
|
+
skipped.push(filePath);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
await writeFile(filePath, content);
|
|
127
|
+
written.push(filePath);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Append (or replace) an Alpha section in an existing file like CLAUDE.md
|
|
131
|
+
* without clobbering the rest of the user's content.
|
|
132
|
+
*/
|
|
133
|
+
async function upsertSection(filePath, section, force, written, skipped) {
|
|
134
|
+
const begin = '<!-- BEGIN ALPHA -->';
|
|
135
|
+
const end = '<!-- END ALPHA -->';
|
|
136
|
+
const block = `${begin}\n${section}\n${end}`;
|
|
137
|
+
let existing = '';
|
|
138
|
+
if (await fileExists(filePath)) {
|
|
139
|
+
existing = await readFile(filePath);
|
|
140
|
+
}
|
|
141
|
+
if (existing.includes(begin) && existing.includes(end)) {
|
|
142
|
+
if (!force) {
|
|
143
|
+
skipped.push(filePath);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const replaced = existing.replace(new RegExp(`${begin}[\\s\\S]*?${end}`), block);
|
|
147
|
+
await writeFile(filePath, replaced);
|
|
148
|
+
written.push(filePath);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const next = existing.trim().length > 0 ? `${existing.trim()}\n\n${block}\n` : `${block}\n`;
|
|
152
|
+
await writeFile(filePath, next);
|
|
153
|
+
written.push(filePath);
|
|
154
|
+
}
|
|
155
|
+
async function ensureGitignore(root) {
|
|
156
|
+
const gitignorePath = path.join(root, '.gitignore');
|
|
157
|
+
let content = '';
|
|
158
|
+
if (await fileExists(gitignorePath)) {
|
|
159
|
+
content = await readFile(gitignorePath);
|
|
160
|
+
}
|
|
161
|
+
if (!content.includes('.alpha/')) {
|
|
162
|
+
content += `${content.endsWith('\n') || content === '' ? '' : '\n'}\n# Alpha AI artifacts\n.alpha/\n`;
|
|
163
|
+
await writeFile(gitignorePath, content);
|
|
164
|
+
logger.success('Added .alpha/ to .gitignore');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export async function runInit(options = {}) {
|
|
168
|
+
const root = getProjectRoot();
|
|
169
|
+
const force = options.force || false;
|
|
170
|
+
const targets = resolveTargets(options, root);
|
|
171
|
+
logger.section('Alpha Init');
|
|
172
|
+
// 1. Scaffold .alpha/ + config + gitignore.
|
|
173
|
+
await ensureDir(getAlphaDir());
|
|
174
|
+
await initializeConfig();
|
|
175
|
+
await ensureGitignore(root);
|
|
176
|
+
logger.success('Scaffolded .alpha/');
|
|
177
|
+
const written = [];
|
|
178
|
+
const skipped = [];
|
|
179
|
+
// 2. Universal: AGENTS.md + SKILL.md at project root.
|
|
180
|
+
if (targets.includes('universal')) {
|
|
181
|
+
await writeIfAllowed(path.join(root, 'AGENTS.md'), renderAgentsMd(), force, written, skipped);
|
|
182
|
+
await writeIfAllowed(path.join(root, 'SKILL.md'), renderSkillMd(), force, written, skipped);
|
|
183
|
+
}
|
|
184
|
+
// 3. Claude: .claude/commands/alpha-*.md + CLAUDE.md section.
|
|
185
|
+
if (targets.includes('claude')) {
|
|
186
|
+
for (const cmd of COMMANDS) {
|
|
187
|
+
await writeIfAllowed(path.join(root, '.claude', 'commands', `alpha-${cmd.name}.md`), renderSlashCommand(cmd), force, written, skipped);
|
|
188
|
+
}
|
|
189
|
+
await upsertSection(path.join(root, 'CLAUDE.md'), renderSkillMd().replace(/^---[\s\S]*?---\n\n/, ''), force, written, skipped);
|
|
190
|
+
}
|
|
191
|
+
// 4. Cursor: .cursor/commands/alpha-*.md.
|
|
192
|
+
if (targets.includes('cursor')) {
|
|
193
|
+
for (const cmd of COMMANDS) {
|
|
194
|
+
await writeIfAllowed(path.join(root, '.cursor', 'commands', `alpha-${cmd.name}.md`), renderSlashCommand(cmd), force, written, skipped);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
for (const file of written) {
|
|
198
|
+
logger.success(`Wrote ${path.relative(root, file)}`);
|
|
199
|
+
}
|
|
200
|
+
for (const file of skipped) {
|
|
201
|
+
logger.warn(`Skipped existing ${path.relative(root, file)} (use --force)`);
|
|
202
|
+
}
|
|
203
|
+
emit('init', {
|
|
204
|
+
root,
|
|
205
|
+
targets,
|
|
206
|
+
written: written.map((f) => path.relative(root, f)),
|
|
207
|
+
skipped: skipped.map((f) => path.relative(root, f)),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// CLI entry point
|
|
211
|
+
if (process.argv[1]?.endsWith('index.ts')) {
|
|
212
|
+
runInit();
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/init/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { ProjectContext } from '../../types/index.js';
|
|
3
|
+
export interface GatherOptions {
|
|
4
|
+
/** Run the human-facing interactive questionnaire (inquirer). */
|
|
5
|
+
interactive?: boolean;
|
|
6
|
+
/** Path to a JSON answers/context file (otherwise stdin is used). */
|
|
7
|
+
input?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function gatherRequirements(options?: GatherOptions): Promise<ProjectContext | null>;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/requirements/index.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAmF1E,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4ID,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmChC"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { logger, emit } from '../../utils/logger.js';
|
|
3
|
+
import { writeFile, ensureDir } from '../../utils/file-system.js';
|
|
4
|
+
import { getAlphaDir } from '../../utils/paths.js';
|
|
5
|
+
import { readInputJson } from '../../utils/input.js';
|
|
6
|
+
const INITIAL_QUESTIONS = [
|
|
7
|
+
{
|
|
8
|
+
id: 'project_name',
|
|
9
|
+
question: 'What is the name of your project?',
|
|
10
|
+
category: 'intent',
|
|
11
|
+
required: true,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'project_description',
|
|
15
|
+
question: 'In 1-2 sentences, what is your project about?',
|
|
16
|
+
category: 'intent',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'primary_goal',
|
|
21
|
+
question: 'What is the primary goal or problem this project solves?',
|
|
22
|
+
category: 'intent',
|
|
23
|
+
required: true,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'target_users',
|
|
27
|
+
question: 'Who are the target users or beneficiaries of this project?',
|
|
28
|
+
category: 'scope',
|
|
29
|
+
required: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
const FOLLOW_UP_CATEGORIES = {
|
|
33
|
+
intent: [
|
|
34
|
+
{
|
|
35
|
+
id: 'success_criteria',
|
|
36
|
+
question: 'What does success look like for this project?',
|
|
37
|
+
required: false,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 'key_features',
|
|
41
|
+
question: 'What are the 3-5 key features or capabilities?',
|
|
42
|
+
required: false,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
scope: [
|
|
46
|
+
{
|
|
47
|
+
id: 'in_scope',
|
|
48
|
+
question: 'What is explicitly in scope for the first version?',
|
|
49
|
+
required: false,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'out_of_scope',
|
|
53
|
+
question: 'What is explicitly out of scope or deferred?',
|
|
54
|
+
required: false,
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
constraints: [
|
|
58
|
+
{
|
|
59
|
+
id: 'technical_constraints',
|
|
60
|
+
question: 'Are there any technical constraints or requirements?',
|
|
61
|
+
required: false,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'timeline_constraints',
|
|
65
|
+
question: 'Are there any timeline or deadline considerations?',
|
|
66
|
+
required: false,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
preferences: [
|
|
70
|
+
{
|
|
71
|
+
id: 'tech_preferences',
|
|
72
|
+
question: 'Do you have any technology preferences or must-haves?',
|
|
73
|
+
required: false,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'architecture_preferences',
|
|
77
|
+
question: 'Any preferred architecture patterns or styles?',
|
|
78
|
+
required: false,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
function allQuestions() {
|
|
83
|
+
const flat = [...INITIAL_QUESTIONS];
|
|
84
|
+
for (const [category, questions] of Object.entries(FOLLOW_UP_CATEGORIES)) {
|
|
85
|
+
for (const q of questions) {
|
|
86
|
+
flat.push({
|
|
87
|
+
id: q.id,
|
|
88
|
+
question: q.question,
|
|
89
|
+
category: category,
|
|
90
|
+
required: q.required,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return flat;
|
|
95
|
+
}
|
|
96
|
+
function asArray(value) {
|
|
97
|
+
if (Array.isArray(value)) {
|
|
98
|
+
return value.map((v) => String(v).trim()).filter(Boolean);
|
|
99
|
+
}
|
|
100
|
+
if (typeof value === 'string') {
|
|
101
|
+
return value
|
|
102
|
+
.split(',')
|
|
103
|
+
.map((s) => s.trim())
|
|
104
|
+
.filter(Boolean);
|
|
105
|
+
}
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Build a ProjectContext from a flexible answers object. Accepts either an
|
|
110
|
+
* `{ answers: {...} }` wrapper, a flat answers map keyed by question id, or a
|
|
111
|
+
* direct ProjectContext-shaped object.
|
|
112
|
+
*/
|
|
113
|
+
function buildContext(raw) {
|
|
114
|
+
const a = raw && typeof raw.answers === 'object' && raw.answers !== null
|
|
115
|
+
? raw.answers
|
|
116
|
+
: raw;
|
|
117
|
+
const goals = [];
|
|
118
|
+
if (a.primary_goal)
|
|
119
|
+
goals.push(String(a.primary_goal).trim());
|
|
120
|
+
if (a.intent)
|
|
121
|
+
goals.push(String(a.intent).trim());
|
|
122
|
+
goals.push(...asArray(a.success_criteria));
|
|
123
|
+
goals.push(...asArray(a.key_features));
|
|
124
|
+
goals.push(...asArray(a.goals));
|
|
125
|
+
const constraints = [];
|
|
126
|
+
constraints.push(...asArray(a.technical_constraints));
|
|
127
|
+
constraints.push(...asArray(a.timeline_constraints));
|
|
128
|
+
constraints.push(...asArray(a.constraints));
|
|
129
|
+
return {
|
|
130
|
+
name: a.project_name || a.name || 'Untitled Project',
|
|
131
|
+
description: a.project_description || a.description || '',
|
|
132
|
+
intent: a.primary_goal || a.intent || '',
|
|
133
|
+
goals: Array.from(new Set(goals.filter(Boolean))),
|
|
134
|
+
constraints: Array.from(new Set(constraints.filter(Boolean))),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
async function saveContext(context) {
|
|
138
|
+
const alphaDir = getAlphaDir();
|
|
139
|
+
await ensureDir(alphaDir);
|
|
140
|
+
const contextPath = `${alphaDir}/project-context.json`;
|
|
141
|
+
await writeFile(contextPath, JSON.stringify(context, null, 2));
|
|
142
|
+
logger.success(`Context saved to ${contextPath}`);
|
|
143
|
+
return contextPath;
|
|
144
|
+
}
|
|
145
|
+
function renderQuestionnaire() {
|
|
146
|
+
const lines = [
|
|
147
|
+
`# Project Requirements Questionnaire`,
|
|
148
|
+
``,
|
|
149
|
+
`Answer the questions below, then provide them back to Alpha:`,
|
|
150
|
+
``,
|
|
151
|
+
'```bash',
|
|
152
|
+
`alpha gather --input answers.json`,
|
|
153
|
+
`# or: echo '<json>' | alpha gather --input -`,
|
|
154
|
+
'```',
|
|
155
|
+
``,
|
|
156
|
+
`Expected JSON shape: a flat object keyed by question id, e.g.`,
|
|
157
|
+
'```json',
|
|
158
|
+
`{ "project_name": "...", "project_description": "...", "primary_goal": "..." }`,
|
|
159
|
+
'```',
|
|
160
|
+
``,
|
|
161
|
+
];
|
|
162
|
+
for (const q of allQuestions()) {
|
|
163
|
+
lines.push(`- \`${q.id}\`${q.required ? ' (required)' : ''} — ${q.question}`);
|
|
164
|
+
}
|
|
165
|
+
return lines.join('\n');
|
|
166
|
+
}
|
|
167
|
+
async function gatherInteractive() {
|
|
168
|
+
const inquirer = (await import('inquirer')).default;
|
|
169
|
+
const chalk = (await import('chalk')).default;
|
|
170
|
+
logger.section('Project Discovery');
|
|
171
|
+
const answers = {};
|
|
172
|
+
for (const question of INITIAL_QUESTIONS) {
|
|
173
|
+
const response = await inquirer.prompt([
|
|
174
|
+
{
|
|
175
|
+
type: 'input',
|
|
176
|
+
name: question.id,
|
|
177
|
+
message: chalk.cyan(question.question),
|
|
178
|
+
validate: (input) => question.required && !input.trim()
|
|
179
|
+
? 'This field is required'
|
|
180
|
+
: true,
|
|
181
|
+
},
|
|
182
|
+
]);
|
|
183
|
+
answers[question.id] = response[question.id];
|
|
184
|
+
}
|
|
185
|
+
for (const [category, questions] of Object.entries(FOLLOW_UP_CATEGORIES)) {
|
|
186
|
+
logger.info(`\n${category.toUpperCase()}:`);
|
|
187
|
+
for (const question of questions) {
|
|
188
|
+
const response = await inquirer.prompt([
|
|
189
|
+
{
|
|
190
|
+
type: 'input',
|
|
191
|
+
name: question.id,
|
|
192
|
+
message: chalk.cyan(question.question),
|
|
193
|
+
},
|
|
194
|
+
]);
|
|
195
|
+
if (response[question.id]) {
|
|
196
|
+
answers[question.id] = response[question.id];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return buildContext(answers);
|
|
201
|
+
}
|
|
202
|
+
export async function gatherRequirements(options = {}) {
|
|
203
|
+
try {
|
|
204
|
+
// Ingest mode: explicit input file or piped stdin.
|
|
205
|
+
const inputData = await readInputJson(options.input);
|
|
206
|
+
if (options.interactive) {
|
|
207
|
+
const context = await gatherInteractive();
|
|
208
|
+
await saveContext(context);
|
|
209
|
+
emit('gather', context);
|
|
210
|
+
return context;
|
|
211
|
+
}
|
|
212
|
+
if (inputData) {
|
|
213
|
+
const context = buildContext(inputData);
|
|
214
|
+
await saveContext(context);
|
|
215
|
+
emit('gather', context);
|
|
216
|
+
return context;
|
|
217
|
+
}
|
|
218
|
+
// Emit mode (default): hand the questionnaire to the LLM.
|
|
219
|
+
emit('gather', { mode: 'questionnaire', questions: allQuestions() }, renderQuestionnaire());
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
logger.error(`Failed to gather requirements: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
224
|
+
process.exitCode = 1;
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// CLI entry point
|
|
229
|
+
if (process.argv[1]?.endsWith('gather.ts')) {
|
|
230
|
+
gatherRequirements();
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/requirements/index.ts"],"names":[],"mappings":"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"}
|