@rasensio/aidlc 1.3.0 → 1.5.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/commands/claim.d.ts +8 -6
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +49 -41
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/gate.d.ts.map +1 -1
- package/dist/commands/gate.js +17 -0
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/init.js +13 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +145 -4
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +109 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transition.d.ts.map +1 -1
- package/dist/commands/transition.js +39 -2
- package/dist/commands/transition.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +13 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/concurrency/claim-store.d.ts +44 -0
- package/dist/concurrency/claim-store.d.ts.map +1 -0
- package/dist/concurrency/claim-store.js +273 -0
- package/dist/concurrency/claim-store.js.map +1 -0
- package/dist/concurrency/common-dir.d.ts +25 -0
- package/dist/concurrency/common-dir.d.ts.map +1 -0
- package/dist/concurrency/common-dir.js +81 -0
- package/dist/concurrency/common-dir.js.map +1 -0
- package/dist/concurrency/detect.d.ts +23 -0
- package/dist/concurrency/detect.d.ts.map +1 -0
- package/dist/concurrency/detect.js +59 -0
- package/dist/concurrency/detect.js.map +1 -0
- package/dist/concurrency/gitattributes.d.ts +23 -0
- package/dist/concurrency/gitattributes.d.ts.map +1 -0
- package/dist/concurrency/gitattributes.js +52 -0
- package/dist/concurrency/gitattributes.js.map +1 -0
- package/dist/concurrency/registry.d.ts +48 -0
- package/dist/concurrency/registry.d.ts.map +1 -0
- package/dist/concurrency/registry.js +163 -0
- package/dist/concurrency/registry.js.map +1 -0
- package/dist/concurrency/session-id.d.ts +22 -0
- package/dist/concurrency/session-id.d.ts.map +1 -0
- package/dist/concurrency/session-id.js +35 -0
- package/dist/concurrency/session-id.js.map +1 -0
- package/dist/concurrency/types.d.ts +39 -0
- package/dist/concurrency/types.d.ts.map +1 -0
- package/dist/concurrency/types.js +12 -0
- package/dist/concurrency/types.js.map +1 -0
- package/dist/concurrency/worktree.d.ts +49 -0
- package/dist/concurrency/worktree.d.ts.map +1 -0
- package/dist/concurrency/worktree.js +169 -0
- package/dist/concurrency/worktree.js.map +1 -0
- package/dist/core/gate.d.ts +7 -0
- package/dist/core/gate.d.ts.map +1 -1
- package/dist/core/gate.js.map +1 -1
- package/dist/core/types.d.ts +16 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/cost/ledger.d.ts.map +1 -1
- package/dist/cost/ledger.js +6 -0
- package/dist/cost/ledger.js.map +1 -1
- package/dist/cost/sessions.d.ts +6 -1
- package/dist/cost/sessions.d.ts.map +1 -1
- package/dist/cost/sessions.js +10 -1
- package/dist/cost/sessions.js.map +1 -1
- package/dist/traceability/cache.d.ts +21 -0
- package/dist/traceability/cache.d.ts.map +1 -0
- package/dist/traceability/cache.js +106 -0
- package/dist/traceability/cache.js.map +1 -0
- package/dist/traceability/coverage-block.d.ts +21 -0
- package/dist/traceability/coverage-block.d.ts.map +1 -0
- package/dist/traceability/coverage-block.js +41 -0
- package/dist/traceability/coverage-block.js.map +1 -0
- package/dist/traceability/gate-criterion.d.ts +34 -0
- package/dist/traceability/gate-criterion.d.ts.map +1 -0
- package/dist/traceability/gate-criterion.js +128 -0
- package/dist/traceability/gate-criterion.js.map +1 -0
- package/dist/traceability/matrix.d.ts +35 -0
- package/dist/traceability/matrix.d.ts.map +1 -0
- package/dist/traceability/matrix.js +93 -0
- package/dist/traceability/matrix.js.map +1 -0
- package/dist/traceability/parser.d.ts +27 -0
- package/dist/traceability/parser.d.ts.map +1 -0
- package/dist/traceability/parser.js +101 -0
- package/dist/traceability/parser.js.map +1 -0
- package/dist/traceability/scanner.d.ts +62 -0
- package/dist/traceability/scanner.d.ts.map +1 -0
- package/dist/traceability/scanner.js +198 -0
- package/dist/traceability/scanner.js.map +1 -0
- package/dist/traceability/types.d.ts +77 -0
- package/dist/traceability/types.d.ts.map +1 -0
- package/dist/traceability/types.js +8 -0
- package/dist/traceability/types.js.map +1 -0
- package/package.json +2 -2
- package/dist/commands/setup.d.ts +0 -24
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -262
- package/dist/commands/setup.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasensio/aidlc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "AI Development Lifecycle Framework — structured lifecycle guidance for AI coding agents across platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"commander": "15.0.0",
|
|
25
25
|
"picomatch": "4.0.5",
|
|
26
26
|
"yaml": "2.9.0",
|
|
27
|
-
"@rasensio/aidlc-content": "1.
|
|
27
|
+
"@rasensio/aidlc-content": "1.5.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "22.15.32",
|
package/dist/commands/setup.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aidlc setup` command — interactive setup or update of AIDLC configuration.
|
|
3
|
-
*
|
|
4
|
-
* Behavior:
|
|
5
|
-
* - Detect existing `.aidlc/config.yaml` → update mode vs fresh-setup mode.
|
|
6
|
-
* - In interactive mode: use @clack/prompts to collect SetupAnswers.
|
|
7
|
-
* - In non-interactive mode (`--non-interactive`): use empty answers (preserve
|
|
8
|
-
* existing or apply defaults).
|
|
9
|
-
* - Call `computeSetup(existingConfig, answers)` to produce the config.
|
|
10
|
-
* - Write the result to `.aidlc/config.yaml` using `saveYaml`.
|
|
11
|
-
* - Run `aidlc init` for each configured platform.
|
|
12
|
-
* - Run `aidlc discover` to generate context docs.
|
|
13
|
-
* - Print summary.
|
|
14
|
-
*
|
|
15
|
-
* Requirements: 21.1, 21.9, 7.8
|
|
16
|
-
*
|
|
17
|
-
* @module
|
|
18
|
-
*/
|
|
19
|
-
import { Command } from 'commander';
|
|
20
|
-
/**
|
|
21
|
-
* Register the `aidlc setup` command on the given commander program.
|
|
22
|
-
*/
|
|
23
|
-
export declare function registerSetup(program: Command): void;
|
|
24
|
-
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsLpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQpD"}
|
package/dist/commands/setup.js
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `aidlc setup` command — interactive setup or update of AIDLC configuration.
|
|
3
|
-
*
|
|
4
|
-
* Behavior:
|
|
5
|
-
* - Detect existing `.aidlc/config.yaml` → update mode vs fresh-setup mode.
|
|
6
|
-
* - In interactive mode: use @clack/prompts to collect SetupAnswers.
|
|
7
|
-
* - In non-interactive mode (`--non-interactive`): use empty answers (preserve
|
|
8
|
-
* existing or apply defaults).
|
|
9
|
-
* - Call `computeSetup(existingConfig, answers)` to produce the config.
|
|
10
|
-
* - Write the result to `.aidlc/config.yaml` using `saveYaml`.
|
|
11
|
-
* - Run `aidlc init` for each configured platform.
|
|
12
|
-
* - Run `aidlc discover` to generate context docs.
|
|
13
|
-
* - Print summary.
|
|
14
|
-
*
|
|
15
|
-
* Requirements: 21.1, 21.9, 7.8
|
|
16
|
-
*
|
|
17
|
-
* @module
|
|
18
|
-
*/
|
|
19
|
-
import { Command } from 'commander';
|
|
20
|
-
import { existsSync } from 'node:fs';
|
|
21
|
-
import { join } from 'node:path';
|
|
22
|
-
import * as clack from '@clack/prompts';
|
|
23
|
-
import { computeSetup } from '../setup/setup-compute.js';
|
|
24
|
-
import { loadYaml, saveYaml } from '../state/yaml-helpers.js';
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
// Constants
|
|
27
|
-
// ---------------------------------------------------------------------------
|
|
28
|
-
/**
|
|
29
|
-
* Mapping from complexity to default scope and template (Req 21.5).
|
|
30
|
-
*/
|
|
31
|
-
const COMPLEXITY_DEFAULTS = {
|
|
32
|
-
simple: { scope: 'micro', template: 'micro-task' },
|
|
33
|
-
moderate: { scope: 'standard', template: 'quick-feature' },
|
|
34
|
-
complex: { scope: 'full', template: 'full-feature' },
|
|
35
|
-
};
|
|
36
|
-
// ---------------------------------------------------------------------------
|
|
37
|
-
// Helpers
|
|
38
|
-
// ---------------------------------------------------------------------------
|
|
39
|
-
/**
|
|
40
|
-
* Load existing config from `.aidlc/config.yaml`, or null if it doesn't exist.
|
|
41
|
-
*/
|
|
42
|
-
function loadExistingConfig(projectRoot) {
|
|
43
|
-
const configPath = join(projectRoot, '.aidlc', 'config.yaml');
|
|
44
|
-
if (!existsSync(configPath)) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
return loadYaml(configPath);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
// Malformed config → treat as fresh setup
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Collect answers interactively using @clack/prompts.
|
|
57
|
-
*/
|
|
58
|
-
async function collectInteractiveAnswers(existing) {
|
|
59
|
-
clack.intro('aidlc setup');
|
|
60
|
-
if (existing) {
|
|
61
|
-
clack.note(`Existing configuration found. Current platforms: ${existing.platforms.join(', ') || 'none'}\n` +
|
|
62
|
-
`Scope: ${existing.defaults.scope}, Template: ${existing.defaults.template}`, 'Update mode');
|
|
63
|
-
}
|
|
64
|
-
// Project type
|
|
65
|
-
const projectType = await clack.select({
|
|
66
|
-
message: 'What kind of project is this?',
|
|
67
|
-
options: [
|
|
68
|
-
{ value: 'web-app', label: 'web-app', hint: 'Frontend or full-stack web application (React, Next.js, etc.)' },
|
|
69
|
-
{ value: 'api', label: 'api', hint: 'Backend service or REST/GraphQL API' },
|
|
70
|
-
{ value: 'cli', label: 'cli', hint: 'Command-line tool or terminal utility' },
|
|
71
|
-
{ value: 'library', label: 'library', hint: 'Reusable package or SDK consumed by other projects' },
|
|
72
|
-
{ value: 'service', label: 'service', hint: 'Background worker, MCP server, daemon, or long-running process' },
|
|
73
|
-
{ value: 'monorepo', label: 'monorepo', hint: 'Multiple packages/apps in one repo (apps, APIs, libraries, etc.)' },
|
|
74
|
-
{ value: 'other', label: 'other', hint: 'Something else — docs site, infra config, or anything not listed above' },
|
|
75
|
-
],
|
|
76
|
-
});
|
|
77
|
-
if (clack.isCancel(projectType))
|
|
78
|
-
return null;
|
|
79
|
-
// Complexity
|
|
80
|
-
const complexity = await clack.select({
|
|
81
|
-
message: 'How complex is this project? (determines which lifecycle phases are used)',
|
|
82
|
-
options: [
|
|
83
|
-
{
|
|
84
|
-
value: 'simple',
|
|
85
|
-
label: 'simple',
|
|
86
|
-
hint: 'Small tasks — skip straight to implementation and testing',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
value: 'moderate',
|
|
90
|
-
label: 'moderate',
|
|
91
|
-
hint: 'Typical features — includes requirements, design, implementation, and testing',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
value: 'complex',
|
|
95
|
-
label: 'complex',
|
|
96
|
-
hint: 'Large features — full lifecycle from ideation through maintenance with review gates',
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
});
|
|
100
|
-
if (clack.isCancel(complexity))
|
|
101
|
-
return null;
|
|
102
|
-
// Platforms
|
|
103
|
-
const platforms = await clack.multiselect({
|
|
104
|
-
message: 'Which AI coding platforms will you use? (generates config files for each)',
|
|
105
|
-
options: [
|
|
106
|
-
{ value: 'claude-code', label: 'claude-code', hint: 'Anthropic Claude Code (CLAUDE.md)' },
|
|
107
|
-
{ value: 'codex', label: 'codex', hint: 'OpenAI Codex CLI (AGENTS.md)' },
|
|
108
|
-
{ value: 'cursor', label: 'cursor', hint: 'Cursor IDE (.cursor/rules/)' },
|
|
109
|
-
{ value: 'kiro', label: 'kiro', hint: 'Kiro IDE (.kiro/steering/)' },
|
|
110
|
-
{ value: 'windsurf', label: 'windsurf', hint: 'Windsurf IDE (.windsurfrules)' },
|
|
111
|
-
],
|
|
112
|
-
required: false,
|
|
113
|
-
});
|
|
114
|
-
if (clack.isCancel(platforms))
|
|
115
|
-
return null;
|
|
116
|
-
// Default template
|
|
117
|
-
const template = await clack.select({
|
|
118
|
-
message: 'Default workflow template (defines the phases and artifacts for each lifecycle run):',
|
|
119
|
-
options: [
|
|
120
|
-
{
|
|
121
|
-
value: 'micro-task',
|
|
122
|
-
label: 'micro-task',
|
|
123
|
-
hint: 'Minimal: implementation → testing only',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
value: 'quick-feature',
|
|
127
|
-
label: 'quick-feature',
|
|
128
|
-
hint: 'Standard: requirements → design → implementation → testing → deployment',
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
value: 'full-feature',
|
|
132
|
-
label: 'full-feature',
|
|
133
|
-
hint: 'Complete: ideation through maintenance with adversarial review gates',
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
value: 'bugfix',
|
|
137
|
-
label: 'bugfix',
|
|
138
|
-
hint: 'Bug fixes: reproduction → requirements → implementation → testing → deployment',
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
value: 'spike',
|
|
142
|
-
label: 'spike',
|
|
143
|
-
hint: 'Research/exploration: ideation → findings documentation',
|
|
144
|
-
},
|
|
145
|
-
],
|
|
146
|
-
initialValue: COMPLEXITY_DEFAULTS[complexity]?.template ?? 'micro-task',
|
|
147
|
-
});
|
|
148
|
-
if (clack.isCancel(template))
|
|
149
|
-
return null;
|
|
150
|
-
// Default scope
|
|
151
|
-
const scope = await clack.select({
|
|
152
|
-
message: 'Default scope (controls how many lifecycle phases are active per run):',
|
|
153
|
-
options: [
|
|
154
|
-
{
|
|
155
|
-
value: 'full',
|
|
156
|
-
label: 'full',
|
|
157
|
-
hint: 'All phases enabled — ideation, requirements, design, implementation, testing, deployment, maintenance',
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
value: 'standard',
|
|
161
|
-
label: 'standard',
|
|
162
|
-
hint: 'Core phases — requirements, design, implementation, testing, deployment',
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
value: 'micro',
|
|
166
|
-
label: 'micro',
|
|
167
|
-
hint: 'Minimal — implementation and testing only (fastest)',
|
|
168
|
-
},
|
|
169
|
-
],
|
|
170
|
-
initialValue: COMPLEXITY_DEFAULTS[complexity]?.scope ?? 'micro',
|
|
171
|
-
});
|
|
172
|
-
if (clack.isCancel(scope))
|
|
173
|
-
return null;
|
|
174
|
-
return {
|
|
175
|
-
projectType: projectType,
|
|
176
|
-
complexity: complexity,
|
|
177
|
-
platforms: platforms,
|
|
178
|
-
template: template,
|
|
179
|
-
scope: scope,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
// ---------------------------------------------------------------------------
|
|
183
|
-
// Command registration
|
|
184
|
-
// ---------------------------------------------------------------------------
|
|
185
|
-
/**
|
|
186
|
-
* Register the `aidlc setup` command on the given commander program.
|
|
187
|
-
*/
|
|
188
|
-
export function registerSetup(program) {
|
|
189
|
-
program
|
|
190
|
-
.command('setup')
|
|
191
|
-
.description('Interactive setup or update of AIDLC configuration')
|
|
192
|
-
.option('--non-interactive', 'Skip prompts, use defaults or existing config')
|
|
193
|
-
.action(async (opts) => {
|
|
194
|
-
await runSetup(opts);
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
// ---------------------------------------------------------------------------
|
|
198
|
-
// Core logic
|
|
199
|
-
// ---------------------------------------------------------------------------
|
|
200
|
-
async function runSetup(opts) {
|
|
201
|
-
const projectRoot = process.cwd();
|
|
202
|
-
const configPath = join(projectRoot, '.aidlc', 'config.yaml');
|
|
203
|
-
// Load existing config
|
|
204
|
-
const existing = loadExistingConfig(projectRoot);
|
|
205
|
-
const isUpdate = existing !== null;
|
|
206
|
-
let answers;
|
|
207
|
-
if (opts.nonInteractive) {
|
|
208
|
-
// Non-interactive: use empty answers (preserve existing or apply defaults)
|
|
209
|
-
answers = {};
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
// Interactive: collect answers via prompts
|
|
213
|
-
const collected = await collectInteractiveAnswers(existing);
|
|
214
|
-
if (collected === null) {
|
|
215
|
-
process.stderr.write('Setup cancelled.\n');
|
|
216
|
-
process.exitCode = 1;
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
answers = collected;
|
|
220
|
-
}
|
|
221
|
-
// Compute the resulting config
|
|
222
|
-
const config = computeSetup(existing, answers);
|
|
223
|
-
// Write `.aidlc/config.yaml`
|
|
224
|
-
saveYaml(configPath, config);
|
|
225
|
-
// Run `aidlc init` for each configured platform
|
|
226
|
-
if (config.platforms.length > 0) {
|
|
227
|
-
const { registerInit } = await import('./init.js');
|
|
228
|
-
for (const platform of config.platforms) {
|
|
229
|
-
process.stderr.write(`Running init for platform: ${platform}\n`);
|
|
230
|
-
const initProgram = new Command();
|
|
231
|
-
initProgram.exitOverride();
|
|
232
|
-
registerInit(initProgram);
|
|
233
|
-
try {
|
|
234
|
-
await initProgram.parseAsync(['init', '--platform', platform], { from: 'user' });
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
// commander throws on exitOverride; non-fatal for setup
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// Run discover to generate context docs
|
|
242
|
-
process.stderr.write('Running discover...\n');
|
|
243
|
-
try {
|
|
244
|
-
const { registerDiscover } = await import('./discover.js');
|
|
245
|
-
const discoverProgram = new Command();
|
|
246
|
-
discoverProgram.exitOverride();
|
|
247
|
-
registerDiscover(discoverProgram);
|
|
248
|
-
await discoverProgram.parseAsync(['discover'], { from: 'user' });
|
|
249
|
-
}
|
|
250
|
-
catch {
|
|
251
|
-
// Non-fatal: discover may fail on empty projects
|
|
252
|
-
}
|
|
253
|
-
// Print summary
|
|
254
|
-
process.stdout.write(`\n${isUpdate ? 'Configuration updated' : 'Setup complete'}:\n`);
|
|
255
|
-
process.stdout.write(` Config: ${configPath}\n`);
|
|
256
|
-
process.stdout.write(` Scope: ${config.defaults.scope}\n`);
|
|
257
|
-
process.stdout.write(` Template: ${config.defaults.template}\n`);
|
|
258
|
-
process.stdout.write(` Platforms: ${config.platforms.length > 0 ? config.platforms.join(', ') : 'none'}\n`);
|
|
259
|
-
process.stdout.write(` Actions: ${config.actions.length > 0 ? config.actions.join(', ') : 'none'}\n`);
|
|
260
|
-
process.stdout.write('\n');
|
|
261
|
-
}
|
|
262
|
-
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|