@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.
Files changed (69) hide show
  1. package/bin/cli.js +63 -7
  2. package/package.json +2 -2
  3. package/src/template/.env.example +28 -0
  4. package/src/template/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
  5. package/src/template/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
  6. package/src/template/.github/PULL_REQUEST_TEMPLATE.md +33 -0
  7. package/src/template/.github/workflows/ci.yml +83 -0
  8. package/src/template/.husky/commit-msg +1 -0
  9. package/src/template/.husky/pre-commit +1 -0
  10. package/src/template/.prettierrc +11 -0
  11. package/src/template/README.md +78 -0
  12. package/src/template/agent-os/commands/create-constitution/create-constitution.md +89 -0
  13. package/src/template/agent-os/commands/export-product/export-product.md +24 -0
  14. package/src/template/agent-os/commands/initialize-design/initialize-design.md +10 -1
  15. package/src/template/agent-os/commands/research-tech/research-tech.md +93 -0
  16. package/src/template/agent-os/commands/shape-spec/shape-spec.md +2 -1
  17. package/src/template/agent-os/docs/context7.md +20 -0
  18. package/src/template/commitlint.config.js +25 -0
  19. package/src/template/control-center/backend/index.js +67 -4
  20. package/src/template/control-center/frontend/src/App.tsx +193 -64
  21. package/src/template/design-system/{.claude → .gemini}/commands/design-os/design-shell.md +95 -69
  22. package/src/template/design-system/.gemini/commands/design-os/design-tokens.md +211 -0
  23. package/src/template/design-system/.gemini/commands/impeccable/WORKFLOW.md +163 -0
  24. package/src/template/design-system/.gemini/commands/impeccable/adapt.md +189 -0
  25. package/src/template/design-system/.gemini/commands/impeccable/animate.md +184 -0
  26. package/src/template/design-system/.gemini/commands/impeccable/audit.md +123 -0
  27. package/src/template/design-system/.gemini/commands/impeccable/bolder.md +126 -0
  28. package/src/template/design-system/.gemini/commands/impeccable/clarify.md +173 -0
  29. package/src/template/design-system/.gemini/commands/impeccable/colorize.md +152 -0
  30. package/src/template/design-system/.gemini/commands/impeccable/critique.md +112 -0
  31. package/src/template/design-system/.gemini/commands/impeccable/delight.md +311 -0
  32. package/src/template/design-system/.gemini/commands/impeccable/extract.md +88 -0
  33. package/src/template/design-system/.gemini/commands/impeccable/harden.md +351 -0
  34. package/src/template/design-system/.gemini/commands/impeccable/normalize.md +61 -0
  35. package/src/template/design-system/.gemini/commands/impeccable/onboard.md +236 -0
  36. package/src/template/design-system/.gemini/commands/impeccable/optimize.md +262 -0
  37. package/src/template/design-system/.gemini/commands/impeccable/polish.md +196 -0
  38. package/src/template/design-system/.gemini/commands/impeccable/quieter.md +112 -0
  39. package/src/template/design-system/.gemini/commands/impeccable/simplify.md +131 -0
  40. package/src/template/design-system/.gemini/commands/impeccable/teach-impeccable.md +67 -0
  41. package/src/template/design-system/.gemini/hooks/ai-slop-guard.md +80 -0
  42. package/src/template/design-system/.gemini/hooks/on-design-complete.md +63 -0
  43. package/src/template/design-system/.gemini/skills/frontend-design/SKILL.md +126 -0
  44. package/src/template/design-system/.gemini/skills/frontend-design/reference/color-and-contrast.md +132 -0
  45. package/src/template/design-system/.gemini/skills/frontend-design/reference/interaction-design.md +123 -0
  46. package/src/template/design-system/.gemini/skills/frontend-design/reference/motion-design.md +99 -0
  47. package/src/template/design-system/.gemini/skills/frontend-design/reference/responsive-design.md +114 -0
  48. package/src/template/design-system/.gemini/skills/frontend-design/reference/spatial-design.md +100 -0
  49. package/src/template/design-system/.gemini/skills/frontend-design/reference/typography.md +131 -0
  50. package/src/template/design-system/.gemini/skills/frontend-design/reference/ux-writing.md +107 -0
  51. package/src/template/design-system/src/components/DesignPage.tsx +104 -0
  52. package/src/template/eslint.config.js +37 -0
  53. package/src/template/lint-staged.config.js +6 -0
  54. package/src/template/package-lock.json +10308 -0
  55. package/src/template/package.json +25 -2
  56. package/src/template/src/__tests__/example.test.ts +17 -0
  57. package/src/template/src/__tests__/setup.ts +14 -0
  58. package/src/template/vitest.config.ts +25 -0
  59. package/src/template/design-system/.claude/commands/design-os/design-tokens.md +0 -166
  60. package/src/template/design-system/.claude/skills/frontend-design/SKILL.md +0 -42
  61. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/data-model.md +0 -0
  62. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/design-screen.md +0 -0
  63. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/export-product.md +0 -0
  64. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/product-roadmap.md +0 -0
  65. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/product-vision.md +0 -0
  66. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/sample-data.md +0 -0
  67. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/screenshot-design.md +0 -0
  68. /package/src/template/design-system/{.claude → .gemini}/commands/design-os/shape-section.md +0 -0
  69. /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
+ )
@@ -0,0 +1,6 @@
1
+ export default {
2
+ '*.{ts,tsx}': ['eslint --fix', 'prettier --write'],
3
+ '*.{js,jsx,cjs,mjs}': ['eslint --fix', 'prettier --write'],
4
+ '*.{json,md,yml,yaml}': ['prettier --write'],
5
+ '*.css': ['prettier --write'],
6
+ }