@nexus-framework/cli 0.2.1 → 0.3.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 +64 -7
- package/dist/cli.js +82 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/pack.d.ts +28 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +206 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/skill.d.ts +53 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +371 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/update.d.ts +24 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +100 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/generators/ai-config.js +40 -1
- package/dist/generators/ai-config.js.map +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +38 -2
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/skills.d.ts +32 -0
- package/dist/generators/skills.d.ts.map +1 -0
- package/dist/generators/skills.js +220 -0
- package/dist/generators/skills.js.map +1 -0
- package/dist/generators/structure.d.ts.map +1 -1
- package/dist/generators/structure.js +42 -3
- package/dist/generators/structure.js.map +1 -1
- package/dist/prompts/frameworks.js +1 -1
- package/dist/prompts/frameworks.js.map +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +17 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/skill-config.d.ts +19 -0
- package/dist/prompts/skill-config.d.ts.map +1 -0
- package/dist/prompts/skill-config.js +22 -0
- package/dist/prompts/skill-config.js.map +1 -0
- package/dist/types/config.d.ts +3 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/file-system.d.ts +4 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +12 -0
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/update-check.d.ts +27 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +111 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -2
package/dist/generators/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { generateCiCd } from './ci-cd.js';
|
|
|
14
14
|
import { generateConfigs } from './config.js';
|
|
15
15
|
import { generateDocs } from './docs.js';
|
|
16
16
|
import { generateLandingPage } from './landing-page.js';
|
|
17
|
+
import { generateSkills } from './skills.js';
|
|
17
18
|
import { generateSpringBootFiles } from './spring-boot.js';
|
|
18
19
|
import { generateDirectories, generatePackageJson, generateGitignore, generateReadme, } from './structure.js';
|
|
19
20
|
import { generateTests } from './tests.js';
|
|
@@ -36,6 +37,7 @@ export async function generateProject(config) {
|
|
|
36
37
|
...generateCiCd(config),
|
|
37
38
|
...generateLandingPage(config),
|
|
38
39
|
...generateAiConfig(config),
|
|
40
|
+
...generateSkills(config),
|
|
39
41
|
];
|
|
40
42
|
// Add Spring Boot files if backend is Spring Boot
|
|
41
43
|
if (config.backendFramework === 'spring-boot') {
|
|
@@ -104,13 +106,18 @@ export async function adoptProject(targetDir, projectInfo, adoptionContext) {
|
|
|
104
106
|
{ path: '.nexus' },
|
|
105
107
|
{ path: '.nexus/docs' },
|
|
106
108
|
{ path: '.nexus/ai' },
|
|
109
|
+
{ path: '.nexus/skills' },
|
|
110
|
+
{ path: '.nexus/skills/core' },
|
|
111
|
+
{ path: '.nexus/skills/custom' },
|
|
112
|
+
{ path: '.nexus/skills/community' },
|
|
107
113
|
{ path: '.github' },
|
|
108
114
|
];
|
|
109
|
-
// Files to generate — docs + AI config
|
|
115
|
+
// Files to generate — docs + AI config + skills
|
|
110
116
|
// Pass adoption context to docs generator for pre-filling
|
|
111
117
|
const files = [
|
|
112
118
|
...generateDocs(config, adoptionContext.localOnly, adoptionContext),
|
|
113
119
|
...generateAiConfig(config),
|
|
120
|
+
...generateSkills(config),
|
|
114
121
|
];
|
|
115
122
|
// If local-only mode, add .nexus/ to .gitignore
|
|
116
123
|
if (adoptionContext.localOnly) {
|
|
@@ -195,6 +202,10 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
195
202
|
{ path: '.nexus' },
|
|
196
203
|
{ path: '.nexus/docs' },
|
|
197
204
|
{ path: '.nexus/ai' },
|
|
205
|
+
{ path: '.nexus/skills' },
|
|
206
|
+
{ path: '.nexus/skills/core' },
|
|
207
|
+
{ path: '.nexus/skills/custom' },
|
|
208
|
+
{ path: '.nexus/skills/community' },
|
|
198
209
|
{ path: '.github' },
|
|
199
210
|
];
|
|
200
211
|
for (const dir of directories) {
|
|
@@ -204,6 +215,7 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
204
215
|
const freshFiles = [
|
|
205
216
|
...generateDocs(config),
|
|
206
217
|
...generateAiConfig(config),
|
|
218
|
+
...generateSkills(config),
|
|
207
219
|
];
|
|
208
220
|
const result = {
|
|
209
221
|
replaced: [],
|
|
@@ -214,6 +226,18 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
214
226
|
for (const file of freshFiles) {
|
|
215
227
|
const fullPath = path.join(targetDir, file.path);
|
|
216
228
|
const exists = await fileExists(fullPath);
|
|
229
|
+
// ── Skills: custom/ is SACRED — never read, never written, never deleted ──
|
|
230
|
+
if (file.path.startsWith('.nexus/skills/custom/')) {
|
|
231
|
+
// Only create if it doesn't exist yet (first init)
|
|
232
|
+
if (!exists) {
|
|
233
|
+
await writeFile(fullPath, file.content);
|
|
234
|
+
result.created.push(file.path);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
result.preserved.push(file.path);
|
|
238
|
+
}
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
217
241
|
// ── Missing file → always create ──
|
|
218
242
|
if (!exists) {
|
|
219
243
|
await writeFile(fullPath, file.content);
|
|
@@ -224,7 +248,7 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
224
248
|
const existingContent = await readFile(fullPath);
|
|
225
249
|
const content = existingContent ?? '';
|
|
226
250
|
const corrupted = isCorrupted(file.path, content);
|
|
227
|
-
// ── Corrupted → always repair (both modes) ──
|
|
251
|
+
// ── Corrupted → always repair (both modes) — except custom/ skills ──
|
|
228
252
|
if (corrupted) {
|
|
229
253
|
await writeFile(fullPath, file.content);
|
|
230
254
|
result.repaired.push(file.path);
|
|
@@ -246,6 +270,18 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
246
270
|
result.preserved.push(file.path);
|
|
247
271
|
continue;
|
|
248
272
|
}
|
|
273
|
+
// Skills: core/ and README are always replaced on upgrade (regenerated from latest templates)
|
|
274
|
+
// community/ skills are preserved — reinstallable via `nexus skill install`
|
|
275
|
+
if (file.path.startsWith('.nexus/skills/community/')) {
|
|
276
|
+
result.preserved.push(file.path);
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
if (file.path.startsWith('.nexus/skills/')) {
|
|
280
|
+
// core/ skills and README.md — replace on upgrade, preserve on repair
|
|
281
|
+
await writeFile(fullPath, file.content);
|
|
282
|
+
result.replaced.push(file.path);
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
249
285
|
// Smart check for docs with frontmatter
|
|
250
286
|
if (isPopulated(content)) {
|
|
251
287
|
result.preserved.push(file.path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAmB;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/D,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,WAAW,GAAyB,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAoB;YAC7B,mBAAmB,CAAC,MAAM,CAAC;YAC3B,iBAAiB,EAAE;YACnB,cAAc,CAAC,MAAM,CAAC;YACtB,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;YAClD,GAAG,eAAe,CAAC,MAAM,CAAC;YAC1B,GAAG,aAAa,CAAC,MAAM,CAAC;YACxB,GAAG,YAAY,CAAC,MAAM,CAAC;YACvB,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC9B,GAAG,gBAAgB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAmB;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/D,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,WAAW,GAAyB,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAoB;YAC7B,mBAAmB,CAAC,MAAM,CAAC;YAC3B,iBAAiB,EAAE;YACnB,cAAc,CAAC,MAAM,CAAC;YACtB,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;YAClD,GAAG,eAAe,CAAC,MAAM,CAAC;YAC1B,GAAG,aAAa,CAAC,MAAM,CAAC;YACxB,GAAG,YAAY,CAAC,MAAM,CAAC;YACvB,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC9B,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC3B,GAAG,cAAc,CAAC,MAAM,CAAC;SAC1B,CAAC;QAEF,kDAAkD;QAClD,IAAI,MAAM,CAAC,gBAAgB,KAAK,aAAa,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,2BAA2B;QAC3B,MAAM,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE5D,gDAAgD;QAChD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,qDAAqD,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAEhD,uBAAuB;QACvB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,GAAG,CAAC,gCAAgC,MAAM,CAAC,cAAc,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAE/F,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7C,cAAc,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,QAAQ;QACR,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;oEAEoE;AAEpE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,WAAwB,EACxB,eAAgC;IAEhC,MAAM,OAAO,GAAG,GAAG,CAAC,+CAA+C,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7E,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAEzE,wBAAwB;QACxB,MAAM,WAAW,GAAyB;YACxC,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClB,EAAE,IAAI,EAAE,aAAa,EAAE;YACvB,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,eAAe,EAAE;YACzB,EAAE,IAAI,EAAE,oBAAoB,EAAE;YAC9B,EAAE,IAAI,EAAE,sBAAsB,EAAE;YAChC,EAAE,IAAI,EAAE,yBAAyB,EAAE;YACnC,EAAE,IAAI,EAAE,SAAS,EAAE;SACpB,CAAC;QAEF,gDAAgD;QAChD,0DAA0D;QAC1D,MAAM,KAAK,GAAoB;YAC7B,GAAG,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC;YACnE,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC3B,GAAG,cAAc,CAAC,MAAM,CAAC;SAC1B,CAAC;QAEF,gDAAgD;QAChD,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,GAAG,qDAAqD,CAAC;QACvE,CAAC;QAED,gBAAgB;QAChB,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1D,OAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AA6BD,mFAAmF;AACnF,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,2BAA2B;IAC3B,iBAAiB;IACjB,sBAAsB;IACtB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,WAAW;IACX,iCAAiC;CAClC,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,0BAA0B;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,6CAA6C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAe;IAC3D,2BAA2B;IAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,wBAAwB;IACxB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,yBAAyB;QACzB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,MAAmB,EACnB,IAAmB;IAEnB,2BAA2B;IAC3B,MAAM,WAAW,GAAyB;QACxC,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClB,EAAE,IAAI,EAAE,aAAa,EAAE;QACvB,EAAE,IAAI,EAAE,WAAW,EAAE;QACrB,EAAE,IAAI,EAAE,eAAe,EAAE;QACzB,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC9B,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAChC,EAAE,IAAI,EAAE,yBAAyB,EAAE;QACnC,EAAE,IAAI,EAAE,SAAS,EAAE;KACpB,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAoB;QAClC,GAAG,YAAY,CAAC,MAAM,CAAC;QACvB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC3B,GAAG,cAAc,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,6EAA6E;QAC7E,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAClD,mDAAmD;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,SAAS;QACX,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,eAAe,IAAI,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAElD,uEAAuE;QACvE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,yDAAyD;QAEzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,8CAA8C;YAC9C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,iDAAiD;QAEjD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,8FAA8F;QAC9F,4EAA4E;QAC5E,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,sEAAsE;YACtE,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAcD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,MAAmB;IAEnB,OAAO,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,MAAmB;IAEnB,OAAO,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,SAAiB,EACjB,IAAiB,EACjB,gBAAiC;IAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC;QAChC,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,EAAE;QACf,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,eAAe,EAAE,YAAY;QAC7B,gBAAgB,EAAE,MAAM;QACxB,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;QACnD,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;QACtD,GAAG,EAAE,IAAI;QACT,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,eAAe;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,QAAuB;IAC3C,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;IAEvF,IAAI,QAAQ,IAAK,KAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,OAAO,QAAc,CAAC;IACxB,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,eAAe;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAuB;IAC/C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvC,OAAO,QAAQ,CAAC,CAAC,UAAU;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB;IAChD,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,wCAAwC,CAAC;IAEvD,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,qBAAqB;YACrB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS CLI - Skills Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates the `.nexus/skills/` directory structure for a project.
|
|
5
|
+
* Skill content is sourced from the live `@nexus-framework/skills` npm package.
|
|
6
|
+
*
|
|
7
|
+
* What it creates:
|
|
8
|
+
* .nexus/skills/README.md — agent-readable index of all installed skills
|
|
9
|
+
* .nexus/skills/core/<skill>.md — framework-matched skill files (replaceable on upgrade)
|
|
10
|
+
* .nexus/skills/custom/README.md — placeholder with instructions for user-created skills
|
|
11
|
+
*
|
|
12
|
+
* Ownership rules:
|
|
13
|
+
* - core/ is owned by NEXUS — regenerated on upgrade
|
|
14
|
+
* - custom/ is owned by the user — NEVER touched by NEXUS (only created once)
|
|
15
|
+
* - community/ is created empty — populated by `nexus skill install`
|
|
16
|
+
*/
|
|
17
|
+
import type { NexusConfig } from '../types/config.js';
|
|
18
|
+
import type { GeneratedFile } from '../types/templates.js';
|
|
19
|
+
/**
|
|
20
|
+
* Generate all `.nexus/skills/` files for the project.
|
|
21
|
+
* Content is read live from `@nexus-framework/skills`.
|
|
22
|
+
*
|
|
23
|
+
* Returns an empty array if `config.enableSkills` is explicitly false.
|
|
24
|
+
* Defaults to generating skills when enableSkills is undefined (default on).
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateSkills(config: NexusConfig): GeneratedFile[];
|
|
27
|
+
/**
|
|
28
|
+
* List all skill slugs that will be generated for a given framework.
|
|
29
|
+
* Used by upgrade/repair reconcile logic to know which core files exist.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getCoreSkillSlugs(framework: NexusConfig['frontendFramework']): string[];
|
|
32
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/generators/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA+B3D;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAsCnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,MAAM,EAAE,CAQvF"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS CLI - Skills Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates the `.nexus/skills/` directory structure for a project.
|
|
5
|
+
* Skill content is sourced from the live `@nexus-framework/skills` npm package.
|
|
6
|
+
*
|
|
7
|
+
* What it creates:
|
|
8
|
+
* .nexus/skills/README.md — agent-readable index of all installed skills
|
|
9
|
+
* .nexus/skills/core/<skill>.md — framework-matched skill files (replaceable on upgrade)
|
|
10
|
+
* .nexus/skills/custom/README.md — placeholder with instructions for user-created skills
|
|
11
|
+
*
|
|
12
|
+
* Ownership rules:
|
|
13
|
+
* - core/ is owned by NEXUS — regenerated on upgrade
|
|
14
|
+
* - custom/ is owned by the user — NEVER touched by NEXUS (only created once)
|
|
15
|
+
* - community/ is created empty — populated by `nexus skill install`
|
|
16
|
+
*/
|
|
17
|
+
import { getSkillContent, listSkills } from '@nexus-framework/skills';
|
|
18
|
+
/* ──────────────────────────────────────────────────────────────
|
|
19
|
+
* Framework name mapping
|
|
20
|
+
* CLI config uses 'nextjs'; the skills package uses 'next.js'
|
|
21
|
+
* ────────────────────────────────────────────────────────────── */
|
|
22
|
+
const FRAMEWORK_TO_SKILLS_DIR = {
|
|
23
|
+
nextjs: 'next.js',
|
|
24
|
+
'react-vite': 'react-vite',
|
|
25
|
+
sveltekit: 'sveltekit',
|
|
26
|
+
nuxt: 'nuxt',
|
|
27
|
+
astro: 'astro',
|
|
28
|
+
remix: 'remix',
|
|
29
|
+
none: 'shared',
|
|
30
|
+
};
|
|
31
|
+
const FRAMEWORK_LABELS = {
|
|
32
|
+
nextjs: 'Next.js',
|
|
33
|
+
'react-vite': 'React + Vite',
|
|
34
|
+
sveltekit: 'SvelteKit',
|
|
35
|
+
nuxt: 'Nuxt 3',
|
|
36
|
+
astro: 'Astro',
|
|
37
|
+
remix: 'Remix',
|
|
38
|
+
none: 'Framework-Agnostic',
|
|
39
|
+
};
|
|
40
|
+
/* ──────────────────────────────────────────────────────────────
|
|
41
|
+
* Public API
|
|
42
|
+
* ────────────────────────────────────────────────────────────── */
|
|
43
|
+
/**
|
|
44
|
+
* Generate all `.nexus/skills/` files for the project.
|
|
45
|
+
* Content is read live from `@nexus-framework/skills`.
|
|
46
|
+
*
|
|
47
|
+
* Returns an empty array if `config.enableSkills` is explicitly false.
|
|
48
|
+
* Defaults to generating skills when enableSkills is undefined (default on).
|
|
49
|
+
*/
|
|
50
|
+
export function generateSkills(config) {
|
|
51
|
+
if (config.enableSkills === false)
|
|
52
|
+
return [];
|
|
53
|
+
const framework = config.frontendFramework;
|
|
54
|
+
const skillsDir = FRAMEWORK_TO_SKILLS_DIR[framework] ?? 'shared';
|
|
55
|
+
const files = [];
|
|
56
|
+
// ── Framework-specific core skills ──────────────────────────
|
|
57
|
+
const frameworkSlugs = listSkills(skillsDir);
|
|
58
|
+
for (const slug of frameworkSlugs) {
|
|
59
|
+
const content = getSkillContent(skillsDir, slug);
|
|
60
|
+
if (content) {
|
|
61
|
+
files.push({ path: `.nexus/skills/core/${slug}.md`, content });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// ── Shared skills (always installed) ────────────────────────
|
|
65
|
+
// Skip if the framework IS shared (avoids duplicates for 'none')
|
|
66
|
+
if (skillsDir !== 'shared') {
|
|
67
|
+
const sharedSlugs = listSkills('shared');
|
|
68
|
+
for (const slug of sharedSlugs) {
|
|
69
|
+
// Only add if not already provided by framework pack
|
|
70
|
+
if (!frameworkSlugs.includes(slug)) {
|
|
71
|
+
const content = getSkillContent('shared', slug);
|
|
72
|
+
if (content) {
|
|
73
|
+
files.push({ path: `.nexus/skills/core/${slug}.md`, content });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// ── Custom skills placeholder (never overwritten) ───────────
|
|
79
|
+
files.push(generateCustomReadme());
|
|
80
|
+
// ── Skills README index (always regenerated) ───────────────
|
|
81
|
+
files.push(generateSkillsReadme(framework, skillsDir));
|
|
82
|
+
return files;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* List all skill slugs that will be generated for a given framework.
|
|
86
|
+
* Used by upgrade/repair reconcile logic to know which core files exist.
|
|
87
|
+
*/
|
|
88
|
+
export function getCoreSkillSlugs(framework) {
|
|
89
|
+
const skillsDir = FRAMEWORK_TO_SKILLS_DIR[framework] ?? 'shared';
|
|
90
|
+
const frameworkSlugs = listSkills(skillsDir);
|
|
91
|
+
if (skillsDir === 'shared')
|
|
92
|
+
return frameworkSlugs;
|
|
93
|
+
const sharedSlugs = listSkills('shared').filter((s) => !frameworkSlugs.includes(s));
|
|
94
|
+
return [...frameworkSlugs, ...sharedSlugs];
|
|
95
|
+
}
|
|
96
|
+
/* ──────────────────────────────────────────────────────────────
|
|
97
|
+
* Skills README index (.nexus/skills/README.md)
|
|
98
|
+
* ────────────────────────────────────────────────────────────── */
|
|
99
|
+
function generateSkillsReadme(framework, skillsDir) {
|
|
100
|
+
const frameworkLabel = FRAMEWORK_LABELS[framework] ?? framework;
|
|
101
|
+
const allSlugs = getCoreSkillSlugs(framework);
|
|
102
|
+
const coreRows = allSlugs
|
|
103
|
+
.map((slug) => `| \`${slug}\` | [read](.nexus/skills/core/${slug}.md) |`)
|
|
104
|
+
.join('\n');
|
|
105
|
+
const content = `# NEXUS Skills Index
|
|
106
|
+
|
|
107
|
+
> Auto-generated by NEXUS CLI. Sourced from \`@nexus-framework/skills@0.1.0\`.
|
|
108
|
+
> Run \`nexus upgrade\` to refresh core skills to the latest version.
|
|
109
|
+
> Add your own skills in \`custom/\` using \`nexus skill new <name>\`.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## What Are Skills?
|
|
114
|
+
|
|
115
|
+
Skills are pre-read instruction files that tell AI agents **how to execute tasks** in this
|
|
116
|
+
specific project. Before performing any significant task, your AI agent checks this directory
|
|
117
|
+
for a matching skill and reads it fully before starting.
|
|
118
|
+
|
|
119
|
+
**Skills live in three directories:**
|
|
120
|
+
|
|
121
|
+
| Directory | Owner | Updated By |
|
|
122
|
+
|-----------|-------|------------|
|
|
123
|
+
| \`core/\` | NEXUS | Regenerated by \`nexus upgrade\` |
|
|
124
|
+
| \`custom/\` | You | **Never touched by NEXUS** |
|
|
125
|
+
| \`community/\` | Registry | \`nexus skill install <pkg>\` |
|
|
126
|
+
|
|
127
|
+
**Precedence: \`custom/\` overrides \`core/\`, which overrides \`community/\`.**
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Core Skills (${frameworkLabel})
|
|
132
|
+
|
|
133
|
+
> Sourced from \`@nexus-framework/skills\` — framework: \`${skillsDir}\` + \`shared\`
|
|
134
|
+
|
|
135
|
+
| Skill | File |
|
|
136
|
+
|-------|------|
|
|
137
|
+
${coreRows}
|
|
138
|
+
|
|
139
|
+
## Custom Skills
|
|
140
|
+
|
|
141
|
+
No custom skills yet. Run \`nexus skill new <name>\` to create one.
|
|
142
|
+
|
|
143
|
+
Custom skills live in \`.nexus/skills/custom/\` and are **never overwritten** by NEXUS.
|
|
144
|
+
|
|
145
|
+
## Community Skills
|
|
146
|
+
|
|
147
|
+
No community skills installed. Run \`nexus skill install <pkg>\` to install from the registry.
|
|
148
|
+
`;
|
|
149
|
+
return { path: '.nexus/skills/README.md', content };
|
|
150
|
+
}
|
|
151
|
+
/* ──────────────────────────────────────────────────────────────
|
|
152
|
+
* Custom skills placeholder
|
|
153
|
+
* ────────────────────────────────────────────────────────────── */
|
|
154
|
+
function generateCustomReadme() {
|
|
155
|
+
const content = `# Custom Skills
|
|
156
|
+
|
|
157
|
+
This directory is for **your** project-specific skills.
|
|
158
|
+
|
|
159
|
+
NEXUS will **never** read from, write to, or delete files in this directory.
|
|
160
|
+
It is entirely owned by you.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## How to Create a Custom Skill
|
|
165
|
+
|
|
166
|
+
Run:
|
|
167
|
+
\`\`\`
|
|
168
|
+
nexus skill new <name>
|
|
169
|
+
\`\`\`
|
|
170
|
+
|
|
171
|
+
This will scaffold a new skill file with the correct frontmatter and section structure.
|
|
172
|
+
|
|
173
|
+
## Skill File Format
|
|
174
|
+
|
|
175
|
+
Every skill must have YAML frontmatter:
|
|
176
|
+
|
|
177
|
+
\`\`\`markdown
|
|
178
|
+
---
|
|
179
|
+
skill: your-skill-slug
|
|
180
|
+
version: 1.0.0
|
|
181
|
+
framework: shared
|
|
182
|
+
category: ui
|
|
183
|
+
triggers:
|
|
184
|
+
- "phrase that activates this skill"
|
|
185
|
+
- "another trigger phrase"
|
|
186
|
+
author: your-name
|
|
187
|
+
status: draft
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
# Skill: Title
|
|
191
|
+
|
|
192
|
+
## When to Read This
|
|
193
|
+
...
|
|
194
|
+
|
|
195
|
+
## Steps
|
|
196
|
+
1. ...
|
|
197
|
+
|
|
198
|
+
## Patterns We Use
|
|
199
|
+
...
|
|
200
|
+
|
|
201
|
+
## Anti-Patterns — Never Do This
|
|
202
|
+
...
|
|
203
|
+
|
|
204
|
+
## Example
|
|
205
|
+
...
|
|
206
|
+
\`\`\`
|
|
207
|
+
|
|
208
|
+
## Status Values
|
|
209
|
+
|
|
210
|
+
- \`active\` — AI agents must follow this skill
|
|
211
|
+
- \`draft\` — Guidance only; not yet enforced
|
|
212
|
+
- \`deprecated\` — Outdated; flag for update
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
*Add your skills here. They take precedence over core and community skills.*
|
|
217
|
+
`;
|
|
218
|
+
return { path: '.nexus/skills/custom/README.md', content };
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/generators/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/generators/structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/generators/structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAmG7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAgFtE;AAgND;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAqCjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CA0CjE"}
|
|
@@ -17,8 +17,12 @@ export function generateDirectories(config) {
|
|
|
17
17
|
const packagePath = `com/example/${config.projectName.replace(/-/g, '')}`;
|
|
18
18
|
dirs.push({ path: 'src' }, { path: 'src/main' }, { path: 'src/main/java' }, { path: `src/main/java/${packagePath}` }, { path: `src/main/java/${packagePath}/controller` }, { path: 'src/main/resources' }, { path: 'src/test' }, { path: 'src/test/java' }, { path: `src/test/java/${packagePath}` });
|
|
19
19
|
}
|
|
20
|
+
else if (config.projectType === 'api') {
|
|
21
|
+
// API-only projects (Node.js-based)
|
|
22
|
+
dirs.push({ path: 'src' }, { path: 'src/routes' }, { path: 'src/controllers' }, { path: 'src/services' }, { path: 'src/models' }, { path: 'src/middleware' }, { path: 'src/utils' });
|
|
23
|
+
}
|
|
20
24
|
else {
|
|
21
|
-
//
|
|
25
|
+
// Regular web projects
|
|
22
26
|
dirs.push({ path: 'src' }, { path: 'public' });
|
|
23
27
|
}
|
|
24
28
|
// UI Library specific structure
|
|
@@ -31,8 +35,8 @@ export function generateDirectories(config) {
|
|
|
31
35
|
}
|
|
32
36
|
// CI/CD
|
|
33
37
|
dirs.push({ path: '.github' }, { path: '.github/workflows' });
|
|
34
|
-
// Framework-specific (skip if Spring Boot
|
|
35
|
-
if (config.backendFramework !== 'spring-boot' && config.projectType !== 'ui-library') {
|
|
38
|
+
// Framework-specific (skip if Spring Boot, UI library, or API-only)
|
|
39
|
+
if (config.backendFramework !== 'spring-boot' && config.projectType !== 'ui-library' && config.projectType !== 'api') {
|
|
36
40
|
switch (config.frontendFramework) {
|
|
37
41
|
case 'nextjs':
|
|
38
42
|
dirs.push({ path: 'src/app' }, { path: 'src/components' }, { path: 'src/lib' });
|
|
@@ -106,6 +110,32 @@ export function generatePackageJson(config) {
|
|
|
106
110
|
pkg.devDependencies['ts-jest'] = '^29.0.0';
|
|
107
111
|
pkg.devDependencies['@types/jest'] = '^29.0.0';
|
|
108
112
|
}
|
|
113
|
+
// API-only projects need specific dependencies
|
|
114
|
+
if (config.projectType === 'api') {
|
|
115
|
+
// Add backend framework dependencies
|
|
116
|
+
if (config.backendFramework === 'express') {
|
|
117
|
+
pkg.dependencies['express'] = '^4.18.0';
|
|
118
|
+
pkg.dependencies['cors'] = '^2.8.5';
|
|
119
|
+
pkg.dependencies['helmet'] = '^7.0.0';
|
|
120
|
+
pkg.devDependencies['@types/express'] = '^4.17.0';
|
|
121
|
+
pkg.devDependencies['@types/cors'] = '^2.8.0';
|
|
122
|
+
pkg.devDependencies['@types/helmet'] = '^4.0.0';
|
|
123
|
+
}
|
|
124
|
+
else if (config.backendFramework === 'fastify') {
|
|
125
|
+
pkg.dependencies['fastify'] = '^4.0.0';
|
|
126
|
+
pkg.dependencies['@fastify/cors'] = '^8.0.0';
|
|
127
|
+
pkg.dependencies['@fastify/helmet'] = '^11.0.0';
|
|
128
|
+
}
|
|
129
|
+
else if (config.backendFramework === 'nestjs') {
|
|
130
|
+
pkg.dependencies['@nestjs/core'] = '^10.0.0';
|
|
131
|
+
pkg.dependencies['@nestjs/common'] = '^10.0.0';
|
|
132
|
+
pkg.dependencies['@nestjs/platform-express'] = '^10.0.0';
|
|
133
|
+
pkg.devDependencies['@nestjs/cli'] = '^10.0.0';
|
|
134
|
+
pkg.devDependencies['@nestjs/schematics'] = '^10.0.0';
|
|
135
|
+
}
|
|
136
|
+
// Add TypeScript execution dependency
|
|
137
|
+
pkg.devDependencies['tsx'] = '^4.0.0';
|
|
138
|
+
}
|
|
109
139
|
return {
|
|
110
140
|
path: 'package.json',
|
|
111
141
|
content: JSON.stringify(pkg, null, 2) + '\n',
|
|
@@ -120,6 +150,15 @@ function getFrameworkScripts(config) {
|
|
|
120
150
|
format: 'prettier --write .',
|
|
121
151
|
'type-check': 'tsc --noEmit',
|
|
122
152
|
};
|
|
153
|
+
// API-only scripts
|
|
154
|
+
if (config.projectType === 'api') {
|
|
155
|
+
return {
|
|
156
|
+
dev: 'tsx src/index.ts',
|
|
157
|
+
build: 'tsc',
|
|
158
|
+
start: 'node dist/index.js',
|
|
159
|
+
...base,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
123
162
|
// UI Library scripts
|
|
124
163
|
if (config.projectType === 'ui-library') {
|
|
125
164
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/generators/structure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,MAAM,IAAI,GAAyB;QACjC,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClB,EAAE,IAAI,EAAE,aAAa,EAAE;QACvB,EAAE,IAAI,EAAE,WAAW,EAAE;KACtB,CAAC;IAEF,kDAAkD;IAClD,IAAI,MAAM,CAAC,gBAAgB,KAAK,aAAa,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,eAAe,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,IAAI,CACP,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,EAAE,IAAI,EAAE,eAAe,EAAE,EACzB,EAAE,IAAI,EAAE,iBAAiB,WAAW,EAAE,EAAE,EACxC,EAAE,IAAI,EAAE,iBAAiB,WAAW,aAAa,EAAE,EACnD,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAC9B,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,EAAE,IAAI,EAAE,eAAe,EAAE,EACzB,EAAE,IAAI,EAAE,iBAAiB,WAAW,EAAE,EAAE,CACzC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/generators/structure.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { select } from '@inquirer/prompts';
|
|
|
8
8
|
export async function promptFramework(projectType) {
|
|
9
9
|
if (projectType === 'api') {
|
|
10
10
|
// API projects don't need a frontend framework — we return a sentinel
|
|
11
|
-
return '
|
|
11
|
+
return 'none'; // will be ignored; backend prompt handles this
|
|
12
12
|
}
|
|
13
13
|
if (projectType === 'ui-library') {
|
|
14
14
|
// UI library projects use React + Vite as the base
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/prompts/frameworks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAwB;IAC5D,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/prompts/frameworks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAwB;IAC5D,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,MAAM,CAAC,CAAC,+CAA+C;IAChE,CAAC;IAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,mDAAmD;QACnD,OAAO,MAAM,CAAoB;YAC/B,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,8BAA8B;oBACpC,WAAW,EAAE,sEAAsE;iBACpF;gBACD;oBACE,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,kEAAkE;iBAChF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAoB;QAC/B,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,yEAAyE;aACvF;YACD;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uEAAuE;aACrF;YACD;gBACE,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,mEAAmE;aACjF;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,iEAAiE;aAC/E;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,2EAA2E;aACzF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,MAAM,CAAmB;QAC9B,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,yFAAyF;aACvG;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,8DAA8D;aAC5E;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,uEAAuE;aACrF;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,gFAAgF;aAC9F;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYtD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAwEhG"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { promptFramework, promptBackendFramework } from './frameworks.js';
|
|
|
12
12
|
import { promptPatterns } from './patterns.js';
|
|
13
13
|
import { promptPersona } from './persona.js';
|
|
14
14
|
import { promptProjectType } from './project-type.js';
|
|
15
|
+
import { promptSkillConfig } from './skill-config.js';
|
|
15
16
|
/**
|
|
16
17
|
* Run the full interactive prompt flow and return a complete NexusConfig.
|
|
17
18
|
*
|
|
@@ -61,6 +62,9 @@ export async function runPrompts(initialName, localOnly) {
|
|
|
61
62
|
const { testFramework, packageManager, git, installDeps } = await promptFeatures();
|
|
62
63
|
// 7. AI agent persona
|
|
63
64
|
const persona = await promptPersona();
|
|
65
|
+
// 8. Skills system
|
|
66
|
+
const frameworkLabel = getFrameworkLabel(frontendFramework);
|
|
67
|
+
const { enableSkills } = await promptSkillConfig(frameworkLabel);
|
|
64
68
|
// Assemble config
|
|
65
69
|
const config = {
|
|
66
70
|
projectName,
|
|
@@ -77,7 +81,20 @@ export async function runPrompts(initialName, localOnly) {
|
|
|
77
81
|
installDeps,
|
|
78
82
|
persona,
|
|
79
83
|
localOnly,
|
|
84
|
+
enableSkills,
|
|
80
85
|
};
|
|
81
86
|
return config;
|
|
82
87
|
}
|
|
88
|
+
function getFrameworkLabel(framework) {
|
|
89
|
+
const labels = {
|
|
90
|
+
nextjs: 'Next.js',
|
|
91
|
+
'react-vite': 'React + Vite',
|
|
92
|
+
sveltekit: 'SvelteKit',
|
|
93
|
+
nuxt: 'Nuxt 3',
|
|
94
|
+
astro: 'Astro',
|
|
95
|
+
remix: 'Remix',
|
|
96
|
+
none: 'shared',
|
|
97
|
+
};
|
|
98
|
+
return labels[framework] ?? framework;
|
|
99
|
+
}
|
|
83
100
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS CLI - Skill Config Prompt
|
|
3
|
+
*
|
|
4
|
+
* Asks the user whether to enable the NEXUS Skills System and whether
|
|
5
|
+
* to install the matching framework skills at init time.
|
|
6
|
+
*
|
|
7
|
+
* Both questions default to Yes — skills are opt-in but strongly recommended.
|
|
8
|
+
*/
|
|
9
|
+
export interface SkillConfig {
|
|
10
|
+
/** Whether to generate .nexus/skills/ with framework-matched core skills */
|
|
11
|
+
enableSkills: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Prompt the user for skill system preferences.
|
|
15
|
+
*
|
|
16
|
+
* @param frameworkLabel - Human-readable framework name for the prompt copy
|
|
17
|
+
*/
|
|
18
|
+
export declare function promptSkillConfig(frameworkLabel: string): Promise<SkillConfig>;
|
|
19
|
+
//# sourceMappingURL=skill-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-config.d.ts","sourceRoot":"","sources":["../../src/prompts/skill-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAOpF"}
|