aios-core 2.1.6 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aios-core/core/README.md +229 -229
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/core/data/aios-kb.md +923 -923
- package/.aios-core/core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/core/docs/component-creation-guide.md +457 -457
- package/.aios-core/core/docs/session-update-pattern.md +307 -307
- package/.aios-core/core/docs/template-syntax.md +266 -266
- package/.aios-core/core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/core/elicitation/elicitation-engine.js +1 -1
- package/.aios-core/core/index.esm.js +42 -42
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/migration/migration-config.yaml +83 -83
- package/.aios-core/core/migration/module-mapping.yaml +89 -89
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +1 -1
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -86
- package/.aios-core/core/registry/README.md +179 -179
- package/.aios-core/core/utils/security-utils.js +1 -1
- package/.aios-core/core-config.yaml +391 -382
- package/.aios-core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/data/aios-kb.md +923 -923
- package/.aios-core/data/technical-preferences.md +3 -3
- package/.aios-core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/development/README.md +142 -142
- package/.aios-core/development/agent-teams/team-all.yaml +15 -15
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -18
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -10
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -13
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -155
- package/.aios-core/development/agents/aios-master.md +339 -339
- package/.aios-core/development/agents/analyst.md +195 -195
- package/.aios-core/development/agents/architect.md +359 -359
- package/.aios-core/development/agents/data-engineer.md +468 -468
- package/.aios-core/development/agents/dev.md +390 -390
- package/.aios-core/development/agents/devops.md +398 -398
- package/.aios-core/development/agents/pm.md +198 -198
- package/.aios-core/development/agents/po.md +256 -256
- package/.aios-core/development/agents/qa.md +312 -312
- package/.aios-core/development/agents/sm.md +220 -220
- package/.aios-core/development/agents/ux-design-expert.md +451 -451
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -85
- package/.aios-core/development/tasks/add-mcp.md +319 -319
- package/.aios-core/development/tasks/advanced-elicitation.md +318 -318
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +341 -341
- package/.aios-core/development/tasks/analyze-framework.md +696 -696
- package/.aios-core/development/tasks/analyze-performance.md +637 -637
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -340
- package/.aios-core/development/tasks/architect-analyze-impact.md +826 -826
- package/.aios-core/development/tasks/audit-codebase.md +429 -429
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -270
- package/.aios-core/development/tasks/audit-utilities.md +358 -358
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -286
- package/.aios-core/development/tasks/brownfield-create-epic.md +485 -485
- package/.aios-core/development/tasks/brownfield-create-story.md +356 -356
- package/.aios-core/development/tasks/build-component.md +478 -478
- package/.aios-core/development/tasks/calculate-roi.md +455 -455
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -764
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -670
- package/.aios-core/development/tasks/collaborative-edit.md +1108 -1108
- package/.aios-core/development/tasks/compose-molecule.md +284 -284
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -414
- package/.aios-core/development/tasks/correct-course.md +279 -279
- package/.aios-core/development/tasks/create-agent.md +321 -321
- package/.aios-core/development/tasks/create-brownfield-story.md +726 -726
- package/.aios-core/development/tasks/create-deep-research-prompt.md +498 -498
- package/.aios-core/development/tasks/create-doc.md +316 -316
- package/.aios-core/development/tasks/create-next-story.md +774 -774
- package/.aios-core/development/tasks/create-suite.md +283 -283
- package/.aios-core/development/tasks/create-task.md +371 -371
- package/.aios-core/development/tasks/create-workflow.md +370 -370
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -572
- package/.aios-core/development/tasks/db-apply-migration.md +381 -381
- package/.aios-core/development/tasks/db-bootstrap.md +642 -642
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -693
- package/.aios-core/development/tasks/db-dry-run.md +293 -293
- package/.aios-core/development/tasks/db-env-check.md +260 -260
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -663
- package/.aios-core/development/tasks/db-explain.md +631 -631
- package/.aios-core/development/tasks/db-impersonate.md +495 -495
- package/.aios-core/development/tasks/db-load-csv.md +593 -593
- package/.aios-core/development/tasks/db-policy-apply.md +653 -653
- package/.aios-core/development/tasks/db-rls-audit.md +411 -411
- package/.aios-core/development/tasks/db-rollback.md +739 -739
- package/.aios-core/development/tasks/db-run-sql.md +613 -613
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -1011
- package/.aios-core/development/tasks/db-seed.md +390 -390
- package/.aios-core/development/tasks/db-smoke-test.md +351 -351
- package/.aios-core/development/tasks/db-snapshot.md +569 -569
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -712
- package/.aios-core/development/tasks/db-verify-order.md +515 -515
- package/.aios-core/development/tasks/deprecate-component.md +956 -956
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -318
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -469
- package/.aios-core/development/tasks/dev-develop-story.md +846 -846
- package/.aios-core/development/tasks/dev-improve-code-quality.md +872 -872
- package/.aios-core/development/tasks/dev-optimize-performance.md +1033 -1033
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +870 -870
- package/.aios-core/development/tasks/dev-validate-next-story.md +348 -348
- package/.aios-core/development/tasks/document-project.md +552 -552
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -1311
- package/.aios-core/development/tasks/execute-checklist.md +301 -301
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -274
- package/.aios-core/development/tasks/extend-pattern.md +269 -269
- package/.aios-core/development/tasks/extract-tokens.md +467 -467
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -518
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +260 -260
- package/.aios-core/development/tasks/generate-documentation.md +284 -284
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -522
- package/.aios-core/development/tasks/generate-shock-report.md +501 -501
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -427
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -733
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -374
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -483
- package/.aios-core/development/tasks/improve-self.md +822 -822
- package/.aios-core/development/tasks/index-docs.md +387 -387
- package/.aios-core/development/tasks/init-project-status.md +506 -506
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -314
- package/.aios-core/development/tasks/kb-mode-interaction.md +283 -283
- package/.aios-core/development/tasks/learn-patterns.md +900 -900
- package/.aios-core/development/tasks/mcp-workflow.md +437 -437
- package/.aios-core/development/tasks/modify-agent.md +381 -381
- package/.aios-core/development/tasks/modify-task.md +424 -424
- package/.aios-core/development/tasks/modify-workflow.md +465 -465
- package/.aios-core/development/tasks/po-backlog-add.md +370 -370
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -523
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -540
- package/.aios-core/development/tasks/po-pull-story.md +316 -316
- package/.aios-core/development/tasks/po-stories-index.md +351 -351
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -457
- package/.aios-core/development/tasks/po-sync-story.md +303 -303
- package/.aios-core/development/tasks/pr-automation.md +701 -701
- package/.aios-core/development/tasks/propose-modification.md +842 -842
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -425
- package/.aios-core/development/tasks/qa-gate.md +373 -373
- package/.aios-core/development/tasks/qa-generate-tests.md +1174 -1174
- package/.aios-core/development/tasks/qa-nfr-assess.md +557 -557
- package/.aios-core/development/tasks/qa-review-proposal.md +1157 -1157
- package/.aios-core/development/tasks/qa-review-story.md +682 -682
- package/.aios-core/development/tasks/qa-risk-profile.md +566 -566
- package/.aios-core/development/tasks/qa-run-tests.md +277 -277
- package/.aios-core/development/tasks/qa-test-design.md +387 -387
- package/.aios-core/development/tasks/qa-trace-requirements.md +476 -476
- package/.aios-core/development/tasks/release-management.md +723 -723
- package/.aios-core/development/tasks/security-audit.md +554 -554
- package/.aios-core/development/tasks/security-scan.md +790 -790
- package/.aios-core/development/tasks/setup-database.md +741 -741
- package/.aios-core/development/tasks/setup-design-system.md +462 -462
- package/.aios-core/development/tasks/setup-github.md +874 -874
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -584
- package/.aios-core/development/tasks/setup-project-docs.md +1 -1
- package/.aios-core/development/tasks/shard-doc.md +537 -537
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -480
- package/.aios-core/development/tasks/sync-documentation.md +864 -864
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -294
- package/.aios-core/development/tasks/test-as-user.md +621 -621
- package/.aios-core/development/tasks/test-validation-task.md +171 -171
- package/.aios-core/development/tasks/undo-last.md +346 -346
- package/.aios-core/development/tasks/update-manifest.md +409 -409
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -617
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -672
- package/.aios-core/development/tasks/ux-user-research.md +559 -559
- package/.aios-core/development/tasks/validate-next-story.md +422 -422
- package/.aios-core/development/workflows/README.md +83 -83
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -297
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -187
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -197
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -333
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -206
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -235
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/docs/component-creation-guide.md +457 -457
- package/.aios-core/docs/session-update-pattern.md +307 -307
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -572
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -185
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -354
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -1963
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -821
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -1190
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -439
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -1339
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -5398
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -697
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -511
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -556
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -210
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -550
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -1414
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -523
- package/.aios-core/docs/template-syntax.md +266 -266
- package/.aios-core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/index.esm.js +15 -15
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/README.md +126 -126
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -59
- package/.aios-core/infrastructure/scripts/approval-workflow.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +3 -3
- package/.aios-core/infrastructure/scripts/component-metadata.js +1 -1
- package/.aios-core/infrastructure/scripts/component-search.js +1 -1
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/improvement-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +26 -13
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.sh +108 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.sh +65 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.sh +16 -0
- package/.aios-core/infrastructure/scripts/llm-routing/usage-tracker/index.js +549 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -134
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/scripts/template-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/template-validator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/transaction-manager.js +1 -1
- package/.aios-core/infrastructure/scripts/usage-analytics.js +1 -1
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +2 -2
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -109
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -621
- package/.aios-core/infrastructure/tools/README.md +222 -222
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -200
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -260
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -224
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -261
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -127
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -534
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -78
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -180
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -930
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -551
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -808
- package/.aios-core/install-manifest.yaml +347 -347
- package/.aios-core/product/README.md +56 -56
- package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -0
- package/.aios-core/product/checklists/architect-checklist.md +443 -443
- package/.aios-core/product/checklists/change-checklist.md +182 -182
- package/.aios-core/product/checklists/component-quality-checklist.md +74 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -119
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -97
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -99
- package/.aios-core/product/checklists/migration-readiness-checklist.md +75 -0
- package/.aios-core/product/checklists/pattern-audit-checklist.md +88 -0
- package/.aios-core/product/checklists/pm-checklist.md +375 -375
- package/.aios-core/product/checklists/po-master-checklist.md +441 -441
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -108
- package/.aios-core/product/checklists/release-checklist.md +122 -122
- package/.aios-core/product/checklists/story-dod-checklist.md +101 -101
- package/.aios-core/product/checklists/story-draft-checklist.md +215 -215
- package/.aios-core/product/data/atomic-design-principles.md +108 -0
- package/.aios-core/product/data/brainstorming-techniques.md +36 -36
- package/.aios-core/product/data/consolidation-algorithms.md +142 -0
- package/.aios-core/product/data/database-best-practices.md +182 -0
- package/.aios-core/product/data/design-token-best-practices.md +107 -0
- package/.aios-core/product/data/elicitation-methods.md +134 -134
- package/.aios-core/product/data/integration-patterns.md +207 -0
- package/.aios-core/product/data/migration-safety-guide.md +329 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -471
- package/.aios-core/product/data/postgres-tuning-guide.md +300 -0
- package/.aios-core/product/data/rls-security-patterns.md +333 -0
- package/.aios-core/product/data/roi-calculation-guide.md +142 -0
- package/.aios-core/product/data/supabase-patterns.md +330 -0
- package/.aios-core/product/data/test-levels-framework.md +148 -148
- package/.aios-core/product/data/test-priorities-matrix.md +174 -174
- package/.aios-core/product/data/wcag-compliance-guide.md +267 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -225
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -63
- package/.aios-core/product/templates/activation-instructions-template.md +258 -258
- package/.aios-core/product/templates/agent-template.yaml +120 -120
- package/.aios-core/product/templates/architecture-tmpl.yaml +650 -650
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +155 -155
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +475 -475
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +279 -279
- package/.aios-core/product/templates/changelog-template.md +134 -134
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -152
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +292 -292
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -587
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -70
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +205 -205
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +348 -348
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +804 -804
- package/.aios-core/product/templates/github-pr-template.md +67 -67
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -140
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -221
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -84
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -92
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -85
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -86
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -104
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -80
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -53
- package/.aios-core/product/templates/market-research-tmpl.yaml +251 -251
- package/.aios-core/product/templates/mcp-workflow.js +271 -271
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -1022
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -524
- package/.aios-core/product/templates/personalized-agent-template.md +258 -258
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -340
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -905
- package/.aios-core/product/templates/personalized-task-template.md +344 -344
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -322
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -460
- package/.aios-core/product/templates/prd-tmpl.yaml +201 -201
- package/.aios-core/product/templates/project-brief-tmpl.yaml +220 -220
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -240
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -1203
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -428
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -219
- package/.aios-core/product/templates/story-tmpl.yaml +331 -331
- package/.aios-core/product/templates/task-execution-report.md +495 -495
- package/.aios-core/product/templates/task-template.md +122 -122
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -395
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -305
- package/.aios-core/product/templates/workflow-template.yaml +133 -133
- package/.aios-core/scripts/README.md +354 -354
- package/.aios-core/scripts/aios-doc-template.md +325 -325
- package/.aios-core/scripts/elicitation-engine.js +1 -1
- package/.aios-core/scripts/test-template-system.js +1 -1
- package/.aios-core/scripts/workflow-management.md +69 -69
- package/.aios-core/user-guide.md +1413 -1413
- package/.aios-core/working-in-the-brownfield.md +361 -361
- package/LICENSE +1 -1
- package/README.md +702 -703
- package/bin/aios-init-old.js +3 -3
- package/bin/aios-init-v4.js +1 -1
- package/bin/aios-init.backup-v1.1.4.js +1 -1
- package/bin/aios-init.js +3 -3
- package/bin/aios.js +279 -279
- package/bin/utils/install-errors.js +339 -339
- package/bin/utils/install-transaction.js +445 -445
- package/index.d.ts +18 -18
- package/index.esm.js +20 -20
- package/index.js +6 -6
- package/package.json +8 -10
- package/packages/installer/src/config/templates/env-template.js +27 -4
- package/packages/installer/src/detection/detect-project-type.js +81 -81
- package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +8 -8
- package/src/config/ide-configs.js +1 -1
- package/src/wizard/feedback.js +2 -2
- package/src/wizard/index.js +1 -1
- package/src/wizard/validation/report-generator.js +1 -1
- package/src/wizard/validation/troubleshooting-system.js +13 -13
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +0 -122
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +0 -89
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +0 -780
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +0 -950
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +0 -425
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +0 -132
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +0 -381
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +0 -203
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +0 -24
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +0 -51
- package/.aios-core/tasks/find-component.md.legacy +0 -391
- package/.aios-core/tasks/generate-commit-message.md.legacy +0 -426
- package/.aios-core/tasks/generate-migration.md.legacy +0 -382
- package/.aios-core/tasks/rollback-modification.md.legacy +0 -307
- package/.aios-core/tasks/update-tests.md.legacy +0 -283
|
@@ -1,523 +1,523 @@
|
|
|
1
|
-
# V3.0 Architectural Decisions Summary
|
|
2
|
-
|
|
3
|
-
**Date:** 2025-11-13
|
|
4
|
-
**Version:** 3.0.0
|
|
5
|
-
**Status:** Standard
|
|
6
|
-
**Author:** Brad Frost Cognitive Clone
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## DECISION A: Naming Conventions
|
|
11
|
-
|
|
12
|
-
### JSON/JavaScript: camelCase
|
|
13
|
-
|
|
14
|
-
```javascript
|
|
15
|
-
// ✅ CORRECT
|
|
16
|
-
{
|
|
17
|
-
adAnalysis: { ... },
|
|
18
|
-
formatConfig: { ... },
|
|
19
|
-
brandColors: { ... }
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// ❌ WRONG
|
|
23
|
-
{
|
|
24
|
-
ad_analysis: { ... },
|
|
25
|
-
format-config: { ... }
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### CSS: kebab-case
|
|
30
|
-
|
|
31
|
-
```css
|
|
32
|
-
/* ✅ CORRECT */
|
|
33
|
-
.content-area { }
|
|
34
|
-
--content-padding-top: 50px;
|
|
35
|
-
--spacing-md: 200px;
|
|
36
|
-
|
|
37
|
-
/* ❌ WRONG */
|
|
38
|
-
.contentArea { }
|
|
39
|
-
--content_padding_top: 50px;
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Database: snake_case
|
|
43
|
-
|
|
44
|
-
```sql
|
|
45
|
-
-- ✅ CORRECT
|
|
46
|
-
tasks.responsavel_type
|
|
47
|
-
workflow_executions.started_at
|
|
48
|
-
|
|
49
|
-
-- ❌ WRONG
|
|
50
|
-
tasks.responsavelType
|
|
51
|
-
workflow_executions.startedAt
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Filenames: kebab-case
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
✅ CORRECT: design-cta-component.md, analyze-ad-brief.md
|
|
58
|
-
❌ WRONG: designCTAComponent.md, analyze_ad_brief.md
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## DECISION B: Phase Reorganization
|
|
64
|
-
|
|
65
|
-
### v2.0 Structure (7 fases, confusing)
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
FASE 0: Initialization & Configuration
|
|
69
|
-
FASE 1: Content Analysis & Planning
|
|
70
|
-
FASE 2: Content Creation
|
|
71
|
-
FASE 3: Component Design
|
|
72
|
-
FASE 4: Layout Composition
|
|
73
|
-
FASE 5: Visual Selection & Positioning
|
|
74
|
-
FASE 6: Rendering & Export
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### v3.0 Structure (6 fases, Atomic Design aligned)
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
FASE 0: Configuration & Initialization (Setup)
|
|
81
|
-
Steps: 0, 1, 2, 12
|
|
82
|
-
|
|
83
|
-
FASE 1: Content Planning (Strategy)
|
|
84
|
-
Steps: 3, 4, 5, 6
|
|
85
|
-
|
|
86
|
-
FASE 2: Atoms Creation (Base Components)
|
|
87
|
-
Steps: 7a, 7b, 7c
|
|
88
|
-
|
|
89
|
-
FASE 3: Molecules & Organisms (Composition)
|
|
90
|
-
Steps: 8a, 8b, 8c
|
|
91
|
-
|
|
92
|
-
FASE 4: Media & Layout (Assets & Positioning)
|
|
93
|
-
Steps: 9, 10, 11
|
|
94
|
-
|
|
95
|
-
FASE 5: Template & Page (Rendering)
|
|
96
|
-
Steps: 13a, 13b, 14
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**Rationale:** Each phase maps to Atomic Design layer or functional stage.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## DECISION C: Step Renumbering
|
|
104
|
-
|
|
105
|
-
### v2.0 → v3.0 Mapping
|
|
106
|
-
|
|
107
|
-
| v2.0 | v3.0 | Name | Breaking? |
|
|
108
|
-
|------|------|------|-----------|
|
|
109
|
-
| 0 | 0 | Initialize Orchestrator | ❌ No |
|
|
110
|
-
| 1 | 1 | Load Format Configuration | ❌ No |
|
|
111
|
-
| 2 | 2 | Load Brand Configuration | ❌ No |
|
|
112
|
-
| 3 | 3 | Analyze Brief | ❌ No |
|
|
113
|
-
| 4 | 4 | Select Ad Template | ❌ No |
|
|
114
|
-
| 5 | 5 | Craft Ad Copy | ❌ No |
|
|
115
|
-
| 6 | 6 | Apply Typography | ❌ No |
|
|
116
|
-
| **7** | **7a, 7b, 7c** | **Design CTA, Badge, Validate** | ✅ **YES** |
|
|
117
|
-
| **8** | **8a, 8b, 8c** | **Text Group, Action Group, Content Area** | ✅ **YES** |
|
|
118
|
-
| 9 | 9 | Select Image | ❌ No |
|
|
119
|
-
| 10 | 10 | Detect Faces | ❌ No |
|
|
120
|
-
| 11 | 11 | Determine Optimal Positioning | ❌ No |
|
|
121
|
-
| **12** | **12** | **Load Design Tokens (moved to FASE 0)** | ⚠️ **Phase change** |
|
|
122
|
-
| **13** | **13a, 13b** | **Inject CSS, Render HTML** | ✅ **YES** |
|
|
123
|
-
| 14 | 14 | Export to PNG | ❌ No |
|
|
124
|
-
|
|
125
|
-
**Total: 14 steps → 19 steps** (more granular, more testable)
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## DECISION D: Executor Mapping per Step
|
|
130
|
-
|
|
131
|
-
| Step | Task | Executor | Conditional? | Rationale |
|
|
132
|
-
|------|------|----------|--------------|-----------|
|
|
133
|
-
| 0 | Initialize | **Worker** | ❌ No | Deterministic validation |
|
|
134
|
-
| 1 | Load Format | **Worker** | ❌ No | File read + calculation |
|
|
135
|
-
| 2 | Load Brand | **Worker** | ❌ No | File read + validation |
|
|
136
|
-
| 3 | Analyze Brief | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, skip if ready_copy |
|
|
137
|
-
| 4 | Select Template | **Agente** / **Worker** | ✅ Yes (template_id) | AI if not specified, skip if provided |
|
|
138
|
-
| 5 | Craft Copy | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, passthrough if ready_copy |
|
|
139
|
-
| 6 | Apply Typography | **Agente** | ❌ No | AI decides transformations |
|
|
140
|
-
| 7a | Design CTA | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, defaults if ready_copy |
|
|
141
|
-
| 7b | Design Badge | **Agente** / **Worker** | ✅ Yes (urgency) | AI if high urgency, skip if low |
|
|
142
|
-
| 7c | Validate Components | **Clone** | ❌ No | Brad Frost validates Atomic Design |
|
|
143
|
-
| 8a | Compose Text Group | **Agente** | ❌ No | AI groups atoms into molecule |
|
|
144
|
-
| 8b | Compose Action Group | **Agente** | ⚠️ Optional | Only if badge exists |
|
|
145
|
-
| 8c | Compose Content Area | **Agente** | ❌ No | AI composes organism |
|
|
146
|
-
| 9 | Select Image | **Agente** | ❌ No | AI semantic search |
|
|
147
|
-
| 10 | Detect Faces | **Agente** | ❌ No | External AI API (Gemini Vision) |
|
|
148
|
-
| 11 | Determine Positioning | **Agente** / **Worker** | ✅ Yes (faces?) | AI if complex, heuristics if simple |
|
|
149
|
-
| 12 | Load Design Tokens | **Worker** | ❌ No | Parse CSS file |
|
|
150
|
-
| 13a | Inject CSS Variables | **Worker** | ❌ No | Template injection |
|
|
151
|
-
| 13b | Render HTML | **Worker** | ❌ No | Handlebars compilation |
|
|
152
|
-
| 14 | Export PNG | **Worker** | ❌ No | Puppeteer screenshot |
|
|
153
|
-
|
|
154
|
-
**Conditional Logic Summary:**
|
|
155
|
-
|
|
156
|
-
```yaml
|
|
157
|
-
Step 3 (Analyze Brief):
|
|
158
|
-
if ready_copy=true: Worker (skip AI)
|
|
159
|
-
else: Agente (AI analysis)
|
|
160
|
-
|
|
161
|
-
Step 4 (Select Template):
|
|
162
|
-
if template_id provided: Worker (use provided)
|
|
163
|
-
else if ready_copy=true: Agente (AI with ready_copy context)
|
|
164
|
-
else: Agente (AI with brief analysis)
|
|
165
|
-
|
|
166
|
-
Step 5 (Craft Copy):
|
|
167
|
-
if ready_copy=true: Worker (passthrough)
|
|
168
|
-
else: Agente (AI generation)
|
|
169
|
-
|
|
170
|
-
Step 7a (Design CTA):
|
|
171
|
-
if ready_copy=true: Worker (brand colors)
|
|
172
|
-
else: Agente (AI design)
|
|
173
|
-
|
|
174
|
-
Step 7b (Design Badge):
|
|
175
|
-
if urgencyLevel=high: Agente (design badge)
|
|
176
|
-
else: skip (no badge)
|
|
177
|
-
|
|
178
|
-
Step 11 (Positioning):
|
|
179
|
-
if faces.length > 0: Agente (complex positioning)
|
|
180
|
-
else: Worker (default spacing)
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## DECISION E: Separation of Concerns Fixes
|
|
186
|
-
|
|
187
|
-
### Fix 1: Step 7 → 7a, 7b, 7c
|
|
188
|
-
|
|
189
|
-
**Problem:** Step 7 does THREE things (design CTA + design badge + validate)
|
|
190
|
-
|
|
191
|
-
**Solution:**
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
Step 7a: Design CTA Component (Atom)
|
|
195
|
-
responsavel_type: Agente | Worker
|
|
196
|
-
atomic_layer: Atom
|
|
197
|
-
output: ctaComponent { text, style, colors }
|
|
198
|
-
|
|
199
|
-
Step 7b: Design Badge Component (Atom)
|
|
200
|
-
responsavel_type: Agente | Worker
|
|
201
|
-
atomic_layer: Atom
|
|
202
|
-
output: badgeComponent { text, style, colors } | null
|
|
203
|
-
|
|
204
|
-
Step 7c: Validate Components (Post-condition)
|
|
205
|
-
responsavel_type: Clone (Brad Frost)
|
|
206
|
-
atomic_layer: Atom
|
|
207
|
-
output: validation_result { valid, violations }
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
### Fix 2: Step 8 → 8a, 8b, 8c
|
|
213
|
-
|
|
214
|
-
**Problem:** Step 8 skips Molecule layer and conflates Organism + Positioning
|
|
215
|
-
|
|
216
|
-
**Solution:**
|
|
217
|
-
|
|
218
|
-
```
|
|
219
|
-
Step 8a: Compose Text Group (Molecule)
|
|
220
|
-
responsavel_type: Agente
|
|
221
|
-
atomic_layer: Molecule
|
|
222
|
-
input: typography.title, typography.body, ctaComponent
|
|
223
|
-
output: textGroupMolecule { title, body, cta }
|
|
224
|
-
|
|
225
|
-
Step 8b: Compose Action Group (Molecule) (optional)
|
|
226
|
-
responsavel_type: Agente
|
|
227
|
-
atomic_layer: Molecule
|
|
228
|
-
input: ctaComponent, badgeComponent
|
|
229
|
-
output: actionGroupMolecule { cta, badge }
|
|
230
|
-
skippable_when: [badgeComponent=null]
|
|
231
|
-
|
|
232
|
-
Step 8c: Compose Content Area (Organism)
|
|
233
|
-
responsavel_type: Agente
|
|
234
|
-
atomic_layer: Organism
|
|
235
|
-
input: textGroupMolecule, actionGroupMolecule, imageUrl, brand
|
|
236
|
-
output: contentAreaOrganism { structure, alignment }
|
|
237
|
-
# NO positioning data!
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
### Fix 3: Step 13 → 13a, 13b
|
|
243
|
-
|
|
244
|
-
**Problem:** Step 13 does THREE things (inject CSS + render HTML + populate)
|
|
245
|
-
|
|
246
|
-
**Solution:**
|
|
247
|
-
|
|
248
|
-
```
|
|
249
|
-
Step 13a: Inject CSS Variables
|
|
250
|
-
responsavel_type: Worker
|
|
251
|
-
atomic_layer: Template
|
|
252
|
-
input: positioning, designTokens, formatConfig
|
|
253
|
-
output: cssVars object
|
|
254
|
-
|
|
255
|
-
Step 13b: Render HTML Template
|
|
256
|
-
responsavel_type: Worker
|
|
257
|
-
atomic_layer: Template
|
|
258
|
-
input: templateId, cssVars, contentAreaOrganism, adSpec
|
|
259
|
-
output: htmlContent (final HTML string)
|
|
260
|
-
# Handlebars compilation includes population
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## DECISION F: Parallelization Opportunities
|
|
266
|
-
|
|
267
|
-
### Parallel Group 1: Configuration (Steps 1 + 2)
|
|
268
|
-
|
|
269
|
-
```javascript
|
|
270
|
-
const [formatConfig, brand] = await Promise.all([
|
|
271
|
-
loadFormatConfig(format_id), // Step 1
|
|
272
|
-
loadBrand(brand_id) // Step 2
|
|
273
|
-
]);
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
**Savings:** ~100ms
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
### Parallel Group 2: Template + Image (Steps 4 + 9)
|
|
281
|
-
|
|
282
|
-
```javascript
|
|
283
|
-
// After Step 5 (Craft Copy)
|
|
284
|
-
const [selectedTemplate, visualPlan] = await Promise.all([
|
|
285
|
-
selectTemplate(adAnalysis, brand), // Step 4
|
|
286
|
-
selectImage(adAnalysis, adCopy) // Step 9
|
|
287
|
-
]);
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
**Savings:** ~2-3 seconds
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
### Parallel Group 3: CTA + Badge (Steps 7a + 7b)
|
|
295
|
-
|
|
296
|
-
```javascript
|
|
297
|
-
const [ctaComponent, badgeComponent] = await Promise.all([
|
|
298
|
-
designCTAComponent(typography.cta, brand), // Step 7a
|
|
299
|
-
urgencyLevel === 'high'
|
|
300
|
-
? designBadgeComponent(adAnalysis, brand) // Step 7b
|
|
301
|
-
: Promise.resolve(null)
|
|
302
|
-
]);
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Savings:** ~1-2 seconds (if both run)
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
### Parallel Group 4: Positioning + Tokens (Steps 11 + 12)
|
|
310
|
-
|
|
311
|
-
**BETTER:** Move Step 12 EARLIER (after Step 1) and cache globally
|
|
312
|
-
|
|
313
|
-
```javascript
|
|
314
|
-
// Step 1 completion → immediately load tokens
|
|
315
|
-
const formatConfig = await loadFormatConfig(format_id);
|
|
316
|
-
const designTokens = await loadDesignTokens(formatConfig); // Cache!
|
|
317
|
-
|
|
318
|
-
// Later, Step 11 runs alone (no parallelization needed)
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
**Savings:** ~500ms (one-time load, cached for all subsequent ads)
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
### Total Parallelization Savings
|
|
326
|
-
|
|
327
|
-
- Group 1: ~100ms
|
|
328
|
-
- Group 2: ~2500ms
|
|
329
|
-
- Group 3: ~1500ms (conditional)
|
|
330
|
-
- Group 4: ~500ms (via caching)
|
|
331
|
-
|
|
332
|
-
**Total: ~4.6 seconds (30-40% faster)**
|
|
333
|
-
|
|
334
|
-
---
|
|
335
|
-
|
|
336
|
-
## DECISION G: Error Handling Strategy
|
|
337
|
-
|
|
338
|
-
### Strategy 1: Retry (Transient Errors)
|
|
339
|
-
|
|
340
|
-
```yaml
|
|
341
|
-
**Error Handling:**
|
|
342
|
-
- strategy: retry
|
|
343
|
-
- retry:
|
|
344
|
-
max_attempts: 3
|
|
345
|
-
backoff: exponential
|
|
346
|
-
backoff_ms: 1000 # 1s, 2s, 4s
|
|
347
|
-
- abort_workflow: false
|
|
348
|
-
- notification: log
|
|
349
|
-
|
|
350
|
-
# Use for: API timeouts, rate limits, network errors
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
### Strategy 2: Fallback (Recoverable Errors)
|
|
356
|
-
|
|
357
|
-
```yaml
|
|
358
|
-
**Error Handling:**
|
|
359
|
-
- strategy: fallback
|
|
360
|
-
- fallback: Use default value or skip step
|
|
361
|
-
- retry:
|
|
362
|
-
max_attempts: 1
|
|
363
|
-
backoff: linear
|
|
364
|
-
backoff_ms: 0
|
|
365
|
-
- abort_workflow: false
|
|
366
|
-
- notification: log + warning
|
|
367
|
-
|
|
368
|
-
# Use for: AI failures, optional steps, non-critical tasks
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
---
|
|
372
|
-
|
|
373
|
-
### Strategy 3: Abort (Critical Errors)
|
|
374
|
-
|
|
375
|
-
```yaml
|
|
376
|
-
**Error Handling:**
|
|
377
|
-
- strategy: abort
|
|
378
|
-
- retry:
|
|
379
|
-
max_attempts: 2
|
|
380
|
-
backoff: linear
|
|
381
|
-
backoff_ms: 500
|
|
382
|
-
- abort_workflow: true
|
|
383
|
-
- notification: log + email + slack
|
|
384
|
-
|
|
385
|
-
# Use for: Missing config, invalid brand_id, template not found
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
### Error Strategy per Step
|
|
391
|
-
|
|
392
|
-
| Step | Strategy | Fallback/Retry | Abort Workflow? |
|
|
393
|
-
|------|----------|----------------|-----------------|
|
|
394
|
-
| 0 | abort | Retry 2x | ✅ Yes |
|
|
395
|
-
| 1 | abort | Retry 2x | ✅ Yes |
|
|
396
|
-
| 2 | abort | Retry 2x | ✅ Yes |
|
|
397
|
-
| 3 | fallback | Use ready_copy or defaults | ❌ No |
|
|
398
|
-
| 4 | fallback | Use default template | ❌ No |
|
|
399
|
-
| 5 | fallback | Use ready_copy | ❌ No |
|
|
400
|
-
| 6 | retry | Retry 3x | ❌ No |
|
|
401
|
-
| 7a | fallback | Use brand colors | ❌ No |
|
|
402
|
-
| 7b | skip | N/A (optional) | ❌ No |
|
|
403
|
-
| 7c | abort | Retry 1x | ✅ Yes (validation critical) |
|
|
404
|
-
| 8a-8c | retry | Retry 3x | ❌ No |
|
|
405
|
-
| 9 | fallback | Use placeholder image | ❌ No |
|
|
406
|
-
| 10 | retry | Retry 3x | ❌ No |
|
|
407
|
-
| 11 | fallback | Use default spacing | ❌ No |
|
|
408
|
-
| 12 | abort | Retry 2x | ✅ Yes |
|
|
409
|
-
| 13a-13b | abort | Retry 2x | ✅ Yes |
|
|
410
|
-
| 14 | abort | Retry 2x | ✅ Yes |
|
|
411
|
-
|
|
412
|
-
---
|
|
413
|
-
|
|
414
|
-
## DECISION H: Performance Optimization
|
|
415
|
-
|
|
416
|
-
### Cache Strategy
|
|
417
|
-
|
|
418
|
-
| Item | Cache Key | TTL | Rationale |
|
|
419
|
-
|------|-----------|-----|-----------|
|
|
420
|
-
| Format Config | `format_${format_id}_${orientation}` | Infinite | Never changes |
|
|
421
|
-
| Brand Config | `brand_${brand_id}` | 1 hour | Might update |
|
|
422
|
-
| Design Tokens | `tokens_${format_id}` | Infinite | Per format, static |
|
|
423
|
-
| Templates | `template_${template_id}_v${version}` | Infinite | Versioned |
|
|
424
|
-
|
|
425
|
-
### Early Exit Strategy
|
|
426
|
-
|
|
427
|
-
| Step | Skippable When | Savings |
|
|
428
|
-
|------|----------------|---------|
|
|
429
|
-
| 3 | `ready_copy=true` | ~4s, $0.0025 |
|
|
430
|
-
| 4 | `template_id` provided | ~3s, $0.0003 |
|
|
431
|
-
| 5 | `ready_copy=true` | ~5s, $0.005 |
|
|
432
|
-
| 7a | `ready_copy=true` | ~2s, $0.003 |
|
|
433
|
-
| 7b | `urgencyLevel!='high'` | ~2s, $0.003 |
|
|
434
|
-
| 11 | `faces.length=0` (potential) | ~1s, $0.001 |
|
|
435
|
-
|
|
436
|
-
**Ready Copy Mode Total Savings:** ~16s, $0.0145 per ad
|
|
437
|
-
|
|
438
|
-
---
|
|
439
|
-
|
|
440
|
-
## DECISION I: Molecule Layer Addition
|
|
441
|
-
|
|
442
|
-
### NEW: Step 8a (Text Group Molecule)
|
|
443
|
-
|
|
444
|
-
```yaml
|
|
445
|
-
#### Step 8a: Compose Text Group (Molecule)
|
|
446
|
-
|
|
447
|
-
task: composeTextGroup()
|
|
448
|
-
responsável: Layout Composer
|
|
449
|
-
responsavel_type: Agente
|
|
450
|
-
atomic_layer: Molecule
|
|
451
|
-
|
|
452
|
-
**Entrada:**
|
|
453
|
-
- campo: typography
|
|
454
|
-
tipo: object { title, body, cta }
|
|
455
|
-
origem: Step 6
|
|
456
|
-
obrigatório: true
|
|
457
|
-
|
|
458
|
-
**Saída:**
|
|
459
|
-
- campo: textGroupMolecule
|
|
460
|
-
tipo: object { title, body, cta, groupType: "vertical_stack" }
|
|
461
|
-
destino: Step 8c
|
|
462
|
-
persistido: true
|
|
463
|
-
|
|
464
|
-
**Rationale:** Text group is reusable across templates. Different templates (hero-overlay, split-screen, minimal) can use SAME text group molecule.
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
### NEW: Step 8b (Action Group Molecule)
|
|
470
|
-
|
|
471
|
-
```yaml
|
|
472
|
-
#### Step 8b: Compose Action Group (Molecule)
|
|
473
|
-
|
|
474
|
-
task: composeActionGroup()
|
|
475
|
-
responsável: Layout Composer
|
|
476
|
-
responsavel_type: Agente
|
|
477
|
-
atomic_layer: Molecule
|
|
478
|
-
|
|
479
|
-
**Entrada:**
|
|
480
|
-
- campo: ctaComponent
|
|
481
|
-
tipo: object { text, style, colors }
|
|
482
|
-
origem: Step 7a
|
|
483
|
-
obrigatório: true
|
|
484
|
-
|
|
485
|
-
- campo: badgeComponent
|
|
486
|
-
tipo: object { text, style, colors } | null
|
|
487
|
-
origem: Step 7b
|
|
488
|
-
obrigatório: false
|
|
489
|
-
|
|
490
|
-
**Saída:**
|
|
491
|
-
- campo: actionGroupMolecule
|
|
492
|
-
tipo: object { cta, badge, groupType: "stacked_with_badge" | "cta_only" }
|
|
493
|
-
destino: Step 8c
|
|
494
|
-
persistido: true
|
|
495
|
-
|
|
496
|
-
**Skippable When:** badgeComponent=null (optional molecule)
|
|
497
|
-
|
|
498
|
-
**Rationale:** Action group (CTA + optional Badge) is a common pattern across ad templates.
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
---
|
|
502
|
-
|
|
503
|
-
## Summary: v3.0 vs v2.0
|
|
504
|
-
|
|
505
|
-
| Aspect | v2.0 | v3.0 | Improvement |
|
|
506
|
-
|--------|------|------|-------------|
|
|
507
|
-
| **Steps** | 14 | 19 | +35% granularity |
|
|
508
|
-
| **Atomic Design Layers** | Implicit | Explicit | +100% clarity |
|
|
509
|
-
| **Executor Types Defined** | 0% | 100% | All steps typed |
|
|
510
|
-
| **Checklists Structured** | 0% | 100% | Pre/post/acceptance |
|
|
511
|
-
| **Molecule Layer** | Missing | Added | +Reusability |
|
|
512
|
-
| **Parallelization** | 0 groups | 4 groups | ~4.6s savings |
|
|
513
|
-
| **Error Handling** | Implicit | Explicit | +Robustness |
|
|
514
|
-
| **Performance Tracking** | Missing | Complete | +Observability |
|
|
515
|
-
| **Naming Consistency** | 5/10 | 10/10 | +Clarity |
|
|
516
|
-
| **Testability** | 4/10 | 9/10 | +Isolation |
|
|
517
|
-
|
|
518
|
-
---
|
|
519
|
-
|
|
520
|
-
**END OF V3 ARCHITECTURAL DECISIONS**
|
|
521
|
-
|
|
522
|
-
**Next:** Generate WORKFLOW-COMPLETE-CONSOLIDATED-V3.md
|
|
523
|
-
|
|
1
|
+
# V3.0 Architectural Decisions Summary
|
|
2
|
+
|
|
3
|
+
**Date:** 2025-11-13
|
|
4
|
+
**Version:** 3.0.0
|
|
5
|
+
**Status:** Standard
|
|
6
|
+
**Author:** Brad Frost Cognitive Clone
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## DECISION A: Naming Conventions
|
|
11
|
+
|
|
12
|
+
### JSON/JavaScript: camelCase
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
// ✅ CORRECT
|
|
16
|
+
{
|
|
17
|
+
adAnalysis: { ... },
|
|
18
|
+
formatConfig: { ... },
|
|
19
|
+
brandColors: { ... }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ❌ WRONG
|
|
23
|
+
{
|
|
24
|
+
ad_analysis: { ... },
|
|
25
|
+
format-config: { ... }
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### CSS: kebab-case
|
|
30
|
+
|
|
31
|
+
```css
|
|
32
|
+
/* ✅ CORRECT */
|
|
33
|
+
.content-area { }
|
|
34
|
+
--content-padding-top: 50px;
|
|
35
|
+
--spacing-md: 200px;
|
|
36
|
+
|
|
37
|
+
/* ❌ WRONG */
|
|
38
|
+
.contentArea { }
|
|
39
|
+
--content_padding_top: 50px;
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Database: snake_case
|
|
43
|
+
|
|
44
|
+
```sql
|
|
45
|
+
-- ✅ CORRECT
|
|
46
|
+
tasks.responsavel_type
|
|
47
|
+
workflow_executions.started_at
|
|
48
|
+
|
|
49
|
+
-- ❌ WRONG
|
|
50
|
+
tasks.responsavelType
|
|
51
|
+
workflow_executions.startedAt
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Filenames: kebab-case
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
✅ CORRECT: design-cta-component.md, analyze-ad-brief.md
|
|
58
|
+
❌ WRONG: designCTAComponent.md, analyze_ad_brief.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## DECISION B: Phase Reorganization
|
|
64
|
+
|
|
65
|
+
### v2.0 Structure (7 fases, confusing)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
FASE 0: Initialization & Configuration
|
|
69
|
+
FASE 1: Content Analysis & Planning
|
|
70
|
+
FASE 2: Content Creation
|
|
71
|
+
FASE 3: Component Design
|
|
72
|
+
FASE 4: Layout Composition
|
|
73
|
+
FASE 5: Visual Selection & Positioning
|
|
74
|
+
FASE 6: Rendering & Export
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### v3.0 Structure (6 fases, Atomic Design aligned)
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
FASE 0: Configuration & Initialization (Setup)
|
|
81
|
+
Steps: 0, 1, 2, 12
|
|
82
|
+
|
|
83
|
+
FASE 1: Content Planning (Strategy)
|
|
84
|
+
Steps: 3, 4, 5, 6
|
|
85
|
+
|
|
86
|
+
FASE 2: Atoms Creation (Base Components)
|
|
87
|
+
Steps: 7a, 7b, 7c
|
|
88
|
+
|
|
89
|
+
FASE 3: Molecules & Organisms (Composition)
|
|
90
|
+
Steps: 8a, 8b, 8c
|
|
91
|
+
|
|
92
|
+
FASE 4: Media & Layout (Assets & Positioning)
|
|
93
|
+
Steps: 9, 10, 11
|
|
94
|
+
|
|
95
|
+
FASE 5: Template & Page (Rendering)
|
|
96
|
+
Steps: 13a, 13b, 14
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Rationale:** Each phase maps to Atomic Design layer or functional stage.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## DECISION C: Step Renumbering
|
|
104
|
+
|
|
105
|
+
### v2.0 → v3.0 Mapping
|
|
106
|
+
|
|
107
|
+
| v2.0 | v3.0 | Name | Breaking? |
|
|
108
|
+
|------|------|------|-----------|
|
|
109
|
+
| 0 | 0 | Initialize Orchestrator | ❌ No |
|
|
110
|
+
| 1 | 1 | Load Format Configuration | ❌ No |
|
|
111
|
+
| 2 | 2 | Load Brand Configuration | ❌ No |
|
|
112
|
+
| 3 | 3 | Analyze Brief | ❌ No |
|
|
113
|
+
| 4 | 4 | Select Ad Template | ❌ No |
|
|
114
|
+
| 5 | 5 | Craft Ad Copy | ❌ No |
|
|
115
|
+
| 6 | 6 | Apply Typography | ❌ No |
|
|
116
|
+
| **7** | **7a, 7b, 7c** | **Design CTA, Badge, Validate** | ✅ **YES** |
|
|
117
|
+
| **8** | **8a, 8b, 8c** | **Text Group, Action Group, Content Area** | ✅ **YES** |
|
|
118
|
+
| 9 | 9 | Select Image | ❌ No |
|
|
119
|
+
| 10 | 10 | Detect Faces | ❌ No |
|
|
120
|
+
| 11 | 11 | Determine Optimal Positioning | ❌ No |
|
|
121
|
+
| **12** | **12** | **Load Design Tokens (moved to FASE 0)** | ⚠️ **Phase change** |
|
|
122
|
+
| **13** | **13a, 13b** | **Inject CSS, Render HTML** | ✅ **YES** |
|
|
123
|
+
| 14 | 14 | Export to PNG | ❌ No |
|
|
124
|
+
|
|
125
|
+
**Total: 14 steps → 19 steps** (more granular, more testable)
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## DECISION D: Executor Mapping per Step
|
|
130
|
+
|
|
131
|
+
| Step | Task | Executor | Conditional? | Rationale |
|
|
132
|
+
|------|------|----------|--------------|-----------|
|
|
133
|
+
| 0 | Initialize | **Worker** | ❌ No | Deterministic validation |
|
|
134
|
+
| 1 | Load Format | **Worker** | ❌ No | File read + calculation |
|
|
135
|
+
| 2 | Load Brand | **Worker** | ❌ No | File read + validation |
|
|
136
|
+
| 3 | Analyze Brief | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, skip if ready_copy |
|
|
137
|
+
| 4 | Select Template | **Agente** / **Worker** | ✅ Yes (template_id) | AI if not specified, skip if provided |
|
|
138
|
+
| 5 | Craft Copy | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, passthrough if ready_copy |
|
|
139
|
+
| 6 | Apply Typography | **Agente** | ❌ No | AI decides transformations |
|
|
140
|
+
| 7a | Design CTA | **Agente** / **Worker** | ✅ Yes (ready_copy) | AI if full gen, defaults if ready_copy |
|
|
141
|
+
| 7b | Design Badge | **Agente** / **Worker** | ✅ Yes (urgency) | AI if high urgency, skip if low |
|
|
142
|
+
| 7c | Validate Components | **Clone** | ❌ No | Brad Frost validates Atomic Design |
|
|
143
|
+
| 8a | Compose Text Group | **Agente** | ❌ No | AI groups atoms into molecule |
|
|
144
|
+
| 8b | Compose Action Group | **Agente** | ⚠️ Optional | Only if badge exists |
|
|
145
|
+
| 8c | Compose Content Area | **Agente** | ❌ No | AI composes organism |
|
|
146
|
+
| 9 | Select Image | **Agente** | ❌ No | AI semantic search |
|
|
147
|
+
| 10 | Detect Faces | **Agente** | ❌ No | External AI API (Gemini Vision) |
|
|
148
|
+
| 11 | Determine Positioning | **Agente** / **Worker** | ✅ Yes (faces?) | AI if complex, heuristics if simple |
|
|
149
|
+
| 12 | Load Design Tokens | **Worker** | ❌ No | Parse CSS file |
|
|
150
|
+
| 13a | Inject CSS Variables | **Worker** | ❌ No | Template injection |
|
|
151
|
+
| 13b | Render HTML | **Worker** | ❌ No | Handlebars compilation |
|
|
152
|
+
| 14 | Export PNG | **Worker** | ❌ No | Puppeteer screenshot |
|
|
153
|
+
|
|
154
|
+
**Conditional Logic Summary:**
|
|
155
|
+
|
|
156
|
+
```yaml
|
|
157
|
+
Step 3 (Analyze Brief):
|
|
158
|
+
if ready_copy=true: Worker (skip AI)
|
|
159
|
+
else: Agente (AI analysis)
|
|
160
|
+
|
|
161
|
+
Step 4 (Select Template):
|
|
162
|
+
if template_id provided: Worker (use provided)
|
|
163
|
+
else if ready_copy=true: Agente (AI with ready_copy context)
|
|
164
|
+
else: Agente (AI with brief analysis)
|
|
165
|
+
|
|
166
|
+
Step 5 (Craft Copy):
|
|
167
|
+
if ready_copy=true: Worker (passthrough)
|
|
168
|
+
else: Agente (AI generation)
|
|
169
|
+
|
|
170
|
+
Step 7a (Design CTA):
|
|
171
|
+
if ready_copy=true: Worker (brand colors)
|
|
172
|
+
else: Agente (AI design)
|
|
173
|
+
|
|
174
|
+
Step 7b (Design Badge):
|
|
175
|
+
if urgencyLevel=high: Agente (design badge)
|
|
176
|
+
else: skip (no badge)
|
|
177
|
+
|
|
178
|
+
Step 11 (Positioning):
|
|
179
|
+
if faces.length > 0: Agente (complex positioning)
|
|
180
|
+
else: Worker (default spacing)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## DECISION E: Separation of Concerns Fixes
|
|
186
|
+
|
|
187
|
+
### Fix 1: Step 7 → 7a, 7b, 7c
|
|
188
|
+
|
|
189
|
+
**Problem:** Step 7 does THREE things (design CTA + design badge + validate)
|
|
190
|
+
|
|
191
|
+
**Solution:**
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
Step 7a: Design CTA Component (Atom)
|
|
195
|
+
responsavel_type: Agente | Worker
|
|
196
|
+
atomic_layer: Atom
|
|
197
|
+
output: ctaComponent { text, style, colors }
|
|
198
|
+
|
|
199
|
+
Step 7b: Design Badge Component (Atom)
|
|
200
|
+
responsavel_type: Agente | Worker
|
|
201
|
+
atomic_layer: Atom
|
|
202
|
+
output: badgeComponent { text, style, colors } | null
|
|
203
|
+
|
|
204
|
+
Step 7c: Validate Components (Post-condition)
|
|
205
|
+
responsavel_type: Clone (Brad Frost)
|
|
206
|
+
atomic_layer: Atom
|
|
207
|
+
output: validation_result { valid, violations }
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### Fix 2: Step 8 → 8a, 8b, 8c
|
|
213
|
+
|
|
214
|
+
**Problem:** Step 8 skips Molecule layer and conflates Organism + Positioning
|
|
215
|
+
|
|
216
|
+
**Solution:**
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
Step 8a: Compose Text Group (Molecule)
|
|
220
|
+
responsavel_type: Agente
|
|
221
|
+
atomic_layer: Molecule
|
|
222
|
+
input: typography.title, typography.body, ctaComponent
|
|
223
|
+
output: textGroupMolecule { title, body, cta }
|
|
224
|
+
|
|
225
|
+
Step 8b: Compose Action Group (Molecule) (optional)
|
|
226
|
+
responsavel_type: Agente
|
|
227
|
+
atomic_layer: Molecule
|
|
228
|
+
input: ctaComponent, badgeComponent
|
|
229
|
+
output: actionGroupMolecule { cta, badge }
|
|
230
|
+
skippable_when: [badgeComponent=null]
|
|
231
|
+
|
|
232
|
+
Step 8c: Compose Content Area (Organism)
|
|
233
|
+
responsavel_type: Agente
|
|
234
|
+
atomic_layer: Organism
|
|
235
|
+
input: textGroupMolecule, actionGroupMolecule, imageUrl, brand
|
|
236
|
+
output: contentAreaOrganism { structure, alignment }
|
|
237
|
+
# NO positioning data!
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### Fix 3: Step 13 → 13a, 13b
|
|
243
|
+
|
|
244
|
+
**Problem:** Step 13 does THREE things (inject CSS + render HTML + populate)
|
|
245
|
+
|
|
246
|
+
**Solution:**
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
Step 13a: Inject CSS Variables
|
|
250
|
+
responsavel_type: Worker
|
|
251
|
+
atomic_layer: Template
|
|
252
|
+
input: positioning, designTokens, formatConfig
|
|
253
|
+
output: cssVars object
|
|
254
|
+
|
|
255
|
+
Step 13b: Render HTML Template
|
|
256
|
+
responsavel_type: Worker
|
|
257
|
+
atomic_layer: Template
|
|
258
|
+
input: templateId, cssVars, contentAreaOrganism, adSpec
|
|
259
|
+
output: htmlContent (final HTML string)
|
|
260
|
+
# Handlebars compilation includes population
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## DECISION F: Parallelization Opportunities
|
|
266
|
+
|
|
267
|
+
### Parallel Group 1: Configuration (Steps 1 + 2)
|
|
268
|
+
|
|
269
|
+
```javascript
|
|
270
|
+
const [formatConfig, brand] = await Promise.all([
|
|
271
|
+
loadFormatConfig(format_id), // Step 1
|
|
272
|
+
loadBrand(brand_id) // Step 2
|
|
273
|
+
]);
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Savings:** ~100ms
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### Parallel Group 2: Template + Image (Steps 4 + 9)
|
|
281
|
+
|
|
282
|
+
```javascript
|
|
283
|
+
// After Step 5 (Craft Copy)
|
|
284
|
+
const [selectedTemplate, visualPlan] = await Promise.all([
|
|
285
|
+
selectTemplate(adAnalysis, brand), // Step 4
|
|
286
|
+
selectImage(adAnalysis, adCopy) // Step 9
|
|
287
|
+
]);
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Savings:** ~2-3 seconds
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
### Parallel Group 3: CTA + Badge (Steps 7a + 7b)
|
|
295
|
+
|
|
296
|
+
```javascript
|
|
297
|
+
const [ctaComponent, badgeComponent] = await Promise.all([
|
|
298
|
+
designCTAComponent(typography.cta, brand), // Step 7a
|
|
299
|
+
urgencyLevel === 'high'
|
|
300
|
+
? designBadgeComponent(adAnalysis, brand) // Step 7b
|
|
301
|
+
: Promise.resolve(null)
|
|
302
|
+
]);
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Savings:** ~1-2 seconds (if both run)
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
### Parallel Group 4: Positioning + Tokens (Steps 11 + 12)
|
|
310
|
+
|
|
311
|
+
**BETTER:** Move Step 12 EARLIER (after Step 1) and cache globally
|
|
312
|
+
|
|
313
|
+
```javascript
|
|
314
|
+
// Step 1 completion → immediately load tokens
|
|
315
|
+
const formatConfig = await loadFormatConfig(format_id);
|
|
316
|
+
const designTokens = await loadDesignTokens(formatConfig); // Cache!
|
|
317
|
+
|
|
318
|
+
// Later, Step 11 runs alone (no parallelization needed)
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Savings:** ~500ms (one-time load, cached for all subsequent ads)
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### Total Parallelization Savings
|
|
326
|
+
|
|
327
|
+
- Group 1: ~100ms
|
|
328
|
+
- Group 2: ~2500ms
|
|
329
|
+
- Group 3: ~1500ms (conditional)
|
|
330
|
+
- Group 4: ~500ms (via caching)
|
|
331
|
+
|
|
332
|
+
**Total: ~4.6 seconds (30-40% faster)**
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## DECISION G: Error Handling Strategy
|
|
337
|
+
|
|
338
|
+
### Strategy 1: Retry (Transient Errors)
|
|
339
|
+
|
|
340
|
+
```yaml
|
|
341
|
+
**Error Handling:**
|
|
342
|
+
- strategy: retry
|
|
343
|
+
- retry:
|
|
344
|
+
max_attempts: 3
|
|
345
|
+
backoff: exponential
|
|
346
|
+
backoff_ms: 1000 # 1s, 2s, 4s
|
|
347
|
+
- abort_workflow: false
|
|
348
|
+
- notification: log
|
|
349
|
+
|
|
350
|
+
# Use for: API timeouts, rate limits, network errors
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
### Strategy 2: Fallback (Recoverable Errors)
|
|
356
|
+
|
|
357
|
+
```yaml
|
|
358
|
+
**Error Handling:**
|
|
359
|
+
- strategy: fallback
|
|
360
|
+
- fallback: Use default value or skip step
|
|
361
|
+
- retry:
|
|
362
|
+
max_attempts: 1
|
|
363
|
+
backoff: linear
|
|
364
|
+
backoff_ms: 0
|
|
365
|
+
- abort_workflow: false
|
|
366
|
+
- notification: log + warning
|
|
367
|
+
|
|
368
|
+
# Use for: AI failures, optional steps, non-critical tasks
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### Strategy 3: Abort (Critical Errors)
|
|
374
|
+
|
|
375
|
+
```yaml
|
|
376
|
+
**Error Handling:**
|
|
377
|
+
- strategy: abort
|
|
378
|
+
- retry:
|
|
379
|
+
max_attempts: 2
|
|
380
|
+
backoff: linear
|
|
381
|
+
backoff_ms: 500
|
|
382
|
+
- abort_workflow: true
|
|
383
|
+
- notification: log + email + slack
|
|
384
|
+
|
|
385
|
+
# Use for: Missing config, invalid brand_id, template not found
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
### Error Strategy per Step
|
|
391
|
+
|
|
392
|
+
| Step | Strategy | Fallback/Retry | Abort Workflow? |
|
|
393
|
+
|------|----------|----------------|-----------------|
|
|
394
|
+
| 0 | abort | Retry 2x | ✅ Yes |
|
|
395
|
+
| 1 | abort | Retry 2x | ✅ Yes |
|
|
396
|
+
| 2 | abort | Retry 2x | ✅ Yes |
|
|
397
|
+
| 3 | fallback | Use ready_copy or defaults | ❌ No |
|
|
398
|
+
| 4 | fallback | Use default template | ❌ No |
|
|
399
|
+
| 5 | fallback | Use ready_copy | ❌ No |
|
|
400
|
+
| 6 | retry | Retry 3x | ❌ No |
|
|
401
|
+
| 7a | fallback | Use brand colors | ❌ No |
|
|
402
|
+
| 7b | skip | N/A (optional) | ❌ No |
|
|
403
|
+
| 7c | abort | Retry 1x | ✅ Yes (validation critical) |
|
|
404
|
+
| 8a-8c | retry | Retry 3x | ❌ No |
|
|
405
|
+
| 9 | fallback | Use placeholder image | ❌ No |
|
|
406
|
+
| 10 | retry | Retry 3x | ❌ No |
|
|
407
|
+
| 11 | fallback | Use default spacing | ❌ No |
|
|
408
|
+
| 12 | abort | Retry 2x | ✅ Yes |
|
|
409
|
+
| 13a-13b | abort | Retry 2x | ✅ Yes |
|
|
410
|
+
| 14 | abort | Retry 2x | ✅ Yes |
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## DECISION H: Performance Optimization
|
|
415
|
+
|
|
416
|
+
### Cache Strategy
|
|
417
|
+
|
|
418
|
+
| Item | Cache Key | TTL | Rationale |
|
|
419
|
+
|------|-----------|-----|-----------|
|
|
420
|
+
| Format Config | `format_${format_id}_${orientation}` | Infinite | Never changes |
|
|
421
|
+
| Brand Config | `brand_${brand_id}` | 1 hour | Might update |
|
|
422
|
+
| Design Tokens | `tokens_${format_id}` | Infinite | Per format, static |
|
|
423
|
+
| Templates | `template_${template_id}_v${version}` | Infinite | Versioned |
|
|
424
|
+
|
|
425
|
+
### Early Exit Strategy
|
|
426
|
+
|
|
427
|
+
| Step | Skippable When | Savings |
|
|
428
|
+
|------|----------------|---------|
|
|
429
|
+
| 3 | `ready_copy=true` | ~4s, $0.0025 |
|
|
430
|
+
| 4 | `template_id` provided | ~3s, $0.0003 |
|
|
431
|
+
| 5 | `ready_copy=true` | ~5s, $0.005 |
|
|
432
|
+
| 7a | `ready_copy=true` | ~2s, $0.003 |
|
|
433
|
+
| 7b | `urgencyLevel!='high'` | ~2s, $0.003 |
|
|
434
|
+
| 11 | `faces.length=0` (potential) | ~1s, $0.001 |
|
|
435
|
+
|
|
436
|
+
**Ready Copy Mode Total Savings:** ~16s, $0.0145 per ad
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## DECISION I: Molecule Layer Addition
|
|
441
|
+
|
|
442
|
+
### NEW: Step 8a (Text Group Molecule)
|
|
443
|
+
|
|
444
|
+
```yaml
|
|
445
|
+
#### Step 8a: Compose Text Group (Molecule)
|
|
446
|
+
|
|
447
|
+
task: composeTextGroup()
|
|
448
|
+
responsável: Layout Composer
|
|
449
|
+
responsavel_type: Agente
|
|
450
|
+
atomic_layer: Molecule
|
|
451
|
+
|
|
452
|
+
**Entrada:**
|
|
453
|
+
- campo: typography
|
|
454
|
+
tipo: object { title, body, cta }
|
|
455
|
+
origem: Step 6
|
|
456
|
+
obrigatório: true
|
|
457
|
+
|
|
458
|
+
**Saída:**
|
|
459
|
+
- campo: textGroupMolecule
|
|
460
|
+
tipo: object { title, body, cta, groupType: "vertical_stack" }
|
|
461
|
+
destino: Step 8c
|
|
462
|
+
persistido: true
|
|
463
|
+
|
|
464
|
+
**Rationale:** Text group is reusable across templates. Different templates (hero-overlay, split-screen, minimal) can use SAME text group molecule.
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
### NEW: Step 8b (Action Group Molecule)
|
|
470
|
+
|
|
471
|
+
```yaml
|
|
472
|
+
#### Step 8b: Compose Action Group (Molecule)
|
|
473
|
+
|
|
474
|
+
task: composeActionGroup()
|
|
475
|
+
responsável: Layout Composer
|
|
476
|
+
responsavel_type: Agente
|
|
477
|
+
atomic_layer: Molecule
|
|
478
|
+
|
|
479
|
+
**Entrada:**
|
|
480
|
+
- campo: ctaComponent
|
|
481
|
+
tipo: object { text, style, colors }
|
|
482
|
+
origem: Step 7a
|
|
483
|
+
obrigatório: true
|
|
484
|
+
|
|
485
|
+
- campo: badgeComponent
|
|
486
|
+
tipo: object { text, style, colors } | null
|
|
487
|
+
origem: Step 7b
|
|
488
|
+
obrigatório: false
|
|
489
|
+
|
|
490
|
+
**Saída:**
|
|
491
|
+
- campo: actionGroupMolecule
|
|
492
|
+
tipo: object { cta, badge, groupType: "stacked_with_badge" | "cta_only" }
|
|
493
|
+
destino: Step 8c
|
|
494
|
+
persistido: true
|
|
495
|
+
|
|
496
|
+
**Skippable When:** badgeComponent=null (optional molecule)
|
|
497
|
+
|
|
498
|
+
**Rationale:** Action group (CTA + optional Badge) is a common pattern across ad templates.
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## Summary: v3.0 vs v2.0
|
|
504
|
+
|
|
505
|
+
| Aspect | v2.0 | v3.0 | Improvement |
|
|
506
|
+
|--------|------|------|-------------|
|
|
507
|
+
| **Steps** | 14 | 19 | +35% granularity |
|
|
508
|
+
| **Atomic Design Layers** | Implicit | Explicit | +100% clarity |
|
|
509
|
+
| **Executor Types Defined** | 0% | 100% | All steps typed |
|
|
510
|
+
| **Checklists Structured** | 0% | 100% | Pre/post/acceptance |
|
|
511
|
+
| **Molecule Layer** | Missing | Added | +Reusability |
|
|
512
|
+
| **Parallelization** | 0 groups | 4 groups | ~4.6s savings |
|
|
513
|
+
| **Error Handling** | Implicit | Explicit | +Robustness |
|
|
514
|
+
| **Performance Tracking** | Missing | Complete | +Observability |
|
|
515
|
+
| **Naming Consistency** | 5/10 | 10/10 | +Clarity |
|
|
516
|
+
| **Testability** | 4/10 | 9/10 | +Isolation |
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
**END OF V3 ARCHITECTURAL DECISIONS**
|
|
521
|
+
|
|
522
|
+
**Next:** Generate WORKFLOW-COMPLETE-CONSOLIDATED-V3.md
|
|
523
|
+
|