aios-core 4.2.13 → 4.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/.aios-core/core/code-intel/helpers/dev-helper.js +206 -0
  2. package/.aios-core/core/registry/registry-schema.json +166 -166
  3. package/.aios-core/core/synapse/diagnostics/collectors/hook-collector.js +3 -3
  4. package/.aios-core/data/entity-registry.yaml +27 -0
  5. package/.aios-core/development/scripts/approval-workflow.js +642 -642
  6. package/.aios-core/development/scripts/backup-manager.js +606 -606
  7. package/.aios-core/development/scripts/branch-manager.js +389 -389
  8. package/.aios-core/development/scripts/code-quality-improver.js +1311 -1311
  9. package/.aios-core/development/scripts/commit-message-generator.js +849 -849
  10. package/.aios-core/development/scripts/conflict-resolver.js +674 -674
  11. package/.aios-core/development/scripts/dependency-analyzer.js +637 -637
  12. package/.aios-core/development/scripts/diff-generator.js +351 -351
  13. package/.aios-core/development/scripts/elicitation-engine.js +384 -384
  14. package/.aios-core/development/scripts/elicitation-session-manager.js +299 -299
  15. package/.aios-core/development/scripts/git-wrapper.js +461 -461
  16. package/.aios-core/development/scripts/manifest-preview.js +244 -244
  17. package/.aios-core/development/scripts/metrics-tracker.js +775 -775
  18. package/.aios-core/development/scripts/modification-validator.js +554 -554
  19. package/.aios-core/development/scripts/pattern-learner.js +1224 -1224
  20. package/.aios-core/development/scripts/performance-analyzer.js +757 -757
  21. package/.aios-core/development/scripts/refactoring-suggester.js +1138 -1138
  22. package/.aios-core/development/scripts/rollback-handler.js +530 -530
  23. package/.aios-core/development/scripts/security-checker.js +358 -358
  24. package/.aios-core/development/scripts/template-engine.js +239 -239
  25. package/.aios-core/development/scripts/template-validator.js +278 -278
  26. package/.aios-core/development/scripts/test-generator.js +843 -843
  27. package/.aios-core/development/scripts/transaction-manager.js +589 -589
  28. package/.aios-core/development/scripts/usage-tracker.js +673 -673
  29. package/.aios-core/development/scripts/validate-filenames.js +226 -226
  30. package/.aios-core/development/scripts/version-tracker.js +526 -526
  31. package/.aios-core/development/scripts/yaml-validator.js +396 -396
  32. package/.aios-core/development/tasks/build-autonomous.md +10 -4
  33. package/.aios-core/development/tasks/create-service.md +23 -0
  34. package/.aios-core/development/tasks/dev-develop-story.md +12 -6
  35. package/.aios-core/development/tasks/dev-suggest-refactoring.md +7 -1
  36. package/.aios-core/development/tasks/publish-npm.md +3 -3
  37. package/.aios-core/hooks/unified/README.md +1 -1
  38. package/.aios-core/install-manifest.yaml +65 -61
  39. package/.aios-core/manifests/schema/manifest-schema.json +190 -190
  40. package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
  41. package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
  42. package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
  43. package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
  44. package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
  45. package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
  46. package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
  47. package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
  48. package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
  49. package/.aios-core/product/templates/eslintrc-security.json +32 -32
  50. package/.aios-core/product/templates/github-actions-cd.yml +212 -212
  51. package/.aios-core/product/templates/github-actions-ci.yml +172 -172
  52. package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
  53. package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
  54. package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
  55. package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
  56. package/README.en.md +747 -0
  57. package/README.md +4 -2
  58. package/bin/aios.js +7 -4
  59. package/package.json +1 -1
  60. package/packages/aios-pro-cli/src/recover.js +1 -1
  61. package/packages/installer/src/wizard/ide-config-generator.js +6 -6
  62. package/packages/installer/src/wizard/pro-setup.js +3 -3
  63. package/pro/license/degradation.js +220 -220
  64. package/pro/license/errors.js +450 -450
  65. package/pro/license/feature-gate.js +354 -354
  66. package/pro/license/index.js +181 -181
  67. package/pro/license/license-cache.js +523 -523
  68. package/pro/license/license-crypto.js +303 -303
  69. package/scripts/package-synapse.js +5 -5
  70. package/scripts/validate-package-completeness.js +3 -3
  71. package/.aios-core/.session/current-session.json +0 -14
  72. package/.aios-core/data/registry-update-log.jsonl +0 -191
  73. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +0 -335
  74. package/.aios-core/docs/component-creation-guide.md +0 -458
  75. package/.aios-core/docs/session-update-pattern.md +0 -307
  76. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +0 -1963
  77. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +0 -1190
  78. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +0 -439
  79. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +0 -5398
  80. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +0 -523
  81. package/.aios-core/docs/template-syntax.md +0 -267
  82. package/.aios-core/docs/troubleshooting-guide.md +0 -625
  83. package/.aios-core/infrastructure/tests/utilities-audit-results.json +0 -501
  84. package/.aios-core/manifests/agents.csv +0 -29
  85. package/.aios-core/manifests/tasks.csv +0 -198
  86. package/.aios-core/manifests/workers.csv +0 -204
  87. package/.claude/rules/agent-authority.md +0 -105
  88. package/.claude/rules/coderabbit-integration.md +0 -93
  89. package/.claude/rules/ids-principles.md +0 -112
  90. package/.claude/rules/story-lifecycle.md +0 -139
  91. package/.claude/rules/workflow-execution.md +0 -150
  92. package/scripts/glue/README.md +0 -355
  93. package/scripts/glue/compose-agent-prompt.cjs +0 -362
  94. /package/.claude/hooks/{precompact-session-digest.js → precompact-session-digest.cjs} +0 -0
  95. /package/.claude/hooks/{synapse-engine.js → synapse-engine.cjs} +0 -0
@@ -1,523 +0,0 @@
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
-