@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
|
@@ -239,6 +239,81 @@ export function DesignPage() {
|
|
|
239
239
|
)}
|
|
240
240
|
</StepIndicator>
|
|
241
241
|
|
|
242
|
+
{/* Impeccable QA Commands - Always visible */}
|
|
243
|
+
<Card className="border-stone-200 dark:border-stone-700 shadow-sm mt-8">
|
|
244
|
+
<CardHeader className="pb-4">
|
|
245
|
+
<CardTitle className="text-lg font-semibold text-stone-900 dark:text-stone-100 flex items-center gap-2">
|
|
246
|
+
<span className="text-xl">✨</span> Impeccable Commands
|
|
247
|
+
</CardTitle>
|
|
248
|
+
<p className="text-sm text-stone-500 dark:text-stone-400">
|
|
249
|
+
Quality commands that transform your designs. Auto-audit runs after each design step.
|
|
250
|
+
</p>
|
|
251
|
+
</CardHeader>
|
|
252
|
+
<CardContent className="space-y-4">
|
|
253
|
+
{/* Diagnose */}
|
|
254
|
+
<div>
|
|
255
|
+
<h4 className="text-xs font-medium text-stone-500 dark:text-stone-400 uppercase tracking-wide mb-2">
|
|
256
|
+
🔍 Diagnose
|
|
257
|
+
</h4>
|
|
258
|
+
<div className="grid grid-cols-2 gap-2">
|
|
259
|
+
<CommandCard
|
|
260
|
+
name="/audit"
|
|
261
|
+
description="Comprehensive quality audit"
|
|
262
|
+
leads={["/normalize", "/harden", "/optimize"]}
|
|
263
|
+
/>
|
|
264
|
+
<CommandCard
|
|
265
|
+
name="/critique"
|
|
266
|
+
description="UX evaluation"
|
|
267
|
+
leads={["/polish", "/simplify", "/bolder"]}
|
|
268
|
+
/>
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
{/* Quality */}
|
|
273
|
+
<div>
|
|
274
|
+
<h4 className="text-xs font-medium text-stone-500 dark:text-stone-400 uppercase tracking-wide mb-2">
|
|
275
|
+
✅ Quality
|
|
276
|
+
</h4>
|
|
277
|
+
<div className="grid grid-cols-4 gap-2">
|
|
278
|
+
<CommandCard name="/normalize" description="Design system consistency" />
|
|
279
|
+
<CommandCard name="/harden" description="Resilience & edge cases" />
|
|
280
|
+
<CommandCard name="/optimize" description="Performance" />
|
|
281
|
+
<CommandCard name="/polish" description="Final details" />
|
|
282
|
+
</div>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
{/* Intensity */}
|
|
286
|
+
<div>
|
|
287
|
+
<h4 className="text-xs font-medium text-stone-500 dark:text-stone-400 uppercase tracking-wide mb-2">
|
|
288
|
+
🎚️ Intensity
|
|
289
|
+
</h4>
|
|
290
|
+
<div className="grid grid-cols-2 gap-2">
|
|
291
|
+
<CommandCard name="/bolder" description="Amplify safe designs" />
|
|
292
|
+
<CommandCard name="/quieter" description="Tone down aggressive designs" />
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
{/* Enhancement */}
|
|
297
|
+
<div>
|
|
298
|
+
<h4 className="text-xs font-medium text-stone-500 dark:text-stone-400 uppercase tracking-wide mb-2">
|
|
299
|
+
✨ Enhancement
|
|
300
|
+
</h4>
|
|
301
|
+
<div className="grid grid-cols-3 gap-2">
|
|
302
|
+
<CommandCard name="/animate" description="Add motion" />
|
|
303
|
+
<CommandCard name="/colorize" description="Add strategic color" />
|
|
304
|
+
<CommandCard name="/delight" description="Add moments of joy" />
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
{/* Workflow hint */}
|
|
309
|
+
<div className="bg-stone-100 dark:bg-stone-800 rounded-md px-4 py-2.5">
|
|
310
|
+
<p className="text-xs text-stone-500 dark:text-stone-400">
|
|
311
|
+
See <code className="font-mono text-stone-700 dark:text-stone-300">.gemini/commands/impeccable/WORKFLOW.md</code> for command relationships
|
|
312
|
+
</p>
|
|
313
|
+
</div>
|
|
314
|
+
</CardContent>
|
|
315
|
+
</Card>
|
|
316
|
+
|
|
242
317
|
{/* Next Phase Button - shown when all steps complete */}
|
|
243
318
|
{allStepsComplete && (
|
|
244
319
|
<StepIndicator step={3} status="current" isLast>
|
|
@@ -282,3 +357,32 @@ function ColorSwatch({ label, colorName }: ColorSwatchProps) {
|
|
|
282
357
|
</div>
|
|
283
358
|
)
|
|
284
359
|
}
|
|
360
|
+
|
|
361
|
+
interface CommandCardProps {
|
|
362
|
+
name: string
|
|
363
|
+
description: string
|
|
364
|
+
leads?: string[]
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function CommandCard({ name, description, leads }: CommandCardProps) {
|
|
368
|
+
const copyCommand = () => {
|
|
369
|
+
navigator.clipboard.writeText(`Antigravity, run ${name}. Read '.gemini/commands/impeccable/${name.slice(1)}.md'.`)
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
return (
|
|
373
|
+
<button
|
|
374
|
+
onClick={copyCommand}
|
|
375
|
+
className="text-left p-3 rounded-lg border border-stone-200 dark:border-stone-700 bg-white dark:bg-stone-800 hover:border-stone-400 dark:hover:border-stone-500 transition-all group"
|
|
376
|
+
>
|
|
377
|
+
<code className="text-sm font-mono font-semibold text-stone-900 dark:text-stone-100 group-hover:text-violet-600 dark:group-hover:text-violet-400">
|
|
378
|
+
{name}
|
|
379
|
+
</code>
|
|
380
|
+
<p className="text-xs text-stone-500 dark:text-stone-400 mt-1">{description}</p>
|
|
381
|
+
{leads && leads.length > 0 && (
|
|
382
|
+
<p className="text-[10px] text-stone-400 dark:text-stone-500 mt-1">
|
|
383
|
+
→ {leads.join(', ')}
|
|
384
|
+
</p>
|
|
385
|
+
)}
|
|
386
|
+
</button>
|
|
387
|
+
)
|
|
388
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import js from '@eslint/js'
|
|
2
|
+
import globals from 'globals'
|
|
3
|
+
import reactHooks from 'eslint-plugin-react-hooks'
|
|
4
|
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
|
5
|
+
import tseslint from 'typescript-eslint'
|
|
6
|
+
|
|
7
|
+
export default tseslint.config(
|
|
8
|
+
{ ignores: ['dist', 'node_modules', 'coverage', '.next', 'build'] },
|
|
9
|
+
{
|
|
10
|
+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
11
|
+
files: ['**/*.{ts,tsx}'],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
ecmaVersion: 2020,
|
|
14
|
+
globals: globals.browser,
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
'react-hooks': reactHooks,
|
|
18
|
+
'react-refresh': reactRefresh,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
...reactHooks.configs.recommended.rules,
|
|
22
|
+
'react-refresh/only-export-components': [
|
|
23
|
+
'warn',
|
|
24
|
+
{ allowConstantExport: true },
|
|
25
|
+
],
|
|
26
|
+
// Strict TypeScript rules
|
|
27
|
+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
28
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
29
|
+
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
30
|
+
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
31
|
+
// Best practices
|
|
32
|
+
'no-console': ['warn', { allow: ['warn', 'error'] }],
|
|
33
|
+
'prefer-const': 'error',
|
|
34
|
+
'no-var': 'error',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
)
|