@theproductguy/create-mission-control 1.0.3 → 1.0.5
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/bin/cli.js +63 -7
- package/package.json +2 -2
- package/src/template/.env.example +28 -0
- package/src/template/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
- package/src/template/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
- package/src/template/.github/PULL_REQUEST_TEMPLATE.md +33 -0
- package/src/template/.github/workflows/ci.yml +83 -0
- package/src/template/.husky/commit-msg +1 -0
- package/src/template/.husky/pre-commit +1 -0
- package/src/template/.prettierrc +11 -0
- package/src/template/README.md +78 -0
- package/src/template/agent-os/commands/create-constitution/create-constitution.md +89 -0
- package/src/template/agent-os/commands/export-product/export-product.md +24 -0
- package/src/template/agent-os/commands/initialize-design/initialize-design.md +10 -1
- package/src/template/agent-os/commands/research-tech/research-tech.md +93 -0
- package/src/template/agent-os/commands/shape-spec/shape-spec.md +2 -1
- package/src/template/agent-os/docs/context7.md +20 -0
- package/src/template/commitlint.config.js +25 -0
- package/src/template/control-center/backend/index.js +67 -4
- package/src/template/control-center/frontend/src/App.tsx +193 -64
- package/src/template/design-system/{.claude → .gemini}/commands/design-os/design-shell.md +95 -69
- package/src/template/design-system/.gemini/commands/design-os/design-tokens.md +211 -0
- package/src/template/design-system/.gemini/commands/impeccable/WORKFLOW.md +163 -0
- package/src/template/design-system/.gemini/commands/impeccable/adapt.md +189 -0
- package/src/template/design-system/.gemini/commands/impeccable/animate.md +184 -0
- package/src/template/design-system/.gemini/commands/impeccable/audit.md +123 -0
- package/src/template/design-system/.gemini/commands/impeccable/bolder.md +126 -0
- package/src/template/design-system/.gemini/commands/impeccable/clarify.md +173 -0
- package/src/template/design-system/.gemini/commands/impeccable/colorize.md +152 -0
- package/src/template/design-system/.gemini/commands/impeccable/critique.md +112 -0
- package/src/template/design-system/.gemini/commands/impeccable/delight.md +311 -0
- package/src/template/design-system/.gemini/commands/impeccable/extract.md +88 -0
- package/src/template/design-system/.gemini/commands/impeccable/harden.md +351 -0
- package/src/template/design-system/.gemini/commands/impeccable/normalize.md +61 -0
- package/src/template/design-system/.gemini/commands/impeccable/onboard.md +236 -0
- package/src/template/design-system/.gemini/commands/impeccable/optimize.md +262 -0
- package/src/template/design-system/.gemini/commands/impeccable/polish.md +196 -0
- package/src/template/design-system/.gemini/commands/impeccable/quieter.md +112 -0
- package/src/template/design-system/.gemini/commands/impeccable/simplify.md +131 -0
- package/src/template/design-system/.gemini/commands/impeccable/teach-impeccable.md +67 -0
- package/src/template/design-system/.gemini/hooks/ai-slop-guard.md +80 -0
- package/src/template/design-system/.gemini/hooks/on-design-complete.md +63 -0
- package/src/template/design-system/.gemini/skills/frontend-design/SKILL.md +126 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/color-and-contrast.md +132 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/interaction-design.md +123 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/motion-design.md +99 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/responsive-design.md +114 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/spatial-design.md +100 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/typography.md +131 -0
- package/src/template/design-system/.gemini/skills/frontend-design/reference/ux-writing.md +107 -0
- package/src/template/design-system/src/components/DesignPage.tsx +104 -0
- package/src/template/eslint.config.js +37 -0
- package/src/template/lint-staged.config.js +6 -0
- package/src/template/package-lock.json +10308 -0
- package/src/template/package.json +25 -2
- package/src/template/src/__tests__/example.test.ts +17 -0
- package/src/template/src/__tests__/setup.ts +14 -0
- package/src/template/vitest.config.ts +25 -0
- package/src/template/design-system/.claude/commands/design-os/design-tokens.md +0 -166
- package/src/template/design-system/.claude/skills/frontend-design/SKILL.md +0 -42
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/data-model.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/design-screen.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/export-product.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/product-roadmap.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/product-vision.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/sample-data.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/screenshot-design.md +0 -0
- /package/src/template/design-system/{.claude → .gemini}/commands/design-os/shape-section.md +0 -0
- /package/src/template/design-system/{claude.md → gemini.md} +0 -0
package/bin/cli.js
CHANGED
|
@@ -87,16 +87,23 @@ async function init() {
|
|
|
87
87
|
const templateDir = path.resolve(__dirname, '../src/template');
|
|
88
88
|
|
|
89
89
|
// Copy Control Center
|
|
90
|
-
|
|
90
|
+
// Copy helper to exclude node_modules
|
|
91
|
+
const copyOptions = {
|
|
92
|
+
recursive: true,
|
|
93
|
+
filter: (src) => !src.includes('node_modules')
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// Copy Control Center
|
|
97
|
+
fs.cpSync(path.join(templateDir, 'control-center'), path.join(root, 'control-center'), copyOptions);
|
|
91
98
|
|
|
92
99
|
// Copy Design System
|
|
93
|
-
fs.cpSync(path.join(templateDir, 'design-system'), path.join(root, 'design-system'),
|
|
100
|
+
fs.cpSync(path.join(templateDir, 'design-system'), path.join(root, 'design-system'), copyOptions);
|
|
94
101
|
|
|
95
102
|
// Copy Agent OS Docs
|
|
96
|
-
fs.cpSync(path.join(templateDir, 'agent-os'), path.join(root, 'agent-os'),
|
|
103
|
+
fs.cpSync(path.join(templateDir, 'agent-os'), path.join(root, 'agent-os'), copyOptions);
|
|
97
104
|
|
|
98
105
|
// Copy Agent OS UI Package (for local workspace support)
|
|
99
|
-
fs.cpSync(path.join(templateDir, 'agent-os-ui'), path.join(root, 'agent-os-ui'),
|
|
106
|
+
fs.cpSync(path.join(templateDir, 'agent-os-ui'), path.join(root, 'agent-os-ui'), copyOptions);
|
|
100
107
|
|
|
101
108
|
// 3. Configure Workspace
|
|
102
109
|
console.log(cyan('\n3. Configuring Workspace...'));
|
|
@@ -152,13 +159,62 @@ async function init() {
|
|
|
152
159
|
|
|
153
160
|
fs.writeFileSync(appPkgPath, JSON.stringify(appPkg, null, 2));
|
|
154
161
|
|
|
162
|
+
// 4. Copy root config files
|
|
163
|
+
console.log(cyan('\n4. Setting up quality tooling...'));
|
|
164
|
+
|
|
165
|
+
const rootConfigFiles = [
|
|
166
|
+
'.gitignore',
|
|
167
|
+
'.prettierrc',
|
|
168
|
+
'.env.example',
|
|
169
|
+
'eslint.config.js',
|
|
170
|
+
'commitlint.config.js',
|
|
171
|
+
'lint-staged.config.js',
|
|
172
|
+
'vitest.config.ts',
|
|
173
|
+
'README.md'
|
|
174
|
+
];
|
|
175
|
+
|
|
176
|
+
for (const file of rootConfigFiles) {
|
|
177
|
+
const src = path.join(templateDir, file);
|
|
178
|
+
if (fs.existsSync(src)) {
|
|
179
|
+
fs.copyFileSync(src, path.join(root, file));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Copy directories
|
|
184
|
+
const rootDirs = ['.github', '.husky', '.vscode', 'src/__tests__'];
|
|
185
|
+
for (const dir of rootDirs) {
|
|
186
|
+
const src = path.join(templateDir, dir);
|
|
187
|
+
if (fs.existsSync(src)) {
|
|
188
|
+
fs.cpSync(src, path.join(root, dir), copyOptions);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// 5. Initialize git repository
|
|
193
|
+
console.log(cyan('\n5. Initializing git repository...'));
|
|
194
|
+
try {
|
|
195
|
+
const { execSync } = await import('node:child_process');
|
|
196
|
+
execSync('git init', { cwd: root, stdio: 'inherit' });
|
|
197
|
+
execSync('git add .', { cwd: root, stdio: 'ignore' });
|
|
198
|
+
} catch (e) {
|
|
199
|
+
console.log(' (Git initialization skipped - git may not be available)');
|
|
200
|
+
}
|
|
155
201
|
|
|
156
|
-
console.log(green(`\n\
|
|
157
|
-
console.log(
|
|
202
|
+
console.log(green(`\n\n✅ Agent OS Workspace created successfully! 🚀\n`));
|
|
203
|
+
console.log(bold('What\'s included:'));
|
|
204
|
+
console.log(' ✓ ESLint + Prettier + Husky pre-commit hooks');
|
|
205
|
+
console.log(' ✓ Vitest for testing');
|
|
206
|
+
console.log(' ✓ GitHub Actions CI workflow');
|
|
207
|
+
console.log(' ✓ Impeccable design commands');
|
|
208
|
+
console.log(' ✓ AI Slop Guard hook');
|
|
209
|
+
console.log(`\n${bold('Next steps:')}\n`);
|
|
158
210
|
console.log(` cd ${result.projectName}`);
|
|
159
211
|
console.log(` npm install`);
|
|
160
212
|
console.log(` npm run dev\n`);
|
|
161
|
-
console.log(
|
|
213
|
+
console.log(`${bold('Recommended workflow:')}`);
|
|
214
|
+
console.log(` 1. /plan-product — Define your product`);
|
|
215
|
+
console.log(` 2. /create-constitution — Set project principles`);
|
|
216
|
+
console.log(` 3. /research-tech — Research your stack`);
|
|
217
|
+
console.log(` 4. /design-tokens — Start designing`);
|
|
162
218
|
});
|
|
163
219
|
});
|
|
164
220
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theproductguy/create-mission-control",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Scaffolding tool for Agent OS applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
"typescript": "^5.3.3",
|
|
42
42
|
"vite": "^5.0.10"
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# ==============================================
|
|
2
|
+
# Environment Variables
|
|
3
|
+
# ==============================================
|
|
4
|
+
# Copy this file to .env.local and fill in your values
|
|
5
|
+
# NEVER commit .env.local to version control
|
|
6
|
+
|
|
7
|
+
# ==============================================
|
|
8
|
+
# Application
|
|
9
|
+
# ==============================================
|
|
10
|
+
# VITE_APP_NAME=My App
|
|
11
|
+
# VITE_APP_URL=http://localhost:5402
|
|
12
|
+
|
|
13
|
+
# ==============================================
|
|
14
|
+
# API Configuration
|
|
15
|
+
# ==============================================
|
|
16
|
+
# VITE_API_URL=http://localhost:5403
|
|
17
|
+
|
|
18
|
+
# ==============================================
|
|
19
|
+
# Feature Flags
|
|
20
|
+
# ==============================================
|
|
21
|
+
# VITE_ENABLE_ANALYTICS=false
|
|
22
|
+
# VITE_ENABLE_DEBUG_MODE=false
|
|
23
|
+
|
|
24
|
+
# ==============================================
|
|
25
|
+
# Third-Party Services (add as needed)
|
|
26
|
+
# ==============================================
|
|
27
|
+
# VITE_SENTRY_DSN=
|
|
28
|
+
# VITE_POSTHOG_KEY=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug to help us improve
|
|
4
|
+
title: '[BUG] '
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Bug Description
|
|
10
|
+
|
|
11
|
+
<!-- A clear and concise description of what the bug is -->
|
|
12
|
+
|
|
13
|
+
## Steps to Reproduce
|
|
14
|
+
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '...'
|
|
17
|
+
3. Scroll down to '...'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
## Expected Behavior
|
|
21
|
+
|
|
22
|
+
<!-- What you expected to happen -->
|
|
23
|
+
|
|
24
|
+
## Actual Behavior
|
|
25
|
+
|
|
26
|
+
<!-- What actually happened -->
|
|
27
|
+
|
|
28
|
+
## Screenshots
|
|
29
|
+
|
|
30
|
+
<!-- If applicable, add screenshots to help explain your problem -->
|
|
31
|
+
|
|
32
|
+
## Environment
|
|
33
|
+
|
|
34
|
+
- OS: [e.g., macOS 14.0]
|
|
35
|
+
- Browser: [e.g., Chrome 120]
|
|
36
|
+
- Node version: [e.g., 20.10.0]
|
|
37
|
+
|
|
38
|
+
## Additional Context
|
|
39
|
+
|
|
40
|
+
<!-- Add any other context about the problem here -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: '[FEATURE] '
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Problem Statement
|
|
10
|
+
|
|
11
|
+
<!-- Describe the problem you're trying to solve -->
|
|
12
|
+
|
|
13
|
+
## Proposed Solution
|
|
14
|
+
|
|
15
|
+
<!-- Describe the solution you'd like -->
|
|
16
|
+
|
|
17
|
+
## Alternatives Considered
|
|
18
|
+
|
|
19
|
+
<!-- Describe any alternative solutions or features you've considered -->
|
|
20
|
+
|
|
21
|
+
## Additional Context
|
|
22
|
+
|
|
23
|
+
<!-- Add any other context, mockups, or screenshots about the feature request here -->
|
|
24
|
+
|
|
25
|
+
## Acceptance Criteria
|
|
26
|
+
|
|
27
|
+
<!-- Define what "done" looks like for this feature -->
|
|
28
|
+
- [ ] Criterion 1
|
|
29
|
+
- [ ] Criterion 2
|
|
30
|
+
- [ ] Criterion 3
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
|
|
3
|
+
<!-- Describe the changes in this PR -->
|
|
4
|
+
|
|
5
|
+
## Type of Change
|
|
6
|
+
|
|
7
|
+
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
|
|
8
|
+
- [ ] ✨ New feature (non-breaking change which adds functionality)
|
|
9
|
+
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
10
|
+
- [ ] 📝 Documentation update
|
|
11
|
+
- [ ] 🎨 Style/UI update
|
|
12
|
+
- [ ] ♻️ Refactor (no functional changes)
|
|
13
|
+
- [ ] 🧪 Test update
|
|
14
|
+
|
|
15
|
+
## Related Issues
|
|
16
|
+
|
|
17
|
+
<!-- Link to related issues: Fixes #123 -->
|
|
18
|
+
|
|
19
|
+
## Checklist
|
|
20
|
+
|
|
21
|
+
- [ ] My code follows the project's style guidelines
|
|
22
|
+
- [ ] I have performed a self-review of my code
|
|
23
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
24
|
+
- [ ] New and existing unit tests pass locally with my changes
|
|
25
|
+
- [ ] I have run `/audit` and addressed any issues
|
|
26
|
+
|
|
27
|
+
## Screenshots (if applicable)
|
|
28
|
+
|
|
29
|
+
<!-- Add screenshots to help explain your changes -->
|
|
30
|
+
|
|
31
|
+
## Additional Context
|
|
32
|
+
|
|
33
|
+
<!-- Add any other context about the PR here -->
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main, develop]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint:
|
|
11
|
+
name: Lint
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Setup Node.js
|
|
17
|
+
uses: actions/setup-node@v4
|
|
18
|
+
with:
|
|
19
|
+
node-version: '20'
|
|
20
|
+
cache: 'npm'
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: npm ci
|
|
24
|
+
|
|
25
|
+
- name: Run ESLint
|
|
26
|
+
run: npm run lint --if-present
|
|
27
|
+
|
|
28
|
+
- name: Check formatting
|
|
29
|
+
run: npm run format:check --if-present
|
|
30
|
+
|
|
31
|
+
build:
|
|
32
|
+
name: Build
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
|
|
37
|
+
- name: Setup Node.js
|
|
38
|
+
uses: actions/setup-node@v4
|
|
39
|
+
with:
|
|
40
|
+
node-version: '20'
|
|
41
|
+
cache: 'npm'
|
|
42
|
+
|
|
43
|
+
- name: Install dependencies
|
|
44
|
+
run: npm ci
|
|
45
|
+
|
|
46
|
+
- name: Build
|
|
47
|
+
run: npm run build --if-present
|
|
48
|
+
|
|
49
|
+
test:
|
|
50
|
+
name: Test
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
steps:
|
|
53
|
+
- uses: actions/checkout@v4
|
|
54
|
+
|
|
55
|
+
- name: Setup Node.js
|
|
56
|
+
uses: actions/setup-node@v4
|
|
57
|
+
with:
|
|
58
|
+
node-version: '20'
|
|
59
|
+
cache: 'npm'
|
|
60
|
+
|
|
61
|
+
- name: Install dependencies
|
|
62
|
+
run: npm ci
|
|
63
|
+
|
|
64
|
+
- name: Run tests
|
|
65
|
+
run: npm test --if-present
|
|
66
|
+
|
|
67
|
+
typecheck:
|
|
68
|
+
name: Type Check
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v4
|
|
72
|
+
|
|
73
|
+
- name: Setup Node.js
|
|
74
|
+
uses: actions/setup-node@v4
|
|
75
|
+
with:
|
|
76
|
+
node-version: '20'
|
|
77
|
+
cache: 'npm'
|
|
78
|
+
|
|
79
|
+
- name: Install dependencies
|
|
80
|
+
run: npm ci
|
|
81
|
+
|
|
82
|
+
- name: Type check
|
|
83
|
+
run: npm run typecheck --if-present
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npx --no -- commitlint --edit ${1}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npx lint-staged
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
> Built with [Agent OS](https://github.com/s1dd4rth/mission-control) — Design-driven development
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install dependencies
|
|
9
|
+
npm install
|
|
10
|
+
|
|
11
|
+
# Start development servers
|
|
12
|
+
npm run dev
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This will start:
|
|
16
|
+
- **Design OS:** http://localhost:5400
|
|
17
|
+
- **Mission Control:** http://localhost:5401
|
|
18
|
+
- **Application:** http://localhost:5402
|
|
19
|
+
- **API:** http://localhost:5403
|
|
20
|
+
|
|
21
|
+
## Project Structure
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
├── agent-os/ # Product strategy & commands
|
|
25
|
+
│ ├── product/ # Mission, roadmap, tech stack
|
|
26
|
+
│ ├── commands/ # Agent OS commands
|
|
27
|
+
│ ├── specs/ # Feature specifications
|
|
28
|
+
│ └── constitution.md # Project principles
|
|
29
|
+
│
|
|
30
|
+
├── design-system/ # Design OS
|
|
31
|
+
│ ├── .gemini/ # Commands, skills, hooks
|
|
32
|
+
│ ├── product/ # Synced from agent-os
|
|
33
|
+
│ └── src/ # Design components
|
|
34
|
+
│
|
|
35
|
+
├── control-center/ # Mission Control dashboard
|
|
36
|
+
│ ├── frontend/ # React dashboard
|
|
37
|
+
│ └── backend/ # API server
|
|
38
|
+
│
|
|
39
|
+
└── app/ # Your application
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Available Scripts
|
|
43
|
+
|
|
44
|
+
| Script | Description |
|
|
45
|
+
|--------|-------------|
|
|
46
|
+
| `npm run dev` | Start all development servers |
|
|
47
|
+
| `npm run build` | Build for production |
|
|
48
|
+
| `npm test` | Run tests |
|
|
49
|
+
| `npm run lint` | Run ESLint |
|
|
50
|
+
| `npm run format` | Format with Prettier |
|
|
51
|
+
| `npm run typecheck` | TypeScript type checking |
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
1. **Plan** — Define mission, roadmap, and tech stack
|
|
56
|
+
2. **Design** — Create design tokens, shell, and sections
|
|
57
|
+
3. **Specify** — Shape detailed feature specifications
|
|
58
|
+
4. **Implement** — Build features with TDD approach
|
|
59
|
+
|
|
60
|
+
## Quality Commands
|
|
61
|
+
|
|
62
|
+
| Command | Purpose |
|
|
63
|
+
|---------|---------|
|
|
64
|
+
| `/create-constitution` | Establish project principles |
|
|
65
|
+
| `/research-tech` | Research tech stack best practices |
|
|
66
|
+
| `/audit` | Run accessibility & quality audit |
|
|
67
|
+
| `/polish` | Final visual refinements |
|
|
68
|
+
|
|
69
|
+
## Contributing
|
|
70
|
+
|
|
71
|
+
1. Create a feature branch from `main`
|
|
72
|
+
2. Make your changes
|
|
73
|
+
3. Run `npm run lint && npm test`
|
|
74
|
+
4. Submit a pull request
|
|
75
|
+
|
|
76
|
+
## License
|
|
77
|
+
|
|
78
|
+
MIT
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# COMMAND: Create Constitution
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
Establish the project's governing principles and development guidelines that will guide all subsequent development phases. This is a one-time setup command inspired by spec-driven development.
|
|
5
|
+
|
|
6
|
+
## When to Run
|
|
7
|
+
- **Once** at the beginning of a new project
|
|
8
|
+
- After `/plan-product` but before `/design-tokens`
|
|
9
|
+
- When you want to formalize project standards
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
### Step 1: Gather Context
|
|
14
|
+
Read the following files to understand the project:
|
|
15
|
+
- `agent-os/product/mission.md` — Product vision and goals
|
|
16
|
+
- `agent-os/product/roadmap.md` — Planned features
|
|
17
|
+
- `agent-os/product/tech-stack.md` — Technology choices
|
|
18
|
+
|
|
19
|
+
### Step 2: Create Constitution Document
|
|
20
|
+
Create `agent-os/constitution.md` with the following sections:
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# Project Constitution
|
|
24
|
+
|
|
25
|
+
## Core Principles
|
|
26
|
+
[3-5 high-level principles that guide all decisions]
|
|
27
|
+
|
|
28
|
+
## Code Quality Standards
|
|
29
|
+
- [ ] All code must pass ESLint with no errors
|
|
30
|
+
- [ ] All code must be formatted with Prettier
|
|
31
|
+
- [ ] TypeScript strict mode is enforced
|
|
32
|
+
- [ ] No `any` types without explicit justification
|
|
33
|
+
- [ ] All public APIs must have JSDoc comments
|
|
34
|
+
|
|
35
|
+
## Testing Philosophy
|
|
36
|
+
- [ ] Unit tests for all business logic
|
|
37
|
+
- [ ] Integration tests for critical user flows
|
|
38
|
+
- [ ] Minimum 80% code coverage for new features
|
|
39
|
+
- [ ] TDD approach for complex features
|
|
40
|
+
|
|
41
|
+
## UX Consistency Rules
|
|
42
|
+
- [ ] Follow the Impeccable design principles
|
|
43
|
+
- [ ] Run `/audit` before any design handoff
|
|
44
|
+
- [ ] No AI Slop patterns (see frontend-design skill)
|
|
45
|
+
- [ ] Mobile-first responsive design
|
|
46
|
+
- [ ] WCAG 2.1 AA accessibility compliance
|
|
47
|
+
|
|
48
|
+
## Performance Budgets
|
|
49
|
+
- [ ] First Contentful Paint < 1.5s
|
|
50
|
+
- [ ] Largest Contentful Paint < 2.5s
|
|
51
|
+
- [ ] Cumulative Layout Shift < 0.1
|
|
52
|
+
- [ ] Bundle size < 200KB (gzipped)
|
|
53
|
+
|
|
54
|
+
## Security Requirements
|
|
55
|
+
- [ ] No secrets in code
|
|
56
|
+
- [ ] Input validation on all user inputs
|
|
57
|
+
- [ ] HTTPS only in production
|
|
58
|
+
- [ ] CSP headers configured
|
|
59
|
+
|
|
60
|
+
## Git Workflow
|
|
61
|
+
- [ ] Conventional commits required
|
|
62
|
+
- [ ] PR reviews required before merge
|
|
63
|
+
- [ ] Feature branches from `main`
|
|
64
|
+
- [ ] Squash merge to maintain clean history
|
|
65
|
+
|
|
66
|
+
## Definition of Done
|
|
67
|
+
A feature is considered "done" when:
|
|
68
|
+
1. [ ] Code is written and reviewed
|
|
69
|
+
2. [ ] Tests are passing (unit + integration)
|
|
70
|
+
3. [ ] Documentation is updated
|
|
71
|
+
4. [ ] Accessibility audit passes
|
|
72
|
+
5. [ ] Performance budget is met
|
|
73
|
+
6. [ ] `/audit` passes with no critical issues
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Step 3: Customize for Project
|
|
77
|
+
Based on the product mission and tech stack, customize:
|
|
78
|
+
- Add project-specific principles
|
|
79
|
+
- Adjust performance budgets if needed
|
|
80
|
+
- Add any domain-specific requirements
|
|
81
|
+
|
|
82
|
+
### Step 4: Verification
|
|
83
|
+
- Confirm `agent-os/constitution.md` exists
|
|
84
|
+
- Output message: "Constitution created! These principles will guide all subsequent development. Run `/research-tech` next to analyze your tech stack."
|
|
85
|
+
|
|
86
|
+
## Notes
|
|
87
|
+
- The constitution should be a living document
|
|
88
|
+
- Team members should review and commit to these principles
|
|
89
|
+
- Reference this document in code reviews
|
|
@@ -19,6 +19,30 @@ Verify the minimum requirements exist:
|
|
|
19
19
|
|
|
20
20
|
If required files are missing, stop and ask the user to complete them first.
|
|
21
21
|
|
|
22
|
+
## Step 1.5: Impeccable Quality Check (Pre-Export)
|
|
23
|
+
|
|
24
|
+
Before exporting, run a quick quality assessment:
|
|
25
|
+
|
|
26
|
+
**Check for QA Reports:**
|
|
27
|
+
1. Look for `design-system/QA/audit-report.md` — Has a full audit been run?
|
|
28
|
+
2. Look for `design-system/QA/tokens-audit.md` — Were design tokens audited?
|
|
29
|
+
3. Look for `design-system/QA/shell-audit.md` — Was the shell audited?
|
|
30
|
+
|
|
31
|
+
**If no audit reports exist:**
|
|
32
|
+
"⚠️ **Impeccable Warning**: No quality audits found. I recommend running `/audit` before exporting to ensure your design meets quality standards and avoids 'AI Slop'.
|
|
33
|
+
|
|
34
|
+
Would you like me to:
|
|
35
|
+
1. Run `/audit` now (recommended)
|
|
36
|
+
2. Proceed with export anyway"
|
|
37
|
+
|
|
38
|
+
**If audits exist but have failures:**
|
|
39
|
+
"⚠️ **Impeccable Warning**: Previous audit found issues that may not have been addressed. Consider running the suggested fix commands (`/normalize`, `/harden`, etc.) before exporting.
|
|
40
|
+
|
|
41
|
+
Proceed with export?"
|
|
42
|
+
|
|
43
|
+
**If audits pass or user confirms:**
|
|
44
|
+
Continue to Step 2.
|
|
45
|
+
|
|
22
46
|
## Step 2: Create Export Directory Structure
|
|
23
47
|
|
|
24
48
|
Create the `product-plan/` directory in the project root with this structure:
|
|
@@ -64,4 +64,13 @@ Create a draft data model file:
|
|
|
64
64
|
### Step 3: Verification
|
|
65
65
|
- Check that `design-system/product/product-overview.md` exists.
|
|
66
66
|
- Check that `design-system/product/product-roadmap.md` exists.
|
|
67
|
-
- Output a confirmation message:
|
|
67
|
+
- Output a confirmation message:
|
|
68
|
+
|
|
69
|
+
"Design OS initialized! You can now open http://localhost:5400 to begin designing.
|
|
70
|
+
|
|
71
|
+
**Recommended Next Steps:**
|
|
72
|
+
1. Run `/teach-impeccable` — One-time setup to establish design context for this project.
|
|
73
|
+
2. Run `/design-tokens` — Define your colors and typography.
|
|
74
|
+
3. Run `/design-shell` — Design your navigation and layout.
|
|
75
|
+
|
|
76
|
+
The Impeccable command system will guide you toward distinctive, AI-slop-free designs."
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# COMMAND: Research Tech Stack
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
Research and document best practices, current versions, and known gotchas for the technologies chosen in `tech-stack.md`. This ensures the implementation uses up-to-date patterns and avoids common pitfalls.
|
|
5
|
+
|
|
6
|
+
## When to Run
|
|
7
|
+
- After `/plan-product` has created `tech-stack.md`
|
|
8
|
+
- Before `/design-tokens` or implementation begins
|
|
9
|
+
- When updating to new versions of key dependencies
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
### Step 1: Read Tech Stack
|
|
14
|
+
Read `agent-os/product/tech-stack.md` to understand the chosen technologies.
|
|
15
|
+
|
|
16
|
+
### Step 2: Analyze Technologies
|
|
17
|
+
For each tech choice, answer:
|
|
18
|
+
- **Why this choice?** (Pros/Cons)
|
|
19
|
+
- **Latest Version?** (Use Context7 to check latest docs/features if possible)
|
|
20
|
+
- **Alternatives considered?**
|
|
21
|
+
|
|
22
|
+
> **Tip:** If you have Context7 configured, use it to fetch the latest documentation for accurate analysis.
|
|
23
|
+
> Prompt: "Using Context7, what are the latest best practices for [Technology]?"
|
|
24
|
+
|
|
25
|
+
For each major technology in the stack, research:
|
|
26
|
+
|
|
27
|
+
1. **Current stable version** — What version should we pin to?
|
|
28
|
+
2. **Breaking changes** — Any recent breaking changes to be aware of?
|
|
29
|
+
3. **Best practices** — What are the current recommended patterns?
|
|
30
|
+
4. **Common pitfalls** — What mistakes do developers commonly make?
|
|
31
|
+
5. **Performance tips** — Any optimization opportunities?
|
|
32
|
+
|
|
33
|
+
### Step 3: Create Research Document
|
|
34
|
+
Create `agent-os/research.md` with the following structure:
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
# Technology Research
|
|
38
|
+
|
|
39
|
+
**Generated:** [Date]
|
|
40
|
+
**Tech Stack:** [List from tech-stack.md]
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## [Technology Name]
|
|
45
|
+
|
|
46
|
+
### Version
|
|
47
|
+
- **Recommended:** [version]
|
|
48
|
+
- **Latest Stable:** [version]
|
|
49
|
+
- **Our Choice:** [version + justification]
|
|
50
|
+
|
|
51
|
+
### Key Features to Use
|
|
52
|
+
- [Feature 1]
|
|
53
|
+
- [Feature 2]
|
|
54
|
+
|
|
55
|
+
### Patterns to Follow
|
|
56
|
+
- [Pattern 1 with code example]
|
|
57
|
+
- [Pattern 2 with code example]
|
|
58
|
+
|
|
59
|
+
### Pitfalls to Avoid
|
|
60
|
+
- ⚠️ [Pitfall 1 and how to avoid]
|
|
61
|
+
- ⚠️ [Pitfall 2 and how to avoid]
|
|
62
|
+
|
|
63
|
+
### Performance Considerations
|
|
64
|
+
- [Tip 1]
|
|
65
|
+
- [Tip 2]
|
|
66
|
+
|
|
67
|
+
### Resources
|
|
68
|
+
- [Official docs link]
|
|
69
|
+
- [Helpful article link]
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
[Repeat for each technology]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Step 4: Identify Integration Concerns
|
|
77
|
+
Document any concerns where technologies interact:
|
|
78
|
+
- State management + React patterns
|
|
79
|
+
- CSS framework + component library conflicts
|
|
80
|
+
- Build tool configuration needs
|
|
81
|
+
|
|
82
|
+
### Step 5: Create Version Lock File
|
|
83
|
+
Update `package.json` with pinned versions based on research.
|
|
84
|
+
|
|
85
|
+
### Step 6: Verification
|
|
86
|
+
- Confirm `agent-os/research.md` exists
|
|
87
|
+
- Ensure all major technologies are covered
|
|
88
|
+
- Output message: "Tech research complete! Review the findings in `agent-os/research.md`. Run `/design-tokens` next to begin designing."
|
|
89
|
+
|
|
90
|
+
## Notes
|
|
91
|
+
- Research should be done even for familiar technologies
|
|
92
|
+
- Check for security advisories on dependencies
|
|
93
|
+
- Consider LTS vs. latest tradeoffs
|
|
@@ -11,7 +11,8 @@ Create the technical specification (`spec.md`) for a specific product section.
|
|
|
11
11
|
|
|
12
12
|
### Step 1: Analyze Context
|
|
13
13
|
- Read `design-system/product/product-roadmap.md` to understand where this section fits.
|
|
14
|
-
- Read `design-system/product/product-overview.md` to understand the
|
|
14
|
+
- Read `design-system/product/product-overview.md` to understand the data model and core flows.
|
|
15
|
+
- Read `design-system/design-tokens.md` and `design-system/app-shell.md` to understand the design language and layout constraints.
|
|
15
16
|
|
|
16
17
|
### Step 2: Create Spec File
|
|
17
18
|
Create `design-system/product/sections/[section-id]/spec.md`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Context7 Integration
|
|
2
|
+
|
|
3
|
+
Context7 (context7.com) provides up-to-date documentation and code examples for your tech stack, ensuring your agent uses the latest APIs and best practices.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
1. **Get API Key**: Go to [context7.com](https://context7.com) and get your API key.
|
|
8
|
+
2. **Configure Agent**:
|
|
9
|
+
* **Cursor/Windsurf**: Add Context7 as an MCP server.
|
|
10
|
+
* Server URL: `https://context7.com/api/mcp` (or as per their specific MCP setup instructions)
|
|
11
|
+
* Env: `CONTEXT7_API_KEY=your_key`
|
|
12
|
+
* **Manual**: Just tell the agent "Use Context7 to look up documentation for [library]" if you have the proper system prompt or tool configured.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
When running `/research-tech` or implementation commands, the agent will look for Context7 tools.
|
|
17
|
+
|
|
18
|
+
### Example Prompts
|
|
19
|
+
- "Using Context7, interpret the latest docs for Next.js App Router."
|
|
20
|
+
- "Check Context7 for `shadcn/ui` installation steps."
|