@girardmedia/bootspring 1.2.0 → 2.0.3
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 +107 -14
- package/bin/bootspring.js +166 -27
- package/cli/agent.js +189 -17
- package/cli/analyze.js +499 -0
- package/cli/audit.js +557 -0
- package/cli/auth.js +495 -38
- package/cli/billing.js +302 -0
- package/cli/build.js +695 -0
- package/cli/business.js +109 -26
- package/cli/checkpoint-utils.js +168 -0
- package/cli/checkpoint.js +639 -0
- package/cli/cloud-sync.js +447 -0
- package/cli/content.js +198 -0
- package/cli/context.js +1 -1
- package/cli/deploy.js +543 -0
- package/cli/fundraise.js +112 -50
- package/cli/github-cmd.js +435 -0
- package/cli/health.js +477 -0
- package/cli/init.js +84 -13
- package/cli/legal.js +107 -95
- package/cli/log.js +2 -2
- package/cli/loop.js +976 -73
- package/cli/manager.js +711 -0
- package/cli/metrics.js +480 -0
- package/cli/monitor.js +812 -0
- package/cli/onboard.js +521 -0
- package/cli/orchestrator.js +12 -24
- package/cli/prd.js +594 -0
- package/cli/preseed-start.js +1483 -0
- package/cli/preseed.js +2302 -0
- package/cli/project.js +436 -0
- package/cli/quality.js +233 -0
- package/cli/security.js +913 -0
- package/cli/seed.js +1441 -5
- package/cli/skill.js +273 -211
- package/cli/suggest.js +989 -0
- package/cli/switch.js +453 -0
- package/cli/visualize.js +527 -0
- package/cli/watch.js +769 -0
- package/cli/workspace.js +607 -0
- package/core/analyze-workflow.js +1134 -0
- package/core/api-client.js +535 -22
- package/core/audit-workflow.js +1350 -0
- package/core/build-orchestrator.js +480 -0
- package/core/build-state.js +577 -0
- package/core/checkpoint-engine.js +408 -0
- package/core/config.js +1109 -26
- package/core/context-loader.js +21 -1
- package/core/deploy-workflow.js +836 -0
- package/core/entitlements.js +93 -22
- package/core/github-sync.js +610 -0
- package/core/index.js +8 -1
- package/core/ingest.js +1111 -0
- package/core/metrics-engine.js +768 -0
- package/core/onboard-workflow.js +1007 -0
- package/core/preseed-workflow.js +934 -0
- package/core/preseed.js +1617 -0
- package/core/project-context.js +325 -0
- package/core/project-state.js +694 -0
- package/core/r2-sync.js +583 -0
- package/core/scaffold.js +525 -7
- package/core/session.js +258 -0
- package/core/task-extractor.js +758 -0
- package/core/telemetry.js +28 -6
- package/core/tier-enforcement.js +737 -0
- package/core/utils.js +38 -14
- package/generators/questionnaire.js +15 -12
- package/generators/sections/ai.js +7 -7
- package/generators/sections/content.js +300 -0
- package/generators/sections/index.js +3 -0
- package/generators/sections/plugins.js +7 -6
- package/generators/templates/build-planning.template.js +596 -0
- package/generators/templates/content.template.js +819 -0
- package/generators/templates/index.js +2 -1
- package/hooks/git-autopilot.js +1250 -0
- package/hooks/index.js +9 -0
- package/intelligence/agent-collab.js +2057 -0
- package/intelligence/auto-suggest.js +634 -0
- package/intelligence/content-gen.js +1589 -0
- package/intelligence/cross-project.js +1647 -0
- package/intelligence/index.js +184 -0
- package/intelligence/learning/insights.json +517 -7
- package/intelligence/learning/pattern-learner.js +1008 -14
- package/intelligence/memory/decision-tracker.js +1431 -31
- package/intelligence/memory/decisions.jsonl +0 -0
- package/intelligence/orchestrator.js +2896 -1
- package/intelligence/prd.js +92 -1
- package/intelligence/recommendation-weights.json +14 -2
- package/intelligence/recommendations.js +463 -9
- package/intelligence/workflow-composer.js +1451 -0
- package/marketplace/index.d.ts +324 -0
- package/marketplace/index.js +1921 -0
- package/mcp/contracts/mcp-contract.v1.json +342 -4
- package/mcp/registry.js +680 -3
- package/mcp/response-formatter.js +23 -0
- package/mcp/tools/assist-tool.js +78 -4
- package/mcp/tools/autopilot-tool.js +408 -0
- package/mcp/tools/content-tool.js +571 -0
- package/mcp/tools/dashboard-tool.js +251 -5
- package/mcp/tools/mvp-tool.js +344 -0
- package/mcp/tools/plugin-tool.js +23 -1
- package/mcp/tools/prd-tool.js +579 -0
- package/mcp/tools/seed-tool.js +447 -0
- package/mcp/tools/skill-tool.js +43 -14
- package/mcp/tools/suggest-tool.js +147 -0
- package/package.json +15 -6
- package/agents/README.md +0 -93
- package/agents/ai-integration-expert/context.md +0 -386
- package/agents/api-expert/context.md +0 -416
- package/agents/architecture-expert/context.md +0 -454
- package/agents/auth-expert/context.md +0 -399
- package/agents/backend-expert/context.md +0 -483
- package/agents/business-strategy-expert/context.md +0 -180
- package/agents/code-review-expert/context.md +0 -365
- package/agents/competitive-analysis-expert/context.md +0 -239
- package/agents/data-modeling-expert/context.md +0 -352
- package/agents/database-expert/context.md +0 -250
- package/agents/devops-expert/context.md +0 -446
- package/agents/email-expert/context.md +0 -379
- package/agents/financial-expert/context.md +0 -213
- package/agents/frontend-expert/context.md +0 -364
- package/agents/fundraising-expert/context.md +0 -257
- package/agents/growth-expert/context.md +0 -249
- package/agents/index.js +0 -140
- package/agents/investor-relations-expert/context.md +0 -266
- package/agents/legal-expert/context.md +0 -284
- package/agents/marketing-expert/context.md +0 -236
- package/agents/monitoring-expert/context.md +0 -362
- package/agents/operations-expert/context.md +0 -279
- package/agents/partnerships-expert/context.md +0 -286
- package/agents/payment-expert/context.md +0 -340
- package/agents/performance-expert/context.md +0 -377
- package/agents/private-equity-expert/context.md +0 -246
- package/agents/railway-expert/context.md +0 -284
- package/agents/research-expert/context.md +0 -245
- package/agents/sales-expert/context.md +0 -241
- package/agents/security-expert/context.md +0 -343
- package/agents/testing-expert/context.md +0 -414
- package/agents/ui-ux-expert/context.md +0 -448
- package/agents/vercel-expert/context.md +0 -426
- package/skills/index.js +0 -787
- package/skills/patterns/README.md +0 -163
- package/skills/patterns/ai/agents.md +0 -281
- package/skills/patterns/ai/claude.md +0 -138
- package/skills/patterns/ai/embeddings.md +0 -150
- package/skills/patterns/ai/rag.md +0 -266
- package/skills/patterns/ai/streaming.md +0 -170
- package/skills/patterns/ai/structured-output.md +0 -162
- package/skills/patterns/ai/tools.md +0 -154
- package/skills/patterns/analytics/tracking.md +0 -220
- package/skills/patterns/api/errors.md +0 -296
- package/skills/patterns/api/graphql.md +0 -440
- package/skills/patterns/api/middleware.md +0 -279
- package/skills/patterns/api/openapi.md +0 -285
- package/skills/patterns/api/rate-limiting.md +0 -231
- package/skills/patterns/api/route-handler.md +0 -217
- package/skills/patterns/api/server-action.md +0 -249
- package/skills/patterns/api/versioning.md +0 -443
- package/skills/patterns/api/webhooks.md +0 -247
- package/skills/patterns/auth/clerk.md +0 -132
- package/skills/patterns/auth/mfa.md +0 -313
- package/skills/patterns/auth/nextauth.md +0 -140
- package/skills/patterns/auth/oauth.md +0 -237
- package/skills/patterns/auth/rbac.md +0 -152
- package/skills/patterns/auth/session-management.md +0 -367
- package/skills/patterns/auth/session.md +0 -120
- package/skills/patterns/database/audit.md +0 -177
- package/skills/patterns/database/migrations.md +0 -177
- package/skills/patterns/database/pagination.md +0 -230
- package/skills/patterns/database/pooling.md +0 -357
- package/skills/patterns/database/prisma.md +0 -180
- package/skills/patterns/database/relations.md +0 -187
- package/skills/patterns/database/seeding.md +0 -246
- package/skills/patterns/database/soft-delete.md +0 -153
- package/skills/patterns/database/transactions.md +0 -162
- package/skills/patterns/deployment/ci-cd.md +0 -231
- package/skills/patterns/deployment/docker.md +0 -188
- package/skills/patterns/deployment/monitoring.md +0 -387
- package/skills/patterns/deployment/vercel.md +0 -160
- package/skills/patterns/email/resend.md +0 -143
- package/skills/patterns/email/templates.md +0 -245
- package/skills/patterns/email/transactional.md +0 -503
- package/skills/patterns/email/verification.md +0 -176
- package/skills/patterns/files/download.md +0 -243
- package/skills/patterns/files/upload.md +0 -239
- package/skills/patterns/i18n/nextintl.md +0 -188
- package/skills/patterns/logging/structured.md +0 -292
- package/skills/patterns/notifications/email-queue.md +0 -248
- package/skills/patterns/notifications/push.md +0 -279
- package/skills/patterns/payments/checkout.md +0 -303
- package/skills/patterns/payments/invoices.md +0 -287
- package/skills/patterns/payments/portal.md +0 -245
- package/skills/patterns/payments/stripe.md +0 -272
- package/skills/patterns/payments/subscriptions.md +0 -300
- package/skills/patterns/payments/usage.md +0 -279
- package/skills/patterns/performance/caching.md +0 -276
- package/skills/patterns/performance/code-splitting.md +0 -233
- package/skills/patterns/performance/edge.md +0 -254
- package/skills/patterns/performance/isr.md +0 -266
- package/skills/patterns/performance/lazy-loading.md +0 -281
- package/skills/patterns/realtime/sse.md +0 -327
- package/skills/patterns/realtime/websockets.md +0 -336
- package/skills/patterns/search/filtering.md +0 -329
- package/skills/patterns/search/fulltext.md +0 -260
- package/skills/patterns/security/audit-logging.md +0 -444
- package/skills/patterns/security/csrf.md +0 -234
- package/skills/patterns/security/headers.md +0 -252
- package/skills/patterns/security/sanitization.md +0 -258
- package/skills/patterns/security/secrets.md +0 -261
- package/skills/patterns/security/validation.md +0 -268
- package/skills/patterns/security/xss.md +0 -229
- package/skills/patterns/seo/metadata.md +0 -252
- package/skills/patterns/state/context.md +0 -349
- package/skills/patterns/state/react-query.md +0 -313
- package/skills/patterns/state/url-state.md +0 -482
- package/skills/patterns/state/zustand.md +0 -262
- package/skills/patterns/testing/api.md +0 -259
- package/skills/patterns/testing/component.md +0 -233
- package/skills/patterns/testing/coverage.md +0 -207
- package/skills/patterns/testing/fixtures.md +0 -225
- package/skills/patterns/testing/integration.md +0 -436
- package/skills/patterns/testing/mocking.md +0 -177
- package/skills/patterns/testing/playwright.md +0 -162
- package/skills/patterns/testing/snapshot.md +0 -175
- package/skills/patterns/testing/vitest.md +0 -307
- package/skills/patterns/ui/accordions.md +0 -395
- package/skills/patterns/ui/cards.md +0 -299
- package/skills/patterns/ui/dropdowns.md +0 -476
- package/skills/patterns/ui/empty-states.md +0 -320
- package/skills/patterns/ui/forms.md +0 -405
- package/skills/patterns/ui/inputs.md +0 -319
- package/skills/patterns/ui/layouts.md +0 -282
- package/skills/patterns/ui/loading.md +0 -291
- package/skills/patterns/ui/modals.md +0 -338
- package/skills/patterns/ui/navigation.md +0 -374
- package/skills/patterns/ui/tables.md +0 -407
- package/skills/patterns/ui/toasts.md +0 -300
- package/skills/patterns/ui/tooltips.md +0 -396
- package/skills/patterns/utils/dates.md +0 -435
- package/skills/patterns/utils/errors.md +0 -451
- package/skills/patterns/utils/formatting.md +0 -345
- package/skills/patterns/utils/validation.md +0 -434
- package/templates/bootspring.config.js +0 -83
- package/templates/business/business-model-canvas.md +0 -246
- package/templates/business/business-plan.md +0 -266
- package/templates/business/competitive-analysis.md +0 -312
- package/templates/fundraising/data-room-checklist.md +0 -300
- package/templates/fundraising/investor-research.md +0 -243
- package/templates/fundraising/pitch-deck-outline.md +0 -253
- package/templates/legal/gdpr-checklist.md +0 -339
- package/templates/legal/privacy-policy.md +0 -285
- package/templates/legal/terms-of-service.md +0 -222
- package/templates/mcp.json +0 -9
package/README.md
CHANGED
|
@@ -10,6 +10,8 @@ Bootspring is an AI-powered development platform that provides intelligent conte
|
|
|
10
10
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
13
|
+
- **Preseed → Seed → Scaffold Pipeline** - Go from idea to working code with AI-assisted document generation
|
|
14
|
+
- **Universal Drop Zone** - Drop any files and let AI analyze and categorize them for you
|
|
13
15
|
- **Intelligent Context Management** - Automatically generates and maintains AI context for your project
|
|
14
16
|
- **Specialized Agents** - 12+ expert agents for database, security, frontend, backend, and more
|
|
15
17
|
- **MCP Integration** - Native Model Context Protocol server for seamless AI assistant integration
|
|
@@ -22,32 +24,82 @@ Bootspring is an AI-powered development platform that provides intelligent conte
|
|
|
22
24
|
## Quick Start
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
|
-
#
|
|
26
|
-
npx @girardmedia/bootspring init
|
|
27
|
-
|
|
28
|
-
# Or install globally
|
|
27
|
+
# Install globally
|
|
29
28
|
npm install -g @girardmedia/bootspring
|
|
29
|
+
|
|
30
|
+
# Start a new project from an idea
|
|
31
|
+
bootspring preseed start
|
|
32
|
+
bootspring seed synthesize
|
|
33
|
+
bootspring seed scaffold --preset=nextjs
|
|
34
|
+
|
|
35
|
+
# Or initialize in an existing project
|
|
30
36
|
bootspring init
|
|
31
37
|
```
|
|
32
38
|
|
|
39
|
+
### New Project Workflow (Recommended)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# 1. Capture your idea with preseed
|
|
43
|
+
bootspring preseed start
|
|
44
|
+
|
|
45
|
+
# 2. Convert preseed docs to SEED.md
|
|
46
|
+
bootspring seed synthesize
|
|
47
|
+
|
|
48
|
+
# 3. Scaffold your project
|
|
49
|
+
bootspring seed scaffold --preset=nextjs
|
|
50
|
+
|
|
51
|
+
# 4. Start development
|
|
52
|
+
npm install && npm run dev
|
|
53
|
+
```
|
|
54
|
+
|
|
33
55
|
## Authentication
|
|
34
56
|
|
|
35
|
-
Bootspring uses
|
|
57
|
+
Bootspring uses **browser-based device flow** authentication for security.
|
|
36
58
|
|
|
37
59
|
```bash
|
|
38
|
-
#
|
|
39
|
-
bootspring auth register
|
|
40
|
-
|
|
41
|
-
# Login to your account
|
|
60
|
+
# Login via browser (opens browser for authentication)
|
|
42
61
|
bootspring auth login
|
|
43
62
|
|
|
44
|
-
# View
|
|
63
|
+
# View authentication and project status
|
|
45
64
|
bootspring auth status
|
|
46
65
|
|
|
47
|
-
# Logout
|
|
66
|
+
# Logout from all projects
|
|
48
67
|
bootspring auth logout
|
|
49
68
|
```
|
|
50
69
|
|
|
70
|
+
### How It Works
|
|
71
|
+
|
|
72
|
+
1. **Global credentials** are stored in `~/.bootspring/credentials.json`
|
|
73
|
+
2. **Each directory** is linked to a specific project via `.bootspring.json`
|
|
74
|
+
3. **Login opens your browser** to authenticate and select/create a project
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# First login in a directory:
|
|
78
|
+
cd my-project
|
|
79
|
+
bootspring auth login
|
|
80
|
+
# → Opens browser → Sign in → Select project → Creates .bootspring.json
|
|
81
|
+
|
|
82
|
+
# Subsequent use:
|
|
83
|
+
bootspring auth login
|
|
84
|
+
# → "Already authenticated as user@example.com"
|
|
85
|
+
# → "Project: my-project (from .bootspring.json)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Per-Directory Project Linking
|
|
89
|
+
|
|
90
|
+
Each directory can be linked to a different Bootspring project:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
~/projects/frontend/ → "frontend-app" project
|
|
94
|
+
~/projects/backend/ → "backend-api" project
|
|
95
|
+
~/projects/mobile/ → "mobile-app" project
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Switch projects with:
|
|
99
|
+
```bash
|
|
100
|
+
bootspring switch my-other-project
|
|
101
|
+
```
|
|
102
|
+
|
|
51
103
|
### Device Management
|
|
52
104
|
|
|
53
105
|
Each account has a device limit based on your subscription tier:
|
|
@@ -71,6 +123,24 @@ bootspring generate # Generate/regenerate CLAUDE.md context
|
|
|
71
123
|
bootspring dashboard # Start the real-time dashboard
|
|
72
124
|
```
|
|
73
125
|
|
|
126
|
+
### Preseed (Idea Capture)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
bootspring preseed start # Smart entry point - recommended first command
|
|
130
|
+
bootspring preseed setup # Create context folders including drop zone
|
|
131
|
+
bootspring preseed init # Interactive document generation wizard
|
|
132
|
+
bootspring preseed workflow start # Begin document approval workflow
|
|
133
|
+
bootspring preseed pull/push # Sync with cloud dashboard
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Seed (Project Scaffolding)
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
bootspring seed synthesize # Create SEED.md from preseed documents
|
|
140
|
+
bootspring seed scaffold --preset=nextjs # Generate project from preset
|
|
141
|
+
bootspring seed init --preset=startup # Interactive project config
|
|
142
|
+
```
|
|
143
|
+
|
|
74
144
|
### Daily Workflow
|
|
75
145
|
|
|
76
146
|
```bash
|
|
@@ -86,15 +156,15 @@ bootspring context validate # Validate project setup
|
|
|
86
156
|
```bash
|
|
87
157
|
bootspring agent list # List available agents
|
|
88
158
|
bootspring agent show <name> # Show agent details
|
|
89
|
-
bootspring agent invoke <n> # Get specialized help (MCP
|
|
159
|
+
bootspring agent invoke <n> # Get specialized help (MCP enhanced)
|
|
90
160
|
bootspring skill search <q> # Find code patterns
|
|
91
|
-
bootspring skill show <name> # View skill content (MCP
|
|
161
|
+
bootspring skill show <name> # View skill content (MCP enhanced)
|
|
92
162
|
bootspring skill list --external # Include curated external catalog
|
|
93
163
|
bootspring orchestrator workflows # List workflows and premium packs
|
|
94
164
|
bootspring telemetry status # Inspect local telemetry pipeline
|
|
95
165
|
```
|
|
96
166
|
|
|
97
|
-
> **Note:** Commands marked "MCP
|
|
167
|
+
> **Note:** Commands marked "MCP enhanced" provide full functionality through MCP integration but offer degraded (but useful) CLI mode. Run `bootspring mcp start` to enable full features.
|
|
98
168
|
|
|
99
169
|
Premium workflow packs:
|
|
100
170
|
|
|
@@ -274,6 +344,29 @@ your-project/
|
|
|
274
344
|
- [Planning Workspace](planning/README.md)
|
|
275
345
|
- [MCP API Platform](docs/mcp-api-platform.md)
|
|
276
346
|
|
|
347
|
+
## Development
|
|
348
|
+
|
|
349
|
+
### Shared Database Schema
|
|
350
|
+
|
|
351
|
+
The Bootspring API server (`server/`) and the website (`bootspring-site/`) share a PostgreSQL database. The canonical schema is in `shared/db/schema.sql`.
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
# To make schema changes:
|
|
355
|
+
# 1. Edit the canonical schema
|
|
356
|
+
vim shared/db/schema.sql
|
|
357
|
+
|
|
358
|
+
# 2. Sync to both repos
|
|
359
|
+
npm run db:sync
|
|
360
|
+
|
|
361
|
+
# 3. Run server migration
|
|
362
|
+
cd server && npm run migrate
|
|
363
|
+
|
|
364
|
+
# 4. Run site migration
|
|
365
|
+
cd ../bootspring-site && npm run db:push
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
See `shared/db/README.md` for full documentation.
|
|
369
|
+
|
|
277
370
|
## Contributing
|
|
278
371
|
|
|
279
372
|
Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md).
|
package/bin/bootspring.js
CHANGED
|
@@ -25,25 +25,15 @@ const BRAND = {
|
|
|
25
25
|
red: '\x1b[31m'
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
// ASCII art logo
|
|
28
|
+
// ASCII art logo - fits in 60 columns
|
|
29
29
|
const LOGO = `
|
|
30
|
-
${BRAND.color}
|
|
31
|
-
║
|
|
32
|
-
║
|
|
33
|
-
║
|
|
34
|
-
║
|
|
35
|
-
║
|
|
36
|
-
|
|
37
|
-
║ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ║
|
|
38
|
-
║ ║
|
|
39
|
-
║ ███████╗██████╗ ██████╗ ██╗███╗ ██╗ ║
|
|
40
|
-
║ ██╔════╝██╔══██╗██╔══██╗██║████╗ ██║ ║
|
|
41
|
-
║ ███████╗██████╔╝██████╔╝██║██╔██╗ ██║ ║
|
|
42
|
-
║ ╚════██║██╔═══╝ ██╔══██╗██║██║╚██╗██║ ║
|
|
43
|
-
║ ███████║██║ ██║ ██║██║██║ ╚████║ ║
|
|
44
|
-
║ ╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ ║
|
|
45
|
-
║ ║
|
|
46
|
-
╚══════════════════════════════════════════╝${BRAND.reset}
|
|
30
|
+
${BRAND.color}╔══════════════════════════════════════════════════════════╗
|
|
31
|
+
║ ████ ███ ███ █████ ███ ████ ████ █ █ █ ███ ║
|
|
32
|
+
║ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ║
|
|
33
|
+
║ ████ █ █ █ █ █ ███ ████ ████ █ █ █ █ █ ██ ║
|
|
34
|
+
║ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ║
|
|
35
|
+
║ ████ ███ ███ █ ████ █ █ █ █ █ █ ███ ║
|
|
36
|
+
╚══════════════════════════════════════════════════════════╝${BRAND.reset}
|
|
47
37
|
`;
|
|
48
38
|
|
|
49
39
|
// Compact logo for non-help commands
|
|
@@ -57,6 +47,16 @@ const COMMANDS = {
|
|
|
57
47
|
description: 'Login, logout, and manage authentication',
|
|
58
48
|
usage: 'bootspring auth <login|logout|register|whoami|status>'
|
|
59
49
|
},
|
|
50
|
+
switch: {
|
|
51
|
+
script: '../cli/switch.js',
|
|
52
|
+
description: 'Switch current project context',
|
|
53
|
+
usage: 'bootspring switch [project|recent|init|clear|status]'
|
|
54
|
+
},
|
|
55
|
+
project: {
|
|
56
|
+
script: '../cli/project.js',
|
|
57
|
+
description: 'Manage projects (list, create, info)',
|
|
58
|
+
usage: 'bootspring project <list|create|info> [args]'
|
|
59
|
+
},
|
|
60
60
|
|
|
61
61
|
// Core commands
|
|
62
62
|
init: {
|
|
@@ -64,10 +64,35 @@ const COMMANDS = {
|
|
|
64
64
|
description: 'Initialize Bootspring in current project',
|
|
65
65
|
usage: 'bootspring init [--force]'
|
|
66
66
|
},
|
|
67
|
+
onboard: {
|
|
68
|
+
script: '../cli/onboard.js',
|
|
69
|
+
description: 'Layer Bootspring onto existing projects',
|
|
70
|
+
usage: 'bootspring onboard [status|resume|detect|generate|reset]'
|
|
71
|
+
},
|
|
72
|
+
analyze: {
|
|
73
|
+
script: '../cli/analyze.js',
|
|
74
|
+
description: 'Deep codebase analysis',
|
|
75
|
+
usage: 'bootspring analyze [status|resume|reset] [--depth=shallow|standard|deep]'
|
|
76
|
+
},
|
|
77
|
+
audit: {
|
|
78
|
+
script: '../cli/audit.js',
|
|
79
|
+
description: 'Quality, security, and best practices audit',
|
|
80
|
+
usage: 'bootspring audit [status|resume|reset] [--phase=<phase>] [--ci]'
|
|
81
|
+
},
|
|
82
|
+
preseed: {
|
|
83
|
+
script: '../cli/preseed.js',
|
|
84
|
+
description: 'Generate foundational documents from minimal input',
|
|
85
|
+
usage: 'bootspring preseed <init|generate|sync|status|update|export>'
|
|
86
|
+
},
|
|
67
87
|
seed: {
|
|
68
88
|
script: '../cli/seed.js',
|
|
69
89
|
description: 'Project scaffolding and configuration',
|
|
70
|
-
usage: 'bootspring seed <init|scaffold|update|status|export>'
|
|
90
|
+
usage: 'bootspring seed <init|scaffold|build|update|status|export>'
|
|
91
|
+
},
|
|
92
|
+
build: {
|
|
93
|
+
script: '../cli/build.js',
|
|
94
|
+
description: 'Build management and progress tracking',
|
|
95
|
+
usage: 'bootspring build <status|pause|resume|task|skip|plan|reset>'
|
|
71
96
|
},
|
|
72
97
|
generate: {
|
|
73
98
|
script: '../cli/generate.js',
|
|
@@ -79,6 +104,56 @@ const COMMANDS = {
|
|
|
79
104
|
description: 'Open cloud dashboard (bootspring.com)',
|
|
80
105
|
usage: 'bootspring dashboard'
|
|
81
106
|
},
|
|
107
|
+
deploy: {
|
|
108
|
+
script: '../cli/deploy.js',
|
|
109
|
+
description: 'Deploy to production (Vercel, Railway, Fly.io, etc.)',
|
|
110
|
+
usage: 'bootspring deploy [target] [--preview] [--dry-run]'
|
|
111
|
+
},
|
|
112
|
+
monitor: {
|
|
113
|
+
script: '../cli/monitor.js',
|
|
114
|
+
description: 'Production monitoring, hooks, and alerting',
|
|
115
|
+
usage: 'bootspring monitor <init|status|metrics|post-deploy> [options]'
|
|
116
|
+
},
|
|
117
|
+
health: {
|
|
118
|
+
script: '../cli/health.js',
|
|
119
|
+
description: 'Quick project health overview and status',
|
|
120
|
+
usage: 'bootspring health [--json]'
|
|
121
|
+
},
|
|
122
|
+
checkpoint: {
|
|
123
|
+
script: '../cli/checkpoint.js',
|
|
124
|
+
description: 'Manage project checkpoints and milestones',
|
|
125
|
+
usage: 'bootspring checkpoint [status|complete|history|sync]'
|
|
126
|
+
},
|
|
127
|
+
github: {
|
|
128
|
+
script: '../cli/github-cmd.js',
|
|
129
|
+
description: 'GitHub integration and repository sync',
|
|
130
|
+
usage: 'bootspring github [connect|sync|status|disconnect]'
|
|
131
|
+
},
|
|
132
|
+
'cloud-sync': {
|
|
133
|
+
script: '../cli/cloud-sync.js',
|
|
134
|
+
description: 'Sync project context to cloud (Cloudflare R2)',
|
|
135
|
+
usage: 'bootspring cloud-sync [push|pull|status|history|restore]'
|
|
136
|
+
},
|
|
137
|
+
billing: {
|
|
138
|
+
script: '../cli/billing.js',
|
|
139
|
+
description: 'Manage subscription and view usage',
|
|
140
|
+
usage: 'bootspring billing [status|usage|upgrade|portal]'
|
|
141
|
+
},
|
|
142
|
+
manager: {
|
|
143
|
+
script: '../cli/manager.js',
|
|
144
|
+
description: 'Overview of all projects with health scores',
|
|
145
|
+
usage: 'bootspring manager [list|show|export|scan]'
|
|
146
|
+
},
|
|
147
|
+
security: {
|
|
148
|
+
script: '../cli/security.js',
|
|
149
|
+
description: 'Security scanning and score tracking',
|
|
150
|
+
usage: 'bootspring security [scan|quick|status|findings]'
|
|
151
|
+
},
|
|
152
|
+
metrics: {
|
|
153
|
+
script: '../cli/metrics.js',
|
|
154
|
+
description: 'Collect and track project metrics',
|
|
155
|
+
usage: 'bootspring metrics [collect|status|show|export|badges]'
|
|
156
|
+
},
|
|
82
157
|
|
|
83
158
|
// Todo commands
|
|
84
159
|
todo: {
|
|
@@ -157,6 +232,13 @@ const COMMANDS = {
|
|
|
157
232
|
usage: 'bootspring mvp <init|analyze|import|list|show|extract>'
|
|
158
233
|
},
|
|
159
234
|
|
|
235
|
+
// PRD commands
|
|
236
|
+
prd: {
|
|
237
|
+
script: '../cli/prd.js',
|
|
238
|
+
description: 'Product requirements management',
|
|
239
|
+
usage: 'bootspring prd <create|list|show|import|to-tasks|status>'
|
|
240
|
+
},
|
|
241
|
+
|
|
160
242
|
// Business commands
|
|
161
243
|
business: {
|
|
162
244
|
script: '../cli/business.js',
|
|
@@ -178,6 +260,13 @@ const COMMANDS = {
|
|
|
178
260
|
usage: 'bootspring legal <init|terms|privacy|gdpr|status>'
|
|
179
261
|
},
|
|
180
262
|
|
|
263
|
+
// Content commands
|
|
264
|
+
content: {
|
|
265
|
+
script: '../cli/content.js',
|
|
266
|
+
description: 'Generate content (blogs, docs, releases)',
|
|
267
|
+
usage: 'bootspring content <new|types> <type> [options]'
|
|
268
|
+
},
|
|
269
|
+
|
|
181
270
|
// Update commands
|
|
182
271
|
update: {
|
|
183
272
|
script: '../cli/update.js',
|
|
@@ -205,6 +294,11 @@ const COMMANDS = {
|
|
|
205
294
|
description: 'View git-based project memory',
|
|
206
295
|
usage: 'bootspring memory <summary|search|files|stats> [args]'
|
|
207
296
|
},
|
|
297
|
+
suggest: {
|
|
298
|
+
script: '../cli/suggest.js',
|
|
299
|
+
description: 'AI-powered recommendations based on telemetry',
|
|
300
|
+
usage: 'bootspring suggest [next|learning|workflows|skills] [--limit=5]'
|
|
301
|
+
},
|
|
208
302
|
|
|
209
303
|
// Telemetry commands
|
|
210
304
|
telemetry: {
|
|
@@ -213,6 +307,27 @@ const COMMANDS = {
|
|
|
213
307
|
usage: 'bootspring telemetry <status|list|upload|clear> [options]'
|
|
214
308
|
},
|
|
215
309
|
|
|
310
|
+
// Visualize command
|
|
311
|
+
visualize: {
|
|
312
|
+
script: '../cli/visualize.js',
|
|
313
|
+
description: 'Terminal-based workflow visualization',
|
|
314
|
+
usage: 'bootspring visualize [--watch] [--graph]'
|
|
315
|
+
},
|
|
316
|
+
|
|
317
|
+
// Watch command
|
|
318
|
+
watch: {
|
|
319
|
+
script: '../cli/watch.js',
|
|
320
|
+
description: 'Real-time file watching and sync',
|
|
321
|
+
usage: 'bootspring watch [--todos] [--workflows] [--prd]'
|
|
322
|
+
},
|
|
323
|
+
|
|
324
|
+
// Workspace command
|
|
325
|
+
workspace: {
|
|
326
|
+
script: '../cli/workspace.js',
|
|
327
|
+
description: 'Multi-project workspace management',
|
|
328
|
+
usage: 'bootspring workspace <init|add|remove|list|run>'
|
|
329
|
+
},
|
|
330
|
+
|
|
216
331
|
// Help
|
|
217
332
|
help: {
|
|
218
333
|
script: null,
|
|
@@ -223,12 +338,16 @@ const COMMANDS = {
|
|
|
223
338
|
|
|
224
339
|
// Command categories for help display
|
|
225
340
|
const CATEGORIES = {
|
|
226
|
-
'Getting Started': ['auth', 'init', 'seed', 'mvp', 'generate', 'dashboard', 'help'],
|
|
341
|
+
'Getting Started': ['auth', 'switch', 'project', 'init', 'onboard', 'preseed', 'seed', 'build', 'mvp', 'prd', 'generate', 'dashboard', 'workspace', 'help'],
|
|
342
|
+
'Project Management': ['checkpoint', 'manager', 'github'],
|
|
343
|
+
'Analysis': ['analyze', 'audit'],
|
|
227
344
|
'Business': ['business', 'fundraise', 'legal'],
|
|
228
|
-
'
|
|
229
|
-
'
|
|
345
|
+
'Content': ['content'],
|
|
346
|
+
'Daily Workflow': ['todo', 'task', 'context', 'log', 'watch'],
|
|
347
|
+
'Intelligence': ['agent', 'skill', 'orchestrator', 'loop', 'memory', 'suggest'],
|
|
230
348
|
'Quality & Plugins': ['quality', 'plugin'],
|
|
231
|
-
'
|
|
349
|
+
'Deployment': ['deploy', 'monitor', 'health'],
|
|
350
|
+
'System': ['mcp', 'doctor', 'telemetry', 'update', 'visualize']
|
|
232
351
|
};
|
|
233
352
|
|
|
234
353
|
/**
|
|
@@ -279,7 +398,13 @@ function showVersion() {
|
|
|
279
398
|
* Main entry point
|
|
280
399
|
*/
|
|
281
400
|
async function main() {
|
|
282
|
-
const
|
|
401
|
+
const rawArgs = process.argv.slice(2);
|
|
402
|
+
|
|
403
|
+
// Parse --project flag first (can appear anywhere)
|
|
404
|
+
const projectContext = require('../core/project-context');
|
|
405
|
+
const { projectOverride, cleanArgs } = projectContext.parseProjectFlag(rawArgs);
|
|
406
|
+
|
|
407
|
+
const args = cleanArgs;
|
|
283
408
|
const command = args[0];
|
|
284
409
|
|
|
285
410
|
// Handle no command
|
|
@@ -328,13 +453,20 @@ async function main() {
|
|
|
328
453
|
process.exit(0);
|
|
329
454
|
}
|
|
330
455
|
|
|
456
|
+
// Validate project context before running command
|
|
457
|
+
const commandArgs = args.slice(1);
|
|
458
|
+
const validation = projectContext.validateForCommand(command, commandArgs, { projectOverride });
|
|
459
|
+
|
|
460
|
+
if (!validation.valid) {
|
|
461
|
+
console.log(LOGO_COMPACT);
|
|
462
|
+
console.log(`\n${projectContext.formatError(validation.error)}\n`);
|
|
463
|
+
process.exit(1);
|
|
464
|
+
}
|
|
465
|
+
|
|
331
466
|
// Load and execute command
|
|
332
467
|
try {
|
|
333
468
|
const commandModule = require(scriptPath);
|
|
334
469
|
|
|
335
|
-
// Pass remaining args to command
|
|
336
|
-
const commandArgs = args.slice(1);
|
|
337
|
-
|
|
338
470
|
// Execute command
|
|
339
471
|
if (typeof commandModule.run === 'function') {
|
|
340
472
|
await commandModule.run(commandArgs);
|
|
@@ -345,6 +477,13 @@ async function main() {
|
|
|
345
477
|
process.exit(1);
|
|
346
478
|
}
|
|
347
479
|
} catch (error) {
|
|
480
|
+
// Handle project context errors specially
|
|
481
|
+
if (error.code === 'NO_PROJECT_CONTEXT') {
|
|
482
|
+
console.log(LOGO_COMPACT);
|
|
483
|
+
console.log(`\n${projectContext.formatError(error)}\n`);
|
|
484
|
+
process.exit(1);
|
|
485
|
+
}
|
|
486
|
+
|
|
348
487
|
console.log(LOGO_COMPACT);
|
|
349
488
|
console.log(`\n${BRAND.red}Error executing '${command}':${BRAND.reset}`);
|
|
350
489
|
console.log(`${BRAND.dim}${error.message}${BRAND.reset}\n`);
|