brainforge-ai 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -87,159 +87,166 @@ async function createBrainforgeStructure(config, cwd = process.cwd()) {
87
87
  await fs_extra_1.default.writeFile(filePath, content);
88
88
  }
89
89
  }
90
+ // Write Claude Code skills to .claude/skills/
91
+ const claudeSkillsDir = path_1.default.join(cwd, '.claude', 'skills');
92
+ await fs_extra_1.default.ensureDir(claudeSkillsDir);
93
+ const skills = (0, templates_1.getSkillTemplates)(config);
94
+ for (const [filename, content] of Object.entries(skills)) {
95
+ await fs_extra_1.default.writeFile(path_1.default.join(claudeSkillsDir, filename), content);
96
+ }
90
97
  }
91
98
  function generateProjectMd(config) {
92
- return `# Project: ${config.projectName}
93
-
94
- **Description:** ${config.description || '_To be filled_'}
95
- **Type:** ${config.projectType}
96
- **Stack:** ${config.stack.join(', ')}
97
- **User Level:** ${config.userLevel}
98
- **Code Level:** ${config.codeLevel}
99
- **Academic:** ${config.isAcademic ? 'Yes' : 'No'}
100
- **Created:** ${config.createdAt}
101
-
102
- ## Features
103
-
104
- - Docker: ${config.useDocker ? 'Yes' : 'No'}
105
- - Database: ${config.useDatabase ? 'Yes' : 'No'}
106
- - Authentication: ${config.useAuth ? 'Yes' : 'No'}
107
- - Admin Dashboard: ${config.useAdminDashboard ? 'Yes' : 'No'}
108
- - Responsive: ${config.useResponsive ? 'Yes' : 'No'}
109
-
110
- ## Goal
111
-
112
- _Describe the main goal of the project here._
113
-
114
- ## Scope
115
-
116
- _Define what is in scope and what is out of scope._
117
-
118
- ## Success Criteria
119
-
120
- - [ ] Core features working
121
- - [ ] Tested and reviewed
122
- - [ ] Documented
99
+ return `# Project: ${config.projectName}
100
+
101
+ **Description:** ${config.description || '_To be filled_'}
102
+ **Type:** ${config.projectType}
103
+ **Stack:** ${config.stack.join(', ')}
104
+ **User Level:** ${config.userLevel}
105
+ **Code Level:** ${config.codeLevel}
106
+ **Academic:** ${config.isAcademic ? 'Yes' : 'No'}
107
+ **Created:** ${config.createdAt}
108
+
109
+ ## Features
110
+
111
+ - Docker: ${config.useDocker ? 'Yes' : 'No'}
112
+ - Database: ${config.useDatabase ? 'Yes' : 'No'}
113
+ - Authentication: ${config.useAuth ? 'Yes' : 'No'}
114
+ - Admin Dashboard: ${config.useAdminDashboard ? 'Yes' : 'No'}
115
+ - Responsive: ${config.useResponsive ? 'Yes' : 'No'}
116
+
117
+ ## Goal
118
+
119
+ _Describe the main goal of the project here._
120
+
121
+ ## Scope
122
+
123
+ _Define what is in scope and what is out of scope._
124
+
125
+ ## Success Criteria
126
+
127
+ - [ ] Core features working
128
+ - [ ] Tested and reviewed
129
+ - [ ] Documented
123
130
  `;
124
131
  }
125
132
  function generateQuestionsMd(config) {
126
- return `# Project Questions
127
-
128
- _Answered during init_
129
-
130
- | Question | Answer |
131
- |----------|--------|
132
- | Project type | ${config.projectType} |
133
- | Stack | ${config.stack.join(', ')} |
134
- | User level | ${config.userLevel} |
135
- | Code level | ${config.codeLevel} |
136
- | Docker | ${config.useDocker ? 'Yes' : 'No'} |
137
- | Database | ${config.useDatabase ? 'Yes' : 'No'} |
138
- | Authentication | ${config.useAuth ? 'Yes' : 'No'} |
139
- | Admin dashboard | ${config.useAdminDashboard ? 'Yes' : 'No'} |
140
- | Responsive | ${config.useResponsive ? 'Yes' : 'No'} |
141
- | Academic project | ${config.isAcademic ? 'Yes' : 'No'} |
142
-
143
- ## Open Questions
144
-
145
- _Add questions that need clarification here._
146
-
147
- - [ ] ?
133
+ return `# Project Questions
134
+
135
+ _Answered during init_
136
+
137
+ | Question | Answer |
138
+ |----------|--------|
139
+ | Project type | ${config.projectType} |
140
+ | Stack | ${config.stack.join(', ')} |
141
+ | User level | ${config.userLevel} |
142
+ | Code level | ${config.codeLevel} |
143
+ | Docker | ${config.useDocker ? 'Yes' : 'No'} |
144
+ | Database | ${config.useDatabase ? 'Yes' : 'No'} |
145
+ | Authentication | ${config.useAuth ? 'Yes' : 'No'} |
146
+ | Admin dashboard | ${config.useAdminDashboard ? 'Yes' : 'No'} |
147
+ | Responsive | ${config.useResponsive ? 'Yes' : 'No'} |
148
+ | Academic project | ${config.isAcademic ? 'Yes' : 'No'} |
149
+
150
+ ## Open Questions
151
+
152
+ _Add questions that need clarification here._
153
+
154
+ - [ ] ?
148
155
  `;
149
156
  }
150
157
  function generateDecisionsMd() {
151
- return `# Architecture Decisions
152
-
153
- _Decisions taken during the project_
154
-
155
- ## Format
156
-
157
- \`\`\`
158
- - [YYYY-MM-DD] Decision title
159
- Context: why this decision was needed
160
- Choice: what was decided
161
- Reason: why this option
162
- \`\`\`
163
-
164
- ## Decisions
165
-
166
- - [${new Date().toISOString().slice(0, 10)}] Project initialized with BrainForge
167
- Context: Starting a new project
168
- Choice: Using BrainForge CLI
169
- Reason: Structured, AI-assisted development workflow
158
+ return `# Architecture Decisions
159
+
160
+ _Decisions taken during the project_
161
+
162
+ ## Format
163
+
164
+ \`\`\`
165
+ - [YYYY-MM-DD] Decision title
166
+ Context: why this decision was needed
167
+ Choice: what was decided
168
+ Reason: why this option
169
+ \`\`\`
170
+
171
+ ## Decisions
172
+
173
+ - [${new Date().toISOString().slice(0, 10)}] Project initialized with BrainForge
174
+ Context: Starting a new project
175
+ Choice: Using BrainForge CLI
176
+ Reason: Structured, AI-assisted development workflow
170
177
  `;
171
178
  }
172
179
  function generateRoadmapMd(config) {
173
- return `# Project Roadmap: ${config.projectName}
174
-
175
- _Generated by BrainForge. Run /create-roadmap to generate a detailed roadmap._
176
-
177
- ## Epic 1: Foundation
178
-
179
- ### Feature 1.1: Project Setup
180
- - Task: Initialize project structure
181
- - Subtask: Create folder structure
182
- - Subtask: Configure environment
183
- - Task: Setup stack
184
- - Subtask: Install dependencies
185
- - Subtask: Configure tools
186
-
187
- ### Feature 1.2: Core Architecture
188
- - Task: Define data models
189
- - Task: Setup routing/navigation
190
-
191
- ## Epic 2: Core Features
192
-
193
- ### Feature 2.1: Main Functionality
194
- - Task: Implement primary feature
195
- - Task: Connect to data source
196
-
197
- ### Feature 2.2: UI/UX
198
- - Task: Build main screens
199
- - Task: Make responsive
200
-
201
- ## Epic 3: Quality & Delivery
202
-
203
- ### Feature 3.1: Testing
204
- - Task: Unit tests
205
- - Task: Integration tests
206
-
207
- ### Feature 3.2: Documentation
208
- - Task: Write README
209
- - Task: Prepare presentation
210
-
211
- ## Phase Summary
212
-
213
- | Phase | Epic | Status |
214
- |-------|------|--------|
215
- | Phase 01 | Foundation | pending |
216
- | Phase 02 | Core Features | pending |
180
+ return `# Project Roadmap: ${config.projectName}
181
+
182
+ _Generated by BrainForge. Run /create-roadmap to generate a detailed roadmap._
183
+
184
+ ## Epic 1: Foundation
185
+
186
+ ### Feature 1.1: Project Setup
187
+ - Task: Initialize project structure
188
+ - Subtask: Create folder structure
189
+ - Subtask: Configure environment
190
+ - Task: Setup stack
191
+ - Subtask: Install dependencies
192
+ - Subtask: Configure tools
193
+
194
+ ### Feature 1.2: Core Architecture
195
+ - Task: Define data models
196
+ - Task: Setup routing/navigation
197
+
198
+ ## Epic 2: Core Features
199
+
200
+ ### Feature 2.1: Main Functionality
201
+ - Task: Implement primary feature
202
+ - Task: Connect to data source
203
+
204
+ ### Feature 2.2: UI/UX
205
+ - Task: Build main screens
206
+ - Task: Make responsive
207
+
208
+ ## Epic 3: Quality & Delivery
209
+
210
+ ### Feature 3.1: Testing
211
+ - Task: Unit tests
212
+ - Task: Integration tests
213
+
214
+ ### Feature 3.2: Documentation
215
+ - Task: Write README
216
+ - Task: Prepare presentation
217
+
218
+ ## Phase Summary
219
+
220
+ | Phase | Epic | Status |
221
+ |-------|------|--------|
222
+ | Phase 01 | Foundation | pending |
223
+ | Phase 02 | Core Features | pending |
217
224
  `;
218
225
  }
219
226
  function generateArchitectureMd(config) {
220
- return `# Architecture Memory
221
-
222
- **Stack:** ${config.stack.join(', ')}
223
- **Pattern:** _To be defined_
224
-
225
- ## Folder Structure
226
-
227
- \`\`\`
228
- project/
229
- _Update this as you build_
230
- \`\`\`
231
-
232
- ## Key Decisions
233
-
234
- _Add architecture decisions here as the project evolves._
235
-
236
- ## Data Flow
237
-
238
- _Describe how data flows through your application._
239
-
240
- ## External Services
241
-
242
- _List any external APIs, databases, or services._
227
+ return `# Architecture Memory
228
+
229
+ **Stack:** ${config.stack.join(', ')}
230
+ **Pattern:** _To be defined_
231
+
232
+ ## Folder Structure
233
+
234
+ \`\`\`
235
+ project/
236
+ _Update this as you build_
237
+ \`\`\`
238
+
239
+ ## Key Decisions
240
+
241
+ _Add architecture decisions here as the project evolves._
242
+
243
+ ## Data Flow
244
+
245
+ _Describe how data flows through your application._
246
+
247
+ ## External Services
248
+
249
+ _List any external APIs, databases, or services._
243
250
  `;
244
251
  }
245
252
  function generateCodingStyleMd(config) {
@@ -280,189 +287,189 @@ function generateCodingStyleMd(config) {
280
287
  ],
281
288
  };
282
289
  const levelRules = rules[config.codeLevel] || rules['intermediate'];
283
- return `# Coding Style Guide
284
-
285
- **Level:** ${config.codeLevel}
286
- **User Level:** ${config.userLevel}
287
-
288
- ## Rules
289
-
290
- ${levelRules.map((r) => `- ${r}`).join('\n')}
291
-
292
- ## Stack Conventions
293
-
294
- **Stack:** ${config.stack.join(', ')}
295
-
296
- _Update this section with conventions specific to your stack._
297
-
298
- ## What to Avoid
299
-
300
- - Over-engineered abstractions
301
- - Premature optimization
302
- - Unnecessary dependencies
303
- - Magic strings/numbers without constants
304
- - Dead code
305
-
306
- ## Code Level Engine
307
-
308
- \`\`\`
309
- beginner → simple, direct, few files, FR comments
310
- intermediate → clean, modular, good practices
311
- professional → strict, tested, secure, scalable
312
- academic-realistic → clean but natural, explainable, no enterprise patterns
313
- \`\`\`
290
+ return `# Coding Style Guide
291
+
292
+ **Level:** ${config.codeLevel}
293
+ **User Level:** ${config.userLevel}
294
+
295
+ ## Rules
296
+
297
+ ${levelRules.map((r) => `- ${r}`).join('\n')}
298
+
299
+ ## Stack Conventions
300
+
301
+ **Stack:** ${config.stack.join(', ')}
302
+
303
+ _Update this section with conventions specific to your stack._
304
+
305
+ ## What to Avoid
306
+
307
+ - Over-engineered abstractions
308
+ - Premature optimization
309
+ - Unnecessary dependencies
310
+ - Magic strings/numbers without constants
311
+ - Dead code
312
+
313
+ ## Code Level Engine
314
+
315
+ \`\`\`
316
+ beginner → simple, direct, few files, FR comments
317
+ intermediate → clean, modular, good practices
318
+ professional → strict, tested, secure, scalable
319
+ academic-realistic → clean but natural, explainable, no enterprise patterns
320
+ \`\`\`
314
321
  `;
315
322
  }
316
323
  function generateKnownBugsMd() {
317
- return `# Known Bugs
318
-
319
- _Updated automatically during /debug-issue and /review-phase_
320
-
321
- ## Active
322
-
323
- _No bugs tracked yet._
324
-
325
- ## Resolved
326
-
327
- _No resolved bugs yet._
328
-
329
- ## Format
330
-
331
- \`\`\`
332
- - [YYYY-MM-DD] Bug title
333
- File: path/to/file.ts
334
- Description: what happens
335
- Status: active | resolved
336
- Fix: how it was fixed (if resolved)
337
- \`\`\`
324
+ return `# Known Bugs
325
+
326
+ _Updated automatically during /debug-issue and /review-phase_
327
+
328
+ ## Active
329
+
330
+ _No bugs tracked yet._
331
+
332
+ ## Resolved
333
+
334
+ _No resolved bugs yet._
335
+
336
+ ## Format
337
+
338
+ \`\`\`
339
+ - [YYYY-MM-DD] Bug title
340
+ File: path/to/file.ts
341
+ Description: what happens
342
+ Status: active | resolved
343
+ Fix: how it was fixed (if resolved)
344
+ \`\`\`
338
345
  `;
339
346
  }
340
347
  function generateGlossaryMd() {
341
- return `# Project Glossary
342
-
343
- _Define domain terms and technical jargon here._
344
-
345
- | Term | Definition |
346
- |------|------------|
347
- | BrainForge | The CLI tool managing this project |
348
- | Phase | A structured development step with a clear goal |
349
- | Checkpoint | A git commit marking a stable state |
350
- | Code Level | The complexity target for generated/written code |
351
-
352
- _Add more terms as your project grows._
348
+ return `# Project Glossary
349
+
350
+ _Define domain terms and technical jargon here._
351
+
352
+ | Term | Definition |
353
+ |------|------------|
354
+ | BrainForge | The CLI tool managing this project |
355
+ | Phase | A structured development step with a clear goal |
356
+ | Checkpoint | A git commit marking a stable state |
357
+ | Code Level | The complexity target for generated/written code |
358
+
359
+ _Add more terms as your project grows._
353
360
  `;
354
361
  }
355
362
  function generateDesignSystemMd(config) {
356
- return `# Design System
357
-
358
- **Project:** ${config.projectName}
359
- **Style:** Modern, clean, minimal
360
-
361
- ## Colors
362
-
363
- \`\`\`css
364
- --color-primary: #6366f1;
365
- --color-secondary: #8b5cf6;
366
- --color-success: #22c55e;
367
- --color-warning: #f59e0b;
368
- --color-error: #ef4444;
369
- --color-bg: #0f172a;
370
- --color-surface: #1e293b;
371
- --color-text: #f1f5f9;
372
- --color-muted: #94a3b8;
373
- \`\`\`
374
-
375
- ## Typography
376
-
377
- - Headings: Inter, system-ui
378
- - Body: Inter, system-ui
379
- - Code: JetBrains Mono, monospace
380
- - Base size: 16px
381
-
382
- ## Spacing
383
-
384
- Use multiples of 4px: 4, 8, 12, 16, 24, 32, 48, 64
385
-
386
- ## Components
387
-
388
- - Buttons: rounded-md, padding 8px 16px
389
- - Cards: rounded-lg, shadow-md, bg surface
390
- - Inputs: border, rounded-md, focus ring primary
391
- - Badges: small, rounded-full
392
-
393
- ## Responsive Rules
394
-
395
- - Mobile first
396
- - Breakpoints: 640px (sm), 768px (md), 1024px (lg), 1280px (xl)
397
- - Max container width: 1280px
398
-
399
- ## Dark Mode
400
-
401
- Default dark. Light mode optional via class toggle.
402
-
403
- ## Animations
404
-
405
- - Transitions: 150ms ease
406
- - Hover effects: subtle scale or color shift
407
- - No flashy animations — keep it professional
363
+ return `# Design System
364
+
365
+ **Project:** ${config.projectName}
366
+ **Style:** Modern, clean, minimal
367
+
368
+ ## Colors
369
+
370
+ \`\`\`css
371
+ --color-primary: #6366f1;
372
+ --color-secondary: #8b5cf6;
373
+ --color-success: #22c55e;
374
+ --color-warning: #f59e0b;
375
+ --color-error: #ef4444;
376
+ --color-bg: #0f172a;
377
+ --color-surface: #1e293b;
378
+ --color-text: #f1f5f9;
379
+ --color-muted: #94a3b8;
380
+ \`\`\`
381
+
382
+ ## Typography
383
+
384
+ - Headings: Inter, system-ui
385
+ - Body: Inter, system-ui
386
+ - Code: JetBrains Mono, monospace
387
+ - Base size: 16px
388
+
389
+ ## Spacing
390
+
391
+ Use multiples of 4px: 4, 8, 12, 16, 24, 32, 48, 64
392
+
393
+ ## Components
394
+
395
+ - Buttons: rounded-md, padding 8px 16px
396
+ - Cards: rounded-lg, shadow-md, bg surface
397
+ - Inputs: border, rounded-md, focus ring primary
398
+ - Badges: small, rounded-full
399
+
400
+ ## Responsive Rules
401
+
402
+ - Mobile first
403
+ - Breakpoints: 640px (sm), 768px (md), 1024px (lg), 1280px (xl)
404
+ - Max container width: 1280px
405
+
406
+ ## Dark Mode
407
+
408
+ Default dark. Light mode optional via class toggle.
409
+
410
+ ## Animations
411
+
412
+ - Transitions: 150ms ease
413
+ - Hover effects: subtle scale or color shift
414
+ - No flashy animations — keep it professional
408
415
  `;
409
416
  }
410
417
  function generatePhaseMd(phaseNum, title, config) {
411
418
  const padded = String(phaseNum).padStart(2, '0');
412
- return `# Phase ${padded}: ${title}
413
-
414
- **Status:** pending
415
- **Project:** ${config.projectName}
416
- **Stack:** ${config.stack.join(', ')}
417
- **Code Level:** ${config.codeLevel}
418
-
419
- ## Objective
420
-
421
- _Describe what this phase must accomplish._
422
-
423
- ## Context
424
-
425
- _What should be already done before this phase starts?_
426
-
427
- ## Files Likely Involved
428
-
429
- _List the files that will be created or modified._
430
-
431
- \`\`\`
432
- _To be filled during /initiate-phase_
433
- \`\`\`
434
-
435
- ## Dependencies
436
-
437
- - Depends on: Phase ${phaseNum === 1 ? 'none' : '0' + (phaseNum - 1)}
438
- - Blocking: Phase ${String(phaseNum + 1).padStart(2, '0')}
439
-
440
- ## Execution Plan
441
-
442
- _Generated by /initiate-phase_
443
-
444
- - [ ] Step 1
445
- - [ ] Step 2
446
- - [ ] Step 3
447
-
448
- ## Validation Criteria
449
-
450
- - [ ] Feature works as expected
451
- - [ ] No obvious bugs
452
- - [ ] Code matches level: ${config.codeLevel}
453
- - [ ] Committed with checkpoint
454
-
455
- ## Risks
456
-
457
- - _Add risks here_
458
-
459
- ## Difficulty
460
-
461
- **Level:** medium
462
-
463
- ## Notes
464
-
465
- _Add notes during execution_
419
+ return `# Phase ${padded}: ${title}
420
+
421
+ **Status:** pending
422
+ **Project:** ${config.projectName}
423
+ **Stack:** ${config.stack.join(', ')}
424
+ **Code Level:** ${config.codeLevel}
425
+
426
+ ## Objective
427
+
428
+ _Describe what this phase must accomplish._
429
+
430
+ ## Context
431
+
432
+ _What should be already done before this phase starts?_
433
+
434
+ ## Files Likely Involved
435
+
436
+ _List the files that will be created or modified._
437
+
438
+ \`\`\`
439
+ _To be filled during /initiate-phase_
440
+ \`\`\`
441
+
442
+ ## Dependencies
443
+
444
+ - Depends on: Phase ${phaseNum === 1 ? 'none' : '0' + (phaseNum - 1)}
445
+ - Blocking: Phase ${String(phaseNum + 1).padStart(2, '0')}
446
+
447
+ ## Execution Plan
448
+
449
+ _Generated by /initiate-phase_
450
+
451
+ - [ ] Step 1
452
+ - [ ] Step 2
453
+ - [ ] Step 3
454
+
455
+ ## Validation Criteria
456
+
457
+ - [ ] Feature works as expected
458
+ - [ ] No obvious bugs
459
+ - [ ] Code matches level: ${config.codeLevel}
460
+ - [ ] Committed with checkpoint
461
+
462
+ ## Risks
463
+
464
+ - _Add risks here_
465
+
466
+ ## Difficulty
467
+
468
+ **Level:** medium
469
+
470
+ ## Notes
471
+
472
+ _Add notes during execution_
466
473
  `;
467
474
  }
468
475
  //# sourceMappingURL=fileSystem.js.map