aiox-core 5.0.3 → 5.0.4
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/.aiox-core/core/execution/predictive-pipeline.js +1283 -0
- package/.aiox-core/core/memory/decision-memory.js +564 -0
- package/.aiox-core/data/entity-registry.yaml +1068 -1028
- package/.aiox-core/data/registry-update-log.jsonl +2 -2
- package/.aiox-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aiox-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aiox-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aiox-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aiox-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aiox-core/development/templates/squad-template/LICENSE +21 -21
- package/.aiox-core/infrastructure/templates/aiox-sync.yaml.template +182 -182
- package/.aiox-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aiox-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aiox-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aiox-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-aiox-base.tmpl +63 -63
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aiox-core/install-manifest.yaml +63 -55
- package/.aiox-core/local-config.yaml.template +71 -71
- package/.aiox-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aiox-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aiox-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aiox-core/monitor/hooks/notification.py +29 -29
- package/.aiox-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aiox-core/monitor/hooks/pre_compact.py +29 -29
- package/.aiox-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aiox-core/monitor/hooks/stop.py +29 -29
- package/.aiox-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aiox-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aiox-core/product/templates/adr.hbs +125 -125
- package/.aiox-core/product/templates/dbdr.hbs +241 -241
- package/.aiox-core/product/templates/epic.hbs +212 -212
- package/.aiox-core/product/templates/pmdr.hbs +186 -186
- package/.aiox-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aiox-core/product/templates/prd.hbs +201 -201
- package/.aiox-core/product/templates/story.hbs +263 -263
- package/.aiox-core/product/templates/task.hbs +170 -170
- package/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aiox-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aiox-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aiox-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aiox-core/product/templates/tmpl-view.sql +177 -177
- package/.aiox-core/scripts/pm.sh +0 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/write-path-validation.py +194 -194
- package/LICENSE +33 -33
- package/bin/aiox-graph.js +0 -0
- package/bin/aiox-minimal.js +0 -0
- package/bin/aiox.js +0 -0
- package/package.json +1 -1
- package/packages/aiox-install/bin/aiox-install.js +0 -0
- package/packages/aiox-install/bin/edmcp.js +0 -0
- package/packages/aiox-pro-cli/bin/aiox-pro.js +0 -0
- package/packages/installer/src/wizard/pro-setup.js +28 -0
- package/pro/README.md +66 -66
- package/pro/feature-registry.yaml +225 -223
- package/pro/license/license-api.js +701 -679
- package/pro/package.json +39 -39
- package/pro/pro-config.yaml +63 -63
- package/pro/squads/README.md +24 -24
- package/pro/squads/design/HEADLINE.md +3 -3
- package/pro/squads/design/README.md +109 -109
- package/pro/squads/design/agents/brad-frost.md +1097 -1097
- package/pro/squads/design/agents/dan-mall.md +857 -857
- package/pro/squads/design/agents/dave-malouf.md +2272 -2272
- package/pro/squads/design/agents/design-chief.md +114 -114
- package/pro/squads/design/agents/ds-foundations-lead.md +194 -194
- package/pro/squads/design/agents/ds-token-architect.md +361 -361
- package/pro/squads/design/agents/nano-banana-generator.md +162 -162
- package/pro/squads/design/agents/storybook-expert.md +809 -809
- package/pro/squads/design/checklists/atomic-refactor-checklist.md +299 -299
- package/pro/squads/design/checklists/component-adaptation-checklist.md +81 -81
- package/pro/squads/design/checklists/design-fidelity-checklist.md +283 -283
- package/pro/squads/design/checklists/design-handoff-checklist.md +55 -55
- package/pro/squads/design/checklists/design-team-health-checklist.md +454 -454
- package/pro/squads/design/checklists/designops-maturity-checklist.md +518 -518
- package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +45 -45
- package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +147 -147
- package/pro/squads/design/checklists/ds-component-quality-checklist.md +150 -150
- package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +147 -147
- package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +99 -99
- package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +164 -164
- package/pro/squads/design/checklists/reading-accessibility-checklist.md +275 -275
- package/pro/squads/design/checklists/token-mapping-checklist.md +107 -107
- package/pro/squads/design/config/coding-standards.md +286 -286
- package/pro/squads/design/config/source-tree.md +59 -59
- package/pro/squads/design/config/tech-stack.md +48 -48
- package/pro/squads/design/config.yaml +204 -204
- package/pro/squads/design/data/agentic-design-systems-guide.md +46 -46
- package/pro/squads/design/data/agentic-ds-principles.md +100 -100
- package/pro/squads/design/data/atomic-design-principles.md +108 -108
- package/pro/squads/design/data/atomic-refactor-rules.md +582 -582
- package/pro/squads/design/data/base-component-specs.md +972 -972
- package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +270 -270
- package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +176 -176
- package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +168 -168
- package/pro/squads/design/data/brad-frost-dna.yaml +713 -713
- package/pro/squads/design/data/capability-tools.yaml +124 -124
- package/pro/squads/design/data/component-adaptation-changelog.md +318 -318
- package/pro/squads/design/data/consolidation-algorithms.md +168 -168
- package/pro/squads/design/data/critical-eye-scoring-rules.yaml +240 -240
- package/pro/squads/design/data/design-token-best-practices.md +107 -107
- package/pro/squads/design/data/design-tokens-spec.yaml +418 -418
- package/pro/squads/design/data/ds-reference-architectures.md +93 -93
- package/pro/squads/design/data/f2-qa-report.md +168 -168
- package/pro/squads/design/data/f3-derived-components-changelog.md +100 -100
- package/pro/squads/design/data/f3-qa-report.md +208 -208
- package/pro/squads/design/data/figma-base-components-raw.md +101 -101
- package/pro/squads/design/data/figma-tokens-raw.md +1548 -1548
- package/pro/squads/design/data/fluent2-design-principles.md +114 -114
- package/pro/squads/design/data/high-retention-reading-guide.md +349 -349
- package/pro/squads/design/data/integration-patterns.md +207 -207
- package/pro/squads/design/data/internal-quality-chain.yaml +48 -48
- package/pro/squads/design/data/motion-tokens-guide.md +202 -202
- package/pro/squads/design/data/roi-calculation-guide.md +142 -142
- package/pro/squads/design/data/token-mapping-reference.md +213 -213
- package/pro/squads/design/data/w3c-dtcg-spec-reference.md +149 -149
- package/pro/squads/design/data/wcag-compliance-guide.md +267 -267
- package/pro/squads/design/docs/AUDIT_REPORT.md +97 -97
- package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +577 -577
- package/pro/squads/design/docs/UPGRADE_PLAN.md +618 -618
- package/pro/squads/design/docs/brad-frost-research-validation.md +372 -372
- package/pro/squads/design/docs/dave-malouf-research-validation.md +391 -391
- package/pro/squads/design/docs/tool-discovery-report.md +87 -87
- package/pro/squads/design/docs/tool-integration-plan.md +44 -44
- package/pro/squads/design/protocols/ai-first-governance.md +56 -56
- package/pro/squads/design/protocols/governance-execution-boundary.md +59 -59
- package/pro/squads/design/protocols/handoff.md +60 -60
- package/pro/squads/design/rules/.claude-rules.md +88 -88
- package/pro/squads/design/scripts/design-system/curate_colors.cjs +447 -447
- package/pro/squads/design/scripts/design-system/curate_components.cjs +217 -217
- package/pro/squads/design/scripts/design-system/curate_radius.cjs +190 -190
- package/pro/squads/design/scripts/design-system/curate_shadows.cjs +208 -208
- package/pro/squads/design/scripts/design-system/curate_spacing.cjs +243 -243
- package/pro/squads/design/scripts/design-system/curate_typography.cjs +404 -404
- package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +49 -49
- package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +142 -142
- package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +195 -195
- package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +114 -114
- package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +258 -258
- package/pro/squads/design/scripts/design-system/generate_tokens.cjs +342 -342
- package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +27 -27
- package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +232 -232
- package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +96 -96
- package/pro/squads/design/scripts/design-system/validate_curation.cjs +226 -226
- package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +72 -72
- package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +38 -38
- package/pro/squads/design/scripts/design-system/validate_registry.cjs +186 -186
- package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +78 -78
- package/pro/squads/design/scripts/dissect-artifact.cjs +806 -806
- package/pro/squads/design/scripts/validate-a11y-integration.cjs +40 -40
- package/pro/squads/design/scripts/validate-design-squad.py +411 -411
- package/pro/squads/design/squad.yaml +714 -714
- package/pro/squads/design/tasks/a11y-audit.md +340 -340
- package/pro/squads/design/tasks/aria-audit.md +525 -525
- package/pro/squads/design/tasks/atomic-refactor-execute.md +391 -391
- package/pro/squads/design/tasks/atomic-refactor-plan.md +262 -262
- package/pro/squads/design/tasks/audit-reading-experience.md +350 -350
- package/pro/squads/design/tasks/audit-tailwind-config.md +101 -101
- package/pro/squads/design/tasks/bootstrap-shadcn-library.md +96 -96
- package/pro/squads/design/tasks/bundle-audit.md +245 -245
- package/pro/squads/design/tasks/contrast-matrix.md +373 -373
- package/pro/squads/design/tasks/create-doc.md +135 -135
- package/pro/squads/design/tasks/dead-code-detection.md +329 -329
- package/pro/squads/design/tasks/design-compare.md +414 -414
- package/pro/squads/design/tasks/design-process-optimization.md +407 -407
- package/pro/squads/design/tasks/design-review-orchestration.md +99 -99
- package/pro/squads/design/tasks/design-team-scaling.md +407 -407
- package/pro/squads/design/tasks/design-tooling-audit.md +404 -404
- package/pro/squads/design/tasks/design-triage.md +89 -89
- package/pro/squads/design/tasks/designops-maturity-assessment.md +364 -364
- package/pro/squads/design/tasks/designops-metrics-setup.md +465 -465
- package/pro/squads/design/tasks/ds-agentic-audit.md +100 -100
- package/pro/squads/design/tasks/ds-agentic-setup.md +103 -103
- package/pro/squads/design/tasks/ds-audit-codebase.md +273 -273
- package/pro/squads/design/tasks/ds-build-component.md +349 -349
- package/pro/squads/design/tasks/ds-build-mcp-server.md +84 -84
- package/pro/squads/design/tasks/ds-calculate-roi.md +282 -282
- package/pro/squads/design/tasks/ds-compose-molecule.md +106 -106
- package/pro/squads/design/tasks/ds-consolidate-patterns.md +253 -253
- package/pro/squads/design/tasks/ds-context-contract.md +194 -194
- package/pro/squads/design/tasks/ds-critical-eye-compare.md +130 -130
- package/pro/squads/design/tasks/ds-critical-eye-decide.md +139 -139
- package/pro/squads/design/tasks/ds-critical-eye-inventory.md +111 -111
- package/pro/squads/design/tasks/ds-critical-eye-report.md +101 -101
- package/pro/squads/design/tasks/ds-critical-eye-score.md +109 -109
- package/pro/squads/design/tasks/ds-designops.md +99 -99
- package/pro/squads/design/tasks/ds-extend-pattern.md +91 -91
- package/pro/squads/design/tasks/ds-extract-tokens.md +312 -312
- package/pro/squads/design/tasks/ds-figma-pipeline.md +95 -95
- package/pro/squads/design/tasks/ds-fluent-audit.md +105 -105
- package/pro/squads/design/tasks/ds-fluent-build.md +110 -110
- package/pro/squads/design/tasks/ds-generate-ai-metadata.md +81 -81
- package/pro/squads/design/tasks/ds-generate-cursor-rules.md +74 -74
- package/pro/squads/design/tasks/ds-generate-documentation.md +101 -101
- package/pro/squads/design/tasks/ds-generate-migration-strategy.md +331 -331
- package/pro/squads/design/tasks/ds-generate-shock-report.md +323 -323
- package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +93 -93
- package/pro/squads/design/tasks/ds-governance.md +187 -187
- package/pro/squads/design/tasks/ds-health-metrics.md +278 -278
- package/pro/squads/design/tasks/ds-integrate-squad.md +130 -130
- package/pro/squads/design/tasks/ds-integrate-workspace.md +100 -100
- package/pro/squads/design/tasks/ds-legacy-modernization.md +302 -302
- package/pro/squads/design/tasks/ds-mcp-status.md +65 -65
- package/pro/squads/design/tasks/ds-motion-audit.md +118 -118
- package/pro/squads/design/tasks/ds-multi-framework.md +96 -96
- package/pro/squads/design/tasks/ds-parallelization-gate.md +246 -246
- package/pro/squads/design/tasks/ds-query.md +90 -90
- package/pro/squads/design/tasks/ds-rebuild-artifact.md +369 -369
- package/pro/squads/design/tasks/ds-reverse-engineer.md +194 -194
- package/pro/squads/design/tasks/ds-scan-artifact.md +131 -131
- package/pro/squads/design/tasks/ds-setup-design-system.md +297 -297
- package/pro/squads/design/tasks/ds-sync-registry.md +287 -287
- package/pro/squads/design/tasks/ds-theme-multi-brand.md +90 -90
- package/pro/squads/design/tasks/ds-token-modes.md +108 -108
- package/pro/squads/design/tasks/ds-token-w3c-extract.md +105 -105
- package/pro/squads/design/tasks/ds-validate-ai-readiness.md +69 -69
- package/pro/squads/design/tasks/ds-visual-regression.md +130 -130
- package/pro/squads/design/tasks/execute-checklist.md +141 -141
- package/pro/squads/design/tasks/export-design-tokens-dtcg.md +97 -97
- package/pro/squads/design/tasks/f1-apply-foundations.md +154 -154
- package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +130 -130
- package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +145 -145
- package/pro/squads/design/tasks/f1-qa-foundations.md +95 -95
- package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +155 -155
- package/pro/squads/design/tasks/f2-ingest-base-components.md +148 -148
- package/pro/squads/design/tasks/f2-qa-base-components.md +98 -98
- package/pro/squads/design/tasks/f3-derive-components.md +145 -145
- package/pro/squads/design/tasks/f3-qa-derived-components.md +101 -101
- package/pro/squads/design/tasks/focus-order-audit.md +450 -450
- package/pro/squads/design/tasks/sb-brownfield-migrate.md +367 -367
- package/pro/squads/design/tasks/sb-brownfield-scan.md +318 -318
- package/pro/squads/design/tasks/sb-configure.md +230 -230
- package/pro/squads/design/tasks/sb-expand-shadcn.md +213 -213
- package/pro/squads/design/tasks/sb-generate-all-stories.md +288 -288
- package/pro/squads/design/tasks/sb-install.md +152 -152
- package/pro/squads/design/tasks/sb-sync-workspace.md +239 -239
- package/pro/squads/design/tasks/sb-verify.md +203 -203
- package/pro/squads/design/tasks/tailwind-upgrade.md +117 -117
- package/pro/squads/design/tasks/token-usage-analytics.md +262 -262
- package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +82 -82
- package/pro/squads/design/tasks/validate-design-fidelity.md +222 -222
- package/pro/squads/design/templates/agent-template.yaml +46 -46
- package/pro/squads/design/templates/clone-mind-template.md +352 -352
- package/pro/squads/design/templates/component-prompt-injection-tmpl.md +236 -236
- package/pro/squads/design/templates/component-visual-spec-tmpl.md +378 -378
- package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +165 -165
- package/pro/squads/design/templates/design-fidelity-report-tmpl.md +155 -155
- package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +138 -138
- package/pro/squads/design/templates/ds-artifact-analysis.md +70 -70
- package/pro/squads/design/templates/ds-health-report-tmpl.md +236 -236
- package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +524 -524
- package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +194 -194
- package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +139 -139
- package/pro/squads/design/templates/migration-strategy-tmpl.md +524 -524
- package/pro/squads/design/templates/reading-design-tokens.css +26 -26
- package/pro/squads/design/templates/state-persistence-tmpl.yaml +219 -219
- package/pro/squads/design/templates/tokens-schema-tmpl.yaml +305 -305
- package/pro/squads/design/workflows/agentic-readiness.yaml +83 -83
- package/pro/squads/design/workflows/audit-only.yaml +198 -198
- package/pro/squads/design/workflows/brownfield-complete.yaml +257 -257
- package/pro/squads/design/workflows/critical-eye.yaml +184 -184
- package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +64 -64
- package/pro/squads/design/workflows/foundations-pipeline.yaml +192 -192
- package/pro/squads/design/workflows/greenfield-new.yaml +192 -192
- package/pro/squads/design/workflows/motion-quality.yaml +65 -65
- package/pro/squads/design/workflows/self-healing-workflow.yaml +237 -237
- package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +400 -400
- package/pro/squads/design/workflows/storybook-full-setup.yaml +280 -280
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/ARQUITETURA_COGNITIVA_DE_ALEX_HORMOZI_EXTRA/303/207/303/203O_COMPLETA.md +215 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/A_Rotina_de_Alta_Performance_de_Alex_Hormozi_Arquitetura,_Motiva/303/247/303/265es_e_Replica/303/247/303/243o.md +309 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/O_sistema_completo_de_cria/303/247/303/243o_de_conte/303/272do_de_Alex_Hormozi.md +416 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/Processo_Cria/303/247/303/243o_Conte/303/272do_Hormozi.md +0 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_ELON_MUSK.md +291 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/ASSINATURA_LINGU/303/215STICA_ELON_MUSK.md +485 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/A_Arquitetura_Mental_de_Elon_Musk_Uma_An/303/241lise_Sistem/303/241tica_dos_Frameworks_de_Pensamento.md +907 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Dossi/303/252_Estrat/303/251gico_A_Arquitetura_Psicol/303/263gica_de_Elon_Musk.md +252 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Os_Padr/303/265es_de_Leitura_de_Elon_Musk_e_Sua_Influ/303/252ncia_Sistem/303/241tica.md +287 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Uma_an/303/241lise_psicol/303/263gica_abrangente.md +187 -0
- package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_EUGENE_M._SCHWARTZ.md +790 -0
- package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/An/303/241lise_Completa_Eugene_Schwartz_Arquitetura_Cognitiva_DEEP.md +210 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/5H_EXTRA/303/207/303/203O_COGNITIVA_COMPLETA_PEDRO_VAL/303/211RIO_LOPEZ.md +226 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_COMPARATIVA_REVISADA_PEDRO_VAL/303/211RIO_LOPEZ.md +246 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_LINGU/303/215STICA_CARIOCA_PEDRO_VAL/303/211RIO_LOPEZ.md +274 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_DEFINITIVA_PEDRO_VAL/303/211RIO_LOPEZ.md +821 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_PEDRO_VAL/303/211RIO.md +1844 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/C/303/201LCULO_DE_RARIDADE_ESTAT/303/215STICA_PEDRO_VAL/303/211RIO_LOPEZ.md +154 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/EXTRA/303/207/303/203O_PEDRO_VAL/303/211RIO.md +237 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/MAPEAMENTO_LINGU/303/215STICO_PROFUNDO.md +161 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/META_AXIOMAS_DE_PEDRO_VAL/303/211RIO.md +256 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_PEDRO_VAL/303/211RIO_LOPEZ.md +586 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_V2_/342/200/224_CLONE_IA.md +452 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/TABELA_COMPARATIVA_AN/303/201LISE_COMPLETA_DOS_CLONES_IA.md +102 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/WHATSAPP_PADR/303/225ES_LINGU/303/215STICOS_PEDRO_VAL/303/211RIO_LOPEZ.md +286 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/heur/303/255sticas_de_decis/303/243o_e_algoritmos_mentais_/303/272nicos.md +268 -0
- package/pro/squads/mmos-squad/minds/ray_kurzweil/sources/books/PROTOCOLO_COMPLETO_DE_INTERROGA/303/207/303/203O_-_NAVAL_RAVIKANT.md +3624 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_JOBS.md +488 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Framework_Cabe/303/247a_Steve.md +257 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Relat/303/263rio_Abrangente_sobre_Steve_Jobs_para_Cria/303/247/303/243o_de_Clone_de_IA.md +370 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Steve_Jobs_An/303/241lise_Psicol/303/263gica_Profunda_e_Valida/303/247/303/243o_Comportamental.md +65 -0
- package/pro/squads/squad-creator-pro/HEADLINE.md +3 -3
- package/pro/squads/squad-creator-pro/agents/oalanicolas.md +438 -438
- package/pro/squads/squad-creator-pro/agents/squad-chief.md +1651 -1651
- package/pro/squads/squad-creator-pro/agents/thiago_finch.md +976 -976
- package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +325 -325
- package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +184 -184
- package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +219 -219
- package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +224 -224
- package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +95 -95
- package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +393 -393
- package/pro/squads/squad-creator-pro/config/model-routing.yaml +693 -693
- package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +199 -199
- package/pro/squads/squad-creator-pro/config.yaml +35 -35
- package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +99 -99
- package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +692 -692
- package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +344 -344
- package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +609 -609
- package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +861 -861
- package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +337 -337
- package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +354 -354
- package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +229 -229
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +240 -240
- package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +63 -63
- package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +443 -443
- package/pro/squads/squad-creator-pro/scripts/clone-review.sh +394 -394
- package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +243 -243
- package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +281 -281
- package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +462 -462
- package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +519 -519
- package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +558 -558
- package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +151 -151
- package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +369 -369
- package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +245 -245
- package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +308 -308
- package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +281 -281
- package/pro/squads/squad-creator-pro/scripts/security_scanner.py +378 -378
- package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +205 -205
- package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +451 -451
- package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +471 -471
- package/pro/squads/squad-creator-pro/scripts/squad_utils.py +261 -261
- package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +29 -29
- package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +216 -216
- package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +239 -239
- package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +212 -212
- package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +298 -298
- package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +211 -211
- package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +354 -354
- package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +252 -252
- package/pro/squads/squad-creator-pro/squad.yaml +36 -36
- package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +354 -354
- package/pro/squads/squad-creator-pro/tasks/create-squad.md +933 -933
- package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +81 -81
- package/pro/squads/squad-creator-pro/tasks/lookup-model.md +78 -78
- package/pro/squads/squad-creator-pro/tasks/next-squad.md +487 -487
- package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +851 -851
- package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +58 -58
- package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +256 -256
- package/pro/squads/squad-creator-pro/tasks/qualify-task.md +265 -265
- package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +64 -64
- package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +167 -167
- package/pro/squads/squad-creator-pro/tasks/squad-overview.md +683 -683
- package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +80 -80
- package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +74 -74
- package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +268 -268
- package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +13 -13
- package/pro/squads/squad-creator-pro/test-cases/_template.yaml +147 -147
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +275 -275
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +140 -140
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +202 -202
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +413 -413
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +358 -358
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +299 -299
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +320 -320
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +351 -351
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +247 -247
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +389 -389
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +366 -366
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +452 -452
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +281 -281
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +332 -332
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +517 -517
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +213 -213
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +69 -69
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +213 -213
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +566 -566
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +82 -82
- package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +102 -102
- package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +105 -105
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +262 -262
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +266 -266
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +94 -94
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +282 -282
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +470 -470
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +106 -106
- package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +105 -105
- package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +104 -104
- package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +11 -11
- package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +106 -106
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +209 -209
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +96 -96
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +30 -30
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +129 -129
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +242 -242
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +393 -393
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +488 -488
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +74 -74
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +292 -292
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +603 -603
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +97 -97
- package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +100 -100
- package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +106 -106
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +223 -223
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +36 -36
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +193 -193
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +303 -303
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +149 -149
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +529 -529
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +132 -132
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +104 -104
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +200 -200
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +183 -183
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +112 -112
- package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +348 -348
- package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +16 -16
- package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +16 -16
- package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +15 -15
- package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +46 -46
- package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +47 -47
- package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +1619 -1619
- package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +711 -711
- package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +800 -800
- package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +684 -684
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/.claude/hooks/code-intel-pretool.cjs +0 -107
- package/docs/guides/aios-workflows/README.md +0 -247
- package/docs/guides/aios-workflows/bob-orchestrator-workflow.md +0 -1536
- package/scripts/glue/README.md +0 -355
- package/scripts/glue/compose-agent-prompt.cjs +0 -362
|
@@ -1,349 +1,349 @@
|
|
|
1
|
-
# Build Production-Ready Component
|
|
2
|
-
|
|
3
|
-
> Task ID: atlas-build-component
|
|
4
|
-
> Agent: Brad (Design System Architect)
|
|
5
|
-
> Version: 1.1.0
|
|
6
|
-
> v4.0-compatible: true
|
|
7
|
-
> **Execution Type:** `Agent`
|
|
8
|
-
> **Dependencies:** depends_on: `[]` · enables: `[ds-compose-molecule, ds-extend-pattern]` · workflow: `greenfield`
|
|
9
|
-
|
|
10
|
-
## Description
|
|
11
|
-
|
|
12
|
-
Generate production-ready React TypeScript component from design tokens. Includes component file, styles (CSS Modules), tests, optional Storybook stories, and documentation. All styling uses tokens (zero hardcoded values). **v4.0: Supports Fluent 2 patterns as component blueprint option. Generates Storybook stories with Chromatic-ready visual test states.**
|
|
13
|
-
|
|
14
|
-
## Output Schema
|
|
15
|
-
- **produces:** `outputs/design-system/{project}/components/{Component}/`
|
|
16
|
-
- **format:** TypeScript source (TSX, CSS Module, tests, stories, docs)
|
|
17
|
-
- **consumed_by:** ds-compose-molecule, ds-extend-pattern
|
|
18
|
-
|
|
19
|
-
## Prerequisites
|
|
20
|
-
|
|
21
|
-
- Setup completed (*setup command run successfully)
|
|
22
|
-
- Tokens loaded and accessible
|
|
23
|
-
- React and TypeScript configured
|
|
24
|
-
- Reference: Read data/fluent2-design-principles.md for Fluent 2 component patterns
|
|
25
|
-
- Reference: Read data/ds-reference-architectures.md for cross-system component patterns
|
|
26
|
-
|
|
27
|
-
## Workflow
|
|
28
|
-
|
|
29
|
-
### Interactive Elicitation
|
|
30
|
-
|
|
31
|
-
This task uses interactive elicitation to configure component.
|
|
32
|
-
|
|
33
|
-
1. **Select Component Type**
|
|
34
|
-
- Atomic level (atom, molecule, organism)
|
|
35
|
-
- Component name (Button, Input, Card, etc)
|
|
36
|
-
- Confirm token availability for this component
|
|
37
|
-
|
|
38
|
-
2. **Configure Component Features**
|
|
39
|
-
- Variants needed (primary, secondary, destructive)
|
|
40
|
-
- Sizes needed (sm, md, lg)
|
|
41
|
-
- States needed (hover, disabled, loading, error)
|
|
42
|
-
- Additional props
|
|
43
|
-
|
|
44
|
-
3. **Review Generation Plan**
|
|
45
|
-
- Show files to be generated
|
|
46
|
-
- Confirm test coverage requirements
|
|
47
|
-
- Ask for Storybook stories (if enabled)
|
|
48
|
-
|
|
49
|
-
### Steps
|
|
50
|
-
|
|
51
|
-
1. **Validate Prerequisites**
|
|
52
|
-
- Run `test -f tokens.yaml` (or tokens.json) to confirm tokens file exists; abort with "Tokens not found — run *setup first" if missing
|
|
53
|
-
- Search for existing `{Component}.tsx` in the design-system directory; if found, prompt user to confirm overwrite
|
|
54
|
-
- Validate component name matches PascalCase regex `/^[A-Z][a-zA-Z]+$/`
|
|
55
|
-
- Check: tokens file exists AND component name is PascalCase (`/^[A-Z][a-zA-Z]+$/`) — abort if either fails
|
|
56
|
-
|
|
57
|
-
2. **Load Token References**
|
|
58
|
-
- Identify which tokens this component needs
|
|
59
|
-
- Validate token availability
|
|
60
|
-
- Generate token import statements
|
|
61
|
-
- Check: grep each required token name in tokens file — list missing tokens if any
|
|
62
|
-
|
|
63
|
-
3. **Generate Component File**
|
|
64
|
-
- Create TypeScript React component
|
|
65
|
-
- Add prop type definitions (strict typing)
|
|
66
|
-
- Implement variants, sizes, states
|
|
67
|
-
- Add accessibility attributes (ARIA)
|
|
68
|
-
- Use semantic HTML elements
|
|
69
|
-
- Check: `tsc --noEmit {component}.tsx` returns exit code 0 — fix type errors before proceeding
|
|
70
|
-
|
|
71
|
-
4. **Generate Component Styles**
|
|
72
|
-
- Create CSS Module file ({Component}.module.css)
|
|
73
|
-
- Use CSS custom properties from tokens
|
|
74
|
-
- Implement all variants and states
|
|
75
|
-
- Add responsive styles if needed
|
|
76
|
-
- Zero hardcoded values (all from tokens)
|
|
77
|
-
- Check: zero hardcoded color/spacing values in CSS module — grep for `#[0-9a-f]` and `[0-9]+px` (excluding 0px)
|
|
78
|
-
|
|
79
|
-
5. **Generate Unit Tests**
|
|
80
|
-
- Create test file ({Component}.test.tsx)
|
|
81
|
-
- Test all variants render correctly
|
|
82
|
-
- Test all sizes work
|
|
83
|
-
- Test disabled state
|
|
84
|
-
- Test onClick/events
|
|
85
|
-
- Aim for >80% coverage
|
|
86
|
-
- Check: `npm test -- --coverage {Component}.test.tsx` exits 0 AND coverage >= 80% — fix failing tests before proceeding
|
|
87
|
-
|
|
88
|
-
6. **Generate Storybook Stories (Optional)**
|
|
89
|
-
- If Storybook enabled, create {Component}.stories.tsx
|
|
90
|
-
- Story for each variant
|
|
91
|
-
- Story for each size
|
|
92
|
-
- Interactive controls for props
|
|
93
|
-
- Check: stories file exports at least one named story AND `tsc --noEmit {Component}.stories.tsx` exits 0
|
|
94
|
-
|
|
95
|
-
7. **Run Accessibility Checks**
|
|
96
|
-
- Confirm all interactive elements have `aria-label` or visible text by searching component source for button/a/input tags without labels
|
|
97
|
-
- Measure color contrast ratio for all foreground/background token pairs and confirm each >= 4.5:1 (use WCAG contrast formula)
|
|
98
|
-
- Tab through all interactive elements in render order and confirm focus moves logically without traps
|
|
99
|
-
- Add `:focus-visible` outline styles using `var(--color-focus)` token
|
|
100
|
-
- Check: all interactive elements have ARIA labels AND color contrast ratio >= 4.5:1 AND focus-visible styles present
|
|
101
|
-
|
|
102
|
-
8. **Generate Component Documentation**
|
|
103
|
-
- Create {Component}.md in docs/
|
|
104
|
-
- Document props and types
|
|
105
|
-
- Show usage examples
|
|
106
|
-
- List variants and sizes
|
|
107
|
-
- Include accessibility notes
|
|
108
|
-
- Check: {Component}.md exists AND contains sections: Props, Usage Examples, Variants, Accessibility
|
|
109
|
-
|
|
110
|
-
9. **Update Component Index**
|
|
111
|
-
- Add to design-system/index.ts
|
|
112
|
-
- Export component for easy import
|
|
113
|
-
- Update barrel exports
|
|
114
|
-
- Check: `grep -q "{Component}" index.ts` — abort with "{Component} not found in index.ts exports"
|
|
115
|
-
|
|
116
|
-
10. **Update State File**
|
|
117
|
-
- Add component to patterns_built in .state.yaml
|
|
118
|
-
- Record atomic level, variants, test coverage
|
|
119
|
-
- Increment component count
|
|
120
|
-
- Check: .state.yaml contains component name in patterns_built array AND component_count incremented
|
|
121
|
-
|
|
122
|
-
## Output
|
|
123
|
-
|
|
124
|
-
- **{Component}.tsx**: React TypeScript component
|
|
125
|
-
- **{Component}.module.css**: Styles using tokens
|
|
126
|
-
- **{Component}.test.tsx**: Unit tests
|
|
127
|
-
- **{Component}.stories.tsx**: Storybook stories (optional)
|
|
128
|
-
- **{Component}.md**: Component documentation
|
|
129
|
-
- **Updated index.ts**: Component exported
|
|
130
|
-
- **.state.yaml**: Updated with component metadata
|
|
131
|
-
|
|
132
|
-
### Output Format
|
|
133
|
-
|
|
134
|
-
```typescript
|
|
135
|
-
// Button.tsx
|
|
136
|
-
import React from 'react';
|
|
137
|
-
import styles from './Button.module.css';
|
|
138
|
-
|
|
139
|
-
export interface ButtonProps {
|
|
140
|
-
/** Visual style variant */
|
|
141
|
-
variant?: 'primary' | 'secondary' | 'destructive';
|
|
142
|
-
/** Size variant */
|
|
143
|
-
size?: 'sm' | 'md' | 'lg';
|
|
144
|
-
/** Button content */
|
|
145
|
-
children: React.ReactNode;
|
|
146
|
-
/** Click handler */
|
|
147
|
-
onClick?: () => void;
|
|
148
|
-
/** Disabled state */
|
|
149
|
-
disabled?: boolean;
|
|
150
|
-
/** HTML type attribute */
|
|
151
|
-
type?: 'button' | 'submit' | 'reset';
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export const Button: React.FC<ButtonProps> = ({
|
|
155
|
-
variant = 'primary',
|
|
156
|
-
size = 'md',
|
|
157
|
-
children,
|
|
158
|
-
onClick,
|
|
159
|
-
disabled = false,
|
|
160
|
-
type = 'button',
|
|
161
|
-
}) => {
|
|
162
|
-
const className = `${styles.btn} ${styles[`btn-${variant}`]} ${styles[`btn-${size}`]}`;
|
|
163
|
-
|
|
164
|
-
return (
|
|
165
|
-
<button
|
|
166
|
-
type={type}
|
|
167
|
-
className={className}
|
|
168
|
-
onClick={onClick}
|
|
169
|
-
disabled={disabled}
|
|
170
|
-
aria-disabled={disabled}
|
|
171
|
-
>
|
|
172
|
-
{children}
|
|
173
|
-
</button>
|
|
174
|
-
);
|
|
175
|
-
};
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
```css
|
|
179
|
-
/* Button.module.css */
|
|
180
|
-
.btn {
|
|
181
|
-
font-family: var(--font-base);
|
|
182
|
-
font-size: var(--font-size-base);
|
|
183
|
-
font-weight: var(--font-weight-semibold);
|
|
184
|
-
border-radius: var(--radius-base);
|
|
185
|
-
padding: var(--space-md) var(--space-lg);
|
|
186
|
-
border: none;
|
|
187
|
-
cursor: pointer;
|
|
188
|
-
transition: all 0.2s ease;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
.btn:disabled {
|
|
192
|
-
opacity: 0.5;
|
|
193
|
-
cursor: not-allowed;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
.btn-primary {
|
|
197
|
-
background: var(--color-primary);
|
|
198
|
-
color: white;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.btn-primary:hover:not(:disabled) {
|
|
202
|
-
background: var(--color-primary-dark);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
.btn-secondary {
|
|
206
|
-
background: var(--color-secondary);
|
|
207
|
-
color: white;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
.btn-destructive {
|
|
211
|
-
background: var(--color-error);
|
|
212
|
-
color: white;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.btn-sm {
|
|
216
|
-
font-size: var(--font-size-sm);
|
|
217
|
-
padding: var(--space-sm) var(--space-md);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.btn-lg {
|
|
221
|
-
font-size: var(--font-size-lg);
|
|
222
|
-
padding: var(--space-lg) var(--space-xl);
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## Failure Handling
|
|
227
|
-
|
|
228
|
-
- **Missing required tokens:** If grep fails to find token name in tokens file, abort with "Required token {name} not found. Available tokens: {list}. Run *setup or add missing tokens before building component."
|
|
229
|
-
- **TypeScript compilation errors:** If `tsc --noEmit {component}.tsx` returns non-zero exit code, abort with "TypeScript errors in {Component}.tsx: {errors}. Fix type errors before proceeding."
|
|
230
|
-
- **Hardcoded design values detected:** If CSS module contains hardcoded colors (#hex) or spacing values (e.g., 16px except 0px), abort with "{N} hardcoded values detected. Replace with tokens: {list}."
|
|
231
|
-
- **Test coverage below threshold:** If `npm test --coverage` shows coverage <80%, abort with "Test coverage {actual}% below required 80%. Add tests for: {uncovered paths}."
|
|
232
|
-
|
|
233
|
-
## Success Criteria
|
|
234
|
-
|
|
235
|
-
- [ ] Component compiles without TypeScript errors
|
|
236
|
-
- [ ] All styling uses tokens (zero hardcoded values)
|
|
237
|
-
- [ ] Props fully typed with TSDoc comments
|
|
238
|
-
- [ ] All variants and sizes implemented
|
|
239
|
-
- [ ] Disabled state handled correctly
|
|
240
|
-
- [ ] WCAG AA accessibility standards met
|
|
241
|
-
- [ ] Unit tests pass with >80% coverage
|
|
242
|
-
- [ ] Component documented with examples
|
|
243
|
-
- [ ] Storybook stories work (if enabled)
|
|
244
|
-
|
|
245
|
-
## Anti-Patterns
|
|
246
|
-
|
|
247
|
-
- **"Div soup"** — Using `<div>` for everything instead of semantic HTML. A clickable element MUST be `<button>`, a navigation link MUST be `<a>`. Never add `role="button"` to a `<div>` when `<button>` exists
|
|
248
|
-
- **"Hardcoded magic numbers"** — Writing `padding: 16px` instead of `padding: var(--spacing-4)`. Zero hardcoded values means ZERO — including border-radius, font-size, line-height, and box-shadow values
|
|
249
|
-
- **"any-driven development"** — Using TypeScript `any` to make the compiler happy. Every prop must have a specific type. Use discriminated unions for variants: `type ButtonVariant = 'primary' | 'secondary' | 'destructive'`
|
|
250
|
-
- **"Testing the framework, not the component"** — Writing tests like "renders without crashing" that test React, not your component. Test: variants render correct classes, disabled prevents onClick, keyboard events fire handlers
|
|
251
|
-
- **"Accessibility as afterthought"** — Adding ARIA after the component is "done". Build accessible from step 1: semantic HTML first, then ARIA only where HTML semantics are insufficient
|
|
252
|
-
|
|
253
|
-
## Error Handling
|
|
254
|
-
|
|
255
|
-
- **Token not found**: Report which token is missing, suggest alternatives
|
|
256
|
-
- **Component exists**: Ask to overwrite or use different name
|
|
257
|
-
- **TypeScript errors**: Display errors, suggest fixes
|
|
258
|
-
- **Test failures**: Show failing tests, don't complete until fixed
|
|
259
|
-
- **Accessibility violations**: Warn and suggest improvements
|
|
260
|
-
|
|
261
|
-
## Security Considerations
|
|
262
|
-
|
|
263
|
-
- Sanitize component name (prevent injection)
|
|
264
|
-
- Validate token references
|
|
265
|
-
- Escape user content in examples
|
|
266
|
-
- No eval() or dynamic code execution
|
|
267
|
-
|
|
268
|
-
## Examples
|
|
269
|
-
|
|
270
|
-
### Example 1: Build Button Component
|
|
271
|
-
|
|
272
|
-
```bash
|
|
273
|
-
*build button
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
Output:
|
|
277
|
-
```
|
|
278
|
-
🏗️ Merovingian: Building Button component...
|
|
279
|
-
|
|
280
|
-
📋 Configuration:
|
|
281
|
-
- Type: Atom
|
|
282
|
-
- Variants: primary, secondary, destructive
|
|
283
|
-
- Sizes: sm, md, lg
|
|
284
|
-
- Tests: Yes (>80% coverage)
|
|
285
|
-
- Storybook: Yes
|
|
286
|
-
|
|
287
|
-
✓ Generated Button.tsx (142 lines)
|
|
288
|
-
✓ Generated Button.module.css (89 lines, 0 hardcoded values)
|
|
289
|
-
✓ Generated Button.test.tsx (18 tests)
|
|
290
|
-
✓ Generated Button.stories.tsx (6 stories)
|
|
291
|
-
✓ Generated Button.md (documentation)
|
|
292
|
-
|
|
293
|
-
🧪 Running tests...
|
|
294
|
-
✓ renders with default props
|
|
295
|
-
✓ renders all variants correctly
|
|
296
|
-
✓ renders all sizes correctly
|
|
297
|
-
✓ handles disabled state
|
|
298
|
-
✓ calls onClick handler
|
|
299
|
-
... 13 more tests
|
|
300
|
-
Coverage: 94.2%
|
|
301
|
-
|
|
302
|
-
♿ Accessibility check:
|
|
303
|
-
✓ ARIA attributes present
|
|
304
|
-
✓ Color contrast: 4.8:1 (WCAG AA ✓)
|
|
305
|
-
✓ Keyboard navigable
|
|
306
|
-
✓ Focus indicators visible
|
|
307
|
-
|
|
308
|
-
✅ Button component ready!
|
|
309
|
-
|
|
310
|
-
Import: import { Button } from '@/design-system';
|
|
311
|
-
Usage: <Button variant="primary">Click me</Button>
|
|
312
|
-
|
|
313
|
-
Merovingian says: "Built right. Built once."
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
### Example 2: Build Input Component
|
|
317
|
-
|
|
318
|
-
```bash
|
|
319
|
-
*build input
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
Output includes additional features:
|
|
323
|
-
- Validation states (error, success)
|
|
324
|
-
- Helper text prop
|
|
325
|
-
- Label integration
|
|
326
|
-
- Icon slots
|
|
327
|
-
|
|
328
|
-
## Notes
|
|
329
|
-
|
|
330
|
-
- All components strictly typed with TypeScript
|
|
331
|
-
- Zero hardcoded values enforced (tokens only)
|
|
332
|
-
- Accessibility is non-negotiable (WCAG AA minimum)
|
|
333
|
-
- Test coverage >80% required
|
|
334
|
-
- CSS Modules scope styles automatically
|
|
335
|
-
- Variants and sizes are extensible
|
|
336
|
-
- Components are tree-shakeable
|
|
337
|
-
- Storybook stories enable visual testing
|
|
338
|
-
- Documentation auto-generated from types
|
|
339
|
-
- Components follow Atomic Design principles
|
|
340
|
-
- Merovingian ensures quality at every step
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
## Related Checklists
|
|
344
|
-
|
|
345
|
-
- `squads/design/checklists/ds-component-quality-checklist.md`
|
|
346
|
-
- `squads/design/checklists/ds-pattern-audit-checklist.md`
|
|
347
|
-
|
|
348
|
-
## Process Guards
|
|
349
|
-
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|
|
1
|
+
# Build Production-Ready Component
|
|
2
|
+
|
|
3
|
+
> Task ID: atlas-build-component
|
|
4
|
+
> Agent: Brad (Design System Architect)
|
|
5
|
+
> Version: 1.1.0
|
|
6
|
+
> v4.0-compatible: true
|
|
7
|
+
> **Execution Type:** `Agent`
|
|
8
|
+
> **Dependencies:** depends_on: `[]` · enables: `[ds-compose-molecule, ds-extend-pattern]` · workflow: `greenfield`
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
Generate production-ready React TypeScript component from design tokens. Includes component file, styles (CSS Modules), tests, optional Storybook stories, and documentation. All styling uses tokens (zero hardcoded values). **v4.0: Supports Fluent 2 patterns as component blueprint option. Generates Storybook stories with Chromatic-ready visual test states.**
|
|
13
|
+
|
|
14
|
+
## Output Schema
|
|
15
|
+
- **produces:** `outputs/design-system/{project}/components/{Component}/`
|
|
16
|
+
- **format:** TypeScript source (TSX, CSS Module, tests, stories, docs)
|
|
17
|
+
- **consumed_by:** ds-compose-molecule, ds-extend-pattern
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Setup completed (*setup command run successfully)
|
|
22
|
+
- Tokens loaded and accessible
|
|
23
|
+
- React and TypeScript configured
|
|
24
|
+
- Reference: Read data/fluent2-design-principles.md for Fluent 2 component patterns
|
|
25
|
+
- Reference: Read data/ds-reference-architectures.md for cross-system component patterns
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
### Interactive Elicitation
|
|
30
|
+
|
|
31
|
+
This task uses interactive elicitation to configure component.
|
|
32
|
+
|
|
33
|
+
1. **Select Component Type**
|
|
34
|
+
- Atomic level (atom, molecule, organism)
|
|
35
|
+
- Component name (Button, Input, Card, etc)
|
|
36
|
+
- Confirm token availability for this component
|
|
37
|
+
|
|
38
|
+
2. **Configure Component Features**
|
|
39
|
+
- Variants needed (primary, secondary, destructive)
|
|
40
|
+
- Sizes needed (sm, md, lg)
|
|
41
|
+
- States needed (hover, disabled, loading, error)
|
|
42
|
+
- Additional props
|
|
43
|
+
|
|
44
|
+
3. **Review Generation Plan**
|
|
45
|
+
- Show files to be generated
|
|
46
|
+
- Confirm test coverage requirements
|
|
47
|
+
- Ask for Storybook stories (if enabled)
|
|
48
|
+
|
|
49
|
+
### Steps
|
|
50
|
+
|
|
51
|
+
1. **Validate Prerequisites**
|
|
52
|
+
- Run `test -f tokens.yaml` (or tokens.json) to confirm tokens file exists; abort with "Tokens not found — run *setup first" if missing
|
|
53
|
+
- Search for existing `{Component}.tsx` in the design-system directory; if found, prompt user to confirm overwrite
|
|
54
|
+
- Validate component name matches PascalCase regex `/^[A-Z][a-zA-Z]+$/`
|
|
55
|
+
- Check: tokens file exists AND component name is PascalCase (`/^[A-Z][a-zA-Z]+$/`) — abort if either fails
|
|
56
|
+
|
|
57
|
+
2. **Load Token References**
|
|
58
|
+
- Identify which tokens this component needs
|
|
59
|
+
- Validate token availability
|
|
60
|
+
- Generate token import statements
|
|
61
|
+
- Check: grep each required token name in tokens file — list missing tokens if any
|
|
62
|
+
|
|
63
|
+
3. **Generate Component File**
|
|
64
|
+
- Create TypeScript React component
|
|
65
|
+
- Add prop type definitions (strict typing)
|
|
66
|
+
- Implement variants, sizes, states
|
|
67
|
+
- Add accessibility attributes (ARIA)
|
|
68
|
+
- Use semantic HTML elements
|
|
69
|
+
- Check: `tsc --noEmit {component}.tsx` returns exit code 0 — fix type errors before proceeding
|
|
70
|
+
|
|
71
|
+
4. **Generate Component Styles**
|
|
72
|
+
- Create CSS Module file ({Component}.module.css)
|
|
73
|
+
- Use CSS custom properties from tokens
|
|
74
|
+
- Implement all variants and states
|
|
75
|
+
- Add responsive styles if needed
|
|
76
|
+
- Zero hardcoded values (all from tokens)
|
|
77
|
+
- Check: zero hardcoded color/spacing values in CSS module — grep for `#[0-9a-f]` and `[0-9]+px` (excluding 0px)
|
|
78
|
+
|
|
79
|
+
5. **Generate Unit Tests**
|
|
80
|
+
- Create test file ({Component}.test.tsx)
|
|
81
|
+
- Test all variants render correctly
|
|
82
|
+
- Test all sizes work
|
|
83
|
+
- Test disabled state
|
|
84
|
+
- Test onClick/events
|
|
85
|
+
- Aim for >80% coverage
|
|
86
|
+
- Check: `npm test -- --coverage {Component}.test.tsx` exits 0 AND coverage >= 80% — fix failing tests before proceeding
|
|
87
|
+
|
|
88
|
+
6. **Generate Storybook Stories (Optional)**
|
|
89
|
+
- If Storybook enabled, create {Component}.stories.tsx
|
|
90
|
+
- Story for each variant
|
|
91
|
+
- Story for each size
|
|
92
|
+
- Interactive controls for props
|
|
93
|
+
- Check: stories file exports at least one named story AND `tsc --noEmit {Component}.stories.tsx` exits 0
|
|
94
|
+
|
|
95
|
+
7. **Run Accessibility Checks**
|
|
96
|
+
- Confirm all interactive elements have `aria-label` or visible text by searching component source for button/a/input tags without labels
|
|
97
|
+
- Measure color contrast ratio for all foreground/background token pairs and confirm each >= 4.5:1 (use WCAG contrast formula)
|
|
98
|
+
- Tab through all interactive elements in render order and confirm focus moves logically without traps
|
|
99
|
+
- Add `:focus-visible` outline styles using `var(--color-focus)` token
|
|
100
|
+
- Check: all interactive elements have ARIA labels AND color contrast ratio >= 4.5:1 AND focus-visible styles present
|
|
101
|
+
|
|
102
|
+
8. **Generate Component Documentation**
|
|
103
|
+
- Create {Component}.md in docs/
|
|
104
|
+
- Document props and types
|
|
105
|
+
- Show usage examples
|
|
106
|
+
- List variants and sizes
|
|
107
|
+
- Include accessibility notes
|
|
108
|
+
- Check: {Component}.md exists AND contains sections: Props, Usage Examples, Variants, Accessibility
|
|
109
|
+
|
|
110
|
+
9. **Update Component Index**
|
|
111
|
+
- Add to design-system/index.ts
|
|
112
|
+
- Export component for easy import
|
|
113
|
+
- Update barrel exports
|
|
114
|
+
- Check: `grep -q "{Component}" index.ts` — abort with "{Component} not found in index.ts exports"
|
|
115
|
+
|
|
116
|
+
10. **Update State File**
|
|
117
|
+
- Add component to patterns_built in .state.yaml
|
|
118
|
+
- Record atomic level, variants, test coverage
|
|
119
|
+
- Increment component count
|
|
120
|
+
- Check: .state.yaml contains component name in patterns_built array AND component_count incremented
|
|
121
|
+
|
|
122
|
+
## Output
|
|
123
|
+
|
|
124
|
+
- **{Component}.tsx**: React TypeScript component
|
|
125
|
+
- **{Component}.module.css**: Styles using tokens
|
|
126
|
+
- **{Component}.test.tsx**: Unit tests
|
|
127
|
+
- **{Component}.stories.tsx**: Storybook stories (optional)
|
|
128
|
+
- **{Component}.md**: Component documentation
|
|
129
|
+
- **Updated index.ts**: Component exported
|
|
130
|
+
- **.state.yaml**: Updated with component metadata
|
|
131
|
+
|
|
132
|
+
### Output Format
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
// Button.tsx
|
|
136
|
+
import React from 'react';
|
|
137
|
+
import styles from './Button.module.css';
|
|
138
|
+
|
|
139
|
+
export interface ButtonProps {
|
|
140
|
+
/** Visual style variant */
|
|
141
|
+
variant?: 'primary' | 'secondary' | 'destructive';
|
|
142
|
+
/** Size variant */
|
|
143
|
+
size?: 'sm' | 'md' | 'lg';
|
|
144
|
+
/** Button content */
|
|
145
|
+
children: React.ReactNode;
|
|
146
|
+
/** Click handler */
|
|
147
|
+
onClick?: () => void;
|
|
148
|
+
/** Disabled state */
|
|
149
|
+
disabled?: boolean;
|
|
150
|
+
/** HTML type attribute */
|
|
151
|
+
type?: 'button' | 'submit' | 'reset';
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export const Button: React.FC<ButtonProps> = ({
|
|
155
|
+
variant = 'primary',
|
|
156
|
+
size = 'md',
|
|
157
|
+
children,
|
|
158
|
+
onClick,
|
|
159
|
+
disabled = false,
|
|
160
|
+
type = 'button',
|
|
161
|
+
}) => {
|
|
162
|
+
const className = `${styles.btn} ${styles[`btn-${variant}`]} ${styles[`btn-${size}`]}`;
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
<button
|
|
166
|
+
type={type}
|
|
167
|
+
className={className}
|
|
168
|
+
onClick={onClick}
|
|
169
|
+
disabled={disabled}
|
|
170
|
+
aria-disabled={disabled}
|
|
171
|
+
>
|
|
172
|
+
{children}
|
|
173
|
+
</button>
|
|
174
|
+
);
|
|
175
|
+
};
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```css
|
|
179
|
+
/* Button.module.css */
|
|
180
|
+
.btn {
|
|
181
|
+
font-family: var(--font-base);
|
|
182
|
+
font-size: var(--font-size-base);
|
|
183
|
+
font-weight: var(--font-weight-semibold);
|
|
184
|
+
border-radius: var(--radius-base);
|
|
185
|
+
padding: var(--space-md) var(--space-lg);
|
|
186
|
+
border: none;
|
|
187
|
+
cursor: pointer;
|
|
188
|
+
transition: all 0.2s ease;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.btn:disabled {
|
|
192
|
+
opacity: 0.5;
|
|
193
|
+
cursor: not-allowed;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.btn-primary {
|
|
197
|
+
background: var(--color-primary);
|
|
198
|
+
color: white;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.btn-primary:hover:not(:disabled) {
|
|
202
|
+
background: var(--color-primary-dark);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.btn-secondary {
|
|
206
|
+
background: var(--color-secondary);
|
|
207
|
+
color: white;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.btn-destructive {
|
|
211
|
+
background: var(--color-error);
|
|
212
|
+
color: white;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.btn-sm {
|
|
216
|
+
font-size: var(--font-size-sm);
|
|
217
|
+
padding: var(--space-sm) var(--space-md);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.btn-lg {
|
|
221
|
+
font-size: var(--font-size-lg);
|
|
222
|
+
padding: var(--space-lg) var(--space-xl);
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Failure Handling
|
|
227
|
+
|
|
228
|
+
- **Missing required tokens:** If grep fails to find token name in tokens file, abort with "Required token {name} not found. Available tokens: {list}. Run *setup or add missing tokens before building component."
|
|
229
|
+
- **TypeScript compilation errors:** If `tsc --noEmit {component}.tsx` returns non-zero exit code, abort with "TypeScript errors in {Component}.tsx: {errors}. Fix type errors before proceeding."
|
|
230
|
+
- **Hardcoded design values detected:** If CSS module contains hardcoded colors (#hex) or spacing values (e.g., 16px except 0px), abort with "{N} hardcoded values detected. Replace with tokens: {list}."
|
|
231
|
+
- **Test coverage below threshold:** If `npm test --coverage` shows coverage <80%, abort with "Test coverage {actual}% below required 80%. Add tests for: {uncovered paths}."
|
|
232
|
+
|
|
233
|
+
## Success Criteria
|
|
234
|
+
|
|
235
|
+
- [ ] Component compiles without TypeScript errors
|
|
236
|
+
- [ ] All styling uses tokens (zero hardcoded values)
|
|
237
|
+
- [ ] Props fully typed with TSDoc comments
|
|
238
|
+
- [ ] All variants and sizes implemented
|
|
239
|
+
- [ ] Disabled state handled correctly
|
|
240
|
+
- [ ] WCAG AA accessibility standards met
|
|
241
|
+
- [ ] Unit tests pass with >80% coverage
|
|
242
|
+
- [ ] Component documented with examples
|
|
243
|
+
- [ ] Storybook stories work (if enabled)
|
|
244
|
+
|
|
245
|
+
## Anti-Patterns
|
|
246
|
+
|
|
247
|
+
- **"Div soup"** — Using `<div>` for everything instead of semantic HTML. A clickable element MUST be `<button>`, a navigation link MUST be `<a>`. Never add `role="button"` to a `<div>` when `<button>` exists
|
|
248
|
+
- **"Hardcoded magic numbers"** — Writing `padding: 16px` instead of `padding: var(--spacing-4)`. Zero hardcoded values means ZERO — including border-radius, font-size, line-height, and box-shadow values
|
|
249
|
+
- **"any-driven development"** — Using TypeScript `any` to make the compiler happy. Every prop must have a specific type. Use discriminated unions for variants: `type ButtonVariant = 'primary' | 'secondary' | 'destructive'`
|
|
250
|
+
- **"Testing the framework, not the component"** — Writing tests like "renders without crashing" that test React, not your component. Test: variants render correct classes, disabled prevents onClick, keyboard events fire handlers
|
|
251
|
+
- **"Accessibility as afterthought"** — Adding ARIA after the component is "done". Build accessible from step 1: semantic HTML first, then ARIA only where HTML semantics are insufficient
|
|
252
|
+
|
|
253
|
+
## Error Handling
|
|
254
|
+
|
|
255
|
+
- **Token not found**: Report which token is missing, suggest alternatives
|
|
256
|
+
- **Component exists**: Ask to overwrite or use different name
|
|
257
|
+
- **TypeScript errors**: Display errors, suggest fixes
|
|
258
|
+
- **Test failures**: Show failing tests, don't complete until fixed
|
|
259
|
+
- **Accessibility violations**: Warn and suggest improvements
|
|
260
|
+
|
|
261
|
+
## Security Considerations
|
|
262
|
+
|
|
263
|
+
- Sanitize component name (prevent injection)
|
|
264
|
+
- Validate token references
|
|
265
|
+
- Escape user content in examples
|
|
266
|
+
- No eval() or dynamic code execution
|
|
267
|
+
|
|
268
|
+
## Examples
|
|
269
|
+
|
|
270
|
+
### Example 1: Build Button Component
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
*build button
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Output:
|
|
277
|
+
```
|
|
278
|
+
🏗️ Merovingian: Building Button component...
|
|
279
|
+
|
|
280
|
+
📋 Configuration:
|
|
281
|
+
- Type: Atom
|
|
282
|
+
- Variants: primary, secondary, destructive
|
|
283
|
+
- Sizes: sm, md, lg
|
|
284
|
+
- Tests: Yes (>80% coverage)
|
|
285
|
+
- Storybook: Yes
|
|
286
|
+
|
|
287
|
+
✓ Generated Button.tsx (142 lines)
|
|
288
|
+
✓ Generated Button.module.css (89 lines, 0 hardcoded values)
|
|
289
|
+
✓ Generated Button.test.tsx (18 tests)
|
|
290
|
+
✓ Generated Button.stories.tsx (6 stories)
|
|
291
|
+
✓ Generated Button.md (documentation)
|
|
292
|
+
|
|
293
|
+
🧪 Running tests...
|
|
294
|
+
✓ renders with default props
|
|
295
|
+
✓ renders all variants correctly
|
|
296
|
+
✓ renders all sizes correctly
|
|
297
|
+
✓ handles disabled state
|
|
298
|
+
✓ calls onClick handler
|
|
299
|
+
... 13 more tests
|
|
300
|
+
Coverage: 94.2%
|
|
301
|
+
|
|
302
|
+
♿ Accessibility check:
|
|
303
|
+
✓ ARIA attributes present
|
|
304
|
+
✓ Color contrast: 4.8:1 (WCAG AA ✓)
|
|
305
|
+
✓ Keyboard navigable
|
|
306
|
+
✓ Focus indicators visible
|
|
307
|
+
|
|
308
|
+
✅ Button component ready!
|
|
309
|
+
|
|
310
|
+
Import: import { Button } from '@/design-system';
|
|
311
|
+
Usage: <Button variant="primary">Click me</Button>
|
|
312
|
+
|
|
313
|
+
Merovingian says: "Built right. Built once."
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Example 2: Build Input Component
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
*build input
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Output includes additional features:
|
|
323
|
+
- Validation states (error, success)
|
|
324
|
+
- Helper text prop
|
|
325
|
+
- Label integration
|
|
326
|
+
- Icon slots
|
|
327
|
+
|
|
328
|
+
## Notes
|
|
329
|
+
|
|
330
|
+
- All components strictly typed with TypeScript
|
|
331
|
+
- Zero hardcoded values enforced (tokens only)
|
|
332
|
+
- Accessibility is non-negotiable (WCAG AA minimum)
|
|
333
|
+
- Test coverage >80% required
|
|
334
|
+
- CSS Modules scope styles automatically
|
|
335
|
+
- Variants and sizes are extensible
|
|
336
|
+
- Components are tree-shakeable
|
|
337
|
+
- Storybook stories enable visual testing
|
|
338
|
+
- Documentation auto-generated from types
|
|
339
|
+
- Components follow Atomic Design principles
|
|
340
|
+
- Merovingian ensures quality at every step
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
## Related Checklists
|
|
344
|
+
|
|
345
|
+
- `squads/design/checklists/ds-component-quality-checklist.md`
|
|
346
|
+
- `squads/design/checklists/ds-pattern-audit-checklist.md`
|
|
347
|
+
|
|
348
|
+
## Process Guards
|
|
349
|
+
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|