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,391 +1,391 @@
|
|
|
1
|
-
# Atomic Design Refactoring Execute
|
|
2
|
-
|
|
3
|
-
> Task ID: atomic-refactor-execute
|
|
4
|
-
> Agent: Brad Frost (Design System)
|
|
5
|
-
> Version: 2.0.0
|
|
6
|
-
>
|
|
7
|
-
> **ATUALIZADO Jan/2026:** Adicionados gates anti-over-engineering.
|
|
8
|
-
> **Execution Type:** `Agent`
|
|
9
|
-
> **Dependencies:** depends_on: `[atomic-refactor-plan]` · enables: `[validate-design-fidelity]` · workflow: `refactoring`
|
|
10
|
-
|
|
11
|
-
## Input Schema
|
|
12
|
-
- **requires:** Output from `atomic-refactor-plan`
|
|
13
|
-
- **format:** YAML data
|
|
14
|
-
- **location:** `outputs/design-system/{project}/refactoring/refactor-plan.yaml`
|
|
15
|
-
|
|
16
|
-
## Output Schema
|
|
17
|
-
- **produces:** `outputs/design-system/{project}/refactoring/refactor-results.md`
|
|
18
|
-
- **format:** Markdown report
|
|
19
|
-
- **consumed_by:** validate-design-fidelity
|
|
20
|
-
|
|
21
|
-
## ⛔ GATES OBRIGATÓRIOS (LER PRIMEIRO)
|
|
22
|
-
|
|
23
|
-
### GATE 0: Devo Atomizar?
|
|
24
|
-
```bash
|
|
25
|
-
wc -l {arquivo}
|
|
26
|
-
# Se <500 → NÃO atomize, apenas organize inline
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### GATE 1: Antes de Cada Hook
|
|
30
|
-
```
|
|
31
|
-
PERGUNTA: Esse hook será usado em OUTRO componente?
|
|
32
|
-
SE NÃO → não crie o hook, mantenha useState inline
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### GATE 2: Validação Final
|
|
36
|
-
```bash
|
|
37
|
-
find {pasta-criada} -name "*.ts" -o -name "*.tsx" | xargs wc -l | tail -1
|
|
38
|
-
# Se linhas_depois > linhas_antes → FALHA, simplificar
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Description
|
|
42
|
-
|
|
43
|
-
Executes Atomic Design refactoring on a single component, decomposing a monolithic template into types, hooks, atoms, molecules, organisms, and an orchestrating template.
|
|
44
|
-
|
|
45
|
-
**IMPORTANTE:** Apenas criar hooks que serão REUSADOS. useState específicos devem ficar inline.
|
|
46
|
-
|
|
47
|
-
## Prerequisites
|
|
48
|
-
|
|
49
|
-
- Target component identified (e.g., `CoursesTemplate.tsx`)
|
|
50
|
-
- Reference pattern exists (e.g., `app/components/ops/users/`)
|
|
51
|
-
- Shared components available in `app/components/shared/` (if needed)
|
|
52
|
-
|
|
53
|
-
## Workflow
|
|
54
|
-
|
|
55
|
-
### Interactive Elicitation
|
|
56
|
-
|
|
57
|
-
1. **Select Target Component**
|
|
58
|
-
- Component file path
|
|
59
|
-
- Confirm line count and complexity
|
|
60
|
-
|
|
61
|
-
2. **Review Current Structure**
|
|
62
|
-
- List `useState` hooks (→ custom hooks)
|
|
63
|
-
- List `render{X}()` functions (→ organisms)
|
|
64
|
-
- Identify UI patterns (→ molecules)
|
|
65
|
-
- Identify small UI elements (→ atoms)
|
|
66
|
-
|
|
67
|
-
3. **Confirm Output Structure**
|
|
68
|
-
- Target folder path
|
|
69
|
-
- File naming conventions
|
|
70
|
-
- Dependencies on shared components
|
|
71
|
-
|
|
72
|
-
### Steps
|
|
73
|
-
|
|
74
|
-
1. **Analyze Component**
|
|
75
|
-
- Read entire file
|
|
76
|
-
- Extract all `useState` declarations
|
|
77
|
-
- Extract all `render{X}()` functions
|
|
78
|
-
- Identify JSX patterns repeated 2+ times
|
|
79
|
-
- Check: useState count >= 0 AND render function count >= 0 AND repeated patterns >= 0 — log "Analysis: {hooks} useState, {renders} render functions, {patterns} repeated patterns"
|
|
80
|
-
|
|
81
|
-
2. **Create Folder Structure**
|
|
82
|
-
```
|
|
83
|
-
{domain}/{component-name}/
|
|
84
|
-
├── types.ts
|
|
85
|
-
├── index.ts
|
|
86
|
-
├── {ComponentName}Template.tsx
|
|
87
|
-
├── hooks/
|
|
88
|
-
│ └── index.ts
|
|
89
|
-
├── atoms/
|
|
90
|
-
│ └── index.ts (if needed)
|
|
91
|
-
├── molecules/
|
|
92
|
-
│ └── index.ts
|
|
93
|
-
└── organisms/
|
|
94
|
-
└── index.ts
|
|
95
|
-
```
|
|
96
|
-
- Check: `test -d {component-name}/hooks/` AND `test -d {component-name}/organisms/` — abort with "Directory structure creation failed: {missing dir}"
|
|
97
|
-
|
|
98
|
-
3. **Extract Types**
|
|
99
|
-
- Create `types.ts` with all interfaces
|
|
100
|
-
- Include prop types for all sub-components
|
|
101
|
-
- Add type exports
|
|
102
|
-
- Check: `npx tsc --noEmit` exits with 0 for types.ts — abort with "TypeScript compilation failed: {error}"
|
|
103
|
-
|
|
104
|
-
4. **Extract Hooks** ⚠️ GATE 1
|
|
105
|
-
- **ANTES de criar cada hook:** Esse hook será usado em OUTRO componente?
|
|
106
|
-
- Se NÃO → **NÃO CRIE**, mantenha useState inline com comentários
|
|
107
|
-
- Group related `useState` into custom hooks **APENAS SE REUSÁVEIS**
|
|
108
|
-
- Pattern: `use{Domain}{Feature}` (e.g., `useCoursesFilters`)
|
|
109
|
-
- Each hook handles one concern
|
|
110
|
-
- Export from `hooks/index.ts`
|
|
111
|
-
- Check: `npx tsc --noEmit` passes for hooks/ AND no circular imports detected AND orphan hook count == 0 — abort with "Hook issues: {error or orphan list}"
|
|
112
|
-
|
|
113
|
-
5. **Extract Atoms** (if needed)
|
|
114
|
-
- Small, stateless UI elements
|
|
115
|
-
- Examples: Avatar, Badge, Icon wrapper
|
|
116
|
-
- Only if not already in `shared/atoms/`
|
|
117
|
-
- Check: `npx tsc --noEmit` passes for atoms/ AND no missing imports — log "{N} atoms extracted successfully"
|
|
118
|
-
|
|
119
|
-
6. **Extract Molecules**
|
|
120
|
-
- Combinations of atoms/primitives
|
|
121
|
-
- Examples: SearchInput, StatCard, AlertMessage
|
|
122
|
-
- Check shared/ first before creating
|
|
123
|
-
- Check: `npx tsc --noEmit` passes for molecules/ AND all atom imports resolve — log "{N} molecules extracted successfully"
|
|
124
|
-
|
|
125
|
-
7. **Extract Organisms**
|
|
126
|
-
- One organism per `render{X}()` function
|
|
127
|
-
- Named `{X}View.tsx` or `{X}Section.tsx`
|
|
128
|
-
- Receives props, renders molecules
|
|
129
|
-
- Export from `organisms/index.ts`
|
|
130
|
-
- Check: `npx tsc --noEmit` passes for organisms/ AND all molecule/atom imports resolve — log "{N} organisms extracted successfully"
|
|
131
|
-
|
|
132
|
-
8. **Create Template Orchestrator**
|
|
133
|
-
- Main component, ~100-200 lines max
|
|
134
|
-
- Imports and uses all hooks
|
|
135
|
-
- Renders organisms in layout
|
|
136
|
-
- Handles top-level state coordination
|
|
137
|
-
- Check: template file < 200 lines AND `npx tsc --noEmit` passes — abort with "Template orchestrator too large ({lines} lines) or has type errors"
|
|
138
|
-
|
|
139
|
-
9. **Update Imports**
|
|
140
|
-
- Update any files importing the old component
|
|
141
|
-
- Change from direct import to folder import
|
|
142
|
-
- Check: `npx tsc --noEmit` passes project-wide AND grep for old import path returns 0 matches — abort with "Broken imports found: {list}"
|
|
143
|
-
|
|
144
|
-
10. **Verify TypeScript**
|
|
145
|
-
- Run `npx tsc --noEmit`
|
|
146
|
-
- Fix any type errors
|
|
147
|
-
- Check: `npx tsc --noEmit` exits with 0 — abort with "TypeScript errors remain: {count} errors"
|
|
148
|
-
|
|
149
|
-
11. **Update Documentation**
|
|
150
|
-
- Mark component as done in ROADMAP.md
|
|
151
|
-
- Update file count in status
|
|
152
|
-
- Check: ROADMAP.md contains component marked as done AND file count updated — abort with "Documentation not updated: {missing update}"
|
|
153
|
-
|
|
154
|
-
## Output
|
|
155
|
-
|
|
156
|
-
For a component like `CoursesTemplate.tsx` (1,987 lines):
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
app/components/creator/courses/
|
|
160
|
-
├── types.ts # ~80 lines
|
|
161
|
-
├── index.ts # ~5 lines
|
|
162
|
-
├── CoursesTemplate.tsx # ~150 lines ✨
|
|
163
|
-
├── hooks/
|
|
164
|
-
│ ├── index.ts
|
|
165
|
-
│ ├── useCoursesData.ts # ~60 lines
|
|
166
|
-
│ ├── useCoursesFilters.ts # ~40 lines
|
|
167
|
-
│ ├── useNewCourseForm.ts # ~80 lines
|
|
168
|
-
│ └── useCoursePipeline.ts # ~50 lines
|
|
169
|
-
├── molecules/
|
|
170
|
-
│ ├── index.ts
|
|
171
|
-
│ ├── CourseCard.tsx # ~80 lines
|
|
172
|
-
│ ├── PipelineStepBadge.tsx # ~40 lines
|
|
173
|
-
│ └── CourseStatusBadge.tsx # ~35 lines
|
|
174
|
-
└── organisms/
|
|
175
|
-
├── index.ts
|
|
176
|
-
├── CoursesHeader.tsx # ~60 lines
|
|
177
|
-
├── CoursesListView.tsx # ~120 lines
|
|
178
|
-
├── CourseDetailView.tsx # ~150 lines
|
|
179
|
-
├── NewCourseView.tsx # ~180 lines
|
|
180
|
-
├── BriefEditorView.tsx # ~200 lines
|
|
181
|
-
└── PipelineView.tsx # ~140 lines
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**Result**: 1,987 lines → 17 files, each <200 lines
|
|
185
|
-
|
|
186
|
-
## Failure Handling
|
|
187
|
-
|
|
188
|
-
- **Tests fail after refactor:** Revert to pre-refactor state. Compare diff to identify breaking change. Fix and re-run
|
|
189
|
-
- **Visual regression detected:** Run *visual-test to capture exact differences. Fix token references or CSS specificity issues
|
|
190
|
-
- **Build errors:** Check import paths updated. Verify component name changes propagated to all consumers
|
|
191
|
-
- **Refactor plan outdated:** If codebase changed since plan, re-run *refactor-plan before executing
|
|
192
|
-
|
|
193
|
-
## Success Criteria
|
|
194
|
-
|
|
195
|
-
### ⛔ GATE 2 (Obrigatório)
|
|
196
|
-
- [ ] **Linhas totais ≤ original** (se aumentou → simplificar)
|
|
197
|
-
- [ ] **≤7 arquivos criados** (se mais → consolidar)
|
|
198
|
-
- [ ] **0 hooks órfãos** (se tem → mover inline)
|
|
199
|
-
|
|
200
|
-
### Demais Critérios
|
|
201
|
-
- [ ] useState reusáveis extraídos para hooks (específicos ficam inline)
|
|
202
|
-
- [ ] All `render{X}()` extracted to organisms
|
|
203
|
-
- [ ] Repeated UI patterns extracted to molecules
|
|
204
|
-
- [ ] Template orchestrator <200 lines
|
|
205
|
-
- [ ] Each file <200 lines
|
|
206
|
-
- [ ] `npx tsc --noEmit` passes
|
|
207
|
-
- [ ] Component renders correctly in browser
|
|
208
|
-
- [ ] ROADMAP.md updated
|
|
209
|
-
|
|
210
|
-
## Error Handling
|
|
211
|
-
|
|
212
|
-
- **Circular dependency**: Restructure imports, use type-only imports
|
|
213
|
-
- **Missing shared component**: Add to SHARED_REQUESTS.md, wait for Agent 3
|
|
214
|
-
- **Type errors**: Fix before proceeding, don't leave broken code
|
|
215
|
-
- **Component breaks UI**: Revert and analyze, don't commit broken code
|
|
216
|
-
|
|
217
|
-
## Reference Pattern
|
|
218
|
-
|
|
219
|
-
Always refer to `app/components/ops/users/` as the canonical example:
|
|
220
|
-
|
|
221
|
-
```
|
|
222
|
-
ops/users/
|
|
223
|
-
├── types.ts # Types, configs, constants
|
|
224
|
-
├── index.ts # Barrel export
|
|
225
|
-
├── OpsUsersTemplate.tsx # Orchestrator (~195 lines)
|
|
226
|
-
├── hooks/
|
|
227
|
-
│ ├── index.ts
|
|
228
|
-
│ ├── useUsersData.ts
|
|
229
|
-
│ ├── useLinkMindDialog.ts
|
|
230
|
-
│ ├── useCreateUserDialog.ts
|
|
231
|
-
│ └── useRoleDialog.ts
|
|
232
|
-
├── molecules/
|
|
233
|
-
│ ├── index.ts
|
|
234
|
-
│ ├── SearchInput.tsx
|
|
235
|
-
│ ├── StatCard.tsx
|
|
236
|
-
│ ├── AlertMessage.tsx
|
|
237
|
-
│ ├── RoleBadge.tsx
|
|
238
|
-
│ └── AreasTags.tsx
|
|
239
|
-
└── organisms/
|
|
240
|
-
├── index.ts
|
|
241
|
-
├── UsersPageHeader.tsx
|
|
242
|
-
├── UsersStatsGrid.tsx
|
|
243
|
-
├── UsersTable.tsx
|
|
244
|
-
├── UserTableRow.tsx
|
|
245
|
-
├── LinkMindDialog.tsx
|
|
246
|
-
├── CreateUserDialog.tsx
|
|
247
|
-
├── RoleDialog.tsx
|
|
248
|
-
└── PendingInvitesSection.tsx
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
## Extraction Rules
|
|
252
|
-
|
|
253
|
-
### useState → Custom Hook
|
|
254
|
-
|
|
255
|
-
```typescript
|
|
256
|
-
// BEFORE (in template)
|
|
257
|
-
const [search, setSearch] = useState('');
|
|
258
|
-
const [filters, setFilters] = useState<Filters>({});
|
|
259
|
-
const filteredData = useMemo(() => ..., [data, search, filters]);
|
|
260
|
-
|
|
261
|
-
// AFTER (in hooks/useFilters.ts)
|
|
262
|
-
export function useFilters(data: Item[]) {
|
|
263
|
-
const [search, setSearch] = useState('');
|
|
264
|
-
const [filters, setFilters] = useState<Filters>({});
|
|
265
|
-
|
|
266
|
-
const filteredData = useMemo(() => ..., [data, search, filters]);
|
|
267
|
-
|
|
268
|
-
return { search, setSearch, filters, setFilters, filteredData };
|
|
269
|
-
}
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
### render{X}() → Organism
|
|
273
|
-
|
|
274
|
-
```typescript
|
|
275
|
-
// BEFORE (in template)
|
|
276
|
-
const renderHeader = () => (
|
|
277
|
-
<div className="flex justify-between">
|
|
278
|
-
<h1>Title</h1>
|
|
279
|
-
<Button onClick={onCreate}>New</Button>
|
|
280
|
-
</div>
|
|
281
|
-
);
|
|
282
|
-
|
|
283
|
-
// AFTER (in organisms/Header.tsx)
|
|
284
|
-
interface HeaderProps {
|
|
285
|
-
title: string;
|
|
286
|
-
onCreate: () => void;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
export const Header: React.FC<HeaderProps> = ({ title, onCreate }) => (
|
|
290
|
-
<div className="flex justify-between">
|
|
291
|
-
<h1>{title}</h1>
|
|
292
|
-
<Button onClick={onCreate}>New</Button>
|
|
293
|
-
</div>
|
|
294
|
-
);
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Repeated JSX → Molecule
|
|
298
|
-
|
|
299
|
-
```typescript
|
|
300
|
-
// BEFORE (repeated 3+ times in template)
|
|
301
|
-
<div className="flex items-center gap-2 rounded-lg border p-4">
|
|
302
|
-
<Icon name={icon} />
|
|
303
|
-
<span>{label}</span>
|
|
304
|
-
<span className="text-muted-foreground">{value}</span>
|
|
305
|
-
</div>
|
|
306
|
-
|
|
307
|
-
// AFTER (in molecules/StatCard.tsx)
|
|
308
|
-
interface StatCardProps {
|
|
309
|
-
icon: string;
|
|
310
|
-
label: string;
|
|
311
|
-
value: string | number;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
export const StatCard: React.FC<StatCardProps> = ({ icon, label, value }) => (
|
|
315
|
-
<div className="flex items-center gap-2 rounded-lg border p-4">
|
|
316
|
-
<Icon name={icon} />
|
|
317
|
-
<span>{label}</span>
|
|
318
|
-
<span className="text-muted-foreground">{value}</span>
|
|
319
|
-
</div>
|
|
320
|
-
);
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
## Examples
|
|
324
|
-
|
|
325
|
-
### Example 1: Refactor Single Component
|
|
326
|
-
|
|
327
|
-
```bash
|
|
328
|
-
/atomic-refactor-execute app/components/creator/templates/CoursesTemplate.tsx
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
Output:
|
|
332
|
-
```
|
|
333
|
-
🔍 Uma: Analyzing CoursesTemplate.tsx...
|
|
334
|
-
|
|
335
|
-
📊 Analysis Results:
|
|
336
|
-
Total lines: 1,987
|
|
337
|
-
useState hooks: 14 (→ 4 custom hooks)
|
|
338
|
-
render functions: 8 (→ 8 organisms)
|
|
339
|
-
UI patterns: 3 (→ 3 molecules)
|
|
340
|
-
|
|
341
|
-
📁 Creating structure: app/components/creator/courses/
|
|
342
|
-
|
|
343
|
-
✓ Created types.ts (82 lines)
|
|
344
|
-
✓ Created hooks/useCoursesData.ts (64 lines)
|
|
345
|
-
✓ Created hooks/useCoursesFilters.ts (38 lines)
|
|
346
|
-
✓ Created hooks/useNewCourseForm.ts (76 lines)
|
|
347
|
-
✓ Created hooks/useCoursePipeline.ts (52 lines)
|
|
348
|
-
✓ Created molecules/CourseCard.tsx (78 lines)
|
|
349
|
-
✓ Created molecules/PipelineStepBadge.tsx (42 lines)
|
|
350
|
-
✓ Created molecules/CourseStatusBadge.tsx (36 lines)
|
|
351
|
-
✓ Created organisms/CoursesHeader.tsx (58 lines)
|
|
352
|
-
✓ Created organisms/CoursesListView.tsx (118 lines)
|
|
353
|
-
✓ Created organisms/CourseDetailView.tsx (146 lines)
|
|
354
|
-
✓ Created organisms/NewCourseView.tsx (178 lines)
|
|
355
|
-
✓ Created organisms/BriefEditorView.tsx (196 lines)
|
|
356
|
-
✓ Created organisms/PipelineView.tsx (138 lines)
|
|
357
|
-
✓ Created CoursesTemplate.tsx (148 lines)
|
|
358
|
-
✓ Created index.ts (5 lines)
|
|
359
|
-
|
|
360
|
-
🧪 TypeScript check...
|
|
361
|
-
✓ npx tsc --noEmit: 0 errors
|
|
362
|
-
|
|
363
|
-
📝 Updated docs/refactoring/COMPONENT_REFACTORING_ROADMAP.md
|
|
364
|
-
|
|
365
|
-
📊 Summary:
|
|
366
|
-
Before: 1 file, 1,987 lines
|
|
367
|
-
After: 17 files, max 196 lines each
|
|
368
|
-
Reduction: 90% in main file
|
|
369
|
-
|
|
370
|
-
✅ Refactoring complete!
|
|
371
|
-
|
|
372
|
-
Uma says: "Clean architecture is not optional."
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
## Notes
|
|
376
|
-
|
|
377
|
-
- Always read the full component before starting
|
|
378
|
-
- Check shared/ for existing molecules before creating new ones
|
|
379
|
-
- Keep orchestrator focused on composition, not business logic
|
|
380
|
-
- Each file should have a single responsibility
|
|
381
|
-
- Commit after each successful component refactoring
|
|
382
|
-
- Test in browser before marking as done
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
## Related Checklists
|
|
386
|
-
|
|
387
|
-
- `squads/design/checklists/atomic-refactor-checklist.md`
|
|
388
|
-
- `squads/design/checklists/ds-component-quality-checklist.md`
|
|
389
|
-
|
|
390
|
-
## Process Guards
|
|
391
|
-
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|
|
1
|
+
# Atomic Design Refactoring Execute
|
|
2
|
+
|
|
3
|
+
> Task ID: atomic-refactor-execute
|
|
4
|
+
> Agent: Brad Frost (Design System)
|
|
5
|
+
> Version: 2.0.0
|
|
6
|
+
>
|
|
7
|
+
> **ATUALIZADO Jan/2026:** Adicionados gates anti-over-engineering.
|
|
8
|
+
> **Execution Type:** `Agent`
|
|
9
|
+
> **Dependencies:** depends_on: `[atomic-refactor-plan]` · enables: `[validate-design-fidelity]` · workflow: `refactoring`
|
|
10
|
+
|
|
11
|
+
## Input Schema
|
|
12
|
+
- **requires:** Output from `atomic-refactor-plan`
|
|
13
|
+
- **format:** YAML data
|
|
14
|
+
- **location:** `outputs/design-system/{project}/refactoring/refactor-plan.yaml`
|
|
15
|
+
|
|
16
|
+
## Output Schema
|
|
17
|
+
- **produces:** `outputs/design-system/{project}/refactoring/refactor-results.md`
|
|
18
|
+
- **format:** Markdown report
|
|
19
|
+
- **consumed_by:** validate-design-fidelity
|
|
20
|
+
|
|
21
|
+
## ⛔ GATES OBRIGATÓRIOS (LER PRIMEIRO)
|
|
22
|
+
|
|
23
|
+
### GATE 0: Devo Atomizar?
|
|
24
|
+
```bash
|
|
25
|
+
wc -l {arquivo}
|
|
26
|
+
# Se <500 → NÃO atomize, apenas organize inline
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### GATE 1: Antes de Cada Hook
|
|
30
|
+
```
|
|
31
|
+
PERGUNTA: Esse hook será usado em OUTRO componente?
|
|
32
|
+
SE NÃO → não crie o hook, mantenha useState inline
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### GATE 2: Validação Final
|
|
36
|
+
```bash
|
|
37
|
+
find {pasta-criada} -name "*.ts" -o -name "*.tsx" | xargs wc -l | tail -1
|
|
38
|
+
# Se linhas_depois > linhas_antes → FALHA, simplificar
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Description
|
|
42
|
+
|
|
43
|
+
Executes Atomic Design refactoring on a single component, decomposing a monolithic template into types, hooks, atoms, molecules, organisms, and an orchestrating template.
|
|
44
|
+
|
|
45
|
+
**IMPORTANTE:** Apenas criar hooks que serão REUSADOS. useState específicos devem ficar inline.
|
|
46
|
+
|
|
47
|
+
## Prerequisites
|
|
48
|
+
|
|
49
|
+
- Target component identified (e.g., `CoursesTemplate.tsx`)
|
|
50
|
+
- Reference pattern exists (e.g., `app/components/ops/users/`)
|
|
51
|
+
- Shared components available in `app/components/shared/` (if needed)
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### Interactive Elicitation
|
|
56
|
+
|
|
57
|
+
1. **Select Target Component**
|
|
58
|
+
- Component file path
|
|
59
|
+
- Confirm line count and complexity
|
|
60
|
+
|
|
61
|
+
2. **Review Current Structure**
|
|
62
|
+
- List `useState` hooks (→ custom hooks)
|
|
63
|
+
- List `render{X}()` functions (→ organisms)
|
|
64
|
+
- Identify UI patterns (→ molecules)
|
|
65
|
+
- Identify small UI elements (→ atoms)
|
|
66
|
+
|
|
67
|
+
3. **Confirm Output Structure**
|
|
68
|
+
- Target folder path
|
|
69
|
+
- File naming conventions
|
|
70
|
+
- Dependencies on shared components
|
|
71
|
+
|
|
72
|
+
### Steps
|
|
73
|
+
|
|
74
|
+
1. **Analyze Component**
|
|
75
|
+
- Read entire file
|
|
76
|
+
- Extract all `useState` declarations
|
|
77
|
+
- Extract all `render{X}()` functions
|
|
78
|
+
- Identify JSX patterns repeated 2+ times
|
|
79
|
+
- Check: useState count >= 0 AND render function count >= 0 AND repeated patterns >= 0 — log "Analysis: {hooks} useState, {renders} render functions, {patterns} repeated patterns"
|
|
80
|
+
|
|
81
|
+
2. **Create Folder Structure**
|
|
82
|
+
```
|
|
83
|
+
{domain}/{component-name}/
|
|
84
|
+
├── types.ts
|
|
85
|
+
├── index.ts
|
|
86
|
+
├── {ComponentName}Template.tsx
|
|
87
|
+
├── hooks/
|
|
88
|
+
│ └── index.ts
|
|
89
|
+
├── atoms/
|
|
90
|
+
│ └── index.ts (if needed)
|
|
91
|
+
├── molecules/
|
|
92
|
+
│ └── index.ts
|
|
93
|
+
└── organisms/
|
|
94
|
+
└── index.ts
|
|
95
|
+
```
|
|
96
|
+
- Check: `test -d {component-name}/hooks/` AND `test -d {component-name}/organisms/` — abort with "Directory structure creation failed: {missing dir}"
|
|
97
|
+
|
|
98
|
+
3. **Extract Types**
|
|
99
|
+
- Create `types.ts` with all interfaces
|
|
100
|
+
- Include prop types for all sub-components
|
|
101
|
+
- Add type exports
|
|
102
|
+
- Check: `npx tsc --noEmit` exits with 0 for types.ts — abort with "TypeScript compilation failed: {error}"
|
|
103
|
+
|
|
104
|
+
4. **Extract Hooks** ⚠️ GATE 1
|
|
105
|
+
- **ANTES de criar cada hook:** Esse hook será usado em OUTRO componente?
|
|
106
|
+
- Se NÃO → **NÃO CRIE**, mantenha useState inline com comentários
|
|
107
|
+
- Group related `useState` into custom hooks **APENAS SE REUSÁVEIS**
|
|
108
|
+
- Pattern: `use{Domain}{Feature}` (e.g., `useCoursesFilters`)
|
|
109
|
+
- Each hook handles one concern
|
|
110
|
+
- Export from `hooks/index.ts`
|
|
111
|
+
- Check: `npx tsc --noEmit` passes for hooks/ AND no circular imports detected AND orphan hook count == 0 — abort with "Hook issues: {error or orphan list}"
|
|
112
|
+
|
|
113
|
+
5. **Extract Atoms** (if needed)
|
|
114
|
+
- Small, stateless UI elements
|
|
115
|
+
- Examples: Avatar, Badge, Icon wrapper
|
|
116
|
+
- Only if not already in `shared/atoms/`
|
|
117
|
+
- Check: `npx tsc --noEmit` passes for atoms/ AND no missing imports — log "{N} atoms extracted successfully"
|
|
118
|
+
|
|
119
|
+
6. **Extract Molecules**
|
|
120
|
+
- Combinations of atoms/primitives
|
|
121
|
+
- Examples: SearchInput, StatCard, AlertMessage
|
|
122
|
+
- Check shared/ first before creating
|
|
123
|
+
- Check: `npx tsc --noEmit` passes for molecules/ AND all atom imports resolve — log "{N} molecules extracted successfully"
|
|
124
|
+
|
|
125
|
+
7. **Extract Organisms**
|
|
126
|
+
- One organism per `render{X}()` function
|
|
127
|
+
- Named `{X}View.tsx` or `{X}Section.tsx`
|
|
128
|
+
- Receives props, renders molecules
|
|
129
|
+
- Export from `organisms/index.ts`
|
|
130
|
+
- Check: `npx tsc --noEmit` passes for organisms/ AND all molecule/atom imports resolve — log "{N} organisms extracted successfully"
|
|
131
|
+
|
|
132
|
+
8. **Create Template Orchestrator**
|
|
133
|
+
- Main component, ~100-200 lines max
|
|
134
|
+
- Imports and uses all hooks
|
|
135
|
+
- Renders organisms in layout
|
|
136
|
+
- Handles top-level state coordination
|
|
137
|
+
- Check: template file < 200 lines AND `npx tsc --noEmit` passes — abort with "Template orchestrator too large ({lines} lines) or has type errors"
|
|
138
|
+
|
|
139
|
+
9. **Update Imports**
|
|
140
|
+
- Update any files importing the old component
|
|
141
|
+
- Change from direct import to folder import
|
|
142
|
+
- Check: `npx tsc --noEmit` passes project-wide AND grep for old import path returns 0 matches — abort with "Broken imports found: {list}"
|
|
143
|
+
|
|
144
|
+
10. **Verify TypeScript**
|
|
145
|
+
- Run `npx tsc --noEmit`
|
|
146
|
+
- Fix any type errors
|
|
147
|
+
- Check: `npx tsc --noEmit` exits with 0 — abort with "TypeScript errors remain: {count} errors"
|
|
148
|
+
|
|
149
|
+
11. **Update Documentation**
|
|
150
|
+
- Mark component as done in ROADMAP.md
|
|
151
|
+
- Update file count in status
|
|
152
|
+
- Check: ROADMAP.md contains component marked as done AND file count updated — abort with "Documentation not updated: {missing update}"
|
|
153
|
+
|
|
154
|
+
## Output
|
|
155
|
+
|
|
156
|
+
For a component like `CoursesTemplate.tsx` (1,987 lines):
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
app/components/creator/courses/
|
|
160
|
+
├── types.ts # ~80 lines
|
|
161
|
+
├── index.ts # ~5 lines
|
|
162
|
+
├── CoursesTemplate.tsx # ~150 lines ✨
|
|
163
|
+
├── hooks/
|
|
164
|
+
│ ├── index.ts
|
|
165
|
+
│ ├── useCoursesData.ts # ~60 lines
|
|
166
|
+
│ ├── useCoursesFilters.ts # ~40 lines
|
|
167
|
+
│ ├── useNewCourseForm.ts # ~80 lines
|
|
168
|
+
│ └── useCoursePipeline.ts # ~50 lines
|
|
169
|
+
├── molecules/
|
|
170
|
+
│ ├── index.ts
|
|
171
|
+
│ ├── CourseCard.tsx # ~80 lines
|
|
172
|
+
│ ├── PipelineStepBadge.tsx # ~40 lines
|
|
173
|
+
│ └── CourseStatusBadge.tsx # ~35 lines
|
|
174
|
+
└── organisms/
|
|
175
|
+
├── index.ts
|
|
176
|
+
├── CoursesHeader.tsx # ~60 lines
|
|
177
|
+
├── CoursesListView.tsx # ~120 lines
|
|
178
|
+
├── CourseDetailView.tsx # ~150 lines
|
|
179
|
+
├── NewCourseView.tsx # ~180 lines
|
|
180
|
+
├── BriefEditorView.tsx # ~200 lines
|
|
181
|
+
└── PipelineView.tsx # ~140 lines
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Result**: 1,987 lines → 17 files, each <200 lines
|
|
185
|
+
|
|
186
|
+
## Failure Handling
|
|
187
|
+
|
|
188
|
+
- **Tests fail after refactor:** Revert to pre-refactor state. Compare diff to identify breaking change. Fix and re-run
|
|
189
|
+
- **Visual regression detected:** Run *visual-test to capture exact differences. Fix token references or CSS specificity issues
|
|
190
|
+
- **Build errors:** Check import paths updated. Verify component name changes propagated to all consumers
|
|
191
|
+
- **Refactor plan outdated:** If codebase changed since plan, re-run *refactor-plan before executing
|
|
192
|
+
|
|
193
|
+
## Success Criteria
|
|
194
|
+
|
|
195
|
+
### ⛔ GATE 2 (Obrigatório)
|
|
196
|
+
- [ ] **Linhas totais ≤ original** (se aumentou → simplificar)
|
|
197
|
+
- [ ] **≤7 arquivos criados** (se mais → consolidar)
|
|
198
|
+
- [ ] **0 hooks órfãos** (se tem → mover inline)
|
|
199
|
+
|
|
200
|
+
### Demais Critérios
|
|
201
|
+
- [ ] useState reusáveis extraídos para hooks (específicos ficam inline)
|
|
202
|
+
- [ ] All `render{X}()` extracted to organisms
|
|
203
|
+
- [ ] Repeated UI patterns extracted to molecules
|
|
204
|
+
- [ ] Template orchestrator <200 lines
|
|
205
|
+
- [ ] Each file <200 lines
|
|
206
|
+
- [ ] `npx tsc --noEmit` passes
|
|
207
|
+
- [ ] Component renders correctly in browser
|
|
208
|
+
- [ ] ROADMAP.md updated
|
|
209
|
+
|
|
210
|
+
## Error Handling
|
|
211
|
+
|
|
212
|
+
- **Circular dependency**: Restructure imports, use type-only imports
|
|
213
|
+
- **Missing shared component**: Add to SHARED_REQUESTS.md, wait for Agent 3
|
|
214
|
+
- **Type errors**: Fix before proceeding, don't leave broken code
|
|
215
|
+
- **Component breaks UI**: Revert and analyze, don't commit broken code
|
|
216
|
+
|
|
217
|
+
## Reference Pattern
|
|
218
|
+
|
|
219
|
+
Always refer to `app/components/ops/users/` as the canonical example:
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
ops/users/
|
|
223
|
+
├── types.ts # Types, configs, constants
|
|
224
|
+
├── index.ts # Barrel export
|
|
225
|
+
├── OpsUsersTemplate.tsx # Orchestrator (~195 lines)
|
|
226
|
+
├── hooks/
|
|
227
|
+
│ ├── index.ts
|
|
228
|
+
│ ├── useUsersData.ts
|
|
229
|
+
│ ├── useLinkMindDialog.ts
|
|
230
|
+
│ ├── useCreateUserDialog.ts
|
|
231
|
+
│ └── useRoleDialog.ts
|
|
232
|
+
├── molecules/
|
|
233
|
+
│ ├── index.ts
|
|
234
|
+
│ ├── SearchInput.tsx
|
|
235
|
+
│ ├── StatCard.tsx
|
|
236
|
+
│ ├── AlertMessage.tsx
|
|
237
|
+
│ ├── RoleBadge.tsx
|
|
238
|
+
│ └── AreasTags.tsx
|
|
239
|
+
└── organisms/
|
|
240
|
+
├── index.ts
|
|
241
|
+
├── UsersPageHeader.tsx
|
|
242
|
+
├── UsersStatsGrid.tsx
|
|
243
|
+
├── UsersTable.tsx
|
|
244
|
+
├── UserTableRow.tsx
|
|
245
|
+
├── LinkMindDialog.tsx
|
|
246
|
+
├── CreateUserDialog.tsx
|
|
247
|
+
├── RoleDialog.tsx
|
|
248
|
+
└── PendingInvitesSection.tsx
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Extraction Rules
|
|
252
|
+
|
|
253
|
+
### useState → Custom Hook
|
|
254
|
+
|
|
255
|
+
```typescript
|
|
256
|
+
// BEFORE (in template)
|
|
257
|
+
const [search, setSearch] = useState('');
|
|
258
|
+
const [filters, setFilters] = useState<Filters>({});
|
|
259
|
+
const filteredData = useMemo(() => ..., [data, search, filters]);
|
|
260
|
+
|
|
261
|
+
// AFTER (in hooks/useFilters.ts)
|
|
262
|
+
export function useFilters(data: Item[]) {
|
|
263
|
+
const [search, setSearch] = useState('');
|
|
264
|
+
const [filters, setFilters] = useState<Filters>({});
|
|
265
|
+
|
|
266
|
+
const filteredData = useMemo(() => ..., [data, search, filters]);
|
|
267
|
+
|
|
268
|
+
return { search, setSearch, filters, setFilters, filteredData };
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### render{X}() → Organism
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
// BEFORE (in template)
|
|
276
|
+
const renderHeader = () => (
|
|
277
|
+
<div className="flex justify-between">
|
|
278
|
+
<h1>Title</h1>
|
|
279
|
+
<Button onClick={onCreate}>New</Button>
|
|
280
|
+
</div>
|
|
281
|
+
);
|
|
282
|
+
|
|
283
|
+
// AFTER (in organisms/Header.tsx)
|
|
284
|
+
interface HeaderProps {
|
|
285
|
+
title: string;
|
|
286
|
+
onCreate: () => void;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export const Header: React.FC<HeaderProps> = ({ title, onCreate }) => (
|
|
290
|
+
<div className="flex justify-between">
|
|
291
|
+
<h1>{title}</h1>
|
|
292
|
+
<Button onClick={onCreate}>New</Button>
|
|
293
|
+
</div>
|
|
294
|
+
);
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Repeated JSX → Molecule
|
|
298
|
+
|
|
299
|
+
```typescript
|
|
300
|
+
// BEFORE (repeated 3+ times in template)
|
|
301
|
+
<div className="flex items-center gap-2 rounded-lg border p-4">
|
|
302
|
+
<Icon name={icon} />
|
|
303
|
+
<span>{label}</span>
|
|
304
|
+
<span className="text-muted-foreground">{value}</span>
|
|
305
|
+
</div>
|
|
306
|
+
|
|
307
|
+
// AFTER (in molecules/StatCard.tsx)
|
|
308
|
+
interface StatCardProps {
|
|
309
|
+
icon: string;
|
|
310
|
+
label: string;
|
|
311
|
+
value: string | number;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export const StatCard: React.FC<StatCardProps> = ({ icon, label, value }) => (
|
|
315
|
+
<div className="flex items-center gap-2 rounded-lg border p-4">
|
|
316
|
+
<Icon name={icon} />
|
|
317
|
+
<span>{label}</span>
|
|
318
|
+
<span className="text-muted-foreground">{value}</span>
|
|
319
|
+
</div>
|
|
320
|
+
);
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## Examples
|
|
324
|
+
|
|
325
|
+
### Example 1: Refactor Single Component
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
/atomic-refactor-execute app/components/creator/templates/CoursesTemplate.tsx
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Output:
|
|
332
|
+
```
|
|
333
|
+
🔍 Uma: Analyzing CoursesTemplate.tsx...
|
|
334
|
+
|
|
335
|
+
📊 Analysis Results:
|
|
336
|
+
Total lines: 1,987
|
|
337
|
+
useState hooks: 14 (→ 4 custom hooks)
|
|
338
|
+
render functions: 8 (→ 8 organisms)
|
|
339
|
+
UI patterns: 3 (→ 3 molecules)
|
|
340
|
+
|
|
341
|
+
📁 Creating structure: app/components/creator/courses/
|
|
342
|
+
|
|
343
|
+
✓ Created types.ts (82 lines)
|
|
344
|
+
✓ Created hooks/useCoursesData.ts (64 lines)
|
|
345
|
+
✓ Created hooks/useCoursesFilters.ts (38 lines)
|
|
346
|
+
✓ Created hooks/useNewCourseForm.ts (76 lines)
|
|
347
|
+
✓ Created hooks/useCoursePipeline.ts (52 lines)
|
|
348
|
+
✓ Created molecules/CourseCard.tsx (78 lines)
|
|
349
|
+
✓ Created molecules/PipelineStepBadge.tsx (42 lines)
|
|
350
|
+
✓ Created molecules/CourseStatusBadge.tsx (36 lines)
|
|
351
|
+
✓ Created organisms/CoursesHeader.tsx (58 lines)
|
|
352
|
+
✓ Created organisms/CoursesListView.tsx (118 lines)
|
|
353
|
+
✓ Created organisms/CourseDetailView.tsx (146 lines)
|
|
354
|
+
✓ Created organisms/NewCourseView.tsx (178 lines)
|
|
355
|
+
✓ Created organisms/BriefEditorView.tsx (196 lines)
|
|
356
|
+
✓ Created organisms/PipelineView.tsx (138 lines)
|
|
357
|
+
✓ Created CoursesTemplate.tsx (148 lines)
|
|
358
|
+
✓ Created index.ts (5 lines)
|
|
359
|
+
|
|
360
|
+
🧪 TypeScript check...
|
|
361
|
+
✓ npx tsc --noEmit: 0 errors
|
|
362
|
+
|
|
363
|
+
📝 Updated docs/refactoring/COMPONENT_REFACTORING_ROADMAP.md
|
|
364
|
+
|
|
365
|
+
📊 Summary:
|
|
366
|
+
Before: 1 file, 1,987 lines
|
|
367
|
+
After: 17 files, max 196 lines each
|
|
368
|
+
Reduction: 90% in main file
|
|
369
|
+
|
|
370
|
+
✅ Refactoring complete!
|
|
371
|
+
|
|
372
|
+
Uma says: "Clean architecture is not optional."
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## Notes
|
|
376
|
+
|
|
377
|
+
- Always read the full component before starting
|
|
378
|
+
- Check shared/ for existing molecules before creating new ones
|
|
379
|
+
- Keep orchestrator focused on composition, not business logic
|
|
380
|
+
- Each file should have a single responsibility
|
|
381
|
+
- Commit after each successful component refactoring
|
|
382
|
+
- Test in browser before marking as done
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
## Related Checklists
|
|
386
|
+
|
|
387
|
+
- `squads/design/checklists/atomic-refactor-checklist.md`
|
|
388
|
+
- `squads/design/checklists/ds-component-quality-checklist.md`
|
|
389
|
+
|
|
390
|
+
## Process Guards
|
|
391
|
+
- **On Fail:** Stop execution, capture evidence, and return remediation steps before proceeding.
|