@nexus-framework/cli 0.1.4 → 0.2.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.
Files changed (71) hide show
  1. package/README.md +133 -40
  2. package/dist/cli.js +5 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/adopt.d.ts +4 -2
  5. package/dist/commands/adopt.d.ts.map +1 -1
  6. package/dist/commands/adopt.js +47 -8
  7. package/dist/commands/adopt.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +1 -1
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/generators/ai-config.d.ts.map +1 -1
  13. package/dist/generators/ai-config.js +208 -55
  14. package/dist/generators/ai-config.js.map +1 -1
  15. package/dist/generators/docs.d.ts +10 -1
  16. package/dist/generators/docs.d.ts.map +1 -1
  17. package/dist/generators/docs.js +40 -65
  18. package/dist/generators/docs.js.map +1 -1
  19. package/dist/generators/index.d.ts +2 -1
  20. package/dist/generators/index.d.ts.map +1 -1
  21. package/dist/generators/index.js +49 -7
  22. package/dist/generators/index.js.map +1 -1
  23. package/dist/generators/spring-boot.d.ts +12 -0
  24. package/dist/generators/spring-boot.d.ts.map +1 -0
  25. package/dist/generators/spring-boot.js +220 -0
  26. package/dist/generators/spring-boot.js.map +1 -0
  27. package/dist/generators/structure.d.ts +1 -0
  28. package/dist/generators/structure.d.ts.map +1 -1
  29. package/dist/generators/structure.js +90 -24
  30. package/dist/generators/structure.js.map +1 -1
  31. package/dist/prompts/adoption.d.ts +35 -0
  32. package/dist/prompts/adoption.d.ts.map +1 -0
  33. package/dist/prompts/adoption.js +153 -0
  34. package/dist/prompts/adoption.js.map +1 -0
  35. package/dist/prompts/frameworks.d.ts +5 -1
  36. package/dist/prompts/frameworks.d.ts.map +1 -1
  37. package/dist/prompts/frameworks.js +48 -0
  38. package/dist/prompts/frameworks.js.map +1 -1
  39. package/dist/prompts/index.d.ts +2 -1
  40. package/dist/prompts/index.d.ts.map +1 -1
  41. package/dist/prompts/index.js +19 -7
  42. package/dist/prompts/index.js.map +1 -1
  43. package/dist/prompts/persona.d.ts +16 -0
  44. package/dist/prompts/persona.d.ts.map +1 -0
  45. package/dist/prompts/persona.js +79 -0
  46. package/dist/prompts/persona.js.map +1 -0
  47. package/dist/prompts/project-type.d.ts.map +1 -1
  48. package/dist/prompts/project-type.js +6 -1
  49. package/dist/prompts/project-type.js.map +1 -1
  50. package/dist/types/config.d.ts +31 -2
  51. package/dist/types/config.d.ts.map +1 -1
  52. package/dist/types/config.js +7 -1
  53. package/dist/types/config.js.map +1 -1
  54. package/dist/types/index.d.ts +2 -1
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/index.js +1 -1
  57. package/dist/types/index.js.map +1 -1
  58. package/dist/utils/file-system.d.ts.map +1 -1
  59. package/dist/utils/file-system.js +4 -2
  60. package/dist/utils/file-system.js.map +1 -1
  61. package/dist/utils/logger.d.ts +2 -2
  62. package/dist/utils/logger.d.ts.map +1 -1
  63. package/dist/utils/logger.js +49 -36
  64. package/dist/utils/logger.js.map +1 -1
  65. package/dist/utils/project-detector.d.ts +20 -4
  66. package/dist/utils/project-detector.d.ts.map +1 -1
  67. package/dist/utils/project-detector.js +156 -27
  68. package/dist/utils/project-detector.js.map +1 -1
  69. package/dist/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/package.json +4 -2
@@ -61,25 +61,33 @@ function generateInstructions(config) {
61
61
 
62
62
  ---
63
63
 
64
- ## 🧠 YOUR BRAIN: \`.nexus/docs/index.md\`
64
+ ## ⚠️ Before You Do Anything — 3 Mandatory Steps
65
65
 
66
- **READ \`.nexus/docs/index.md\` FIRST. EVERY TIME. NO EXCEPTIONS.**
66
+ You MUST complete these 3 steps before doing ANY work. This is not optional.
67
67
 
68
- That file is your project brain. It contains:
69
- - **Current Objective** — what you should be working on right now
70
- - **Status Matrix** what's done, what's in progress, what's blocked
71
- - **Feature Backlog** the prioritized roadmap of what to build
72
- - **What Has Been Built** every module, file, and test that exists
73
- - **Progress Log** session-by-session changelog (your memory)
74
- - **What's Next** — your prioritized TODO list
75
- - **Operating Rules** the rules you MUST follow
68
+ **Step 1. Read your brain \`.nexus/docs/index.md\`**
69
+
70
+ This file is your project brain. It tells you:
71
+ - What has been built (do not recreate it)
72
+ - What to work on next (the "What's Next" section)
73
+ - The current objective and status of every component
74
+
75
+ **Step 2. Scan the knowledge base \`.nexus/docs/knowledge.md\`**
76
+
77
+ This file is the project's long-term memory. It contains past decisions, bug fixes,
78
+ architecture insights, and gotchas discovered during development. Read the headings
79
+ to find entries relevant to your current task. This prevents you from repeating
80
+ mistakes or contradicting past decisions.
81
+
82
+ **Step 3. Read the relevant spec doc** from \`.nexus/docs/\` (01 through 08).
76
83
 
77
84
  \`\`\`
78
- RULE: Before EVERY task, read .nexus/docs/index.md
79
- RULE: After EVERY task, update .nexus/docs/index.md
80
- RULE: When the user asks "what should we work on?" check the index
81
- RULE: When you finish a feature update the index, then suggest the next item
82
- RULE: NEVER ask "what enhancements would you like?" the index has the answer
85
+ RULE: Before EVERY task read .nexus/docs/index.md (your brain)
86
+ RULE: Before EVERY task scan .nexus/docs/knowledge.md (your memory)
87
+ RULE: After EVERY taskupdate .nexus/docs/index.md
88
+ RULE: After EVERY taskappend to .nexus/docs/knowledge.md if you learned something
89
+ RULE: NEVER ask "what should we work on?" the index tells you
90
+ RULE: NEVER invent features → work from the feature backlog in the index
83
91
  \`\`\`
84
92
 
85
93
  ---
@@ -95,7 +103,6 @@ STOP. If ANY .nexus/docs/ file has status: template → you MUST populate it FIR
95
103
  Do NOT skip this step. Do NOT jump straight to the user's request.
96
104
  This is a hard requirement, not a suggestion.
97
105
  \\\`\\\`\\\`
98
- \\\`\\\`\\\`
99
106
 
100
107
  ### Steps:
101
108
 
@@ -197,7 +204,7 @@ but ALWAYS read \\\`.nexus/docs/index.md\\\` before every task.
197
204
  |-----------|---------|
198
205
  | \`src/\` | Application source code |
199
206
  | \`tests/\` | Unit, integration, and E2E tests |
200
- | \`.nexus/docs/\` | NEXUS documentation system (8 files) |
207
+ | \`.nexus/docs/\` | NEXUS documentation system (8 files + brain + knowledge) |
201
208
  | \`.nexus/\` | Project metadata, AI config, and manifest |
202
209
  | \`public/\` | Static assets |
203
210
  | \`.github/\` | CI/CD workflows, PR templates |
@@ -206,10 +213,12 @@ but ALWAYS read \\\`.nexus/docs/index.md\\\` before every task.
206
213
 
207
214
  ## NEXUS Documentation System
208
215
 
209
- This project includes 8 structured documentation files designed for both humans and AI:
216
+ This project includes structured documentation files designed for both humans and AI:
210
217
 
211
218
  | # | File | Purpose |
212
219
  |---|------|---------|
220
+ | 🧠 | \`.nexus/docs/index.md\` | **PROJECT BRAIN** — status, backlog, progress, what's next |
221
+ | 📚 | \`.nexus/docs/knowledge.md\` | **KNOWLEDGE BASE** — learned insights, patterns, gotchas |
213
222
  | 1 | \`.nexus/docs/01_vision.md\` | Product requirements, user stories, success metrics |
214
223
  | 2 | \`.nexus/docs/02_architecture.md\` | System design, tech stack decisions, data flow |
215
224
  | 3 | \`.nexus/docs/03_data_contracts.md\` | Database schemas, validation rules, relationships |
@@ -218,44 +227,82 @@ This project includes 8 structured documentation files designed for both humans
218
227
  | 6 | \`.nexus/docs/06_test_strategy.md\` | Coverage targets, test types, testing philosophy |
219
228
  | 7 | \`.nexus/docs/07_implementation.md\` | Build order, file-by-file implementation plan |
220
229
  | 8 | \`.nexus/docs/08_deployment.md\` | Infrastructure, CI/CD, environment configuration |
221
- | 🧠 | \`.nexus/docs/index.md\` | **PROJECT BRAIN** — status, backlog, progress, what's next |
222
- | 📚 | \`.nexus/docs/knowledge.md\` | **KNOWLEDGE BASE** — learned insights, patterns, gotchas |
223
230
 
224
231
  **Start with \`.nexus/docs/index.md\`** (your brain), then \`.nexus/docs/01_vision.md\`.
225
232
 
226
233
  ---
227
234
 
235
+ ## 📚 Knowledge Base Protocol
236
+
237
+ The knowledge base (\`.nexus/docs/knowledge.md\`) is the project's long-term memory.
238
+ It is **append-only** — entries are never deleted, only added.
239
+
240
+ ### When to READ it:
241
+ - **Before every task** — scan the headings for entries relevant to your work
242
+ - **Before architectural decisions** — check for past decisions and their rationale
243
+ - **Before debugging** — check for known gotchas and recurring bug patterns
244
+ - **Before choosing packages or patterns** — check for past evaluations
245
+
246
+ ### When to WRITE to it:
247
+ - **After discovering something non-obvious** — a bug root cause, an architecture insight, a package quirk
248
+ - **After making a decision that future agents should know about**
249
+ - **NOT for routine task completion** — that goes in \`index.md\` Progress Log
250
+
251
+ ### Entry format:
252
+ \`\`\`
253
+ ## [YYYY-MM-DD] category — title
254
+ Description of the discovery. One to three sentences max.
255
+ \`\`\`
256
+
257
+ ### Categories:
258
+ | Tag | Use When |
259
+ |-----|----------|
260
+ | \`architecture\` | Design decisions, structural choices, why X over Y |
261
+ | \`bug-fix\` | Recurring bugs, root causes, things to watch for |
262
+ | \`pattern\` | Code patterns that work well (or don't) in this project |
263
+ | \`package\` | Package quirks, version issues, config gotchas |
264
+ | \`performance\` | Bottlenecks found, optimizations applied |
265
+ | \`convention\` | Team/project conventions established during development |
266
+ | \`gotcha\` | Non-obvious traps, edge cases, things that wasted time |
267
+
268
+ ### Rules:
269
+ - **NEVER delete entries** — the knowledge base is append-only
270
+ - **Keep entries short** — 1-3 sentences, not essays
271
+ - **Use the format above** — so future agents can scan headings quickly
272
+
273
+ ---
274
+
228
275
  ## Workflow — How To Work On This Project
229
276
 
230
277
  ### Before EVERY task:
231
278
  1. **Read \`.nexus/docs/index.md\`** — check "Current Objective" and "What's Next"
232
- 2. **Read the relevant spec doc** find details in the numbered \`.nexus/docs/\` files
233
- 3. **Scan \`.nexus/docs/knowledge.md\`**check for relevant past learnings before making decisions
279
+ 2. **Scan \`.nexus/docs/knowledge.md\`** check for relevant past learnings before making decisions
280
+ 3. **Read the relevant spec doc** find details in the numbered \`.nexus/docs/\` files
234
281
  4. **Check \`.nexus/docs/07_implementation.md\`** — find the file-by-file plan
235
282
 
236
283
  ### During the task:
237
- 4. **Write the code** following the architecture in \`.nexus/docs/02_architecture.md\`
238
- 5. **Write tests** — match the strategy in \`.nexus/docs/06_test_strategy.md\`
239
- 6. **Validate** — \`${getValidationCommand(config)}\`
284
+ 5. **Write the code** following the architecture in \`.nexus/docs/02_architecture.md\`
285
+ 6. **Write tests** — match the strategy in \`.nexus/docs/06_test_strategy.md\`
286
+ 7. **Validate** — \`${getValidationCommand(config)}\`
240
287
 
241
288
  ### After EVERY task:
242
- 7. **Update \`.nexus/docs/index.md\`**:
289
+ 8. **Update \`.nexus/docs/index.md\`**:
243
290
  - Move completed items from "What's Next" to "Progress Log"
244
291
  - Update the "Status Matrix" and "What Has Been Built"
245
292
  - Set the "Current Objective" to the next priority item
246
- 8. **Update \`.nexus/docs/07_implementation.md\`** — mark completed files/tasks
247
- 9. **Learn** — if you discovered something non-obvious (bug pattern, architecture insight, package quirk, performance fix), append an entry to \`.nexus/docs/knowledge.md\`
248
- 10. **Commit** — use conventional commits (\`feat:\`, \`fix:\`, etc.)
249
- 11. **Suggest the next task** from \`.nexus/docs/index.md\` "What's Next"
293
+ 9. **Update \`.nexus/docs/07_implementation.md\`** — mark completed files/tasks
294
+ 10. **Learn** — if you discovered something non-obvious (bug pattern, architecture insight, package quirk, performance fix), append an entry to \`.nexus/docs/knowledge.md\`
295
+ 11. **Commit** — use conventional commits (\`feat:\`, \`fix:\`, etc.)
296
+ 12. **Suggest the next task** from \`.nexus/docs/index.md\` "What's Next"
250
297
 
251
298
  ### NEVER do this:
252
299
  - ❌ Ask "what enhancements would you like?" when the backlog has items
253
300
  - ❌ Invent random features not in the backlog
254
301
  - ❌ Skip updating the index after completing work
255
302
  - ❌ Treat docs as static — they evolve with the project
256
-
257
- ---
258
-
303
+ - ❌ Ignore \`.nexus/docs/knowledge.md\` — it prevents repeating mistakes
304
+ - ❌ Delete entries from \`.nexus/docs/knowledge.md\` — it is append-only
305
+ ${getPersonaSection(config.persona)}
259
306
  *Generated by [NEXUS CLI](https://github.com/GDA-Africa/nexus-cli) v${version} — AI-native project scaffolding by [GDA Africa](https://github.com/GDA-Africa)*
260
307
  `;
261
308
  return { path: '.nexus/ai/instructions.md', content };
@@ -286,29 +333,41 @@ function toolInstructionContent(config, toolName) {
286
333
 
287
334
  > Auto-generated by [NEXUS CLI](https://github.com/GDA-Africa/nexus-cli) v${version}.
288
335
  > This file contains the FULL project-aware instructions — do NOT skip any section.
336
+ > The master copy lives at \`.nexus/ai/instructions.md\`.
289
337
 
290
338
  ---
291
339
 
292
- ## 🧠 YOUR BRAIN: \`.nexus/docs/index.md\`
340
+ ## ⚠️ Before You Do Anything — 3 Mandatory Steps
293
341
 
294
- **READ \`.nexus/docs/index.md\` FIRST. EVERY TIME. NO EXCEPTIONS.**
342
+ You MUST complete these 3 steps before doing ANY work. This is not optional.
295
343
 
296
- That file is your project brain. It contains:
297
- - **Current Objective** — what you should be working on right now
298
- - **Status Matrix** what's done, what's in progress, what's blocked
299
- - **Feature Backlog** — the prioritized roadmap of what to build
300
- - **What Has Been Built** every module, file, and test that exists
301
- - **Progress Log** session-by-session changelog (your memory)
302
- - **What's Next** your prioritized TODO list
303
- - **Operating Rules** the rules you MUST follow
344
+ **Step 1. Read your brain \`.nexus/docs/index.md\`**
345
+
346
+ READ \`.nexus/docs/index.md\` FIRST. EVERY TIME. NO EXCEPTIONS.
347
+
348
+ This file is your project brain. It tells you:
349
+ - What has been built (do not recreate it)
350
+ - What to work on next (the "What's Next" section)
351
+ - The current objective and status of every component
352
+ - The feature backlog — your prioritized roadmap
353
+ - The progress log — your session-by-session memory
354
+
355
+ **Step 2. Scan the knowledge base — \`.nexus/docs/knowledge.md\`**
356
+
357
+ This file is the project's long-term memory. It contains past decisions, bug fixes,
358
+ architecture insights, and gotchas discovered during development. Read the headings
359
+ to find entries relevant to your current task. This prevents you from repeating
360
+ mistakes or contradicting past decisions.
361
+
362
+ **Step 3. Read the relevant spec doc** from \`.nexus/docs/\` (01 through 08).
304
363
 
305
364
  \`\`\`
306
- RULE: Before EVERY task, read .nexus/docs/index.md
307
- RULE: After EVERY task, update .nexus/docs/index.md
308
- RULE: When the user asks "what should we work on?" check the index
309
- RULE: When you finish a feature update the index, then suggest the next item
365
+ RULE: Before EVERY task read .nexus/docs/index.md (your brain)
366
+ RULE: Before EVERY task scan .nexus/docs/knowledge.md (your memory)
367
+ RULE: After EVERY taskupdate .nexus/docs/index.md
368
+ RULE: After EVERY taskappend to .nexus/docs/knowledge.md if you learned something
310
369
  RULE: NEVER ask "what enhancements would you like?" → the index has the answer
311
- RULE: NEVER invent features → work from the feature backlog
370
+ RULE: NEVER invent features → work from the feature backlog in the index
312
371
  \`\`\`
313
372
 
314
373
  ---
@@ -392,7 +451,7 @@ This is a hard requirement, not a suggestion.
392
451
  | # | File | Purpose |
393
452
  |---|------|---------|
394
453
  | 🧠 | \`.nexus/docs/index.md\` | **PROJECT BRAIN** — status, backlog, progress, what's next |
395
- | 📚 | \`.nexus/knowledge.md\` | **KNOWLEDGE BASE** — learned insights, patterns, gotchas |
454
+ | 📚 | \`.nexus/docs/knowledge.md\` | **KNOWLEDGE BASE** — learned insights, patterns, gotchas |
396
455
  | 1 | \`.nexus/docs/01_vision.md\` | Product requirements, user stories, success metrics |
397
456
  | 2 | \`.nexus/docs/02_architecture.md\` | System design, tech stack, data flow |
398
457
  | 3 | \`.nexus/docs/03_data_contracts.md\` | Database schemas, validation, relationships |
@@ -404,11 +463,51 @@ This is a hard requirement, not a suggestion.
404
463
 
405
464
  ---
406
465
 
466
+ ## 📚 Knowledge Base Protocol
467
+
468
+ The knowledge base (\`.nexus/docs/knowledge.md\`) is the project's long-term memory.
469
+ It is **append-only** — entries are never deleted, only added.
470
+
471
+ ### When to READ it:
472
+ - **Before every task** — scan the headings for entries relevant to your work
473
+ - **Before architectural decisions** — check for past decisions and their rationale
474
+ - **Before debugging** — check for known gotchas and recurring bug patterns
475
+ - **Before choosing packages or patterns** — check for past evaluations
476
+
477
+ ### When to WRITE to it:
478
+ - **After discovering something non-obvious** — a bug root cause, an architecture insight, a package quirk
479
+ - **After making a decision that future agents should know about**
480
+ - **NOT for routine task completion** — that goes in \`index.md\` Progress Log
481
+
482
+ ### Entry format:
483
+ \\\`\\\`\\\`
484
+ ## [YYYY-MM-DD] category — title
485
+ Description of the discovery. One to three sentences max.
486
+ \\\`\\\`\\\`
487
+
488
+ ### Categories:
489
+ | Tag | Use When |
490
+ |-----|----------|
491
+ | \`architecture\` | Design decisions, structural choices, why X over Y |
492
+ | \`bug-fix\` | Recurring bugs, root causes, things to watch for |
493
+ | \`pattern\` | Code patterns that work well (or don't) in this project |
494
+ | \`package\` | Package quirks, version issues, config gotchas |
495
+ | \`performance\` | Bottlenecks found, optimizations applied |
496
+ | \`convention\` | Team/project conventions established during development |
497
+ | \`gotcha\` | Non-obvious traps, edge cases, things that wasted time |
498
+
499
+ ### Rules:
500
+ - **NEVER delete entries** — the knowledge base is append-only
501
+ - **Keep entries short** — 1-3 sentences, not essays
502
+ - **Use the format above** — so future agents can scan headings quickly
503
+
504
+ ---
505
+
407
506
  ## Workflow — How To Work On This Project
408
507
 
409
508
  ### Before EVERY task:
410
509
  1. **Read \`.nexus/docs/index.md\`** — check "Current Objective" and "What's Next"
411
- 2. **Scan \`.nexus/knowledge.md\`** — check for relevant past learnings
510
+ 2. **Scan \`.nexus/docs/knowledge.md\`** — check for relevant past learnings
412
511
  3. **Read the relevant spec doc** — find details in the numbered docs
413
512
  4. **Check \`.nexus/docs/07_implementation.md\`** — find the file-by-file plan
414
513
 
@@ -420,7 +519,7 @@ This is a hard requirement, not a suggestion.
420
519
  ### After EVERY task:
421
520
  8. **Update \`.nexus/docs/index.md\`** — move items to Progress Log, update status
422
521
  9. **Update \`.nexus/docs/07_implementation.md\`** — mark completed files/tasks
423
- 10. **Learn** — if you discovered something non-obvious, append to \`.nexus/knowledge.md\`
522
+ 10. **Learn** — if you discovered something non-obvious, append an entry to \`.nexus/docs/knowledge.md\`
424
523
  11. **Commit** — conventional commits (\`feat:\`, \`fix:\`, etc.)
425
524
  12. **Suggest the next task** from \`.nexus/docs/index.md\` "What's Next"
426
525
 
@@ -429,10 +528,9 @@ This is a hard requirement, not a suggestion.
429
528
  - ❌ Invent random features not in the backlog
430
529
  - ❌ Skip updating the index after completing work
431
530
  - ❌ Treat docs as static — they evolve with the project
432
- - ❌ Ignore \`.nexus/knowledge.md\` — it prevents repeating mistakes
433
-
434
- ---
435
-
531
+ - ❌ Ignore \`.nexus/docs/knowledge.md\` — it prevents repeating mistakes
532
+ - ❌ Delete entries from \`.nexus/docs/knowledge.md\` — it is append-only
533
+ ${getPersonaSection(config.persona)}
436
534
  *Generated by [NEXUS CLI](https://github.com/GDA-Africa/nexus-cli) v${version}*
437
535
  `;
438
536
  }
@@ -476,4 +574,59 @@ function getValidationCommand(config) {
476
574
  const testCmd = config.testFramework !== 'none' ? ` && ${runPrefix} test` : '';
477
575
  return `npx tsc --noEmit${testCmd} && ${runPrefix} lint`;
478
576
  }
577
+ /**
578
+ * Build the 🎭 Agent Persona instruction section.
579
+ *
580
+ * This block tells the AI agent HOW to communicate with the user.
581
+ * When identity is a non-empty string, the agent refers to itself by that name.
582
+ * Tone descriptions are written for older LLMs — explicit and concrete.
583
+ */
584
+ function getPersonaSection(persona) {
585
+ const toneGuide = {
586
+ professional: 'Be direct, precise, and business-appropriate. Avoid slang, jokes, and filler. ' +
587
+ 'Use clear technical language. Keep responses structured with bullet points or numbered lists when appropriate.',
588
+ friendly: 'Be warm, encouraging, and approachable. Use a conversational tone — like a helpful teammate. ' +
589
+ 'Celebrate wins, be supportive when things go wrong, and explain things patiently.',
590
+ witty: 'Be clever and playful. Drop the occasional pun or pop-culture reference — but never at the expense of clarity. ' +
591
+ 'Keep the humor light and nerdy. Think "friendly senior dev who happens to be hilarious."',
592
+ zen: 'Be calm, minimalist, and contemplative. Use short sentences. Favor clarity over verbosity. ' +
593
+ 'Treat code as craft and the project as a garden to tend. Avoid urgency and noise.',
594
+ pirate: 'Arr! Ye be a swashbuckling code pirate sailing the digital seas. ' +
595
+ 'Use nautical metaphors (bugs are "barnacles," deploys are "setting sail," tests are "checking the rigging"). ' +
596
+ 'Keep it fun but still technically accurate. Never sacrifice clarity for the bit.',
597
+ };
598
+ const verbosityGuide = {
599
+ concise: 'Keep responses short and focused. Lead with the answer. Skip preamble. ' +
600
+ 'Only add context if the user asks or the situation is ambiguous.',
601
+ balanced: 'Provide enough context to understand the "why" without over-explaining. ' +
602
+ 'One or two sentences of context, then the solution. Add detail when the topic is complex.',
603
+ detailed: 'Give thorough explanations. Walk through your reasoning. Explain trade-offs. ' +
604
+ 'Include examples and edge cases. Great for learning and onboarding.',
605
+ };
606
+ const identityLine = persona.identity
607
+ ? `**You are ${persona.identity}** — the AI-powered project partner. Refer to yourself as "${persona.identity}" in responses. ` +
608
+ `When users see the name "${persona.identity}," they know the AI agent has read and understood ` +
609
+ 'the NEXUS documentation system. This is your signal that you are synced with the project brain. ' +
610
+ `This name persists across upgrades and repairs — the user chose "${persona.identity}" and it stays.`
611
+ : 'Do not refer to yourself by any special name. Respond as a standard AI assistant.';
612
+ const customLine = persona.customDirective
613
+ ? `\n**Custom directive from the developer:** "${persona.customDirective}"\n`
614
+ : '';
615
+ return `
616
+ ## 🎭 Agent Persona
617
+
618
+ This section defines how you communicate with the user. Follow these personality directives in ALL responses.
619
+
620
+ ### Identity
621
+ ${identityLine}
622
+
623
+ ### Tone: ${persona.tone}
624
+ ${toneGuide[persona.tone] ?? toneGuide['friendly']}
625
+
626
+ ### Verbosity: ${persona.verbosity}
627
+ ${verbosityGuide[persona.verbosity] ?? verbosityGuide['balanced']}
628
+ ${customLine}
629
+ ---
630
+ `;
631
+ }
479
632
  //# sourceMappingURL=ai-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/generators/ai-config.ts"],"names":[],"mappings":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmG9C,oBAAoB,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;EAmBhD,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;sEACmC,OAAO;CAC5E,CAAC;IAEA,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;;;oEASoE;AAEpE;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,MAAmB,EAAE,QAAgB;IACnE,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,OAAO,KAAK,MAAM,CAAC,WAAW,MAAM,QAAQ;;4EAE8B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6FxE,MAAM,CAAC,WAAW;WAClB,MAAM,CAAC,WAAW;gBACb,gBAAgB;oBACZ,MAAM,CAAC,YAAY;cACzB,cAAc;cACd,WAAW;sBACH,MAAM,CAAC,cAAc;eAC5B,eAAe;;;;;;;;;;;oCAWM,oBAAoB,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwE1C,oBAAoB,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;EAgBhD,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;sEACmC,OAAO;CAC5E,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAmB;IAChD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AACnF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,CAAC;AACtG,CAAC;AAED;;;;oEAIoE;AAEpE,SAAS,2BAA2B,CAAC,MAAmB;IACtD,OAAO,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;AAChH,CAAC;AAED;;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,SAAS,oBAAoB,CAAC,MAAmB;IAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC;IACjC,MAAM,SAAS,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,mBAAmB,OAAO,OAAO,SAAS,OAAO,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,OAAqB;IAC9C,MAAM,SAAS,GAA2B;QACxC,YAAY,EACV,gFAAgF;YAChF,gHAAgH;QAClH,QAAQ,EACN,+FAA+F;YAC/F,mFAAmF;QACrF,KAAK,EACH,iHAAiH;YACjH,0FAA0F;QAC5F,GAAG,EACD,6FAA6F;YAC7F,mFAAmF;QACrF,MAAM,EACJ,mEAAmE;YACnE,+GAA+G;YAC/G,kFAAkF;KACrF,CAAC;IAEF,MAAM,cAAc,GAA2B;QAC7C,OAAO,EACL,yEAAyE;YACzE,kEAAkE;QACpE,QAAQ,EACN,0EAA0E;YAC1E,2FAA2F;QAC7F,QAAQ,EACN,+EAA+E;YAC/E,qEAAqE;KACxE,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;QACnC,CAAC,CAAC,aAAa,OAAO,CAAC,QAAQ,8DAA8D,OAAO,CAAC,QAAQ,kBAAkB;YAC7H,4BAA4B,OAAO,CAAC,QAAQ,oDAAoD;YAChG,kGAAkG;YAClG,oEAAoE,OAAO,CAAC,QAAQ,iBAAiB;QACvG,CAAC,CAAC,mFAAmF,CAAC;IAExF,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe;QACxC,CAAC,CAAC,+CAA+C,OAAO,CAAC,eAAe,KAAK;QAC7E,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;EAMP,YAAY;;YAEF,OAAO,CAAC,IAAI;EACtB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC;;iBAEjC,OAAO,CAAC,SAAS;EAChC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC;EAC/D,UAAU;;CAEX,CAAC;AACF,CAAC"}
@@ -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): GeneratedFile[];
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;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAiBjE"}
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"}
@@ -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(generateNexusIndex(config));
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
- <!-- What are you building and why? What problem does it solve? -->
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:** Populate NEXUS docs from user's project vision
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 | 🔴 Template | Needs user input → \`.nexus/docs/01_vision.md\` |
428
- | 🏗️ Architecture | 🔴 Template | Auto-fill from codebase → \`.nexus/docs/02_architecture.md\` |
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 generateNexusIndex(config) {
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":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"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"}