@girardmedia/bootspring 2.5.0 → 2.5.2
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 +9 -403
- package/bin/bootspring.js +1 -96
- package/dist/cli/index.js +65134 -0
- package/dist/cli-launcher.js +92 -0
- package/dist/core/index.d.ts +2110 -5582
- package/dist/core/index.js +2 -0
- package/dist/core.js +21123 -5413
- package/dist/mcp/index.d.ts +357 -1
- package/dist/mcp/index.js +2 -0
- package/dist/mcp-server.js +51948 -1976
- package/package.json +27 -63
- package/scripts/postinstall.cjs +144 -0
- package/LICENSE +0 -29
- package/dist/cli/index.cjs +0 -20776
- package/generators/api-docs.js +0 -827
- package/generators/decisions.js +0 -655
- package/generators/generate.js +0 -595
- package/generators/health.js +0 -942
- package/generators/index.ts +0 -82
- package/generators/presets/full.js +0 -28
- package/generators/presets/index.js +0 -12
- package/generators/presets/minimal.js +0 -29
- package/generators/presets/standard.js +0 -28
- package/generators/questionnaire.js +0 -414
- package/generators/sections/advanced.js +0 -136
- package/generators/sections/ai.js +0 -106
- package/generators/sections/auth.js +0 -89
- package/generators/sections/backend.js +0 -146
- package/generators/sections/business.js +0 -118
- package/generators/sections/content.js +0 -300
- package/generators/sections/deployment.js +0 -139
- package/generators/sections/features.js +0 -122
- package/generators/sections/frontend.js +0 -118
- package/generators/sections/identity.js +0 -76
- package/generators/sections/index.js +0 -40
- package/generators/sections/instructions.js +0 -146
- package/generators/sections/payments.js +0 -104
- package/generators/sections/plugins.js +0 -142
- package/generators/sections/pre-build.js +0 -130
- package/generators/sections/security.js +0 -127
- package/generators/sections/technical.js +0 -171
- package/generators/sections/testing.js +0 -125
- package/generators/sections/workflow.js +0 -104
- package/generators/sprint.js +0 -675
- package/generators/templates/agents.template.js +0 -199
- package/generators/templates/assistant-context.template.js +0 -83
- package/generators/templates/build-planning.template.js +0 -708
- package/generators/templates/claude.template.js +0 -379
- package/generators/templates/content.template.js +0 -819
- package/generators/templates/index.js +0 -16
- package/generators/templates/planning.template.js +0 -515
- package/generators/templates/seed.template.js +0 -109
- package/generators/visual-doc-generator.js +0 -910
- package/scripts/postinstall.js +0 -197
- /package/{claude-commands → assets/claude-commands}/agent.md +0 -0
- /package/{claude-commands → assets/claude-commands}/bs.md +0 -0
- /package/{claude-commands → assets/claude-commands}/build.md +0 -0
- /package/{claude-commands → assets/claude-commands}/skill.md +0 -0
- /package/{claude-commands → assets/claude-commands}/todo.md +0 -0
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Templates Index
|
|
3
|
-
*
|
|
4
|
-
* @package bootspring
|
|
5
|
-
* @module generators/templates
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
claude: require('./claude.template'),
|
|
10
|
-
assistantContext: require('./assistant-context.template'),
|
|
11
|
-
agents: require('./agents.template'),
|
|
12
|
-
seed: require('./seed.template'),
|
|
13
|
-
planning: require('./planning.template'),
|
|
14
|
-
content: require('./content.template'),
|
|
15
|
-
buildPlanning: require('./build-planning.template')
|
|
16
|
-
};
|
|
@@ -1,515 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Planning Folder Templates
|
|
3
|
-
*
|
|
4
|
-
* Generates planning documents for project initialization.
|
|
5
|
-
* Creates: README.md, MASTER_PLAN.md, PRD.md, ARCHITECTURE.md, DECISION_LOG.md
|
|
6
|
-
*
|
|
7
|
-
* @package bootspring
|
|
8
|
-
* @module generators/templates/planning
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const utils = require('../../core/utils');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Generate README for planning folder
|
|
15
|
-
*/
|
|
16
|
-
function generateReadme(config) {
|
|
17
|
-
const projectName = config.project?.name || 'Project';
|
|
18
|
-
const date = utils.formatDate();
|
|
19
|
-
|
|
20
|
-
return `# ${projectName} - Planning
|
|
21
|
-
|
|
22
|
-
> **Last Updated**: ${date}
|
|
23
|
-
> **Generated by**: Bootspring
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Overview
|
|
28
|
-
|
|
29
|
-
This folder contains planning and strategy documents for ${projectName}.
|
|
30
|
-
|
|
31
|
-
## Documents
|
|
32
|
-
|
|
33
|
-
| Document | Purpose |
|
|
34
|
-
|----------|---------|
|
|
35
|
-
| [MASTER_PLAN.md](./MASTER_PLAN.md) | Single source of truth for project vision and strategy |
|
|
36
|
-
| [PRD.md](./PRD.md) | Product Requirements Document |
|
|
37
|
-
| [ARCHITECTURE.md](./ARCHITECTURE.md) | Technical architecture and system design |
|
|
38
|
-
| [DECISION_LOG.md](./DECISION_LOG.md) | Record of key decisions and rationale |
|
|
39
|
-
|
|
40
|
-
## How to Use
|
|
41
|
-
|
|
42
|
-
1. **Start with MASTER_PLAN.md** - Define your vision, goals, and milestones
|
|
43
|
-
2. **Create PRD.md** - Break down features into user stories and requirements
|
|
44
|
-
3. **Design in ARCHITECTURE.md** - Document technical decisions and system design
|
|
45
|
-
4. **Track decisions** - Log important decisions and their reasoning
|
|
46
|
-
|
|
47
|
-
## Bootspring Integration
|
|
48
|
-
|
|
49
|
-
These documents are automatically indexed by Bootspring and available to AI agents:
|
|
50
|
-
|
|
51
|
-
\`\`\`bash
|
|
52
|
-
# View planning context
|
|
53
|
-
bootspring context read plan
|
|
54
|
-
|
|
55
|
-
# Search across planning docs
|
|
56
|
-
bootspring context search "authentication"
|
|
57
|
-
|
|
58
|
-
# Get context for an agent
|
|
59
|
-
bootspring context agent product-expert
|
|
60
|
-
\`\`\`
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
*Generated by [Bootspring](https://bootspring.com)*
|
|
65
|
-
`;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Generate MASTER_PLAN.md template
|
|
70
|
-
*/
|
|
71
|
-
function generateMasterPlan(config) {
|
|
72
|
-
const projectName = config.project?.name || 'Project';
|
|
73
|
-
const description = config.project?.description || 'A project built with Bootspring.';
|
|
74
|
-
const date = utils.formatDate();
|
|
75
|
-
|
|
76
|
-
return `# ${projectName} - Master Plan
|
|
77
|
-
|
|
78
|
-
> **Version**: 1.0
|
|
79
|
-
> **Last Updated**: ${date}
|
|
80
|
-
> **Status**: Planning
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Vision Statement
|
|
85
|
-
|
|
86
|
-
${description}
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Goals
|
|
91
|
-
|
|
92
|
-
### Short-term (30 days)
|
|
93
|
-
- [ ] Complete initial setup
|
|
94
|
-
- [ ] Define core features
|
|
95
|
-
- [ ] Build MVP
|
|
96
|
-
|
|
97
|
-
### Medium-term (90 days)
|
|
98
|
-
- [ ] Launch beta
|
|
99
|
-
- [ ] Gather user feedback
|
|
100
|
-
- [ ] Iterate on product
|
|
101
|
-
|
|
102
|
-
### Long-term (1 year)
|
|
103
|
-
- [ ] Scale product
|
|
104
|
-
- [ ] Expand features
|
|
105
|
-
- [ ] Grow user base
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Target Users
|
|
110
|
-
|
|
111
|
-
| Persona | Description | Needs |
|
|
112
|
-
|---------|-------------|-------|
|
|
113
|
-
| Primary | *Describe your main user* | *What they need* |
|
|
114
|
-
| Secondary | *Describe secondary users* | *What they need* |
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## Key Metrics
|
|
119
|
-
|
|
120
|
-
| Metric | Target | Current |
|
|
121
|
-
|--------|--------|---------|
|
|
122
|
-
| Users | - | 0 |
|
|
123
|
-
| MRR | - | $0 |
|
|
124
|
-
| NPS | - | - |
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Milestones
|
|
129
|
-
|
|
130
|
-
### Phase 1: Foundation
|
|
131
|
-
- [ ] Project setup
|
|
132
|
-
- [ ] Core architecture
|
|
133
|
-
- [ ] Basic features
|
|
134
|
-
|
|
135
|
-
### Phase 2: MVP
|
|
136
|
-
- [ ] Essential features
|
|
137
|
-
- [ ] User authentication
|
|
138
|
-
- [ ] Core functionality
|
|
139
|
-
|
|
140
|
-
### Phase 3: Launch
|
|
141
|
-
- [ ] Beta release
|
|
142
|
-
- [ ] User feedback
|
|
143
|
-
- [ ] Bug fixes
|
|
144
|
-
|
|
145
|
-
### Phase 4: Growth
|
|
146
|
-
- [ ] Marketing
|
|
147
|
-
- [ ] Feature expansion
|
|
148
|
-
- [ ] Scaling
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Resources
|
|
153
|
-
|
|
154
|
-
- **Team**: *List team members*
|
|
155
|
-
- **Budget**: *Budget details*
|
|
156
|
-
- **Timeline**: *Key dates*
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## Notes
|
|
161
|
-
|
|
162
|
-
*Add additional context, links, and references here.*
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
*Last updated: ${date}*
|
|
167
|
-
`;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Generate PRD.md template
|
|
172
|
-
*/
|
|
173
|
-
function generatePrd(config) {
|
|
174
|
-
const projectName = config.project?.name || 'Project';
|
|
175
|
-
const description = config.project?.description || '';
|
|
176
|
-
const date = utils.formatDate();
|
|
177
|
-
|
|
178
|
-
return `# ${projectName} - Product Requirements Document
|
|
179
|
-
|
|
180
|
-
> **Version**: 1.0
|
|
181
|
-
> **Last Updated**: ${date}
|
|
182
|
-
> **Status**: Draft
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Overview
|
|
187
|
-
|
|
188
|
-
### Problem Statement
|
|
189
|
-
*What problem are we solving?*
|
|
190
|
-
|
|
191
|
-
### Solution
|
|
192
|
-
${description || '*How does this product solve the problem?*'}
|
|
193
|
-
|
|
194
|
-
### Success Criteria
|
|
195
|
-
- [ ] *Define measurable success criteria*
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## User Stories
|
|
200
|
-
|
|
201
|
-
### Epic 1: Core Functionality
|
|
202
|
-
|
|
203
|
-
#### US-001: *User Story Title*
|
|
204
|
-
**As a** user
|
|
205
|
-
**I want** *action*
|
|
206
|
-
**So that** *benefit*
|
|
207
|
-
|
|
208
|
-
**Acceptance Criteria:**
|
|
209
|
-
- [ ] *Criteria 1*
|
|
210
|
-
- [ ] *Criteria 2*
|
|
211
|
-
|
|
212
|
-
**Priority**: High
|
|
213
|
-
**Estimate**: *Story points or time*
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Features
|
|
218
|
-
|
|
219
|
-
### Feature 1: *Feature Name*
|
|
220
|
-
|
|
221
|
-
**Description**: *What does this feature do?*
|
|
222
|
-
|
|
223
|
-
**Requirements**:
|
|
224
|
-
- [ ] *Requirement 1*
|
|
225
|
-
- [ ] *Requirement 2*
|
|
226
|
-
|
|
227
|
-
**Dependencies**: *List dependencies*
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## Out of Scope
|
|
232
|
-
|
|
233
|
-
- *What is NOT included in this release?*
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Technical Requirements
|
|
238
|
-
|
|
239
|
-
### Performance
|
|
240
|
-
- *Performance requirements*
|
|
241
|
-
|
|
242
|
-
### Security
|
|
243
|
-
- *Security requirements*
|
|
244
|
-
|
|
245
|
-
### Accessibility
|
|
246
|
-
- *Accessibility requirements*
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## Open Questions
|
|
251
|
-
|
|
252
|
-
- [ ] *Question 1*
|
|
253
|
-
- [ ] *Question 2*
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
## Appendix
|
|
258
|
-
|
|
259
|
-
### Wireframes
|
|
260
|
-
*Link to wireframes or mockups*
|
|
261
|
-
|
|
262
|
-
### References
|
|
263
|
-
*Links to relevant documents*
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
*Last updated: ${date}*
|
|
268
|
-
`;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Generate ARCHITECTURE.md template
|
|
273
|
-
*/
|
|
274
|
-
function generateArchitecture(config) {
|
|
275
|
-
const projectName = config.project?.name || 'Project';
|
|
276
|
-
const stack = config.stack || {};
|
|
277
|
-
const date = utils.formatDate();
|
|
278
|
-
|
|
279
|
-
return `# ${projectName} - Technical Architecture
|
|
280
|
-
|
|
281
|
-
> **Version**: 1.0
|
|
282
|
-
> **Last Updated**: ${date}
|
|
283
|
-
> **Status**: Draft
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## Overview
|
|
288
|
-
|
|
289
|
-
This document describes the technical architecture for ${projectName}.
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
## Tech Stack
|
|
294
|
-
|
|
295
|
-
| Layer | Technology |
|
|
296
|
-
|-------|------------|
|
|
297
|
-
| Framework | ${stack.framework || 'TBD'} |
|
|
298
|
-
| Language | ${stack.language || 'TBD'} |
|
|
299
|
-
| Database | ${stack.database || 'TBD'} |
|
|
300
|
-
| Hosting | ${stack.hosting || 'TBD'} |
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## System Architecture
|
|
305
|
-
|
|
306
|
-
\`\`\`
|
|
307
|
-
┌─────────────────────────────────────────────┐
|
|
308
|
-
│ Client │
|
|
309
|
-
│ (Browser / Mobile) │
|
|
310
|
-
└─────────────────────┬───────────────────────┘
|
|
311
|
-
│
|
|
312
|
-
▼
|
|
313
|
-
┌─────────────────────────────────────────────┐
|
|
314
|
-
│ Application │
|
|
315
|
-
│ (${stack.framework || 'Framework'}) │
|
|
316
|
-
├─────────────────────────────────────────────┤
|
|
317
|
-
│ API Layer │
|
|
318
|
-
└─────────────────────┬───────────────────────┘
|
|
319
|
-
│
|
|
320
|
-
▼
|
|
321
|
-
┌─────────────────────────────────────────────┐
|
|
322
|
-
│ Database │
|
|
323
|
-
│ (${stack.database || 'Database'}) │
|
|
324
|
-
└─────────────────────────────────────────────┘
|
|
325
|
-
\`\`\`
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
## Directory Structure
|
|
330
|
-
|
|
331
|
-
\`\`\`
|
|
332
|
-
${projectName}/
|
|
333
|
-
├── src/
|
|
334
|
-
│ ├── app/ # Application routes
|
|
335
|
-
│ ├── components/ # UI components
|
|
336
|
-
│ ├── lib/ # Utilities
|
|
337
|
-
│ └── types/ # Type definitions
|
|
338
|
-
├── public/ # Static assets
|
|
339
|
-
├── tests/ # Test files
|
|
340
|
-
└── planning/ # Planning docs
|
|
341
|
-
\`\`\`
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## Data Model
|
|
346
|
-
|
|
347
|
-
### Entities
|
|
348
|
-
|
|
349
|
-
#### User
|
|
350
|
-
| Field | Type | Description |
|
|
351
|
-
|-------|------|-------------|
|
|
352
|
-
| id | UUID | Primary key |
|
|
353
|
-
| email | String | User email |
|
|
354
|
-
| createdAt | DateTime | Creation timestamp |
|
|
355
|
-
|
|
356
|
-
---
|
|
357
|
-
|
|
358
|
-
## API Design
|
|
359
|
-
|
|
360
|
-
### Endpoints
|
|
361
|
-
|
|
362
|
-
| Method | Path | Description |
|
|
363
|
-
|--------|------|-------------|
|
|
364
|
-
| GET | /api/health | Health check |
|
|
365
|
-
|
|
366
|
-
---
|
|
367
|
-
|
|
368
|
-
## Security Considerations
|
|
369
|
-
|
|
370
|
-
- [ ] Authentication method
|
|
371
|
-
- [ ] Authorization rules
|
|
372
|
-
- [ ] Data encryption
|
|
373
|
-
- [ ] Input validation
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
## Deployment Architecture
|
|
378
|
-
|
|
379
|
-
| Environment | URL | Purpose |
|
|
380
|
-
|-------------|-----|---------|
|
|
381
|
-
| Development | localhost | Local development |
|
|
382
|
-
| Staging | TBD | Pre-production testing |
|
|
383
|
-
| Production | TBD | Live environment |
|
|
384
|
-
|
|
385
|
-
---
|
|
386
|
-
|
|
387
|
-
## Dependencies
|
|
388
|
-
|
|
389
|
-
### Runtime Dependencies
|
|
390
|
-
*List key dependencies*
|
|
391
|
-
|
|
392
|
-
### Dev Dependencies
|
|
393
|
-
*List development dependencies*
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
## Decision Log
|
|
398
|
-
|
|
399
|
-
See [DECISION_LOG.md](./DECISION_LOG.md) for architectural decisions.
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
*Last updated: ${date}*
|
|
404
|
-
`;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* Generate DECISION_LOG.md template
|
|
409
|
-
*/
|
|
410
|
-
function generateDecisionLog(config) {
|
|
411
|
-
const projectName = config.project?.name || 'Project';
|
|
412
|
-
const date = utils.formatDate();
|
|
413
|
-
|
|
414
|
-
return `# ${projectName} - Decision Log
|
|
415
|
-
|
|
416
|
-
> **Last Updated**: ${date}
|
|
417
|
-
|
|
418
|
-
---
|
|
419
|
-
|
|
420
|
-
## Overview
|
|
421
|
-
|
|
422
|
-
This document records key technical and product decisions, including context and rationale.
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## Decisions
|
|
427
|
-
|
|
428
|
-
### DEC-001: *Decision Title*
|
|
429
|
-
|
|
430
|
-
**Date**: ${date}
|
|
431
|
-
**Status**: Proposed | Accepted | Deprecated | Superseded
|
|
432
|
-
**Deciders**: *Who made this decision?*
|
|
433
|
-
|
|
434
|
-
#### Context
|
|
435
|
-
*What is the issue being addressed?*
|
|
436
|
-
|
|
437
|
-
#### Decision
|
|
438
|
-
*What was decided?*
|
|
439
|
-
|
|
440
|
-
#### Rationale
|
|
441
|
-
*Why was this decision made?*
|
|
442
|
-
|
|
443
|
-
#### Alternatives Considered
|
|
444
|
-
1. *Alternative 1* - *Why rejected*
|
|
445
|
-
2. *Alternative 2* - *Why rejected*
|
|
446
|
-
|
|
447
|
-
#### Consequences
|
|
448
|
-
- *Positive consequence 1*
|
|
449
|
-
- *Negative consequence (trade-off)*
|
|
450
|
-
|
|
451
|
-
---
|
|
452
|
-
|
|
453
|
-
## Template
|
|
454
|
-
|
|
455
|
-
Copy this template for new decisions:
|
|
456
|
-
|
|
457
|
-
\`\`\`markdown
|
|
458
|
-
### DEC-XXX: Title
|
|
459
|
-
|
|
460
|
-
**Date**: YYYY-MM-DD
|
|
461
|
-
**Status**: Proposed
|
|
462
|
-
**Deciders**: Names
|
|
463
|
-
|
|
464
|
-
#### Context
|
|
465
|
-
What is the issue?
|
|
466
|
-
|
|
467
|
-
#### Decision
|
|
468
|
-
What was decided?
|
|
469
|
-
|
|
470
|
-
#### Rationale
|
|
471
|
-
Why this decision?
|
|
472
|
-
|
|
473
|
-
#### Alternatives Considered
|
|
474
|
-
1. Alternative - Reason rejected
|
|
475
|
-
|
|
476
|
-
#### Consequences
|
|
477
|
-
- Positive
|
|
478
|
-
- Trade-off
|
|
479
|
-
\`\`\`
|
|
480
|
-
|
|
481
|
-
---
|
|
482
|
-
|
|
483
|
-
## Decision Index
|
|
484
|
-
|
|
485
|
-
| ID | Title | Status | Date |
|
|
486
|
-
|----|-------|--------|------|
|
|
487
|
-
| DEC-001 | *Title* | Proposed | ${date} |
|
|
488
|
-
|
|
489
|
-
---
|
|
490
|
-
|
|
491
|
-
*This document is automatically indexed by Bootspring.*
|
|
492
|
-
`;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
/**
|
|
496
|
-
* Get all planning templates
|
|
497
|
-
*/
|
|
498
|
-
function getTemplates(config) {
|
|
499
|
-
return {
|
|
500
|
-
'README.md': generateReadme(config),
|
|
501
|
-
'MASTER_PLAN.md': generateMasterPlan(config),
|
|
502
|
-
'PRD.md': generatePrd(config),
|
|
503
|
-
'ARCHITECTURE.md': generateArchitecture(config),
|
|
504
|
-
'DECISION_LOG.md': generateDecisionLog(config)
|
|
505
|
-
};
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
module.exports = {
|
|
509
|
-
generateReadme,
|
|
510
|
-
generateMasterPlan,
|
|
511
|
-
generatePrd,
|
|
512
|
-
generateArchitecture,
|
|
513
|
-
generateDecisionLog,
|
|
514
|
-
getTemplates
|
|
515
|
-
};
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SEED.md Template Generator
|
|
3
|
-
*
|
|
4
|
-
* Generates a SEED.md file with project configuration details.
|
|
5
|
-
* This is a structured data file that bootspring uses internally.
|
|
6
|
-
*
|
|
7
|
-
* @package bootspring
|
|
8
|
-
* @module generators/templates/seed
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const yaml = require('yaml');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Generate SEED.md content from config
|
|
15
|
-
*/
|
|
16
|
-
function generate(config) {
|
|
17
|
-
const sections = [];
|
|
18
|
-
|
|
19
|
-
// Header
|
|
20
|
-
sections.push('# Project Seed');
|
|
21
|
-
sections.push('');
|
|
22
|
-
sections.push('> This file contains structured project configuration.');
|
|
23
|
-
sections.push('> Generated by Bootspring. Do not edit manually unless you know what you are doing.');
|
|
24
|
-
sections.push('');
|
|
25
|
-
|
|
26
|
-
// Project Info
|
|
27
|
-
sections.push('## Project');
|
|
28
|
-
sections.push('');
|
|
29
|
-
sections.push('```yaml');
|
|
30
|
-
sections.push(yaml.stringify({
|
|
31
|
-
name: config.project.name,
|
|
32
|
-
description: config.project.description || '',
|
|
33
|
-
version: config.project.version,
|
|
34
|
-
status: config.project.status
|
|
35
|
-
}));
|
|
36
|
-
sections.push('```');
|
|
37
|
-
sections.push('');
|
|
38
|
-
|
|
39
|
-
// Stack
|
|
40
|
-
sections.push('## Stack');
|
|
41
|
-
sections.push('');
|
|
42
|
-
sections.push('```yaml');
|
|
43
|
-
sections.push(yaml.stringify(config.stack));
|
|
44
|
-
sections.push('```');
|
|
45
|
-
sections.push('');
|
|
46
|
-
|
|
47
|
-
// Plugins
|
|
48
|
-
sections.push('## Plugins');
|
|
49
|
-
sections.push('');
|
|
50
|
-
sections.push('```yaml');
|
|
51
|
-
sections.push(yaml.stringify(config.plugins));
|
|
52
|
-
sections.push('```');
|
|
53
|
-
sections.push('');
|
|
54
|
-
|
|
55
|
-
// Workflow
|
|
56
|
-
if (config.workflow) {
|
|
57
|
-
sections.push('## Workflow');
|
|
58
|
-
sections.push('');
|
|
59
|
-
sections.push('```yaml');
|
|
60
|
-
sections.push(yaml.stringify(config.workflow));
|
|
61
|
-
sections.push('```');
|
|
62
|
-
sections.push('');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Instructions
|
|
66
|
-
if (config.instructions && Object.keys(config.instructions).length > 0) {
|
|
67
|
-
sections.push('## Instructions');
|
|
68
|
-
sections.push('');
|
|
69
|
-
sections.push('```yaml');
|
|
70
|
-
sections.push(yaml.stringify(config.instructions));
|
|
71
|
-
sections.push('```');
|
|
72
|
-
sections.push('');
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Business
|
|
76
|
-
if (config.business && config.business.model) {
|
|
77
|
-
sections.push('## Business');
|
|
78
|
-
sections.push('');
|
|
79
|
-
sections.push('```yaml');
|
|
80
|
-
sections.push(yaml.stringify(config.business));
|
|
81
|
-
sections.push('```');
|
|
82
|
-
sections.push('');
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Advanced
|
|
86
|
-
if (config.advanced) {
|
|
87
|
-
sections.push('## Advanced');
|
|
88
|
-
sections.push('');
|
|
89
|
-
sections.push('```yaml');
|
|
90
|
-
sections.push(yaml.stringify(config.advanced));
|
|
91
|
-
sections.push('```');
|
|
92
|
-
sections.push('');
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Metadata
|
|
96
|
-
sections.push('## Metadata');
|
|
97
|
-
sections.push('');
|
|
98
|
-
sections.push('```yaml');
|
|
99
|
-
sections.push(yaml.stringify({
|
|
100
|
-
generated: new Date().toISOString(),
|
|
101
|
-
bootspringVersion: require('../../package.json').version,
|
|
102
|
-
preset: config._preset || 'unknown'
|
|
103
|
-
}));
|
|
104
|
-
sections.push('```');
|
|
105
|
-
|
|
106
|
-
return sections.join('\n');
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
module.exports = { generate };
|