@antomanc/aginit 0.1.0 → 0.2.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/CHANGELOG.md +43 -0
- package/LICENSE +1 -1
- package/README.md +60 -183
- package/THIRD_PARTY_NOTICES.md +5 -0
- package/dist/adapters/agents-md.d.ts.map +1 -1
- package/dist/adapters/agents-md.js +47 -23
- package/dist/adapters/agents-md.js.map +1 -1
- package/dist/adapters/browser.js.map +1 -1
- package/dist/adapters/git.d.ts.map +1 -1
- package/dist/adapters/git.js +2 -0
- package/dist/adapters/git.js.map +1 -1
- package/dist/adapters/graft.js.map +1 -1
- package/dist/adapters/package-manager.js.map +1 -1
- package/dist/adapters/skills.d.ts.map +1 -1
- package/dist/adapters/skills.js +11 -7
- package/dist/adapters/skills.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +10 -7
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +17 -16
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/new.d.ts +0 -1
- package/dist/cli/new.d.ts.map +1 -1
- package/dist/cli/new.js +7 -18
- package/dist/cli/new.js.map +1 -1
- package/dist/cli/wizard.d.ts +0 -4
- package/dist/cli/wizard.d.ts.map +1 -1
- package/dist/cli/wizard.js +4 -50
- package/dist/cli/wizard.js.map +1 -1
- package/dist/config/defaults.d.ts +16 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +79 -10
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +5 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validation.d.ts +3 -3
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/presets/adr.js.map +1 -1
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/package.json +10 -9
- package/src/adapters/agents-md.ts +53 -26
- package/src/adapters/git.ts +2 -0
- package/src/adapters/skills.ts +10 -7
- package/src/cli/doctor.ts +8 -6
- package/src/cli/main.ts +17 -25
- package/src/cli/new.ts +6 -22
- package/src/cli/wizard.ts +4 -56
- package/src/config/defaults.ts +97 -12
- package/src/config/schema.ts +5 -0
package/dist/config/defaults.js
CHANGED
|
@@ -1,9 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The stable skill set from mattpocock/skills installed by default:
|
|
3
|
+
* every skill in the `engineering` and `productivity` categories.
|
|
4
|
+
*
|
|
5
|
+
* The `misc` (rarely used) and `in-progress` categories are deliberately
|
|
6
|
+
* excluded. Re-evaluate when the upstream repository reshuffles categories.
|
|
7
|
+
*/
|
|
8
|
+
export const MATT_POCOCK_SKILLS = [
|
|
9
|
+
// engineering
|
|
10
|
+
'ask-matt',
|
|
11
|
+
'code-review',
|
|
12
|
+
'codebase-design',
|
|
13
|
+
'diagnosing-bugs',
|
|
14
|
+
'domain-modeling',
|
|
15
|
+
'grill-with-docs',
|
|
16
|
+
'implement',
|
|
17
|
+
'implement-spec',
|
|
18
|
+
'improve-codebase-architecture',
|
|
19
|
+
'pr',
|
|
20
|
+
'prototype',
|
|
21
|
+
'research',
|
|
22
|
+
'retro',
|
|
23
|
+
'setup-matt-pocock-skills',
|
|
24
|
+
'tdd',
|
|
25
|
+
'to-spec',
|
|
26
|
+
'to-tickets',
|
|
27
|
+
'triage',
|
|
28
|
+
'wayfinder',
|
|
29
|
+
'wizard',
|
|
30
|
+
// productivity
|
|
31
|
+
'grill-me',
|
|
32
|
+
'grilling',
|
|
33
|
+
'handoff',
|
|
34
|
+
'teach',
|
|
35
|
+
'to-questionnaire',
|
|
36
|
+
'wait-what',
|
|
37
|
+
'writing-for-agents'
|
|
38
|
+
];
|
|
1
39
|
export function getDefaultConfig(name, preset, options = {}) {
|
|
2
|
-
const specWorkflow = !!options.specWorkflow;
|
|
3
40
|
const packageManager = options.packageManager || 'pnpm';
|
|
4
|
-
const mattSkills = specWorkflow
|
|
5
|
-
? ['tdd', 'code-review', 'diagnosing-bugs', 'to-spec', 'to-tickets', 'implement-spec']
|
|
6
|
-
: ['tdd', 'code-review', 'diagnosing-bugs'];
|
|
7
41
|
switch (preset) {
|
|
8
42
|
case 'web': {
|
|
9
43
|
const framework = options.framework || 'none';
|
|
@@ -19,11 +53,14 @@ export function getDefaultConfig(name, preset, options = {}) {
|
|
|
19
53
|
secondary: 'codex'
|
|
20
54
|
},
|
|
21
55
|
skills: {
|
|
22
|
-
workflow: specWorkflow ? 'spec' : 'minimal',
|
|
23
56
|
sources: [
|
|
24
57
|
{
|
|
25
58
|
package: 'mattpocock/skills',
|
|
26
|
-
skills:
|
|
59
|
+
skills: [...MATT_POCOCK_SKILLS]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
package: 'blader/humanizer',
|
|
63
|
+
skills: ['humanizer']
|
|
27
64
|
},
|
|
28
65
|
{
|
|
29
66
|
package: 'pbakaus/impeccable',
|
|
@@ -61,11 +98,14 @@ export function getDefaultConfig(name, preset, options = {}) {
|
|
|
61
98
|
secondary: 'codex'
|
|
62
99
|
},
|
|
63
100
|
skills: {
|
|
64
|
-
workflow: specWorkflow ? 'spec' : 'minimal',
|
|
65
101
|
sources: [
|
|
66
102
|
{
|
|
67
103
|
package: 'mattpocock/skills',
|
|
68
|
-
skills:
|
|
104
|
+
skills: [...MATT_POCOCK_SKILLS]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
package: 'blader/humanizer',
|
|
108
|
+
skills: ['humanizer']
|
|
69
109
|
}
|
|
70
110
|
]
|
|
71
111
|
},
|
|
@@ -95,11 +135,14 @@ export function getDefaultConfig(name, preset, options = {}) {
|
|
|
95
135
|
secondary: 'codex'
|
|
96
136
|
},
|
|
97
137
|
skills: {
|
|
98
|
-
workflow: specWorkflow ? 'spec' : 'minimal',
|
|
99
138
|
sources: [
|
|
100
139
|
{
|
|
101
140
|
package: 'mattpocock/skills',
|
|
102
|
-
skills:
|
|
141
|
+
skills: [...MATT_POCOCK_SKILLS]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
package: 'blader/humanizer',
|
|
145
|
+
skills: ['humanizer']
|
|
103
146
|
}
|
|
104
147
|
]
|
|
105
148
|
},
|
|
@@ -119,4 +162,30 @@ export function getDefaultConfig(name, preset, options = {}) {
|
|
|
119
162
|
};
|
|
120
163
|
}
|
|
121
164
|
}
|
|
165
|
+
/** The skill selections that older versions of aginit wrote as defaults. */
|
|
166
|
+
const LEGACY_MATT_SKILL_SELECTIONS = [
|
|
167
|
+
['tdd', 'code-review', 'diagnosing-bugs'],
|
|
168
|
+
['tdd', 'code-review', 'diagnosing-bugs', 'to-spec', 'to-tickets', 'implement-spec']
|
|
169
|
+
];
|
|
170
|
+
function matchesLegacySelection(skills) {
|
|
171
|
+
return LEGACY_MATT_SKILL_SELECTIONS.some((selection) => selection.length === skills.length && selection.every((skill) => skills.includes(skill)));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Bring a saved `skills` section forward to the current standard: install the
|
|
175
|
+
* full stable Matt Pocock set and drop the retired workflow selector.
|
|
176
|
+
*
|
|
177
|
+
* Only the exact selections aginit used to write are migrated, so a project
|
|
178
|
+
* whose skill list was narrowed by hand keeps the list its author chose.
|
|
179
|
+
*/
|
|
180
|
+
export function upgradeLegacySkillConfig(skills) {
|
|
181
|
+
const sources = skills.sources.map((source) => source.package === 'mattpocock/skills' && matchesLegacySelection(source.skills)
|
|
182
|
+
? { ...source, skills: [...MATT_POCOCK_SKILLS] }
|
|
183
|
+
: source);
|
|
184
|
+
const migrated = sources.some((source, index) => source !== skills.sources[index]);
|
|
185
|
+
if (!migrated)
|
|
186
|
+
return skills;
|
|
187
|
+
const upgraded = { ...skills, sources };
|
|
188
|
+
delete upgraded.workflow;
|
|
189
|
+
return upgraded;
|
|
190
|
+
}
|
|
122
191
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export interface AginitConfig {
|
|
|
16
16
|
secondary: string;
|
|
17
17
|
};
|
|
18
18
|
skills: {
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Legacy selector from when only a subset of skills was
|
|
21
|
+
* installed. All standard skills are installed now, so this field is no
|
|
22
|
+
* longer written. It is still accepted so existing configs keep loading.
|
|
23
|
+
*/
|
|
19
24
|
workflow?: 'minimal' | 'spec';
|
|
20
25
|
sources: SkillSourceConfig[];
|
|
21
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;CACH;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE;QACN;;;;WAIG;QACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;CACH;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AginitConfig } from './schema.js';
|
|
2
|
-
export declare const PRESETS: readonly [
|
|
3
|
-
export declare const FRAMEWORKS: readonly [
|
|
4
|
-
export declare const SUPPORTED_PACKAGE_MANAGERS: readonly [
|
|
2
|
+
export declare const PRESETS: readonly ['web', 'cli', 'generic'];
|
|
3
|
+
export declare const FRAMEWORKS: readonly ['none', 'vite', 'next', 'existing'];
|
|
4
|
+
export declare const SUPPORTED_PACKAGE_MANAGERS: readonly ['pnpm', 'npm', 'yarn', 'bun'];
|
|
5
5
|
export declare function isRecord(value: unknown): value is Record<string, any>;
|
|
6
6
|
export declare function validateProjectName(name: string): void;
|
|
7
7
|
export declare function validateUpstreamArgument(value: unknown, label: string): asserts value is string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkD,MAAM,aAAa,CAAC;AAE3F,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkD,MAAM,aAAa,CAAC;AAE3F,eAAO,MAAM,OAAO,YAAI,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAC1D,eAAO,MAAM,UAAU,YAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AACxE,eAAO,MAAM,0BAA0B,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAClF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErE;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMtD;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAW/F;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAoC3D;AACD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYlE;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAgB3E"}
|
package/dist/presets/adr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr.js","sourceRoot":"","sources":["../../src/presets/adr.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBxB,CAAC;AAEF,MAAM,UAAU,QAAQ,CACtB,SAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"adr.js","sourceRoot":"","sources":["../../src/presets/adr.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBxB,CAAC;AAEF,MAAM,UAAU,QAAQ,CACtB,SAAiB,EACjB,OAAO,GAA2C,EAAE;IAEpD,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,uCAAuC,CAAC,CAAC;IAC7F,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,MAAM,GAAG,KAAK;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,MAAM,GAAG,KAAK;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,OAAe,EACf,OAAO,GAAqB,EAAE;IAE9B,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE5E,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,QAAgB;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,IAAa,EACb,OAAO,GAAqB,EAAE;IAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;IACjB,IAAI,QAAQ,MAAM;IAClB,OAAO,QAAQ,MAAM;IACrB,IAAI,QAAQ,MAAM;IAClB,KAAK,QAAQ,MAAM;IACnB,GAAG,QAAQ,MAAM;IACjB,IAAI,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM;IAG/C,MAAM,UAAU,MAAM,aAAa,MAAM;CAQ1C,CAAC"}
|
package/dist/utils/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAiB1C,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antomanc/aginit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Minimal, modular AI-first project bootstrapper for
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Minimal, modular AI-first project bootstrapper for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"src",
|
|
20
20
|
"bin",
|
|
21
21
|
"README.md",
|
|
22
|
+
"CHANGELOG.md",
|
|
22
23
|
"LICENSE",
|
|
23
24
|
"THIRD_PARTY_NOTICES.md"
|
|
24
25
|
],
|
|
@@ -39,7 +40,6 @@
|
|
|
39
40
|
"agents",
|
|
40
41
|
"antigravity",
|
|
41
42
|
"codex",
|
|
42
|
-
"t3-code",
|
|
43
43
|
"skills",
|
|
44
44
|
"graft",
|
|
45
45
|
"bootstrap",
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@clack/prompts": "^1.8.1",
|
|
50
|
-
"commander": "^
|
|
50
|
+
"commander": "^15.0.0",
|
|
51
51
|
"picocolors": "^1.1.1"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@types/node": "^22.
|
|
55
|
-
"tsx": "^4.
|
|
56
|
-
"typescript": "^
|
|
57
|
-
"vitest": "^
|
|
54
|
+
"@types/node": "^22.20.5",
|
|
55
|
+
"tsx": "^4.23.15",
|
|
56
|
+
"typescript": "^7.0.2",
|
|
57
|
+
"vitest": "^5.0.3"
|
|
58
58
|
},
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"engines": {
|
|
@@ -64,8 +64,9 @@
|
|
|
64
64
|
"build": "tsc",
|
|
65
65
|
"watch": "tsc --watch",
|
|
66
66
|
"test": "vitest run",
|
|
67
|
-
"typecheck": "tsc --noEmit",
|
|
67
|
+
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
|
|
68
68
|
"check": "pnpm typecheck && pnpm test && pnpm build && pnpm audit",
|
|
69
|
+
"check:skills": "node scripts/check-skill-drift.mjs",
|
|
69
70
|
"smoke": "node scripts/smoke-test.mjs"
|
|
70
71
|
}
|
|
71
72
|
}
|
|
@@ -31,18 +31,45 @@ export function generateAgentsMarkdown(
|
|
|
31
31
|
testE2E = `- Test (E2E / Browser): \`${pmAdapter.runCmd('test:e2e')}\``;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
// A source with an empty skill list (or `*`) installs every skill it ships.
|
|
35
|
+
const skillInstalled = (skill: string) =>
|
|
36
|
+
config.skills.sources.some(
|
|
37
|
+
(source) =>
|
|
38
|
+
source.skills.length === 0 || source.skills.includes('*') || source.skills.includes(skill)
|
|
39
|
+
);
|
|
40
|
+
const mattSkills = (() => {
|
|
41
|
+
const source = config.skills.sources.find((s) => s.package === 'mattpocock/skills');
|
|
42
|
+
if (!source) return [];
|
|
43
|
+
return source.skills.length ? source.skills : ['*'];
|
|
44
|
+
})();
|
|
45
|
+
const hasSkills = config.skills.sources.length > 0;
|
|
46
|
+
|
|
47
|
+
const specSkillNames = ['to-spec', 'to-tickets', 'implement-spec'];
|
|
48
|
+
let engineeringCapability = '';
|
|
49
|
+
if (mattSkills.includes('*')) {
|
|
50
|
+
engineeringCapability =
|
|
51
|
+
'- **Engineering**: the full Matt Pocock skill set installed in `.agents/skills/` — start with `ask-matt` to route to the right one.';
|
|
52
|
+
} else if (mattSkills.length) {
|
|
53
|
+
const engineering = mattSkills.filter((skill) => !specSkillNames.includes(skill));
|
|
54
|
+
if (engineering.length) {
|
|
55
|
+
engineeringCapability = `- **Engineering**: ${engineering.map((skill) => '`' + skill + '`').join(', ')}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let proseCapability = '';
|
|
60
|
+
if (skillInstalled('humanizer')) {
|
|
61
|
+
proseCapability =
|
|
62
|
+
'- **Prose & Copy**: Use `humanizer` skill to eliminate AI writing tells and refine documentation.';
|
|
63
|
+
}
|
|
64
|
+
|
|
38
65
|
let uiCapability = '';
|
|
39
|
-
if (isWeb &&
|
|
66
|
+
if (isWeb && skillInstalled('impeccable')) {
|
|
40
67
|
uiCapability =
|
|
41
68
|
'- **UI & Design**: Use `impeccable` skill for frontend polish, design critique, and token craft.';
|
|
42
69
|
}
|
|
43
70
|
|
|
44
71
|
let browserCapability = '';
|
|
45
|
-
if (hasVisualAgent &&
|
|
72
|
+
if (hasVisualAgent && skillInstalled('agent-browser')) {
|
|
46
73
|
browserCapability =
|
|
47
74
|
'- **Browser Verification**: Use `agent-browser` skill for interactive inspection and visual QA.';
|
|
48
75
|
}
|
|
@@ -53,12 +80,11 @@ export function generateAgentsMarkdown(
|
|
|
53
80
|
'- **Codebase Graph**: Use `graft ask "<query>" --source` or `graft map` for orientation before raw grep.';
|
|
54
81
|
}
|
|
55
82
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
83
|
+
const specCapability = skillInstalled('to-spec')
|
|
84
|
+
? '- **Spec & Tickets Workflow**: `to-spec`, `to-tickets`, `implement-spec`'
|
|
85
|
+
: '';
|
|
60
86
|
|
|
61
|
-
const sections = [
|
|
87
|
+
const sections: Array<string | undefined> = [
|
|
62
88
|
`# ${config.name}`,
|
|
63
89
|
'',
|
|
64
90
|
`AI-first ${config.preset} project configured with \`aginit\`.`,
|
|
@@ -70,24 +96,23 @@ export function generateAgentsMarkdown(
|
|
|
70
96
|
'',
|
|
71
97
|
'## Essential Commands',
|
|
72
98
|
`- Package Manager: \`${pm}\``,
|
|
73
|
-
devCommand,
|
|
74
|
-
hasCommand('build') ? `- Build: \`${pmAdapter.runCmd('build')}\`` :
|
|
75
|
-
hasCommand('typecheck') ? `- Typecheck: \`${pmAdapter.runCmd('typecheck')}\`` :
|
|
76
|
-
hasCommand('test') ? `- Test: \`${pmAdapter.runCmd('test')}\`` :
|
|
77
|
-
hasCommand('test:unit') ? `- Unit Test: \`${pmAdapter.runCmd('test:unit')}\`` :
|
|
78
|
-
testE2E,
|
|
99
|
+
devCommand || undefined,
|
|
100
|
+
hasCommand('build') ? `- Build: \`${pmAdapter.runCmd('build')}\`` : undefined,
|
|
101
|
+
hasCommand('typecheck') ? `- Typecheck: \`${pmAdapter.runCmd('typecheck')}\`` : undefined,
|
|
102
|
+
hasCommand('test') ? `- Test: \`${pmAdapter.runCmd('test')}\`` : undefined,
|
|
103
|
+
hasCommand('test:unit') ? `- Unit Test: \`${pmAdapter.runCmd('test:unit')}\`` : undefined,
|
|
104
|
+
testE2E || undefined,
|
|
79
105
|
'',
|
|
80
106
|
'## AI Capabilities & Skills',
|
|
81
|
-
|
|
107
|
+
hasSkills
|
|
82
108
|
? 'Configured skills install into `.agents/skills/` (shared by Antigravity and Codex):'
|
|
83
109
|
: 'Skills installation is disabled in this configuration.',
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
graftCapability,
|
|
110
|
+
engineeringCapability || undefined,
|
|
111
|
+
proseCapability || undefined,
|
|
112
|
+
specCapability || undefined,
|
|
113
|
+
uiCapability || undefined,
|
|
114
|
+
browserCapability || undefined,
|
|
115
|
+
graftCapability || undefined,
|
|
91
116
|
'',
|
|
92
117
|
'## Bootstrap & First Session',
|
|
93
118
|
'When the user asks to "bootstrap this project" or kicks off a new initiative:',
|
|
@@ -97,9 +122,11 @@ export function generateAgentsMarkdown(
|
|
|
97
122
|
''
|
|
98
123
|
];
|
|
99
124
|
|
|
125
|
+
// Conditional lines are `undefined` and dropped; `''` entries are the blank
|
|
126
|
+
// separators between sections and must survive.
|
|
100
127
|
return (
|
|
101
128
|
sections
|
|
102
|
-
.filter((s) => s !==
|
|
129
|
+
.filter((s): s is string => s !== undefined)
|
|
103
130
|
.join('\n')
|
|
104
131
|
.trim() + '\n'
|
|
105
132
|
);
|
package/src/adapters/git.ts
CHANGED
package/src/adapters/skills.ts
CHANGED
|
@@ -81,25 +81,28 @@ export async function installAllSkills(
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
export function getInstalledSkills(targetDir: string): string[] {
|
|
84
|
+
// The lockfile only records what the skills CLI installed through aginit;
|
|
85
|
+
// skills added by hand live on disk only, so report the union of both.
|
|
86
|
+
const installed = new Set<string>();
|
|
87
|
+
|
|
84
88
|
const lockPath = path.join(targetDir, 'skills-lock.json');
|
|
85
89
|
if (fileExists(lockPath)) {
|
|
86
90
|
const lock = readJsonFile<SkillsLockFile>(lockPath);
|
|
87
|
-
|
|
88
|
-
return Object.keys(lock.skills);
|
|
89
|
-
}
|
|
91
|
+
for (const name of Object.keys(lock?.skills ?? {})) installed.add(name);
|
|
90
92
|
}
|
|
91
93
|
|
|
92
|
-
// Check .agents/skills directory directly
|
|
93
94
|
const skillsDir = path.join(targetDir, '.agents', 'skills');
|
|
94
95
|
if (fileExists(skillsDir)) {
|
|
95
96
|
try {
|
|
96
|
-
|
|
97
|
+
for (const entry of fs.readdirSync(skillsDir)) {
|
|
98
|
+
if (!entry.startsWith('.')) installed.add(entry);
|
|
99
|
+
}
|
|
97
100
|
} catch {
|
|
98
|
-
|
|
101
|
+
// Unreadable directory: keep whatever the lockfile reported.
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
|
|
102
|
-
return [];
|
|
105
|
+
return [...installed];
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
export async function updateSkills(
|
package/src/cli/doctor.ts
CHANGED
|
@@ -198,18 +198,20 @@ export async function runDoctor(targetDir: string = process.cwd()): Promise<void
|
|
|
198
198
|
|
|
199
199
|
// 9. Installed skills check
|
|
200
200
|
const installedSkills = getInstalledSkills(targetDir);
|
|
201
|
+
const skillsDisabled = projectConfig !== null && projectConfig.skills.sources.length === 0;
|
|
201
202
|
checks.push({
|
|
202
203
|
name: 'Local Agent Skills (.agents/skills/)',
|
|
203
204
|
category: 'Project Config',
|
|
204
|
-
ok: installedSkills.length > 0,
|
|
205
|
-
detail:
|
|
206
|
-
|
|
205
|
+
ok: skillsDisabled || installedSkills.length > 0,
|
|
206
|
+
detail: skillsDisabled
|
|
207
|
+
? 'Disabled in configuration (skills.sources is empty)'
|
|
208
|
+
: installedSkills.length > 0
|
|
207
209
|
? `${installedSkills.length} skills installed: ${installedSkills.join(', ')}`
|
|
208
210
|
: 'No skills found in .agents/skills/',
|
|
209
211
|
suggestion:
|
|
210
|
-
installedSkills.length
|
|
211
|
-
?
|
|
212
|
-
:
|
|
212
|
+
skillsDisabled || installedSkills.length > 0
|
|
213
|
+
? undefined
|
|
214
|
+
: 'Run `aginit init` or `npx skills add ...` to install skills'
|
|
213
215
|
});
|
|
214
216
|
|
|
215
217
|
// Print grouped results
|
package/src/cli/main.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
2
3
|
import { createProject } from './new.js';
|
|
3
4
|
import { initCurrentDirectory } from './init.js';
|
|
4
5
|
import { runDoctor } from './doctor.js';
|
|
@@ -14,15 +15,26 @@ import {
|
|
|
14
15
|
runInteractiveWizard
|
|
15
16
|
} from './wizard.js';
|
|
16
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Read the version from package.json so releases only bump one place.
|
|
20
|
+
* Resolves from `src/cli/main.ts` and from `dist/cli/main.js` alike.
|
|
21
|
+
*/
|
|
22
|
+
function readVersion(): string {
|
|
23
|
+
try {
|
|
24
|
+
const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
25
|
+
return typeof pkg.version === 'string' ? pkg.version : '0.0.0';
|
|
26
|
+
} catch {
|
|
27
|
+
return '0.0.0';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
17
31
|
export function createCliProgram(): Command {
|
|
18
32
|
const program = new Command();
|
|
19
33
|
|
|
20
34
|
program
|
|
21
35
|
.name('aginit')
|
|
22
|
-
.description(
|
|
23
|
-
|
|
24
|
-
)
|
|
25
|
-
.version('0.1.0');
|
|
36
|
+
.description('Minimal, modular AI-first project bootstrapper for AI coding agents')
|
|
37
|
+
.version(readVersion());
|
|
26
38
|
|
|
27
39
|
// Root action: interactive wizard when in TTY, else display help
|
|
28
40
|
program.action(async () => {
|
|
@@ -40,10 +52,6 @@ export function createCliProgram(): Command {
|
|
|
40
52
|
.option('-p, --preset <preset>', 'Project preset: web | cli | generic', 'generic')
|
|
41
53
|
.option('-f, --framework <framework>', 'Web framework: none | vite | next | existing', 'none')
|
|
42
54
|
.option('-m, --package-manager <pm>', 'Package manager: pnpm | npm | yarn | bun', 'pnpm')
|
|
43
|
-
.option(
|
|
44
|
-
'--spec-workflow',
|
|
45
|
-
'Include full spec and tickets skills (to-spec, to-tickets, implement-spec)'
|
|
46
|
-
)
|
|
47
55
|
.option('--no-skills', 'Skip installing AI skills')
|
|
48
56
|
.option('--no-graft', 'Skip codebase graph (Graft) setup')
|
|
49
57
|
.option('--no-git', 'Skip git repository initialization')
|
|
@@ -53,7 +61,6 @@ export function createCliProgram(): Command {
|
|
|
53
61
|
let finalPreset = options.preset;
|
|
54
62
|
let finalFramework = options.framework;
|
|
55
63
|
let finalPackageManager = options.packageManager;
|
|
56
|
-
let finalSpecWorkflow = options.specWorkflow;
|
|
57
64
|
|
|
58
65
|
if (!finalName) {
|
|
59
66
|
if (!isInteractive()) {
|
|
@@ -71,24 +78,18 @@ export function createCliProgram(): Command {
|
|
|
71
78
|
packageManager:
|
|
72
79
|
command.getOptionValueSource('packageManager') === 'cli'
|
|
73
80
|
? (options.packageManager as PackageManager)
|
|
74
|
-
: undefined,
|
|
75
|
-
specWorkflow:
|
|
76
|
-
command.getOptionValueSource('specWorkflow') === 'cli'
|
|
77
|
-
? options.specWorkflow
|
|
78
81
|
: undefined
|
|
79
82
|
});
|
|
80
83
|
finalName = answers.projectName;
|
|
81
84
|
finalPreset = answers.preset;
|
|
82
85
|
finalFramework = answers.framework;
|
|
83
86
|
finalPackageManager = answers.packageManager;
|
|
84
|
-
finalSpecWorkflow = answers.specWorkflow;
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
const complete = await createProject(finalName, {
|
|
88
90
|
preset: finalPreset as PresetType,
|
|
89
91
|
framework: finalFramework as WebFramework,
|
|
90
92
|
packageManager: finalPackageManager as PackageManager,
|
|
91
|
-
specWorkflow: finalSpecWorkflow,
|
|
92
93
|
skills: options.skills,
|
|
93
94
|
graft: options.graft,
|
|
94
95
|
git: options.git,
|
|
@@ -104,10 +105,6 @@ export function createCliProgram(): Command {
|
|
|
104
105
|
.option('-p, --preset <preset>', 'Project preset: web | cli | generic')
|
|
105
106
|
.option('-f, --framework <framework>', 'Web framework: none | vite | next | existing')
|
|
106
107
|
.option('-m, --package-manager <pm>', 'Package manager: pnpm | npm | yarn | bun')
|
|
107
|
-
.option(
|
|
108
|
-
'--spec-workflow',
|
|
109
|
-
'Include full spec and tickets skills (to-spec, to-tickets, implement-spec)'
|
|
110
|
-
)
|
|
111
108
|
.option('--no-skills', 'Skip installing AI skills')
|
|
112
109
|
.option('--no-graft', 'Skip codebase graph (Graft) setup')
|
|
113
110
|
.option('--no-git', 'Skip git repository initialization')
|
|
@@ -116,32 +113,27 @@ export function createCliProgram(): Command {
|
|
|
116
113
|
let finalPreset = options.preset;
|
|
117
114
|
let finalFramework = options.framework;
|
|
118
115
|
let finalPackageManager = options.packageManager;
|
|
119
|
-
let finalSpecWorkflow = options.specWorkflow;
|
|
120
116
|
|
|
121
117
|
const isPresetExplicit = command.getOptionValueSource('preset') === 'cli';
|
|
122
118
|
const isFrameworkExplicit = command.getOptionValueSource('framework') === 'cli';
|
|
123
119
|
const isPmExplicit = command.getOptionValueSource('packageManager') === 'cli';
|
|
124
|
-
const isSpecExplicit = command.getOptionValueSource('specWorkflow') === 'cli';
|
|
125
120
|
|
|
126
121
|
const savedConfig = readProjectConfig(process.cwd());
|
|
127
122
|
if (isInteractive() && !isPresetExplicit && !options.dryRun && !savedConfig) {
|
|
128
123
|
const answers = await promptInitProject({
|
|
129
124
|
preset: isPresetExplicit ? (options.preset as PresetType) : undefined,
|
|
130
125
|
framework: isFrameworkExplicit ? (options.framework as WebFramework) : undefined,
|
|
131
|
-
packageManager: isPmExplicit ? (options.packageManager as PackageManager) : undefined
|
|
132
|
-
specWorkflow: isSpecExplicit ? options.specWorkflow : undefined
|
|
126
|
+
packageManager: isPmExplicit ? (options.packageManager as PackageManager) : undefined
|
|
133
127
|
});
|
|
134
128
|
finalPreset = answers.preset;
|
|
135
129
|
finalFramework = answers.framework;
|
|
136
130
|
finalPackageManager = answers.packageManager;
|
|
137
|
-
finalSpecWorkflow = answers.specWorkflow;
|
|
138
131
|
}
|
|
139
132
|
|
|
140
133
|
const complete = await initCurrentDirectory({
|
|
141
134
|
preset: finalPreset as PresetType,
|
|
142
135
|
framework: finalFramework as WebFramework,
|
|
143
136
|
packageManager: finalPackageManager as PackageManager,
|
|
144
|
-
specWorkflow: finalSpecWorkflow,
|
|
145
137
|
skills: options.skills,
|
|
146
138
|
graft: options.graft,
|
|
147
139
|
git: options.git,
|