flyee 0.1.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/LICENSE +21 -0
- package/README.md +134 -0
- package/bin/install.js +357 -0
- package/bridge/bridge.py +1780 -0
- package/bridge/local_tracker.py +722 -0
- package/core/agents/backend-specialist.md +266 -0
- package/core/agents/code-archaeologist.md +106 -0
- package/core/agents/database-architect.md +226 -0
- package/core/agents/debugger.md +225 -0
- package/core/agents/devops-engineer.md +323 -0
- package/core/agents/documentation-writer.md +104 -0
- package/core/agents/explorer-agent.md +73 -0
- package/core/agents/frontend-specialist.md +743 -0
- package/core/agents/game-developer.md +162 -0
- package/core/agents/mobile-developer.md +377 -0
- package/core/agents/orchestrator.md +416 -0
- package/core/agents/penetration-tester.md +188 -0
- package/core/agents/performance-optimizer.md +187 -0
- package/core/agents/product-manager.md +112 -0
- package/core/agents/product-owner.md +95 -0
- package/core/agents/project-planner.md +470 -0
- package/core/agents/qa-automation-engineer.md +103 -0
- package/core/agents/security-auditor.md +170 -0
- package/core/agents/seo-specialist.md +111 -0
- package/core/agents/stitch-designer.md +190 -0
- package/core/agents/tdd-reviewer.md +282 -0
- package/core/agents/test-engineer.md +158 -0
- package/core/scripts/auto_preview.py +148 -0
- package/core/scripts/checklist.py +243 -0
- package/core/scripts/cost_report.py +149 -0
- package/core/scripts/doc-sync-check.py +461 -0
- package/core/scripts/parse_user_stories.py +79 -0
- package/core/scripts/prepare_notion_updates.py +172 -0
- package/core/scripts/print_create_payload.py +18 -0
- package/core/scripts/session_manager.py +120 -0
- package/core/scripts/task_complete.py +127 -0
- package/core/scripts/verify_all.py +327 -0
- package/core/skills/analytics-strategy/SKILL.md +128 -0
- package/core/skills/api-patterns/SKILL.md +81 -0
- package/core/skills/api-patterns/api-style.md +42 -0
- package/core/skills/api-patterns/auth.md +24 -0
- package/core/skills/api-patterns/documentation.md +26 -0
- package/core/skills/api-patterns/graphql.md +41 -0
- package/core/skills/api-patterns/rate-limiting.md +31 -0
- package/core/skills/api-patterns/response.md +37 -0
- package/core/skills/api-patterns/rest.md +40 -0
- package/core/skills/api-patterns/scripts/api_validator.py +211 -0
- package/core/skills/api-patterns/security-testing.md +122 -0
- package/core/skills/api-patterns/trpc.md +41 -0
- package/core/skills/api-patterns/versioning.md +22 -0
- package/core/skills/app-builder/SKILL.md +75 -0
- package/core/skills/app-builder/agent-coordination.md +71 -0
- package/core/skills/app-builder/feature-building.md +53 -0
- package/core/skills/app-builder/project-detection.md +34 -0
- package/core/skills/app-builder/scaffolding.md +118 -0
- package/core/skills/app-builder/tech-stack.md +40 -0
- package/core/skills/app-builder/templates/SKILL.md +39 -0
- package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/core/skills/architecture/SKILL.md +55 -0
- package/core/skills/architecture/context-discovery.md +43 -0
- package/core/skills/architecture/examples.md +94 -0
- package/core/skills/architecture/pattern-selection.md +68 -0
- package/core/skills/architecture/patterns-reference.md +50 -0
- package/core/skills/architecture/trade-off-analysis.md +77 -0
- package/core/skills/atomic-design/SKILL.md +282 -0
- package/core/skills/atomic-design/references/classification-guide.md +132 -0
- package/core/skills/atomic-design/references/quality-checklist.md +60 -0
- package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
- package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
- package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
- package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
- package/core/skills/bash-linux/SKILL.md +199 -0
- package/core/skills/behavioral-modes/SKILL.md +242 -0
- package/core/skills/brainstorming/SKILL.md +163 -0
- package/core/skills/brainstorming/dynamic-questioning.md +373 -0
- package/core/skills/checkpointing-patterns/SKILL.md +163 -0
- package/core/skills/clean-code/SKILL.md +201 -0
- package/core/skills/code-review-checklist/SKILL.md +109 -0
- package/core/skills/code-truth-validation/SKILL.md +149 -0
- package/core/skills/component-library-discovery/SKILL.md +154 -0
- package/core/skills/content-strategy/SKILL.md +222 -0
- package/core/skills/context-budget/SKILL.md +155 -0
- package/core/skills/context-gathering-patterns/SKILL.md +278 -0
- package/core/skills/cost-tracking/SKILL.md +206 -0
- package/core/skills/database-design/SKILL.md +52 -0
- package/core/skills/database-design/database-selection.md +43 -0
- package/core/skills/database-design/indexing.md +39 -0
- package/core/skills/database-design/migrations.md +48 -0
- package/core/skills/database-design/optimization.md +36 -0
- package/core/skills/database-design/orm-selection.md +30 -0
- package/core/skills/database-design/schema-design.md +56 -0
- package/core/skills/database-design/scripts/schema_validator.py +172 -0
- package/core/skills/deployment-procedures/SKILL.md +295 -0
- package/core/skills/design-md/README.md +34 -0
- package/core/skills/design-md/SKILL.md +172 -0
- package/core/skills/design-md/examples/DESIGN.md +154 -0
- package/core/skills/design-system-enforcement/SKILL.md +339 -0
- package/core/skills/doc.md +177 -0
- package/core/skills/document-registry/SKILL.md +130 -0
- package/core/skills/documentation-publishing/SKILL.md +174 -0
- package/core/skills/documentation-templates/SKILL.md +194 -0
- package/core/skills/enhance-prompt/README.md +34 -0
- package/core/skills/enhance-prompt/SKILL.md +204 -0
- package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/core/skills/frontend-design/SKILL.md +430 -0
- package/core/skills/frontend-design/animation-guide.md +331 -0
- package/core/skills/frontend-design/color-system.md +311 -0
- package/core/skills/frontend-design/decision-trees.md +418 -0
- package/core/skills/frontend-design/motion-graphics.md +306 -0
- package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/core/skills/frontend-design/typography-system.md +345 -0
- package/core/skills/frontend-design/ux-psychology.md +541 -0
- package/core/skills/frontend-design/visual-effects.md +383 -0
- package/core/skills/game-development/2d-games/SKILL.md +119 -0
- package/core/skills/game-development/3d-games/SKILL.md +135 -0
- package/core/skills/game-development/SKILL.md +167 -0
- package/core/skills/game-development/game-art/SKILL.md +185 -0
- package/core/skills/game-development/game-audio/SKILL.md +190 -0
- package/core/skills/game-development/game-design/SKILL.md +129 -0
- package/core/skills/game-development/mobile-games/SKILL.md +108 -0
- package/core/skills/game-development/multiplayer/SKILL.md +132 -0
- package/core/skills/game-development/pc-games/SKILL.md +144 -0
- package/core/skills/game-development/vr-ar/SKILL.md +123 -0
- package/core/skills/game-development/web-games/SKILL.md +150 -0
- package/core/skills/geo-fundamentals/SKILL.md +156 -0
- package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/core/skills/git-workflow/SKILL.md +263 -0
- package/core/skills/history-check-patterns/SKILL.md +125 -0
- package/core/skills/i18n-localization/SKILL.md +154 -0
- package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/core/skills/integration-completeness/SKILL.md +219 -0
- package/core/skills/intelligent-routing/SKILL.md +370 -0
- package/core/skills/lint-and-validate/SKILL.md +45 -0
- package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
- package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/core/skills/local-verification/SKILL.md +195 -0
- package/core/skills/mcp-builder/SKILL.md +176 -0
- package/core/skills/mobile-design/SKILL.md +394 -0
- package/core/skills/mobile-design/decision-trees.md +516 -0
- package/core/skills/mobile-design/mobile-backend.md +491 -0
- package/core/skills/mobile-design/mobile-color-system.md +420 -0
- package/core/skills/mobile-design/mobile-debugging.md +122 -0
- package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/core/skills/mobile-design/mobile-navigation.md +458 -0
- package/core/skills/mobile-design/mobile-performance.md +767 -0
- package/core/skills/mobile-design/mobile-testing.md +356 -0
- package/core/skills/mobile-design/mobile-typography.md +433 -0
- package/core/skills/mobile-design/platform-android.md +666 -0
- package/core/skills/mobile-design/platform-ios.md +561 -0
- package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/core/skills/mobile-design/touch-psychology.md +537 -0
- package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/core/skills/nextjs-react-expert/SKILL.md +267 -0
- package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/core/skills/nodejs-best-practices/SKILL.md +333 -0
- package/core/skills/notion-task-patterns/SKILL.md +2529 -0
- package/core/skills/page-specifications/SKILL.md +367 -0
- package/core/skills/parallel-agents/SKILL.md +175 -0
- package/core/skills/performance-profiling/SKILL.md +143 -0
- package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/core/skills/plan-writing/SKILL.md +190 -0
- package/core/skills/powershell-windows/SKILL.md +167 -0
- package/core/skills/project-foundation/SKILL.md +117 -0
- package/core/skills/project-setup/SKILL.md +141 -0
- package/core/skills/project-tracking-patterns/SKILL.md +357 -0
- package/core/skills/project-type-discovery/SKILL.md +239 -0
- package/core/skills/python-patterns/SKILL.md +441 -0
- package/core/skills/qa-test-generation/SKILL.md +156 -0
- package/core/skills/react-components/README.md +36 -0
- package/core/skills/react-components/SKILL.md +47 -0
- package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
- package/core/skills/react-components/package-lock.json +231 -0
- package/core/skills/react-components/package.json +16 -0
- package/core/skills/react-components/resources/architecture-checklist.md +15 -0
- package/core/skills/react-components/resources/component-template.tsx +37 -0
- package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
- package/core/skills/react-components/resources/style-guide.json +27 -0
- package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
- package/core/skills/react-components/scripts/validate.js +68 -0
- package/core/skills/red-team-tactics/SKILL.md +199 -0
- package/core/skills/remotion/README.md +105 -0
- package/core/skills/remotion/SKILL.md +393 -0
- package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
- package/core/skills/remotion/examples/screens.json +56 -0
- package/core/skills/remotion/resources/composition-checklist.md +124 -0
- package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
- package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
- package/core/skills/seo-fundamentals/SKILL.md +129 -0
- package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/core/skills/server-management/SKILL.md +161 -0
- package/core/skills/session-resilience/SKILL.md +199 -0
- package/core/skills/shadcn-ui/README.md +248 -0
- package/core/skills/shadcn-ui/SKILL.md +326 -0
- package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/core/skills/state-machine/SKILL.md +264 -0
- package/core/skills/stitch-loop/README.md +54 -0
- package/core/skills/stitch-loop/SKILL.md +203 -0
- package/core/skills/stitch-loop/examples/SITE.md +73 -0
- package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
- package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
- package/core/skills/stitch-loop/resources/site-template.md +104 -0
- package/core/skills/systematic-debugging/SKILL.md +109 -0
- package/core/skills/tailwind-patterns/SKILL.md +284 -0
- package/core/skills/tdd-validation/SKILL.md +243 -0
- package/core/skills/tdd-workflow/SKILL.md +284 -0
- package/core/skills/testing-patterns/SKILL.md +196 -0
- package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/core/skills/ui-ux-discovery/SKILL.md +329 -0
- package/core/skills/ui-validation/SKILL.md +190 -0
- package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
- package/core/skills/verification-gate/SKILL.md +205 -0
- package/core/skills/vulnerability-scanner/SKILL.md +276 -0
- package/core/skills/vulnerability-scanner/checklists.md +121 -0
- package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/core/skills/web-design-guidelines/SKILL.md +57 -0
- package/core/skills/webapp-testing/SKILL.md +187 -0
- package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/core/templates/ARCHITECTURE.template.md +407 -0
- package/core/templates/project-resources.example.json +71 -0
- package/core/workflows/atomic.md +182 -0
- package/core/workflows/brainstorm.md +134 -0
- package/core/workflows/check-task.md +242 -0
- package/core/workflows/copy-collect.md +306 -0
- package/core/workflows/create-agent.md +33 -0
- package/core/workflows/create-skill.md +39 -0
- package/core/workflows/create-workflow.md +33 -0
- package/core/workflows/create.md +92 -0
- package/core/workflows/debug.md +186 -0
- package/core/workflows/demand.md +443 -0
- package/core/workflows/deploy.md +260 -0
- package/core/workflows/discovery.md +267 -0
- package/core/workflows/document.md +272 -0
- package/core/workflows/ds-components.md +296 -0
- package/core/workflows/ds-init.md +58 -0
- package/core/workflows/ds-refactor.md +245 -0
- package/core/workflows/ds-references.md +197 -0
- package/core/workflows/ds-styleguide.md +237 -0
- package/core/workflows/ds-token-diff.md +103 -0
- package/core/workflows/ds-tokens.md +317 -0
- package/core/workflows/ds-validate.md +309 -0
- package/core/workflows/execute.md +483 -0
- package/core/workflows/extract-template.md +278 -0
- package/core/workflows/fix-failed-tests.md +160 -0
- package/core/workflows/init-project.md +386 -0
- package/core/workflows/legacy-project.md +849 -0
- package/core/workflows/log.md +97 -0
- package/core/workflows/new-project.md +610 -0
- package/core/workflows/new-project.md.bak +3292 -0
- package/core/workflows/new-task.md +404 -0
- package/core/workflows/orchestrate.md +237 -0
- package/core/workflows/page-build.md +296 -0
- package/core/workflows/plan.md +89 -0
- package/core/workflows/prd.md +255 -0
- package/core/workflows/preview.md +81 -0
- package/core/workflows/review-page.md +304 -0
- package/core/workflows/status.md +86 -0
- package/core/workflows/stitch.md +226 -0
- package/core/workflows/task-complete.md +473 -0
- package/core/workflows/task-update.md +163 -0
- package/core/workflows/tdd.md +344 -0
- package/core/workflows/test.md +251 -0
- package/core/workflows/ui-ux-pro-max.md +437 -0
- package/core/workflows/ux-mobile-optimize.md +262 -0
- package/core/workflows/ux-mobile-validate.md +297 -0
- package/engine-files/GEMINI.md +69 -0
- package/package.json +47 -0
- package/runtime-adapters/antigravity.js +26 -0
- package/runtime-adapters/claude.js +57 -0
- package/runtime-adapters/codex.js +51 -0
- package/runtime-adapters/copilot.js +51 -0
- package/runtime-adapters/cursor.js +51 -0
- package/runtime-adapters/gemini-cli.js +30 -0
- package/runtime-adapters/opencode.js +51 -0
- package/runtime-adapters/windsurf.js +51 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atomic-design
|
|
3
|
+
description: Stack-agnostic Atomic Design component generation. Creates well-structured Atoms, Molecules, and Organisms with design tokens, typing, tests, and quality gates. Works with React, Vue, Blade, or any stack.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Atomic Design Component Builder
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Components are the building blocks of interfaces. Structure them right once, reuse forever.
|
|
9
|
+
> **Core Principle:** Atomic Design is a METHODOLOGY, not a technology. Stack is an implementation detail.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 🎯 Selective Reading Rule (MANDATORY)
|
|
14
|
+
|
|
15
|
+
| File | Status | When to Read |
|
|
16
|
+
|------|--------|--------------|
|
|
17
|
+
| [classification-guide.md](references/classification-guide.md) | 🔴 **REQUIRED** | Always — defines Atom/Molecule/Organism |
|
|
18
|
+
| [quality-checklist.md](references/quality-checklist.md) | 🔴 **REQUIRED** | Always — the quality gate |
|
|
19
|
+
| [stack-react.md](references/stacks/stack-react.md) | ⚪ Stack-specific | When target is React (Vite, CRA) |
|
|
20
|
+
| [stack-nextjs.md](references/stacks/stack-nextjs.md) | ⚪ Stack-specific | When target is Next.js (App Router) |
|
|
21
|
+
| [stack-vue.md](references/stacks/stack-vue.md) | ⚪ Stack-specific | When target is Vue/Nuxt |
|
|
22
|
+
| [stack-blade.md](references/stacks/stack-blade.md) | ⚪ Stack-specific | When target is Laravel Blade |
|
|
23
|
+
|
|
24
|
+
> 🔴 **Read Classification Guide + Quality Checklist ALWAYS. Then read the stack adapter that matches the project.**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 1. Stack Detection (ALWAYS FIRST)
|
|
29
|
+
|
|
30
|
+
Before generating any component, determine the stack:
|
|
31
|
+
|
|
32
|
+
### Auto-Detection
|
|
33
|
+
|
|
34
|
+
1. Scan project root for indicators:
|
|
35
|
+
- `next.config.*` → **Next.js** (use `stack-nextjs.md`)
|
|
36
|
+
- `vite.config.*` + `react` in package.json → **React** (use `stack-react.md`)
|
|
37
|
+
- `nuxt.config.*` or `vite.config.*` + `vue` in package.json → **Vue**
|
|
38
|
+
- `artisan` + `resources/views/` → **Blade**
|
|
39
|
+
- `svelte.config.*` → **Svelte** (use principles, no adapter yet)
|
|
40
|
+
- `angular.json` → **Angular** (use principles, no adapter yet)
|
|
41
|
+
|
|
42
|
+
2. If auto-detection fails → **ASK** the user
|
|
43
|
+
|
|
44
|
+
### Stack Adapter Loading
|
|
45
|
+
|
|
46
|
+
Once stack is known:
|
|
47
|
+
1. Read the matching `references/stacks/stack-{name}.md`
|
|
48
|
+
2. Use its folder structure, file patterns, and templates
|
|
49
|
+
3. If no adapter exists → apply universal principles from this SKILL.md
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 2. Component Generation Workflow
|
|
54
|
+
|
|
55
|
+
### Phase 1: Discovery
|
|
56
|
+
|
|
57
|
+
Before writing ANY code:
|
|
58
|
+
|
|
59
|
+
1. **Component Name** — What is it called? (PascalCase for JS, kebab-case for Blade)
|
|
60
|
+
2. **Category** — Atom, Molecule, or Organism? (read classification guide if unsure)
|
|
61
|
+
3. **Reference** — Figma link, screenshot, or text description?
|
|
62
|
+
4. **Base Library** — Use a UI library base? (shadcn, Headless UI, Radix, none)
|
|
63
|
+
5. **Extras** — Storybook story? Tests?
|
|
64
|
+
|
|
65
|
+
> 🔴 **Ask ONE question at a time. Wait for response before next.**
|
|
66
|
+
|
|
67
|
+
### Phase 2: Infrastructure Check
|
|
68
|
+
|
|
69
|
+
**BEFORE generating any component code:**
|
|
70
|
+
|
|
71
|
+
| Check | Action if Missing |
|
|
72
|
+
|-------|-------------------|
|
|
73
|
+
| **Design Tokens file** | Create starter `variables.css` (see § Token Starter below) |
|
|
74
|
+
| **Test framework** | Ask user: "Install Vitest/PHPUnit/Jest?" |
|
|
75
|
+
| **Storybook** | Ask user: "Install Storybook?" (only if requested) |
|
|
76
|
+
| **UI Library** | Install via CLI if user opted in (e.g., `npx shadcn@latest init`) |
|
|
77
|
+
|
|
78
|
+
### Phase 3: Scaffold & Implement
|
|
79
|
+
|
|
80
|
+
1. Create folder structure per stack adapter
|
|
81
|
+
2. Generate **ALL required files** in sequence:
|
|
82
|
+
- Types/Interface file (FIRST — define the contract)
|
|
83
|
+
- Component implementation
|
|
84
|
+
- Styles (design tokens, BEM naming)
|
|
85
|
+
- Tests (minimum 80% coverage target)
|
|
86
|
+
- Barrel export (index file)
|
|
87
|
+
- Story file (if opted in)
|
|
88
|
+
3. Run quality checklist (see `references/quality-checklist.md`)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 3. Universal Design Principles
|
|
93
|
+
|
|
94
|
+
### Atomic Classification (Summary)
|
|
95
|
+
|
|
96
|
+
| Level | What | Examples | Rule |
|
|
97
|
+
|-------|------|----------|------|
|
|
98
|
+
| **Atom** | Smallest indivisible UI element | Button, Input, Icon, Label, Badge | Cannot be broken down further |
|
|
99
|
+
| **Molecule** | Simple group of atoms working together | SearchBar (Input+Button), FormField (Label+Input+Error) | 2-3 atoms combined for one purpose |
|
|
100
|
+
| **Organism** | Complex section composed of molecules/atoms | Header, Card, Modal, Sidebar, DataTable | Self-contained section of interface |
|
|
101
|
+
|
|
102
|
+
> 📖 Full guide with decision tree: [classification-guide.md](references/classification-guide.md)
|
|
103
|
+
|
|
104
|
+
### Design Token Usage (MANDATORY)
|
|
105
|
+
|
|
106
|
+
**❌ NEVER hardcode style values:**
|
|
107
|
+
```css
|
|
108
|
+
/* BAD */
|
|
109
|
+
.button { background-color: #0070f3; padding: 16px; }
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**✅ ALWAYS use design tokens:**
|
|
113
|
+
```css
|
|
114
|
+
/* GOOD */
|
|
115
|
+
.button { background-color: var(--color-primary); padding: var(--spacing-md); }
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Token Starter Template
|
|
119
|
+
|
|
120
|
+
If no token file exists, create `variables.css` (or equivalent):
|
|
121
|
+
|
|
122
|
+
```css
|
|
123
|
+
:root {
|
|
124
|
+
/* Colors */
|
|
125
|
+
--color-primary: #0070f3;
|
|
126
|
+
--color-secondary: #7928ca;
|
|
127
|
+
--color-text: #333;
|
|
128
|
+
--color-text-light: #666;
|
|
129
|
+
--color-background: #fff;
|
|
130
|
+
--color-border: #e1e1e1;
|
|
131
|
+
|
|
132
|
+
/* Spacing Scale */
|
|
133
|
+
--spacing-xs: 4px;
|
|
134
|
+
--spacing-sm: 8px;
|
|
135
|
+
--spacing-md: 16px;
|
|
136
|
+
--spacing-lg: 24px;
|
|
137
|
+
--spacing-xl: 32px;
|
|
138
|
+
|
|
139
|
+
/* Typography */
|
|
140
|
+
--font-size-sm: 14px;
|
|
141
|
+
--font-size-md: 16px;
|
|
142
|
+
--font-size-lg: 18px;
|
|
143
|
+
--font-weight-normal: 400;
|
|
144
|
+
--font-weight-medium: 500;
|
|
145
|
+
--font-weight-bold: 700;
|
|
146
|
+
|
|
147
|
+
/* Border Radius */
|
|
148
|
+
--radius-sm: 4px;
|
|
149
|
+
--radius-md: 8px;
|
|
150
|
+
--radius-lg: 12px;
|
|
151
|
+
--radius-full: 9999px;
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> **Note:** If the project already has a Design System (e.g., via `/ds-init`), use those tokens instead. Do NOT create a duplicate token file.
|
|
156
|
+
|
|
157
|
+
### BEM Naming (Default Methodology)
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
Block: .button
|
|
161
|
+
Element: .button__icon
|
|
162
|
+
Modifier: .button--primary
|
|
163
|
+
|
|
164
|
+
Nesting in SCSS/CSS:
|
|
165
|
+
.card {
|
|
166
|
+
&__header { }
|
|
167
|
+
&__body { }
|
|
168
|
+
&--featured { }
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
> **Exception:** If the stack convention differs (e.g., Tailwind utility-first), follow stack adapter instructions. BEM is the fallback.
|
|
173
|
+
|
|
174
|
+
### Type Safety (MANDATORY)
|
|
175
|
+
|
|
176
|
+
Every component MUST have typed props/parameters:
|
|
177
|
+
|
|
178
|
+
| Stack | Mechanism |
|
|
179
|
+
|-------|-----------|
|
|
180
|
+
| React/Vue (TS) | TypeScript `interface` with `Readonly<T>` |
|
|
181
|
+
| React (JS) | PropTypes + JSDoc |
|
|
182
|
+
| Vue (SFC) | `defineProps<T>()` with TypeScript |
|
|
183
|
+
| Blade | PHPDoc on Component class + `@props` |
|
|
184
|
+
|
|
185
|
+
**❌ FORBIDDEN:** `any`, `unknown` as prop types, untyped parameters.
|
|
186
|
+
|
|
187
|
+
### Testing (MANDATORY)
|
|
188
|
+
|
|
189
|
+
| Requirement | Standard |
|
|
190
|
+
|-------------|----------|
|
|
191
|
+
| Coverage target | 80% minimum |
|
|
192
|
+
| Test location | Colocated with component |
|
|
193
|
+
| What to test | Rendering, props, interactions, disabled states, a11y basics |
|
|
194
|
+
|
|
195
|
+
### Accessibility (MANDATORY)
|
|
196
|
+
|
|
197
|
+
- Semantic HTML elements (not `div` for everything)
|
|
198
|
+
- ARIA attributes where needed
|
|
199
|
+
- Keyboard navigable
|
|
200
|
+
- Sufficient color contrast (WCAG 2.1 AA)
|
|
201
|
+
- Focus indicators visible
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 4. Restrictions & Prohibitions
|
|
206
|
+
|
|
207
|
+
### ❌ Absolute Prohibitions
|
|
208
|
+
|
|
209
|
+
- **NO** hardcoded style values (colors, spacing, font sizes)
|
|
210
|
+
- **NO** untyped props/parameters (`any`, missing types)
|
|
211
|
+
- **NO** monolithic files (split types, styles, tests)
|
|
212
|
+
- **NO** business logic inside components (extract to hooks/composables/services)
|
|
213
|
+
- **NO** static text hardcoded (extract to data/i18n files)
|
|
214
|
+
- **NO** `dangerouslySetInnerHTML` or `v-html` without sanitization
|
|
215
|
+
|
|
216
|
+
### ✅ Mandatory Requirements
|
|
217
|
+
|
|
218
|
+
- **MUST** check for design tokens before creating component
|
|
219
|
+
- **MUST** create ALL required files per stack adapter
|
|
220
|
+
- **MUST** use design tokens for ALL style values
|
|
221
|
+
- **MUST** type ALL props/parameters
|
|
222
|
+
- **MUST** colocate tests with components
|
|
223
|
+
- **MUST** use barrel exports (index file)
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 5. Composition with UI Libraries
|
|
228
|
+
|
|
229
|
+
When user opts to use a base UI library:
|
|
230
|
+
|
|
231
|
+
| Library | Check | Install Command |
|
|
232
|
+
|---------|-------|----------------|
|
|
233
|
+
| shadcn/ui | `components.json` exists? | `npx shadcn@latest init` |
|
|
234
|
+
| Headless UI | In package.json? | `npm install @headlessui/react` |
|
|
235
|
+
| Radix | In package.json? | `npm install @radix-ui/react-*` |
|
|
236
|
+
|
|
237
|
+
### Hybrid Styling Rule
|
|
238
|
+
|
|
239
|
+
When composing with a UI library:
|
|
240
|
+
- Use the **library's API** for behavior and base structure
|
|
241
|
+
- Use **BEM/token styles** for custom visual overrides
|
|
242
|
+
- Do NOT rebuild what the library provides
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 6. Decision Process Summary
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
For EVERY component:
|
|
250
|
+
|
|
251
|
+
1. DETECT STACK
|
|
252
|
+
└── Auto-scan or ask user
|
|
253
|
+
└── Load stack adapter
|
|
254
|
+
|
|
255
|
+
2. CLASSIFY
|
|
256
|
+
└── Atom, Molecule, or Organism?
|
|
257
|
+
└── Use classification guide if unsure
|
|
258
|
+
|
|
259
|
+
3. CHECK INFRASTRUCTURE
|
|
260
|
+
└── Tokens exist? Tests? Storybook?
|
|
261
|
+
└── Create/install as needed
|
|
262
|
+
|
|
263
|
+
4. GENERATE
|
|
264
|
+
└── Types FIRST, then component, styles, tests, exports
|
|
265
|
+
└── Use adapter templates
|
|
266
|
+
|
|
267
|
+
5. QUALITY GATE
|
|
268
|
+
└── Run quality-checklist.md
|
|
269
|
+
└── ALL items must pass before done
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Related Skills
|
|
275
|
+
|
|
276
|
+
| Skill | Relationship |
|
|
277
|
+
|-------|-------------|
|
|
278
|
+
| `frontend-design` | Design principles (colors, typography, UX) — use BEFORE atomic-design |
|
|
279
|
+
| `clean-code` | Code quality standards — always active |
|
|
280
|
+
| `testing-patterns` | Testing strategies — complements test generation |
|
|
281
|
+
| `design-system-enforcement` | Ensures DS compliance — post-generation audit |
|
|
282
|
+
| `shadcn-ui` | shadcn/ui integration details — when using shadcn base |
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Atomic Design Classification Guide
|
|
2
|
+
|
|
3
|
+
> When in doubt about how to classify a component, use this decision tree.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Definitions
|
|
8
|
+
|
|
9
|
+
### Atoms ⚛️
|
|
10
|
+
|
|
11
|
+
The **smallest, indivisible** UI elements. They cannot be broken down further without losing meaning.
|
|
12
|
+
|
|
13
|
+
**Characteristics:**
|
|
14
|
+
- Single responsibility
|
|
15
|
+
- No internal composition (does not contain other components)
|
|
16
|
+
- Accepts props for customization
|
|
17
|
+
- Reusable across the entire application
|
|
18
|
+
|
|
19
|
+
**Examples:**
|
|
20
|
+
|
|
21
|
+
| Atom | Props |
|
|
22
|
+
|------|-------|
|
|
23
|
+
| Button | variant, size, disabled, onClick |
|
|
24
|
+
| Input | type, placeholder, value, onChange |
|
|
25
|
+
| Label | htmlFor, children |
|
|
26
|
+
| Icon | name, size, color |
|
|
27
|
+
| Badge | variant, children |
|
|
28
|
+
| Avatar | src, alt, size |
|
|
29
|
+
| Spinner | size |
|
|
30
|
+
| Divider | orientation |
|
|
31
|
+
| Checkbox | checked, onChange |
|
|
32
|
+
| Tag | color, children |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### Molecules 🧬
|
|
37
|
+
|
|
38
|
+
**Simple groups of 2-3 atoms** working together as a unit for a single purpose.
|
|
39
|
+
|
|
40
|
+
**Characteristics:**
|
|
41
|
+
- Combines atoms into a functional unit
|
|
42
|
+
- Has one clear purpose
|
|
43
|
+
- Introduces layout/arrangement logic between atoms
|
|
44
|
+
- Still relatively simple
|
|
45
|
+
|
|
46
|
+
**Examples:**
|
|
47
|
+
|
|
48
|
+
| Molecule | Composed Of |
|
|
49
|
+
|----------|-------------|
|
|
50
|
+
| SearchBar | Input + Button |
|
|
51
|
+
| FormField | Label + Input + ErrorText |
|
|
52
|
+
| NavItem | Icon + Label |
|
|
53
|
+
| ToggleGroup | Label + Toggle |
|
|
54
|
+
| InputWithIcon | Icon + Input |
|
|
55
|
+
| AvatarWithName | Avatar + Label |
|
|
56
|
+
| StatCard | Label + Value (number) |
|
|
57
|
+
| MenuItem | Icon + Label + Badge |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### Organisms 🦠
|
|
62
|
+
|
|
63
|
+
**Complex, self-contained sections** composed of multiple molecules and/or atoms. They form distinct regions of the interface.
|
|
64
|
+
|
|
65
|
+
**Characteristics:**
|
|
66
|
+
- Self-contained section of UI
|
|
67
|
+
- May manage internal state
|
|
68
|
+
- Combines multiple molecules/atoms
|
|
69
|
+
- Can be placed directly in a page/template
|
|
70
|
+
|
|
71
|
+
**Examples:**
|
|
72
|
+
|
|
73
|
+
| Organism | Composed Of |
|
|
74
|
+
|----------|-------------|
|
|
75
|
+
| Header | Logo + NavItems + SearchBar + Avatar |
|
|
76
|
+
| Card | Image + Title + Description + Button |
|
|
77
|
+
| Modal | Overlay + Header + Body + Footer |
|
|
78
|
+
| DataTable | TableHeader + TableRows + Pagination |
|
|
79
|
+
| Sidebar | Logo + MenuItems + Footer |
|
|
80
|
+
| LoginForm | FormFields + Button + Link |
|
|
81
|
+
| CommentSection | AvatarWithName + TextArea + Button |
|
|
82
|
+
| ProductCard | Image + Badge + Title + Price + Button |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Decision Tree
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Is this component composed of other components?
|
|
90
|
+
│
|
|
91
|
+
├── NO → Is it a single HTML element (or thin wrapper)?
|
|
92
|
+
│ ├── YES → ⚛️ ATOM
|
|
93
|
+
│ └── NO → Probably still an Atom (thin abstraction)
|
|
94
|
+
│
|
|
95
|
+
└── YES → How many sub-components does it combine?
|
|
96
|
+
│
|
|
97
|
+
├── 2-3 simple components, ONE purpose
|
|
98
|
+
│ └── 🧬 MOLECULE
|
|
99
|
+
│
|
|
100
|
+
└── 4+ components, or contains molecules, forms distinct UI section
|
|
101
|
+
└── 🦠 ORGANISM
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Edge Cases
|
|
105
|
+
|
|
106
|
+
| Scenario | Classification | Reasoning |
|
|
107
|
+
|----------|---------------|-----------|
|
|
108
|
+
| Button with icon inside | ⚛️ **Atom** | Icon is a prop/slot, not a separate composed component |
|
|
109
|
+
| Dropdown (trigger + menu) | 🧬 **Molecule** | Two atoms working together |
|
|
110
|
+
| Multi-select with search | 🦠 **Organism** | Complex: Input + Dropdown + Tags + Search logic |
|
|
111
|
+
| Simple Card (title + text) | 🧬 **Molecule** | Just 2-3 atoms |
|
|
112
|
+
| Card with image + actions + badge | 🦠 **Organism** | Complex composition with multiple concerns |
|
|
113
|
+
| Toast/Notification | ⚛️ **Atom** | Self-contained, no internal composition |
|
|
114
|
+
| Toast with action button | 🧬 **Molecule** | Toast atom + Button atom |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Naming Conventions
|
|
119
|
+
|
|
120
|
+
| Stack | Atoms | Molecules | Organisms |
|
|
121
|
+
|-------|-------|-----------|-----------|
|
|
122
|
+
| **React** | `Button.tsx` | `SearchBar.tsx` | `Header.tsx` |
|
|
123
|
+
| **Vue** | `BaseButton.vue` | `SearchBar.vue` | `AppHeader.vue` |
|
|
124
|
+
| **Blade** | `button.blade.php` | `search-bar.blade.php` | `header.blade.php` |
|
|
125
|
+
|
|
126
|
+
### Folder Paths
|
|
127
|
+
|
|
128
|
+
| Stack | Pattern |
|
|
129
|
+
|-------|---------|
|
|
130
|
+
| **React** | `src/components/{atoms\|molecules\|organisms}/{Name}/` |
|
|
131
|
+
| **Vue** | `src/components/{atoms\|molecules\|organisms}/{Name}/` |
|
|
132
|
+
| **Blade** | `resources/views/components/{atoms\|molecules\|organisms}/` |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Component Quality Gate
|
|
2
|
+
|
|
3
|
+
> **MANDATORY:** Every component MUST pass ALL checks before being considered complete.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Structural Integrity
|
|
8
|
+
|
|
9
|
+
- [ ] Component classified correctly (Atom/Molecule/Organism)
|
|
10
|
+
- [ ] ALL required files created per stack adapter
|
|
11
|
+
- [ ] Barrel export (`index.*`) exposes component and types
|
|
12
|
+
- [ ] No monolithic files (types, styles, tests are separate)
|
|
13
|
+
- [ ] Business logic extracted (hooks/composables/services)
|
|
14
|
+
- [ ] Static text/URLs extracted to data/i18n files
|
|
15
|
+
|
|
16
|
+
## Design Tokens & Styling
|
|
17
|
+
|
|
18
|
+
- [ ] Design token file (`variables.css` or equivalent) exists
|
|
19
|
+
- [ ] **Zero** hardcoded style values (colors, spacing, font sizes, radii)
|
|
20
|
+
- [ ] BEM naming used (or stack-specific convention documented)
|
|
21
|
+
- [ ] Dark mode support applied (if project uses dark mode)
|
|
22
|
+
- [ ] Responsive styles where appropriate
|
|
23
|
+
|
|
24
|
+
## Type Safety
|
|
25
|
+
|
|
26
|
+
- [ ] All props/parameters have explicit types
|
|
27
|
+
- [ ] **Zero** usage of `any` or untyped parameters
|
|
28
|
+
- [ ] Readonly/immutable prop interfaces (where applicable)
|
|
29
|
+
- [ ] Default values defined for optional props
|
|
30
|
+
|
|
31
|
+
## Testing
|
|
32
|
+
|
|
33
|
+
- [ ] Test file colocated with component
|
|
34
|
+
- [ ] Rendering test: component mounts correctly
|
|
35
|
+
- [ ] Props test: all prop combinations work
|
|
36
|
+
- [ ] Interaction test: click/input handlers fire correctly
|
|
37
|
+
- [ ] Edge case: disabled/loading/error states covered
|
|
38
|
+
- [ ] Coverage target: 80% minimum
|
|
39
|
+
|
|
40
|
+
## Accessibility
|
|
41
|
+
|
|
42
|
+
- [ ] Semantic HTML elements used (not `<div>` soup)
|
|
43
|
+
- [ ] Interactive elements are keyboard accessible
|
|
44
|
+
- [ ] ARIA attributes where native semantics insufficient
|
|
45
|
+
- [ ] Color contrast meets WCAG 2.1 AA (4.5:1 text, 3:1 large)
|
|
46
|
+
- [ ] Focus indicators visible
|
|
47
|
+
|
|
48
|
+
## Storybook (if opted in)
|
|
49
|
+
|
|
50
|
+
- [ ] Story file created with `autodocs` tag
|
|
51
|
+
- [ ] Default story renders correctly
|
|
52
|
+
- [ ] All variants have stories (primary, secondary, disabled, etc.)
|
|
53
|
+
- [ ] `title` follows `{Category}/{Name}` pattern (e.g., `Atoms/Button`)
|
|
54
|
+
|
|
55
|
+
## Final Verification
|
|
56
|
+
|
|
57
|
+
- [ ] Component renders in dev server without errors
|
|
58
|
+
- [ ] All tests pass
|
|
59
|
+
- [ ] Lint passes (no warnings or errors)
|
|
60
|
+
- [ ] No console errors/warnings in browser
|