@nexus-framework/cli 0.2.0 → 0.3.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/README.md +62 -6
- package/dist/cli.js +87 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +4 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +47 -8
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.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/docs.d.ts +10 -1
- package/dist/generators/docs.d.ts.map +1 -1
- package/dist/generators/docs.js +40 -65
- package/dist/generators/docs.js.map +1 -1
- package/dist/generators/index.d.ts +2 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +85 -9
- 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/spring-boot.d.ts +12 -0
- package/dist/generators/spring-boot.d.ts.map +1 -0
- package/dist/generators/spring-boot.js +220 -0
- package/dist/generators/spring-boot.js.map +1 -0
- package/dist/generators/structure.d.ts +1 -0
- package/dist/generators/structure.d.ts.map +1 -1
- package/dist/generators/structure.js +129 -24
- package/dist/generators/structure.js.map +1 -1
- package/dist/prompts/adoption.d.ts +35 -0
- package/dist/prompts/adoption.d.ts.map +1 -0
- package/dist/prompts/adoption.js +153 -0
- package/dist/prompts/adoption.js.map +1 -0
- package/dist/prompts/frameworks.d.ts +5 -1
- package/dist/prompts/frameworks.d.ts.map +1 -1
- package/dist/prompts/frameworks.js +49 -1
- package/dist/prompts/frameworks.js.map +1 -1
- package/dist/prompts/index.d.ts +2 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +32 -7
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/project-type.d.ts.map +1 -1
- package/dist/prompts/project-type.js +6 -1
- package/dist/prompts/project-type.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 +9 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +4 -2
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +49 -36
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/project-detector.d.ts +20 -4
- package/dist/utils/project-detector.d.ts.map +1 -1
- package/dist/utils/project-detector.js +156 -27
- package/dist/utils/project-detector.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 +9 -2
|
@@ -205,13 +205,32 @@ but ALWAYS read \\\`.nexus/docs/index.md\\\` before every task.
|
|
|
205
205
|
| \`src/\` | Application source code |
|
|
206
206
|
| \`tests/\` | Unit, integration, and E2E tests |
|
|
207
207
|
| \`.nexus/docs/\` | NEXUS documentation system (8 files + brain + knowledge) |
|
|
208
|
+
| \`.nexus/skills/\` | **NEXUS Skills** — pre-read AI task instructions (core / custom / community) |
|
|
208
209
|
| \`.nexus/\` | Project metadata, AI config, and manifest |
|
|
209
210
|
| \`public/\` | Static assets |
|
|
210
211
|
| \`.github/\` | CI/CD workflows, PR templates |
|
|
211
212
|
|
|
212
213
|
---
|
|
213
214
|
|
|
214
|
-
##
|
|
215
|
+
## 🧠 Skills Protocol
|
|
216
|
+
|
|
217
|
+
NEXUS Skills are pre-read instruction files that define **how to execute tasks** in this project.
|
|
218
|
+
|
|
219
|
+
**Before performing any significant task:**
|
|
220
|
+
1. Check \`.nexus/skills/\` for a relevant skill
|
|
221
|
+
2. Look in \`.nexus/skills/core/\` for framework-specific skills
|
|
222
|
+
3. Look in \`.nexus/skills/custom/\` for project-specific overrides
|
|
223
|
+
4. Look in \`.nexus/skills/community/\` for installed integration skills
|
|
224
|
+
5. Match the task you are about to perform against each skill's \`triggers\` list
|
|
225
|
+
6. If a match is found, read the skill file **fully** before proceeding
|
|
226
|
+
7. Follow the skill's steps and patterns precisely
|
|
227
|
+
8. If you deviate from a skill for a valid reason, log it in \`.nexus/docs/knowledge.md\`
|
|
228
|
+
|
|
229
|
+
**Precedence: \`custom/\` overrides \`core/\`, which overrides \`community/\`.**
|
|
230
|
+
|
|
231
|
+
Available skills are listed in \`.nexus/skills/README.md\`.
|
|
232
|
+
|
|
233
|
+
---
|
|
215
234
|
|
|
216
235
|
This project includes structured documentation files designed for both humans and AI:
|
|
217
236
|
|
|
@@ -446,6 +465,26 @@ This is a hard requirement, not a suggestion.
|
|
|
446
465
|
|
|
447
466
|
---
|
|
448
467
|
|
|
468
|
+
## 🧠 Skills Protocol
|
|
469
|
+
|
|
470
|
+
NEXUS Skills are pre-read instruction files that define **how to execute tasks** in this project.
|
|
471
|
+
|
|
472
|
+
**Before performing any significant task:**
|
|
473
|
+
1. Check \`.nexus/skills/\` for a relevant skill
|
|
474
|
+
2. Look in \`.nexus/skills/core/\` for framework-specific skills
|
|
475
|
+
3. Look in \`.nexus/skills/custom/\` for project-specific overrides
|
|
476
|
+
4. Look in \`.nexus/skills/community/\` for installed integration skills
|
|
477
|
+
5. Match the task you are about to perform against each skill's \`triggers\` list
|
|
478
|
+
6. If a match is found, read the skill file **fully** before proceeding
|
|
479
|
+
7. Follow the skill's steps and patterns precisely
|
|
480
|
+
8. If you deviate from a skill for a valid reason, log it in \`.nexus/docs/knowledge.md\`
|
|
481
|
+
|
|
482
|
+
**Precedence: \`custom/\` overrides \`core/\`, which overrides \`community/\`.**
|
|
483
|
+
|
|
484
|
+
Available skills are listed in \`.nexus/skills/README.md\`.
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
449
488
|
## NEXUS Documentation System
|
|
450
489
|
|
|
451
490
|
| # | File | Purpose |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/generators/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;oEAEoE;AAEpE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,qDAAqD;IACrD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzC,6EAA6E;IAC7E,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;oEAEoE;AAEpE,SAAS,oBAAoB,CAAC,MAAmB;IAC/C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/F,MAAM,eAAe,GACnB,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAClF,MAAM,cAAc,GAClB,MAAM,CAAC,gBAAgB,KAAK,MAAM;QAChC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,iBAAiB;QAC5C,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,eAAe,GAAG,CAAC;IAE/D,MAAM,OAAO,GAAG,KAAK,MAAM,CAAC,WAAW;;;kFAGyC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgG1E,MAAM,CAAC,WAAW;eAClB,MAAM,CAAC,WAAW;oBACb,gBAAgB;wBACZ,MAAM,CAAC,YAAY;kBACzB,cAAc;kBACd,WAAW;0BACH,MAAM,CAAC,cAAc;oCACX,OAAO;;;;;;;;eAQ5B,gBAAgB;;oBAEX,MAAM,CAAC,YAAY;cACzB,cAAc;cACd,WAAW;sBACH,MAAM,CAAC,cAAc;eAC5B,eAAe;;;;;;;;;;;wCAWU,oBAAoB,CAAC,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/generators/ai-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,15 @@ import type { NexusConfig } from '../types/config.js';
|
|
|
14
14
|
import type { GeneratedFile } from '../types/templates.js';
|
|
15
15
|
/**
|
|
16
16
|
* Generate all NEXUS documentation files for a new project.
|
|
17
|
+
*
|
|
18
|
+
* @param config - Project configuration
|
|
19
|
+
* @param localOnly - Whether to mark as local-only in manifest
|
|
20
|
+
* @param adoptionContext - Optional context from pre-adoption interview (used to pre-fill docs)
|
|
17
21
|
*/
|
|
18
|
-
export declare function generateDocs(config: NexusConfig
|
|
22
|
+
export declare function generateDocs(config: NexusConfig, localOnly?: boolean, adoptionContext?: {
|
|
23
|
+
projectDescription?: string;
|
|
24
|
+
architectureType?: string;
|
|
25
|
+
techStack?: string;
|
|
26
|
+
painPoints?: string;
|
|
27
|
+
}): GeneratedFile[];
|
|
19
28
|
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2C3D
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2C3D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,SAAS,UAAQ,EACjB,eAAe,CAAC,EAAE;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,aAAa,EAAE,CAgBjB"}
|
package/dist/generators/docs.js
CHANGED
|
@@ -49,24 +49,33 @@ last_updated: "${now}"
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Generate all NEXUS documentation files for a new project.
|
|
52
|
+
*
|
|
53
|
+
* @param config - Project configuration
|
|
54
|
+
* @param localOnly - Whether to mark as local-only in manifest
|
|
55
|
+
* @param adoptionContext - Optional context from pre-adoption interview (used to pre-fill docs)
|
|
52
56
|
*/
|
|
53
|
-
export function generateDocs(config) {
|
|
57
|
+
export function generateDocs(config, localOnly = false, adoptionContext) {
|
|
54
58
|
const files = [];
|
|
55
|
-
files.push(generateVision(config));
|
|
56
|
-
files.push(generateArchitecture(config));
|
|
59
|
+
files.push(generateVision(config, adoptionContext));
|
|
60
|
+
files.push(generateArchitecture(config, adoptionContext));
|
|
57
61
|
files.push(generateDataContracts(config));
|
|
58
62
|
files.push(generateApiContracts(config));
|
|
59
63
|
files.push(generateBusinessLogic(config));
|
|
60
64
|
files.push(generateTestStrategy(config));
|
|
61
65
|
files.push(generateImplementation(config));
|
|
62
66
|
files.push(generateDeployment(config));
|
|
63
|
-
files.push(generateProjectIndex(config));
|
|
67
|
+
files.push(generateProjectIndex(config, adoptionContext));
|
|
64
68
|
files.push(generateKnowledge(config));
|
|
65
|
-
files.push(
|
|
66
|
-
files.push(generateNexusManifest(config));
|
|
69
|
+
files.push(generateNexusManifest(config, localOnly));
|
|
67
70
|
return files;
|
|
68
71
|
}
|
|
69
|
-
function generateVision(config) {
|
|
72
|
+
function generateVision(config, adoptionContext) {
|
|
73
|
+
const visionContent = adoptionContext?.projectDescription
|
|
74
|
+
? adoptionContext.projectDescription
|
|
75
|
+
: '<!-- What are you building and why? What problem does it solve? -->';
|
|
76
|
+
const painPointsContent = adoptionContext?.painPoints
|
|
77
|
+
? `\n### Known Pain Points\n${adoptionContext.painPoints}\n`
|
|
78
|
+
: '';
|
|
70
79
|
return {
|
|
71
80
|
path: '.nexus/docs/01_vision.md',
|
|
72
81
|
content: `${frontmatter('01_vision', 'Product Vision & Requirements')}# Product Vision & Requirements
|
|
@@ -76,8 +85,8 @@ function generateVision(config) {
|
|
|
76
85
|
---
|
|
77
86
|
|
|
78
87
|
## 🎯 Product Vision
|
|
79
|
-
|
|
80
|
-
|
|
88
|
+
${visionContent}
|
|
89
|
+
${painPointsContent}
|
|
81
90
|
## 👥 Target Users
|
|
82
91
|
<!-- 2-3 personas: role, goals, pain points, needs -->
|
|
83
92
|
|
|
@@ -93,15 +102,20 @@ function generateVision(config) {
|
|
|
93
102
|
`,
|
|
94
103
|
};
|
|
95
104
|
}
|
|
96
|
-
function generateArchitecture(config) {
|
|
105
|
+
function generateArchitecture(config, adoptionContext) {
|
|
106
|
+
const archTypeContent = adoptionContext?.architectureType
|
|
107
|
+
? `\n**Architecture Type:** ${adoptionContext.architectureType}\n`
|
|
108
|
+
: '';
|
|
109
|
+
const techStackContent = adoptionContext?.techStack
|
|
110
|
+
? `\n### Additional Technologies\n${adoptionContext.techStack}\n`
|
|
111
|
+
: '';
|
|
97
112
|
return {
|
|
98
113
|
path: '.nexus/docs/02_architecture.md',
|
|
99
114
|
content: `${frontmatter('02_architecture', 'System Architecture')}# System Architecture
|
|
100
115
|
|
|
101
116
|
**Project:** ${config.displayName}
|
|
102
117
|
**Framework:** ${config.frontendFramework}
|
|
103
|
-
**Data Strategy:** ${config.dataStrategy}
|
|
104
|
-
|
|
118
|
+
**Data Strategy:** ${config.dataStrategy}${archTypeContent}
|
|
105
119
|
---
|
|
106
120
|
|
|
107
121
|
## 🏗️ Architecture Overview
|
|
@@ -114,7 +128,7 @@ function generateArchitecture(config) {
|
|
|
114
128
|
| Frontend | ${config.frontendFramework} | Selected during project setup |
|
|
115
129
|
| Data | ${config.dataStrategy} | ${config.dataStrategy} strategy |
|
|
116
130
|
| Testing | ${config.testFramework} | Selected during project setup |
|
|
117
|
-
|
|
131
|
+
${techStackContent}
|
|
118
132
|
## 📁 Directory Structure
|
|
119
133
|
<!-- Folder conventions: what goes where and why -->
|
|
120
134
|
|
|
@@ -387,9 +401,16 @@ lint → typecheck → test → build
|
|
|
387
401
|
*
|
|
388
402
|
* The agent must READ this before every task and UPDATE it after.
|
|
389
403
|
* ────────────────────────────────────────────────────────────── */
|
|
390
|
-
function generateProjectIndex(config) {
|
|
404
|
+
function generateProjectIndex(config, adoptionContext) {
|
|
391
405
|
const frameworkDisplay = getFrameworkDisplay(config.frontendFramework);
|
|
392
406
|
const now = new Date().toISOString().split('T')[0];
|
|
407
|
+
// Pre-fill the current objective if we have adoption context
|
|
408
|
+
const activeTask = adoptionContext?.projectDescription
|
|
409
|
+
? 'Review and expand pre-filled vision from adoption interview'
|
|
410
|
+
: "Populate NEXUS docs from user's project vision";
|
|
411
|
+
const statusNote = adoptionContext?.projectDescription
|
|
412
|
+
? '🟡 Partially filled from adoption interview'
|
|
413
|
+
: '🔴 Template';
|
|
393
414
|
return {
|
|
394
415
|
path: '.nexus/docs/index.md',
|
|
395
416
|
content: `${frontmatter('project_index', 'Project Index — AI Agent Brain')}# ${config.displayName} — Project Index
|
|
@@ -412,7 +433,7 @@ function generateProjectIndex(config) {
|
|
|
412
433
|
Update it at the start of every task. -->
|
|
413
434
|
|
|
414
435
|
**Current Phase:** Phase 1 — Foundation
|
|
415
|
-
**Active Task:**
|
|
436
|
+
**Active Task:** ${activeTask}
|
|
416
437
|
**Blocked:** None
|
|
417
438
|
**Next Up:** See "What's Next" section below
|
|
418
439
|
|
|
@@ -424,8 +445,8 @@ function generateProjectIndex(config) {
|
|
|
424
445
|
|
|
425
446
|
| Area | Status | Notes |
|
|
426
447
|
|------|--------|-------|
|
|
427
|
-
| 📋 Vision & Requirements |
|
|
428
|
-
| 🏗️ Architecture |
|
|
448
|
+
| 📋 Vision & Requirements | ${statusNote} | ${adoptionContext?.projectDescription ? 'See .nexus/docs/01_vision.md' : 'Needs user input → `.nexus/docs/01_vision.md`'} |
|
|
449
|
+
| 🏗️ Architecture | ${statusNote} | ${adoptionContext?.projectDescription ? 'See .nexus/docs/02_architecture.md' : 'Auto-fill from codebase → `.nexus/docs/02_architecture.md`'} |
|
|
429
450
|
| 📊 Data Contracts | 🔴 Template | Define from code → \`.nexus/docs/03_data_contracts.md\` |
|
|
430
451
|
| 🔌 API Contracts | 🔴 Template | Define from code → \`.nexus/docs/04_api_contracts.md\` |
|
|
431
452
|
| 📐 Business Logic | 🔴 Template | Needs user input → \`.nexus/docs/05_business_logic.md\` |
|
|
@@ -586,54 +607,7 @@ Optional: Brief supporting detail (1-2 sentences max).
|
|
|
586
607
|
`,
|
|
587
608
|
};
|
|
588
609
|
}
|
|
589
|
-
function
|
|
590
|
-
return {
|
|
591
|
-
path: '.nexus/index.md',
|
|
592
|
-
content: `# NEXUS Project Index
|
|
593
|
-
|
|
594
|
-
**Project:** ${config.displayName}
|
|
595
|
-
**Generated:** ${new Date().toISOString().split('T')[0]}
|
|
596
|
-
**CLI Version:** ${version}
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
## 🧠 Start Here
|
|
601
|
-
|
|
602
|
-
**AI agents: Read \`.nexus/docs/index.md\` FIRST** — that is your project brain.
|
|
603
|
-
It tracks status, features, progress, and what to work on next.
|
|
604
|
-
|
|
605
|
-
---
|
|
606
|
-
|
|
607
|
-
## 📚 Document Map
|
|
608
|
-
|
|
609
|
-
| Doc | Path | Purpose |
|
|
610
|
-
|-----|------|---------|
|
|
611
|
-
| **🧠 Project Brain** | **\`.nexus/docs/index.md\`** | **Status, backlog, progress, what's next** |
|
|
612
|
-
| Vision | \`.nexus/docs/01_vision.md\` | Product requirements & user stories |
|
|
613
|
-
| Architecture | \`.nexus/docs/02_architecture.md\` | System design & tech stack |
|
|
614
|
-
| Data Contracts | \`.nexus/docs/03_data_contracts.md\` | Database schemas & validation |
|
|
615
|
-
| API Contracts | \`.nexus/docs/04_api_contracts.md\` | Endpoints & interfaces |
|
|
616
|
-
| Business Logic | \`.nexus/docs/05_business_logic.md\` | Rules, algorithms & flows |
|
|
617
|
-
| Test Strategy | \`.nexus/docs/06_test_strategy.md\` | Testing philosophy & coverage |
|
|
618
|
-
| Implementation | \`.nexus/docs/07_implementation.md\` | Build order & file-by-file plan |
|
|
619
|
-
| Deployment | \`.nexus/docs/08_deployment.md\` | Infrastructure & CI/CD |
|
|
620
|
-
| **📚 Knowledge Base** | **\`.nexus/docs/knowledge.md\`** | **Learned insights, patterns & gotchas** |
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
## 🤖 AI Agent Instructions
|
|
625
|
-
|
|
626
|
-
If you are an AI reading this project:
|
|
627
|
-
|
|
628
|
-
1. **START with \`.nexus/docs/index.md\`** — your project brain, read it before every task
|
|
629
|
-
2. **Read \`.nexus/docs/01_vision.md\`** to understand what this project does
|
|
630
|
-
3. **Check \`.nexus/docs/07_implementation.md\`** for the file-by-file build plan
|
|
631
|
-
4. **After every task, update \`.nexus/docs/index.md\`** — progress log, status, what's next
|
|
632
|
-
5. **Never ask "what should we do next?"** — the index tells you
|
|
633
|
-
`,
|
|
634
|
-
};
|
|
635
|
-
}
|
|
636
|
-
function generateNexusManifest(config) {
|
|
610
|
+
function generateNexusManifest(config, localOnly = false) {
|
|
637
611
|
const manifest = {
|
|
638
612
|
version: '1.0.0',
|
|
639
613
|
generatedAt: new Date().toISOString(),
|
|
@@ -642,6 +616,7 @@ function generateNexusManifest(config) {
|
|
|
642
616
|
version,
|
|
643
617
|
name: '@nexus-framework/cli',
|
|
644
618
|
},
|
|
619
|
+
localOnly,
|
|
645
620
|
};
|
|
646
621
|
return {
|
|
647
622
|
path: '.nexus/manifest.json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;oEAEoE;AAEpE,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE,cAAc;QAC5B,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;KACf,CAAC;IACF,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACrC,CAAC;AAED;;oEAEoE;AAEpE;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO;;OAEF,KAAK;UACF,KAAK;;;iBAGE,GAAG;;;CAGnB,CAAC;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Coordinates all generators to produce a complete project.
|
|
5
5
|
* Also provides `adoptProject()` for adding .nexus/ to existing projects.
|
|
6
6
|
*/
|
|
7
|
+
import type { AdoptionContext } from '../prompts/adoption.js';
|
|
7
8
|
import type { NexusConfig } from '../types/config.js';
|
|
8
9
|
import type { ProjectInfo } from '../utils/project-detector.js';
|
|
9
10
|
/**
|
|
@@ -20,7 +21,7 @@ export declare function generateProject(config: NexusConfig): Promise<void>;
|
|
|
20
21
|
*
|
|
21
22
|
* It does NOT scaffold source code, configs, tests, or landing pages.
|
|
22
23
|
*/
|
|
23
|
-
export declare function adoptProject(targetDir: string, projectInfo: ProjectInfo): Promise<void>;
|
|
24
|
+
export declare function adoptProject(targetDir: string, projectInfo: ProjectInfo, adoptionContext: AdoptionContext): Promise<void>;
|
|
24
25
|
/** Reconcile mode: upgrade replaces scaffolding; repair only fixes broken files */
|
|
25
26
|
export type ReconcileMode = 'upgrade' | 'repair';
|
|
26
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAiBhE;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqExE;AAMD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAwCf;AA0BD,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAmBjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBtE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,eAAe,CAAC,CA+G1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
|
package/dist/generators/index.js
CHANGED
|
@@ -14,6 +14,8 @@ 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';
|
|
18
|
+
import { generateSpringBootFiles } from './spring-boot.js';
|
|
17
19
|
import { generateDirectories, generatePackageJson, generateGitignore, generateReadme, } from './structure.js';
|
|
18
20
|
import { generateTests } from './tests.js';
|
|
19
21
|
/**
|
|
@@ -29,15 +31,25 @@ export async function generateProject(config) {
|
|
|
29
31
|
generatePackageJson(config),
|
|
30
32
|
generateGitignore(),
|
|
31
33
|
generateReadme(config),
|
|
32
|
-
...generateDocs(config),
|
|
34
|
+
...generateDocs(config, config.localOnly ?? false),
|
|
33
35
|
...generateConfigs(config),
|
|
34
36
|
...generateTests(config),
|
|
35
37
|
...generateCiCd(config),
|
|
36
38
|
...generateLandingPage(config),
|
|
37
39
|
...generateAiConfig(config),
|
|
40
|
+
...generateSkills(config),
|
|
38
41
|
];
|
|
42
|
+
// Add Spring Boot files if backend is Spring Boot
|
|
43
|
+
if (config.backendFramework === 'spring-boot') {
|
|
44
|
+
files.push(...generateSpringBootFiles(config));
|
|
45
|
+
}
|
|
39
46
|
// Write everything to disk
|
|
40
47
|
await writeGeneratorResult(projectRoot, files, directories);
|
|
48
|
+
// If local-only mode, add .nexus/ to .gitignore
|
|
49
|
+
if (config.localOnly) {
|
|
50
|
+
await appendToGitignore(projectRoot);
|
|
51
|
+
spinner.text = 'NEXUS configured as local-only (not tracked by git)';
|
|
52
|
+
}
|
|
41
53
|
spinner.succeed('Project structure generated.');
|
|
42
54
|
// Install dependencies
|
|
43
55
|
if (config.installDeps) {
|
|
@@ -84,23 +96,34 @@ export async function generateProject(config) {
|
|
|
84
96
|
*
|
|
85
97
|
* It does NOT scaffold source code, configs, tests, or landing pages.
|
|
86
98
|
*/
|
|
87
|
-
export async function adoptProject(targetDir, projectInfo) {
|
|
99
|
+
export async function adoptProject(targetDir, projectInfo, adoptionContext) {
|
|
88
100
|
const spinner = ora('Generating NEXUS documentation & AI config...').start();
|
|
89
101
|
try {
|
|
90
|
-
// Build a minimal NexusConfig from detected project info
|
|
91
|
-
const config = buildAdoptConfig(targetDir, projectInfo);
|
|
102
|
+
// Build a minimal NexusConfig from detected project info + user interview
|
|
103
|
+
const config = buildAdoptConfig(targetDir, projectInfo, adoptionContext);
|
|
92
104
|
// Directories to create
|
|
93
105
|
const directories = [
|
|
94
106
|
{ path: '.nexus' },
|
|
95
107
|
{ path: '.nexus/docs' },
|
|
96
108
|
{ path: '.nexus/ai' },
|
|
109
|
+
{ path: '.nexus/skills' },
|
|
110
|
+
{ path: '.nexus/skills/core' },
|
|
111
|
+
{ path: '.nexus/skills/custom' },
|
|
112
|
+
{ path: '.nexus/skills/community' },
|
|
97
113
|
{ path: '.github' },
|
|
98
114
|
];
|
|
99
|
-
// Files to generate — docs + AI config
|
|
115
|
+
// Files to generate — docs + AI config + skills
|
|
116
|
+
// Pass adoption context to docs generator for pre-filling
|
|
100
117
|
const files = [
|
|
101
|
-
...generateDocs(config),
|
|
118
|
+
...generateDocs(config, adoptionContext.localOnly, adoptionContext),
|
|
102
119
|
...generateAiConfig(config),
|
|
120
|
+
...generateSkills(config),
|
|
103
121
|
];
|
|
122
|
+
// If local-only mode, add .nexus/ to .gitignore
|
|
123
|
+
if (adoptionContext.localOnly) {
|
|
124
|
+
await appendToGitignore(targetDir);
|
|
125
|
+
spinner.text = 'NEXUS configured as local-only (not tracked by git)';
|
|
126
|
+
}
|
|
104
127
|
// Write to disk
|
|
105
128
|
await writeGeneratorResult(targetDir, files, directories);
|
|
106
129
|
spinner.succeed('NEXUS documentation & AI config generated.');
|
|
@@ -179,6 +202,10 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
179
202
|
{ path: '.nexus' },
|
|
180
203
|
{ path: '.nexus/docs' },
|
|
181
204
|
{ path: '.nexus/ai' },
|
|
205
|
+
{ path: '.nexus/skills' },
|
|
206
|
+
{ path: '.nexus/skills/core' },
|
|
207
|
+
{ path: '.nexus/skills/custom' },
|
|
208
|
+
{ path: '.nexus/skills/community' },
|
|
182
209
|
{ path: '.github' },
|
|
183
210
|
];
|
|
184
211
|
for (const dir of directories) {
|
|
@@ -188,6 +215,7 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
188
215
|
const freshFiles = [
|
|
189
216
|
...generateDocs(config),
|
|
190
217
|
...generateAiConfig(config),
|
|
218
|
+
...generateSkills(config),
|
|
191
219
|
];
|
|
192
220
|
const result = {
|
|
193
221
|
replaced: [],
|
|
@@ -198,6 +226,18 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
198
226
|
for (const file of freshFiles) {
|
|
199
227
|
const fullPath = path.join(targetDir, file.path);
|
|
200
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
|
+
}
|
|
201
241
|
// ── Missing file → always create ──
|
|
202
242
|
if (!exists) {
|
|
203
243
|
await writeFile(fullPath, file.content);
|
|
@@ -208,7 +248,7 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
208
248
|
const existingContent = await readFile(fullPath);
|
|
209
249
|
const content = existingContent ?? '';
|
|
210
250
|
const corrupted = isCorrupted(file.path, content);
|
|
211
|
-
// ── Corrupted → always repair (both modes) ──
|
|
251
|
+
// ── Corrupted → always repair (both modes) — except custom/ skills ──
|
|
212
252
|
if (corrupted) {
|
|
213
253
|
await writeFile(fullPath, file.content);
|
|
214
254
|
result.repaired.push(file.path);
|
|
@@ -230,6 +270,18 @@ export async function reconcileNexusFiles(targetDir, config, mode) {
|
|
|
230
270
|
result.preserved.push(file.path);
|
|
231
271
|
continue;
|
|
232
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
|
+
}
|
|
233
285
|
// Smart check for docs with frontmatter
|
|
234
286
|
if (isPopulated(content)) {
|
|
235
287
|
result.preserved.push(file.path);
|
|
@@ -254,12 +306,12 @@ export async function repairProject(targetDir, config) {
|
|
|
254
306
|
return reconcileNexusFiles(targetDir, config, 'repair');
|
|
255
307
|
}
|
|
256
308
|
/**
|
|
257
|
-
* Build a NexusConfig from detected ProjectInfo.
|
|
309
|
+
* Build a NexusConfig from detected ProjectInfo + user interview.
|
|
258
310
|
*
|
|
259
311
|
* Maps detected values to the closest NexusConfig equivalents,
|
|
260
312
|
* using sensible defaults for anything not detected.
|
|
261
313
|
*/
|
|
262
|
-
function buildAdoptConfig(targetDir, info) {
|
|
314
|
+
function buildAdoptConfig(targetDir, info, _adoptionContext) {
|
|
263
315
|
const slug = info.name ?? path.basename(targetDir);
|
|
264
316
|
return {
|
|
265
317
|
projectName: slug,
|
|
@@ -298,4 +350,28 @@ function mapPackageManager(detected) {
|
|
|
298
350
|
return 'pnpm';
|
|
299
351
|
return 'npm';
|
|
300
352
|
}
|
|
353
|
+
/**
|
|
354
|
+
* Append `.nexus/` to .gitignore (for local-only mode).
|
|
355
|
+
*
|
|
356
|
+
* If .gitignore doesn't exist, create it. If it exists, append only if not already present.
|
|
357
|
+
*/
|
|
358
|
+
async function appendToGitignore(targetDir) {
|
|
359
|
+
const gitignorePath = path.join(targetDir, '.gitignore');
|
|
360
|
+
const entry = '\n# NEXUS (local-only mode)\n.nexus/\n';
|
|
361
|
+
if (await fileExists(gitignorePath)) {
|
|
362
|
+
const content = await readFile(gitignorePath);
|
|
363
|
+
if (!content) {
|
|
364
|
+
await writeFile(gitignorePath, entry.trim() + '\n');
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (content.includes('.nexus/')) {
|
|
368
|
+
// Already gitignored
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
await writeFile(gitignorePath, content + entry);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
await writeFile(gitignorePath, entry.trim() + '\n');
|
|
375
|
+
}
|
|
376
|
+
}
|
|
301
377
|
//# sourceMappingURL=index.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|