@theproductguy/create-mission-control 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/bin/cli.js +170 -0
- package/package.json +44 -0
- package/src/template/App.tsx +28 -0
- package/src/template/agent-os/commands/create-tasks/1-get-spec-requirements.md +19 -0
- package/src/template/agent-os/commands/create-tasks/2-create-tasks-list.md +234 -0
- package/src/template/agent-os/commands/create-tasks/create-tasks.md +254 -0
- package/src/template/agent-os/commands/design-screen/design-screen.md +32 -0
- package/src/template/agent-os/commands/design-shell/design-shell.md +34 -0
- package/src/template/agent-os/commands/design-tokens/design-tokens.md +36 -0
- package/src/template/agent-os/commands/export-product/export-product.md +181 -0
- package/src/template/agent-os/commands/implement-tasks/1-determine-tasks.md +13 -0
- package/src/template/agent-os/commands/implement-tasks/2-implement-tasks.md +63 -0
- package/src/template/agent-os/commands/implement-tasks/3-verify-implementation.md +113 -0
- package/src/template/agent-os/commands/implement-tasks/implement-tasks.md +207 -0
- package/src/template/agent-os/commands/initialize-design/initialize-design.md +67 -0
- package/src/template/agent-os/commands/orchestrate-tasks/orchestrate-tasks.md +180 -0
- package/src/template/agent-os/commands/plan-product/1-product-concept.md +53 -0
- package/src/template/agent-os/commands/plan-product/2-create-mission.md +78 -0
- package/src/template/agent-os/commands/plan-product/3-create-roadmap.md +73 -0
- package/src/template/agent-os/commands/plan-product/4-create-tech-stack.md +46 -0
- package/src/template/agent-os/commands/plan-product/plan-product.md +241 -0
- package/src/template/agent-os/commands/sample-data/sample-data.md +51 -0
- package/src/template/agent-os/commands/scaffold-implementation/scaffold-implementation.md +35 -0
- package/src/template/agent-os/commands/screenshot-design/screenshot-design.md +21 -0
- package/src/template/agent-os/commands/shape-spec/1-initialize-spec.md +95 -0
- package/src/template/agent-os/commands/shape-spec/2-shape-spec.md +300 -0
- package/src/template/agent-os/commands/shape-spec/shape-spec.md +40 -0
- package/src/template/agent-os/commands/write-spec/write-spec.md +134 -0
- package/src/template/agent-os/config.yml +13 -0
- package/src/template/agent-os/product/mission.md +29 -0
- package/src/template/agent-os/product/roadmap.md +9 -0
- package/src/template/agent-os/product/tech-stack.md +14 -0
- package/src/template/agent-os/scripts/generate_docs.sh +150 -0
- package/src/template/agent-os/specs/README.md +1 -0
- package/src/template/agent-os/standards/backend/api.md +10 -0
- package/src/template/agent-os/standards/backend/migrations.md +9 -0
- package/src/template/agent-os/standards/backend/models.md +10 -0
- package/src/template/agent-os/standards/backend/queries.md +9 -0
- package/src/template/agent-os/standards/frontend/accessibility.md +10 -0
- package/src/template/agent-os/standards/frontend/components.md +11 -0
- package/src/template/agent-os/standards/frontend/css.md +7 -0
- package/src/template/agent-os/standards/frontend/responsive.md +11 -0
- package/src/template/agent-os/standards/global/coding-style.md +10 -0
- package/src/template/agent-os/standards/global/commenting.md +5 -0
- package/src/template/agent-os/standards/global/conventions.md +11 -0
- package/src/template/agent-os/standards/global/error-handling.md +9 -0
- package/src/template/agent-os/standards/global/tech-stack.md +31 -0
- package/src/template/agent-os/standards/global/validation.md +11 -0
- package/src/template/agent-os/standards/testing/test-writing.md +9 -0
- package/src/template/agent-os-ui/README.md +73 -0
- package/src/template/agent-os-ui/package.json +54 -0
- package/src/template/agent-os-ui/src/components/AgentShell.tsx +31 -0
- package/src/template/agent-os-ui/src/components/AgentSidebar.tsx +65 -0
- package/src/template/agent-os-ui/src/components/GuidanceCard.tsx +75 -0
- package/src/template/agent-os-ui/src/components/MarkdownViewer.tsx +25 -0
- package/src/template/agent-os-ui/src/components/PromptButton.tsx +28 -0
- package/src/template/agent-os-ui/src/components/StatusItem.tsx +45 -0
- package/src/template/agent-os-ui/src/components/ThemeToggle.tsx +72 -0
- package/src/template/agent-os-ui/src/index.ts +11 -0
- package/src/template/agent-os-ui/src/style.css +3 -0
- package/src/template/agent-os-ui/tsconfig.json +33 -0
- package/src/template/agent-os-ui/vite.config.ts +32 -0
- package/src/template/control-center/backend/index.js +253 -0
- package/src/template/control-center/backend/package.json +19 -0
- package/src/template/control-center/frontend/README.md +73 -0
- package/src/template/control-center/frontend/eslint.config.js +23 -0
- package/src/template/control-center/frontend/index.html +21 -0
- package/src/template/control-center/frontend/package.json +43 -0
- package/src/template/control-center/frontend/postcss.config.js +6 -0
- package/src/template/control-center/frontend/public/favicon.svg +4 -0
- package/src/template/control-center/frontend/public/runtime-config.json +11 -0
- package/src/template/control-center/frontend/public/vite.svg +1 -0
- package/src/template/control-center/frontend/src/App.css +42 -0
- package/src/template/control-center/frontend/src/App.tsx +835 -0
- package/src/template/control-center/frontend/src/assets/react.svg +1 -0
- package/src/template/control-center/frontend/src/components/ThemeToggle.tsx +64 -0
- package/src/template/control-center/frontend/src/components/ui/ToastContext.tsx +81 -0
- package/src/template/control-center/frontend/src/index.css +149 -0
- package/src/template/control-center/frontend/src/main.tsx +14 -0
- package/src/template/control-center/frontend/src/vite-env.d.ts +1 -0
- package/src/template/control-center/frontend/tailwind.config.js +81 -0
- package/src/template/control-center/frontend/tsconfig.app.json +28 -0
- package/src/template/control-center/frontend/tsconfig.json +7 -0
- package/src/template/control-center/frontend/tsconfig.node.json +26 -0
- package/src/template/control-center/frontend/vite.config.ts +21 -0
- package/src/template/design/.claude/commands/design-os/data-model.md +122 -0
- package/src/template/design/.claude/commands/design-os/design-screen.md +309 -0
- package/src/template/design/.claude/commands/design-os/design-shell.md +238 -0
- package/src/template/design/.claude/commands/design-os/design-tokens.md +166 -0
- package/src/template/design/.claude/commands/design-os/export-product.md +1105 -0
- package/src/template/design/.claude/commands/design-os/product-roadmap.md +121 -0
- package/src/template/design/.claude/commands/design-os/product-vision.md +99 -0
- package/src/template/design/.claude/commands/design-os/sample-data.md +263 -0
- package/src/template/design/.claude/commands/design-os/screenshot-design.md +112 -0
- package/src/template/design/.claude/commands/design-os/shape-section.md +138 -0
- package/src/template/design/.claude/skills/frontend-design/SKILL.md +42 -0
- package/src/template/design/.github/CODE_OF_CONDUCT.md +5 -0
- package/src/template/design/.github/CONTRIBUTING.md +51 -0
- package/src/template/design/.github/ISSUE_TEMPLATE/config.yml +22 -0
- package/src/template/design/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/src/template/design/.github/SECURITY.yml +5 -0
- package/src/template/design/.github/SUPPORT.md +19 -0
- package/src/template/design/.github/workflows/pr-decline.yml +135 -0
- package/src/template/design/.github/workflows/stale.yml +25 -0
- package/src/template/design/CHANGELOG.md +13 -0
- package/src/template/design/LICENSE +21 -0
- package/src/template/design/README.md +54 -0
- package/src/template/design/agents.md +218 -0
- package/src/template/design/claude.md +1 -0
- package/src/template/design/components.json +22 -0
- package/src/template/design/docs/codebase-implementation.md +153 -0
- package/src/template/design/docs/design-section.md +135 -0
- package/src/template/design/docs/export.md +149 -0
- package/src/template/design/docs/getting-started.md +59 -0
- package/src/template/design/docs/index.md +56 -0
- package/src/template/design/docs/product-planning.md +113 -0
- package/src/template/design/docs/requirements.md +22 -0
- package/src/template/design/docs/usage.md +62 -0
- package/src/template/design/eslint.config.js +23 -0
- package/src/template/design/index.html +21 -0
- package/src/template/design/package.json +46 -0
- package/src/template/design/postcss.config.js +6 -0
- package/src/template/design/public/favicon.svg +4 -0
- package/src/template/design/public/vite.svg +1 -0
- package/src/template/design/src/assets/react.svg +1 -0
- package/src/template/design/src/components/AppLayout.tsx +95 -0
- package/src/template/design/src/components/DataCard.tsx +139 -0
- package/src/template/design/src/components/DataModelPage.tsx +120 -0
- package/src/template/design/src/components/DesignPage.tsx +284 -0
- package/src/template/design/src/components/EmptyState.tsx +158 -0
- package/src/template/design/src/components/ExportPage.tsx +354 -0
- package/src/template/design/src/components/NextPhaseButton.tsx +33 -0
- package/src/template/design/src/components/PhaseNav.tsx +152 -0
- package/src/template/design/src/components/PhaseWarningBanner.tsx +81 -0
- package/src/template/design/src/components/ProductOverviewCard.tsx +102 -0
- package/src/template/design/src/components/ProductPage.tsx +97 -0
- package/src/template/design/src/components/ScreenDesignPage.tsx +370 -0
- package/src/template/design/src/components/ScreenDesignsCard.tsx +49 -0
- package/src/template/design/src/components/SectionPage.tsx +256 -0
- package/src/template/design/src/components/SectionsCard.tsx +47 -0
- package/src/template/design/src/components/SectionsPage.tsx +181 -0
- package/src/template/design/src/components/ShellCard.tsx +85 -0
- package/src/template/design/src/components/ShellDesignPage.tsx +242 -0
- package/src/template/design/src/components/SpecCard.tsx +121 -0
- package/src/template/design/src/components/StepIndicator.tsx +75 -0
- package/src/template/design/src/components/ThemeToggle.tsx +86 -0
- package/src/template/design/src/components/ui/ToastContext.tsx +81 -0
- package/src/template/design/src/components/ui/avatar.tsx +53 -0
- package/src/template/design/src/components/ui/badge.tsx +46 -0
- package/src/template/design/src/components/ui/button.tsx +60 -0
- package/src/template/design/src/components/ui/card.tsx +92 -0
- package/src/template/design/src/components/ui/collapsible.tsx +48 -0
- package/src/template/design/src/components/ui/dialog.tsx +143 -0
- package/src/template/design/src/components/ui/dropdown-menu.tsx +255 -0
- package/src/template/design/src/components/ui/input.tsx +21 -0
- package/src/template/design/src/components/ui/label.tsx +22 -0
- package/src/template/design/src/components/ui/progress.tsx +24 -0
- package/src/template/design/src/components/ui/scroll-area.tsx +18 -0
- package/src/template/design/src/components/ui/select.tsx +67 -0
- package/src/template/design/src/components/ui/separator.tsx +28 -0
- package/src/template/design/src/components/ui/sheet.tsx +137 -0
- package/src/template/design/src/components/ui/skeleton.tsx +13 -0
- package/src/template/design/src/components/ui/switch.tsx +46 -0
- package/src/template/design/src/components/ui/table.tsx +116 -0
- package/src/template/design/src/components/ui/tabs.tsx +64 -0
- package/src/template/design/src/index.css +239 -0
- package/src/template/design/src/lib/data-model-loader.ts +91 -0
- package/src/template/design/src/lib/design-system-loader.ts +101 -0
- package/src/template/design/src/lib/product-loader.ts +221 -0
- package/src/template/design/src/lib/router.tsx +61 -0
- package/src/template/design/src/lib/section-loader.ts +272 -0
- package/src/template/design/src/lib/shell-loader.ts +175 -0
- package/src/template/design/src/lib/utils.ts +6 -0
- package/src/template/design/src/main.tsx +15 -0
- package/src/template/design/src/sections/.gitkeep +0 -0
- package/src/template/design/src/sections/ai-orchestration-engine-oai/OrchestrationEngine.tsx +348 -0
- package/src/template/design/src/sections/core-platform-shell/AppShell.tsx +403 -0
- package/src/template/design/src/sections/gemini-live-integration/GeminiIntegration.tsx +332 -0
- package/src/template/design/src/sections/interactive-2d-canvas/WhiteboardCanvas.tsx +334 -0
- package/src/template/design/src/sections/participation-equity-tracker/EquityTracker.tsx +383 -0
- package/src/template/design/src/sections/persistent-memory-system/PersistentMemory.tsx +308 -0
- package/src/template/design/src/sections/real-time-communication-layer/VideoSession.tsx +342 -0
- package/src/template/design/src/sections/visual-intelligence-agents/VisualAgents.tsx +311 -0
- package/src/template/design/src/types/product.ts +97 -0
- package/src/template/design/src/types/section.ts +33 -0
- package/src/template/design/tailwind.config.js +77 -0
- package/src/template/design/tsconfig.app.json +34 -0
- package/src/template/design/tsconfig.json +13 -0
- package/src/template/design/tsconfig.node.json +26 -0
- package/src/template/design/vite.config.ts +17 -0
- package/src/template/index.css +102 -0
- package/src/template/package.json +27 -0
- package/src/template/tailwind.config.js +80 -0
- package/src/template/vite.config.ts +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# @builderos/create-agent-os
|
|
2
|
+
|
|
3
|
+
The official scaffolding tool for **Agent OS** applications.
|
|
4
|
+
|
|
5
|
+
Agent OS provides a structured workspace for building AI Agents, including:
|
|
6
|
+
- **Control Center**: A local dashboard to manage your agent's mission, specs, and status.
|
|
7
|
+
- **Design OS**: A pre-configured Design System (colors, typography, components) to ensure your agent's UI looks premium.
|
|
8
|
+
- **Agent OS UI**: A component library optimized for building agentic interfaces.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
To create a new project, run:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx @theproductguy/create-mission-control@latest
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Follow the prompts to name your project.
|
|
19
|
+
|
|
20
|
+
## Workspace Structure
|
|
21
|
+
|
|
22
|
+
The scaffolded workspace includes:
|
|
23
|
+
- `app/`: Your main application (React + Vite).
|
|
24
|
+
- `control-center/`: Local tools for managing the agent lifecycle.
|
|
25
|
+
- `design-system/`: Your customizable design system documentation.
|
|
26
|
+
- `agent-os/`: Markdown-based storage for specs, roadmap, and tasks.
|
|
27
|
+
|
|
28
|
+
## Getting Started
|
|
29
|
+
|
|
30
|
+
1. `cd <project-name>`
|
|
31
|
+
2. `npm install`
|
|
32
|
+
3. `npm run dev`
|
|
33
|
+
|
|
34
|
+
This will start all services concurrently:
|
|
35
|
+
- **Control Center**: http://localhost:3001
|
|
36
|
+
- **Design OS**: http://localhost:3000
|
|
37
|
+
- **Your App**: http://localhost:3002
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import prompts from 'prompts';
|
|
8
|
+
import { red, green, bold, cyan } from 'kolorist';
|
|
9
|
+
import { spawn } from 'node:child_process';
|
|
10
|
+
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = path.dirname(__filename);
|
|
13
|
+
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
|
|
16
|
+
async function init() {
|
|
17
|
+
const program = new Command();
|
|
18
|
+
|
|
19
|
+
program
|
|
20
|
+
.name('create-agent-os')
|
|
21
|
+
.description('Scaffold a new Agent OS application')
|
|
22
|
+
.argument('[project-directory]', 'Directory to create the application in')
|
|
23
|
+
.action(async (targetDir) => {
|
|
24
|
+
let result = { projectName: targetDir };
|
|
25
|
+
|
|
26
|
+
if (!targetDir) {
|
|
27
|
+
result = await prompts({
|
|
28
|
+
type: 'text',
|
|
29
|
+
name: 'projectName',
|
|
30
|
+
message: 'Project name:',
|
|
31
|
+
initial: 'my-agent-app'
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!result.projectName) return;
|
|
36
|
+
|
|
37
|
+
const root = path.resolve(cwd, result.projectName);
|
|
38
|
+
console.log(`\n${bold('Creating Agent OS workspace in:')} ${green(root)}\n`);
|
|
39
|
+
|
|
40
|
+
if (fs.existsSync(root)) {
|
|
41
|
+
console.log(red(`Error: Directory ${result.projectName} already exists.`));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
fs.mkdirSync(root, { recursive: true });
|
|
46
|
+
|
|
47
|
+
// 1. Scaffold App (Client)
|
|
48
|
+
console.log(cyan('1. Scaffolding Client App...'));
|
|
49
|
+
|
|
50
|
+
// Force change directory to the project root
|
|
51
|
+
// This is the most reliable way to ensure npx runs in the correct context
|
|
52
|
+
try {
|
|
53
|
+
process.chdir(root);
|
|
54
|
+
console.log(`Changed CWD to: ${process.cwd()}`);
|
|
55
|
+
} catch (err) {
|
|
56
|
+
console.error(red(`Failed to change directory to ${root}: ${err.message}`));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const appDir = path.join(root, 'app');
|
|
61
|
+
|
|
62
|
+
// Use npm create vite to scaffold the app inside the 'app' folder
|
|
63
|
+
// Debugging CI/CD path issues
|
|
64
|
+
console.log(`[DEBUG] Root: ${root}`);
|
|
65
|
+
console.log(`[DEBUG] CWD before spawn: ${process.cwd()}`);
|
|
66
|
+
console.log(`[DEBUG] Spawning in: ${root}`);
|
|
67
|
+
|
|
68
|
+
// Use npm create vite to scaffold the app inside the 'app' folder
|
|
69
|
+
// Pin version to avoid experimental prompts
|
|
70
|
+
const viteProcess = spawn('npx', ['-y', 'create-vite@5.2.0', 'app', '--template', 'react-ts'], {
|
|
71
|
+
stdio: 'inherit',
|
|
72
|
+
shell: false, // Don't use shell, it messes up CWD in some environments
|
|
73
|
+
cwd: root, // Explicitly set CWD for the child process
|
|
74
|
+
// env: { ...process.env, PWD: root } // Maybe strictly needed? Let's check without first or keep it?
|
|
75
|
+
// Keeping env PWD just in case npx looks at it
|
|
76
|
+
env: { ...process.env, PWD: root }
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
viteProcess.on('close', async (code) => {
|
|
80
|
+
if (code !== 0) {
|
|
81
|
+
console.error(red('Vite scaffolding failed.'));
|
|
82
|
+
process.exit(code);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// 2. Copy Templates
|
|
86
|
+
console.log(cyan('\n2. Installing Control Center & Design OS...'));
|
|
87
|
+
const templateDir = path.resolve(__dirname, '../src/template');
|
|
88
|
+
|
|
89
|
+
// Copy Control Center
|
|
90
|
+
fs.cpSync(path.join(templateDir, 'control-center'), path.join(root, 'control-center'), { recursive: true });
|
|
91
|
+
|
|
92
|
+
// Copy Design System
|
|
93
|
+
fs.cpSync(path.join(templateDir, 'design'), path.join(root, 'design-system'), { recursive: true });
|
|
94
|
+
|
|
95
|
+
// Copy Agent OS Docs
|
|
96
|
+
fs.cpSync(path.join(templateDir, 'agent-os'), path.join(root, 'agent-os'), { recursive: true });
|
|
97
|
+
|
|
98
|
+
// Copy Agent OS UI Package (for local workspace support)
|
|
99
|
+
fs.cpSync(path.join(templateDir, 'agent-os-ui'), path.join(root, 'agent-os-ui'), { recursive: true });
|
|
100
|
+
|
|
101
|
+
// 3. Configure Workspace
|
|
102
|
+
console.log(cyan('\n3. Configuring Workspace...'));
|
|
103
|
+
|
|
104
|
+
// Root package.json
|
|
105
|
+
const rootPkg = JSON.parse(fs.readFileSync(path.join(templateDir, 'package.json'), 'utf-8'));
|
|
106
|
+
rootPkg.name = result.projectName;
|
|
107
|
+
fs.writeFileSync(path.join(root, 'package.json'), JSON.stringify(rootPkg, null, 2));
|
|
108
|
+
|
|
109
|
+
// App Package.json (Add dependencies)
|
|
110
|
+
const appPkgPath = path.join(appDir, 'package.json');
|
|
111
|
+
const appPkg = JSON.parse(fs.readFileSync(appPkgPath, 'utf-8'));
|
|
112
|
+
|
|
113
|
+
appPkg.dependencies = {
|
|
114
|
+
...appPkg.dependencies,
|
|
115
|
+
"@builderos/agent-os-ui": "*", // Use workspace version
|
|
116
|
+
"lucide-react": "^0.469.0",
|
|
117
|
+
"clsx": "^2.1.0",
|
|
118
|
+
"tailwind-merge": "^2.2.0",
|
|
119
|
+
"autoprefixer": "^10.4.20",
|
|
120
|
+
"postcss": "^8.4.49",
|
|
121
|
+
"tailwindcss": "^3.4.17",
|
|
122
|
+
"react": "^18.3.1",
|
|
123
|
+
"react-dom": "^18.3.1"
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
// Inject App Template (App.tsx, vite.config.ts) - we need to make sure these exist in template dir or just write them
|
|
127
|
+
// Re-using the logic from before, assuming App.tsx and vite.config.ts are in src/template top level?
|
|
128
|
+
// Wait, I updated template structure. I should check where App.tsx is.
|
|
129
|
+
// It was in src/template/App.tsx. I should move it to src/template/app-template?
|
|
130
|
+
// Or just leave it at top level and selective copy.
|
|
131
|
+
|
|
132
|
+
// Let's assume they are still at src/template root for the app
|
|
133
|
+
const appTemplateDir = templateDir;
|
|
134
|
+
if (fs.existsSync(path.join(appTemplateDir, 'App.tsx'))) {
|
|
135
|
+
fs.copyFileSync(path.join(appTemplateDir, 'App.tsx'), path.join(appDir, 'src/App.tsx'));
|
|
136
|
+
}
|
|
137
|
+
if (fs.existsSync(path.join(appTemplateDir, 'vite.config.ts'))) {
|
|
138
|
+
fs.copyFileSync(path.join(appTemplateDir, 'vite.config.ts'), path.join(appDir, 'vite.config.ts'));
|
|
139
|
+
}
|
|
140
|
+
// Copy Tailwind config
|
|
141
|
+
if (fs.existsSync(path.join(appTemplateDir, 'postcss.config.js'))) {
|
|
142
|
+
fs.copyFileSync(path.join(appTemplateDir, 'postcss.config.js'), path.join(appDir, 'postcss.config.js'));
|
|
143
|
+
}
|
|
144
|
+
if (fs.existsSync(path.join(appTemplateDir, 'tailwind.config.js'))) {
|
|
145
|
+
fs.copyFileSync(path.join(appTemplateDir, 'tailwind.config.js'), path.join(appDir, 'tailwind.config.js'));
|
|
146
|
+
}
|
|
147
|
+
// Copy CSS
|
|
148
|
+
if (fs.existsSync(path.join(appTemplateDir, 'index.css'))) {
|
|
149
|
+
fs.copyFileSync(path.join(appTemplateDir, 'index.css'), path.join(appDir, 'src/index.css'));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
fs.writeFileSync(appPkgPath, JSON.stringify(appPkg, null, 2));
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
console.log(green(`\n\nAgent OS Workspace created successfully! 🚀\n`));
|
|
157
|
+
console.log(`Next steps:\n`);
|
|
158
|
+
console.log(` cd ${result.projectName}`);
|
|
159
|
+
console.log(` npm install`);
|
|
160
|
+
console.log(` npm run dev\n`);
|
|
161
|
+
console.log(`This will start the App, Control Center, and Design OS concurrently.`);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
program.parse();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
init().catch((e) => {
|
|
169
|
+
console.error(e);
|
|
170
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@theproductguy/create-mission-control",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Scaffolding tool for Agent OS applications",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-agent-os": "bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin",
|
|
11
|
+
"src"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
15
|
+
"lint": "eslint ."
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"agent-os",
|
|
19
|
+
"cli",
|
|
20
|
+
"scaffold",
|
|
21
|
+
"vite"
|
|
22
|
+
],
|
|
23
|
+
"author": "Antigravity",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"commander": "^11.1.0",
|
|
27
|
+
"fs-extra": "^11.2.0",
|
|
28
|
+
"kolorist": "^1.8.0",
|
|
29
|
+
"prompts": "^2.4.2"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@eslint/js": "^9.39.2",
|
|
33
|
+
"@types/node": "^20.10.0",
|
|
34
|
+
"@types/react": "^18.2.0",
|
|
35
|
+
"@types/react-dom": "^18.2.0",
|
|
36
|
+
"@vitejs/plugin-react": "^4.2.1",
|
|
37
|
+
"eslint": "^9.39.2",
|
|
38
|
+
"globals": "^16.5.0",
|
|
39
|
+
"react": "^18.3.1",
|
|
40
|
+
"react-dom": "^18.3.1",
|
|
41
|
+
"typescript": "^5.3.3",
|
|
42
|
+
"vite": "^5.0.10"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
|
|
3
|
+
function App() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen bg-background text-foreground flex flex-col items-center justify-center p-4">
|
|
6
|
+
<header className="mb-8 text-center">
|
|
7
|
+
<h1 className="text-4xl font-bold tracking-tight mb-2">
|
|
8
|
+
Your Agent OS App
|
|
9
|
+
</h1>
|
|
10
|
+
<p className="text-muted-foreground">
|
|
11
|
+
Ready for implementation.
|
|
12
|
+
</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<main className="max-w-2xl text-center space-y-4">
|
|
16
|
+
<div className="p-6 border rounded-lg bg-card text-card-foreground shadow-sm">
|
|
17
|
+
<p>
|
|
18
|
+
This application is scaffolded and ready.
|
|
19
|
+
<br />
|
|
20
|
+
Use the <strong>Control Center</strong> to start shaping features.
|
|
21
|
+
</p>
|
|
22
|
+
</div>
|
|
23
|
+
</main>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default App;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
The FIRST STEP is to make sure you have ONE OR BOTH of these files to inform your tasks breakdown:
|
|
2
|
+
- `agent-os/specs/[this-spec]/spec.md`
|
|
3
|
+
- `agent-os/specs/[this-spec]/planning/requirements.md`
|
|
4
|
+
|
|
5
|
+
IF you don't have ONE OR BOTH of those files in your current conversation context, then ask user to provide direction on where to you can find them by outputting the following request then wait for user's response:
|
|
6
|
+
|
|
7
|
+
"I'll need a spec.md or requirements.md (or both) in order to build a tasks list.
|
|
8
|
+
|
|
9
|
+
Please direct me to where I can find those. If you haven't created them yet, you can run /shape-spec or /write-spec."
|
|
10
|
+
|
|
11
|
+
## Display confirmation and next step
|
|
12
|
+
|
|
13
|
+
Once you've confirmed you have the spec and/or requirements, output the following message (replace `[this-spec]` with the folder name for this spec)
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
✅ I have the spec and requirements `[spec and requirements path]`.
|
|
17
|
+
|
|
18
|
+
NEXT STEP 👉 Run the command, 2-create-tasks-list.md
|
|
19
|
+
```
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
Now that you have the spec.md AND/OR requirements.md, please break those down into an actionable tasks list with strategic grouping and ordering, by following these instructions:
|
|
2
|
+
|
|
3
|
+
# Task List Creation
|
|
4
|
+
|
|
5
|
+
## Core Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Analyze spec and requirements**: Read and analyze the spec.md and/or requirements.md to inform the tasks list you will create.
|
|
8
|
+
2. **Plan task execution order**: Break the requirements into a list of tasks in an order that takes their dependencies into account.
|
|
9
|
+
3. **Group tasks by specialization**: Group tasks that require the same skill or stack specialization together (backend, api, ui design, etc.)
|
|
10
|
+
4. **Create Tasks list**: Create the markdown tasks list broken into groups with sub-tasks.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
### Step 1: Analyze Spec & Requirements
|
|
15
|
+
|
|
16
|
+
Read each of these files (whichever are available) and analyze them to understand the requirements for this feature implementation:
|
|
17
|
+
- `agent-os/specs/[this-spec]/spec.md`
|
|
18
|
+
- `agent-os/specs/[this-spec]/planning/requirements.md`
|
|
19
|
+
|
|
20
|
+
Use your learnings to inform the tasks list and groupings you will create in the next step.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Step 2: Create Tasks Breakdown
|
|
24
|
+
|
|
25
|
+
Generate `agent-os/specs/[current-spec]/tasks.md`.
|
|
26
|
+
|
|
27
|
+
**Important**: The exact tasks, task groups, and organization will vary based on the feature's specific requirements. The following is an example format - adapt the content of the tasks list to match what THIS feature actually needs.
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Task Breakdown: [Feature Name]
|
|
31
|
+
|
|
32
|
+
## Overview
|
|
33
|
+
Total Tasks: [count]
|
|
34
|
+
|
|
35
|
+
## Task List
|
|
36
|
+
|
|
37
|
+
### Database Layer
|
|
38
|
+
|
|
39
|
+
#### Task Group 1: Data Models and Migrations
|
|
40
|
+
**Dependencies:** None
|
|
41
|
+
|
|
42
|
+
- [ ] 1.0 Complete database layer
|
|
43
|
+
- [ ] 1.1 Write 2-8 focused tests for [Model] functionality
|
|
44
|
+
- Limit to 2-8 highly focused tests maximum
|
|
45
|
+
- Test only critical model behaviors (e.g., primary validation, key association, core method)
|
|
46
|
+
- Skip exhaustive coverage of all methods and edge cases
|
|
47
|
+
- [ ] 1.2 Create [Model] with validations
|
|
48
|
+
- Fields: [list]
|
|
49
|
+
- Validations: [list]
|
|
50
|
+
- Reuse pattern from: [existing model if applicable]
|
|
51
|
+
- [ ] 1.3 Create migration for [table]
|
|
52
|
+
- Add indexes for: [fields]
|
|
53
|
+
- Foreign keys: [relationships]
|
|
54
|
+
- [ ] 1.4 Set up associations
|
|
55
|
+
- [Model] has_many [related]
|
|
56
|
+
- [Model] belongs_to [parent]
|
|
57
|
+
- [ ] 1.5 Ensure database layer tests pass
|
|
58
|
+
- Run ONLY the 2-8 tests written in 1.1
|
|
59
|
+
- Verify migrations run successfully
|
|
60
|
+
- Do NOT run the entire test suite at this stage
|
|
61
|
+
|
|
62
|
+
**Acceptance Criteria:**
|
|
63
|
+
- The 2-8 tests written in 1.1 pass
|
|
64
|
+
- Models pass validation tests
|
|
65
|
+
- Migrations run successfully
|
|
66
|
+
- Associations work correctly
|
|
67
|
+
|
|
68
|
+
### API Layer
|
|
69
|
+
|
|
70
|
+
#### Task Group 2: API Endpoints
|
|
71
|
+
**Dependencies:** Task Group 1
|
|
72
|
+
|
|
73
|
+
- [ ] 2.0 Complete API layer
|
|
74
|
+
- [ ] 2.1 Write 2-8 focused tests for API endpoints
|
|
75
|
+
- Limit to 2-8 highly focused tests maximum
|
|
76
|
+
- Test only critical controller actions (e.g., primary CRUD operation, auth check, key error case)
|
|
77
|
+
- Skip exhaustive testing of all actions and scenarios
|
|
78
|
+
- [ ] 2.2 Create [resource] controller
|
|
79
|
+
- Actions: index, show, create, update, destroy
|
|
80
|
+
- Follow pattern from: [existing controller]
|
|
81
|
+
- [ ] 2.3 Implement authentication/authorization
|
|
82
|
+
- Use existing auth pattern
|
|
83
|
+
- Add permission checks
|
|
84
|
+
- [ ] 2.4 Add API response formatting
|
|
85
|
+
- JSON responses
|
|
86
|
+
- Error handling
|
|
87
|
+
- Status codes
|
|
88
|
+
- [ ] 2.5 Ensure API layer tests pass
|
|
89
|
+
- Run ONLY the 2-8 tests written in 2.1
|
|
90
|
+
- Verify critical CRUD operations work
|
|
91
|
+
- Do NOT run the entire test suite at this stage
|
|
92
|
+
|
|
93
|
+
**Acceptance Criteria:**
|
|
94
|
+
- The 2-8 tests written in 2.1 pass
|
|
95
|
+
- All CRUD operations work
|
|
96
|
+
- Proper authorization enforced
|
|
97
|
+
- Consistent response format
|
|
98
|
+
|
|
99
|
+
### Frontend Components
|
|
100
|
+
|
|
101
|
+
#### Task Group 3: UI Design
|
|
102
|
+
**Dependencies:** Task Group 2
|
|
103
|
+
|
|
104
|
+
- [ ] 3.0 Complete UI components
|
|
105
|
+
- [ ] 3.1 Write 2-8 focused tests for UI components
|
|
106
|
+
- Limit to 2-8 highly focused tests maximum
|
|
107
|
+
- Test only critical component behaviors (e.g., primary user interaction, key form submission, main rendering case)
|
|
108
|
+
- Skip exhaustive testing of all component states and interactions
|
|
109
|
+
- [ ] 3.2 Create [Component] component
|
|
110
|
+
- Reuse: [existing component] as base
|
|
111
|
+
- Props: [list]
|
|
112
|
+
- State: [list]
|
|
113
|
+
- [ ] 3.3 Implement [Feature] form
|
|
114
|
+
- Fields: [list]
|
|
115
|
+
- Validation: client-side
|
|
116
|
+
- Submit handling
|
|
117
|
+
- [ ] 3.4 Build [View] page
|
|
118
|
+
- Layout: [description]
|
|
119
|
+
- Components: [list]
|
|
120
|
+
- Match mockup: `planning/visuals/[file]`
|
|
121
|
+
- [ ] 3.5 Apply base styles
|
|
122
|
+
- Follow existing design system
|
|
123
|
+
- Use variables from: [style file]
|
|
124
|
+
- [ ] 3.6 Implement responsive design
|
|
125
|
+
- Mobile: 320px - 768px
|
|
126
|
+
- Tablet: 768px - 1024px
|
|
127
|
+
- Desktop: 1024px+
|
|
128
|
+
- [ ] 3.7 Add interactions and animations
|
|
129
|
+
- Hover states
|
|
130
|
+
- Transitions
|
|
131
|
+
- Loading states
|
|
132
|
+
- [ ] 3.8 Ensure UI component tests pass
|
|
133
|
+
- Run ONLY the 2-8 tests written in 3.1
|
|
134
|
+
- Verify critical component behaviors work
|
|
135
|
+
- Do NOT run the entire test suite at this stage
|
|
136
|
+
|
|
137
|
+
**Acceptance Criteria:**
|
|
138
|
+
- The 2-8 tests written in 3.1 pass
|
|
139
|
+
- Components render correctly
|
|
140
|
+
- Forms validate and submit
|
|
141
|
+
- Matches visual design
|
|
142
|
+
|
|
143
|
+
### Testing
|
|
144
|
+
|
|
145
|
+
#### Task Group 4: Test Review & Gap Analysis
|
|
146
|
+
**Dependencies:** Task Groups 1-3
|
|
147
|
+
|
|
148
|
+
- [ ] 4.0 Review existing tests and fill critical gaps only
|
|
149
|
+
- [ ] 4.1 Review tests from Task Groups 1-3
|
|
150
|
+
- Review the 2-8 tests written by database-engineer (Task 1.1)
|
|
151
|
+
- Review the 2-8 tests written by api-engineer (Task 2.1)
|
|
152
|
+
- Review the 2-8 tests written by ui-designer (Task 3.1)
|
|
153
|
+
- Total existing tests: approximately 6-24 tests
|
|
154
|
+
- [ ] 4.2 Analyze test coverage gaps for THIS feature only
|
|
155
|
+
- Identify critical user workflows that lack test coverage
|
|
156
|
+
- Focus ONLY on gaps related to this spec's feature requirements
|
|
157
|
+
- Do NOT assess entire application test coverage
|
|
158
|
+
- Prioritize end-to-end workflows over unit test gaps
|
|
159
|
+
- [ ] 4.3 Write up to 10 additional strategic tests maximum
|
|
160
|
+
- Add maximum of 10 new tests to fill identified critical gaps
|
|
161
|
+
- Focus on integration points and end-to-end workflows
|
|
162
|
+
- Do NOT write comprehensive coverage for all scenarios
|
|
163
|
+
- Skip edge cases, performance tests, and accessibility tests unless business-critical
|
|
164
|
+
- [ ] 4.4 Run feature-specific tests only
|
|
165
|
+
- Run ONLY tests related to this spec's feature (tests from 1.1, 2.1, 3.1, and 4.3)
|
|
166
|
+
- Expected total: approximately 16-34 tests maximum
|
|
167
|
+
- Do NOT run the entire application test suite
|
|
168
|
+
- Verify critical workflows pass
|
|
169
|
+
|
|
170
|
+
**Acceptance Criteria:**
|
|
171
|
+
- All feature-specific tests pass (approximately 16-34 tests total)
|
|
172
|
+
- Critical user workflows for this feature are covered
|
|
173
|
+
- No more than 10 additional tests added when filling in testing gaps
|
|
174
|
+
- Testing focused exclusively on this spec's feature requirements
|
|
175
|
+
|
|
176
|
+
## Execution Order
|
|
177
|
+
|
|
178
|
+
Recommended implementation sequence:
|
|
179
|
+
1. Database Layer (Task Group 1)
|
|
180
|
+
2. API Layer (Task Group 2)
|
|
181
|
+
3. Frontend Design (Task Group 3)
|
|
182
|
+
4. Test Review & Gap Analysis (Task Group 4)
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Note**: Adapt this structure based on the actual feature requirements. Some features may need:
|
|
186
|
+
- Different task groups (e.g., email notifications, payment processing, data migration)
|
|
187
|
+
- Different execution order based on dependencies
|
|
188
|
+
- More or fewer sub-tasks per group
|
|
189
|
+
|
|
190
|
+
## Important Constraints
|
|
191
|
+
|
|
192
|
+
- **Create tasks that are specific and verifiable**
|
|
193
|
+
- **Group related tasks:** For example, group back-end engineering tasks together and front-end UI tasks together.
|
|
194
|
+
- **Limit test writing during development**:
|
|
195
|
+
- Each task group (1-3) should write 2-8 focused tests maximum
|
|
196
|
+
- Tests should cover only critical behaviors, not exhaustive coverage
|
|
197
|
+
- Test verification should run ONLY the newly written tests, not the entire suite
|
|
198
|
+
- If there is a dedicated test coverage group for filling in gaps in test coverage, this group should add only a maximum of 10 additional tests IF NECESSARY to fill critical gaps
|
|
199
|
+
- **Use a focused test-driven approach** where each task group starts with writing 2-8 tests (x.1 sub-task) and ends with running ONLY those tests (final sub-task)
|
|
200
|
+
- **Include acceptance criteria** for each task group
|
|
201
|
+
- **Reference visual assets** if visuals are available
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
## Display confirmation and next step
|
|
205
|
+
|
|
206
|
+
Display the following message to the user:
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
The tasks list has created at `agent-os/specs/[this-spec]/tasks.md`.
|
|
210
|
+
|
|
211
|
+
Review it closely to make sure it all looks good.
|
|
212
|
+
|
|
213
|
+
NEXT STEP 👉 Run `/implement-tasks` (simple, effective) or `/orchestrate-tasks` (advanced, powerful) to start building!
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## User Standards & Preferences Compliance
|
|
217
|
+
|
|
218
|
+
IMPORTANT: Ensure that the tasks list is ALIGNED and DOES NOT CONFLICT with the user's preferences and standards as detailed in the following files:
|
|
219
|
+
|
|
220
|
+
@agent-os/standards/backend/api.md
|
|
221
|
+
@agent-os/standards/backend/migrations.md
|
|
222
|
+
@agent-os/standards/backend/models.md
|
|
223
|
+
@agent-os/standards/backend/queries.md
|
|
224
|
+
@agent-os/standards/frontend/accessibility.md
|
|
225
|
+
@agent-os/standards/frontend/components.md
|
|
226
|
+
@agent-os/standards/frontend/css.md
|
|
227
|
+
@agent-os/standards/frontend/responsive.md
|
|
228
|
+
@agent-os/standards/global/coding-style.md
|
|
229
|
+
@agent-os/standards/global/commenting.md
|
|
230
|
+
@agent-os/standards/global/conventions.md
|
|
231
|
+
@agent-os/standards/global/error-handling.md
|
|
232
|
+
@agent-os/standards/global/tech-stack.md
|
|
233
|
+
@agent-os/standards/global/validation.md
|
|
234
|
+
@agent-os/standards/testing/test-writing.md
|