drm-core 1.0.0 → 1.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/cli/index.js +396 -201
- package/package.json +1 -1
- package/scaffold/.drm-core/checklists/campanha-pre-launch.md +49 -0
- package/scaffold/.drm-core/checklists/compliance-google.md +46 -0
- package/scaffold/.drm-core/checklists/compliance-meta.md +49 -0
- package/scaffold/.drm-core/checklists/compliance-tiktok.md +46 -0
- package/scaffold/.drm-core/checklists/compliance-vsl.md +48 -0
- package/scaffold/.drm-core/checklists/copy-quality-gate.md +55 -0
- package/scaffold/.drm-core/checklists/funil-pre-launch.md +66 -0
- package/scaffold/.drm-core/checklists/whatsapp-compliance.md +49 -0
- package/scaffold/.drm-core/data/agent-config.yaml +220 -0
- package/scaffold/.drm-core/data/workflow-chains.yaml +374 -0
- package/scaffold/.drm-core/tasks/analise/diagnostico-funil.md +314 -0
- package/scaffold/.drm-core/tasks/compliance/revisar-ad-meta.md +242 -0
- package/scaffold/.drm-core/tasks/copy/escrever-ad-meta.md +191 -0
- package/scaffold/.drm-core/tasks/copy/escrever-email-sequence.md +237 -0
- package/scaffold/.drm-core/tasks/copy/escrever-msgs-whatsapp.md +220 -0
- package/scaffold/.drm-core/tasks/copy/escrever-pagina-vendas.md +276 -0
- package/scaffold/.drm-core/tasks/copy/escrever-vsl-full.md +235 -0
- package/scaffold/.drm-core/tasks/direcao-criativa/criar-conceito.md +249 -0
- package/scaffold/.drm-core/tasks/direcao-criativa/validar-criativo.md +202 -0
- package/scaffold/.drm-core/tasks/estrategia/criar-briefing.md +274 -0
- package/scaffold/.drm-core/tasks/estrategia/pesquisa-mercado.md +200 -0
- package/scaffold/.drm-core/tasks/funil/arquitetar-funil-vsl.md +228 -0
- package/scaffold/.drm-core/tasks/funil/fluxo-whatsapp-backend.md +291 -0
- package/scaffold/.drm-core/tasks/trafego/escalar-campanha.md +256 -0
- package/scaffold/.drm-core/tasks/trafego/montar-campanha-meta.md +303 -0
- package/scaffold/.drm-core/templates/ad-meta-template.md +391 -0
- package/scaffold/.drm-core/templates/avatar-template.md +468 -0
- package/scaffold/.drm-core/templates/briefing-estrategico-template.md +462 -0
- package/scaffold/.drm-core/templates/compliance-report-template.md +86 -0
- package/scaffold/.drm-core/templates/estrutura-campanha-template.md +492 -0
- package/scaffold/.drm-core/templates/funil-vsl-template.md +470 -0
- package/scaffold/.drm-core/templates/msgs-whatsapp-template.md +516 -0
- package/scaffold/.drm-core/templates/pagina-vendas-template.md +517 -0
- package/scaffold/.drm-core/templates/relatorio-template.md +313 -0
- package/scaffold/.drm-core/templates/vsl-curta-template.md +341 -0
- package/scaffold/.drm-core/templates/vsl-full-template.md +780 -0
- package/scaffold/.drm-core/templates/vsl-mini-template.md +360 -0
- package/scaffold/.drm-core/workflows/backend-whatsapp.yaml +395 -0
- package/scaffold/.drm-core/workflows/campanha-trafego.yaml +465 -0
- package/scaffold/.drm-core/workflows/copy-review-loop.yaml +333 -0
- package/scaffold/.drm-core/workflows/funil-vsl-completo.yaml +544 -0
- package/scaffold/.drm-core/workflows/lancamento-produto.yaml +402 -0
- package/scaffold/.drm-core/workflows/microlead-pipeline.yaml +408 -0
- package/scaffold/.drm-core/workflows/otimizacao-cycle.yaml +394 -0
- package/scaffold/.drm-core/workflows/reativacao-cycle.yaml +468 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# COPY REVIEW LOOP — Workflow Iterativo (Loop Max 3)
|
|
3
|
+
# Pipeline: @apolo escreve → @zeus valida → @temis compliance → loop/escala
|
|
4
|
+
# =============================================================================
|
|
5
|
+
|
|
6
|
+
workflow:
|
|
7
|
+
id: copy-review-loop
|
|
8
|
+
name: "Copy Review Loop"
|
|
9
|
+
version: "1.0"
|
|
10
|
+
description: >
|
|
11
|
+
Loop iterativo de revisao de copy com max 3 iteracoes. @apolo escreve,
|
|
12
|
+
@zeus valida usando copy-quality-gate (score 1-15), @temis revisa
|
|
13
|
+
compliance. Se score insuficiente, volta para @apolo com feedback
|
|
14
|
+
especifico. Na 3a falha, escala para @atena que decide entre
|
|
15
|
+
reescrever do zero, aprovar com ressalvas ou pivotar angulo.
|
|
16
|
+
|
|
17
|
+
trigger: manual
|
|
18
|
+
estimated_duration: "1-2 dias uteis"
|
|
19
|
+
priority: high
|
|
20
|
+
type: iterative_loop
|
|
21
|
+
|
|
22
|
+
# ---------------------------------------------------------------------------
|
|
23
|
+
# FASES
|
|
24
|
+
# ---------------------------------------------------------------------------
|
|
25
|
+
phases:
|
|
26
|
+
- phase_1: "Escrita Inicial"
|
|
27
|
+
- phase_2: "Validacao de Qualidade"
|
|
28
|
+
- phase_3: "Revisao de Compliance"
|
|
29
|
+
- phase_loop: "Iteracao de Ajustes (max 3)"
|
|
30
|
+
- phase_escalation: "Escalacao para @atena"
|
|
31
|
+
|
|
32
|
+
# ---------------------------------------------------------------------------
|
|
33
|
+
# CONFIGURACAO DO LOOP
|
|
34
|
+
# ---------------------------------------------------------------------------
|
|
35
|
+
loop_config:
|
|
36
|
+
max_iterations: 3
|
|
37
|
+
current_iteration: 0
|
|
38
|
+
loop_start_step: escrever_copy
|
|
39
|
+
loop_end_step: compliance_review
|
|
40
|
+
exit_conditions:
|
|
41
|
+
- "Score >= 10 E compliance aprovado"
|
|
42
|
+
- "max_iterations atingido (escala para @atena)"
|
|
43
|
+
state_file: "docs/copy-review/loop-state.yaml"
|
|
44
|
+
|
|
45
|
+
# ---------------------------------------------------------------------------
|
|
46
|
+
# SCORING
|
|
47
|
+
# ---------------------------------------------------------------------------
|
|
48
|
+
scoring:
|
|
49
|
+
system: "copy-quality-gate"
|
|
50
|
+
scale: "1-15"
|
|
51
|
+
dimensions:
|
|
52
|
+
- name: "Clareza"
|
|
53
|
+
weight: 1
|
|
54
|
+
description: "Mensagem clara e facilmente compreensivel"
|
|
55
|
+
- name: "Persuasao"
|
|
56
|
+
weight: 2
|
|
57
|
+
description: "Poder de convencimento e gatilhos emocionais"
|
|
58
|
+
- name: "Mecanismo"
|
|
59
|
+
weight: 2
|
|
60
|
+
description: "Mecanismo unico bem explicado e convincente"
|
|
61
|
+
- name: "Proof Elements"
|
|
62
|
+
weight: 1
|
|
63
|
+
description: "Provas sociais, dados, cases, autoridade"
|
|
64
|
+
- name: "CTA"
|
|
65
|
+
weight: 1
|
|
66
|
+
description: "Call-to-action claro, urgente e especifico"
|
|
67
|
+
- name: "Consistencia"
|
|
68
|
+
weight: 1
|
|
69
|
+
description: "Tom e narrativa consistentes do inicio ao fim"
|
|
70
|
+
- name: "Hook"
|
|
71
|
+
weight: 2
|
|
72
|
+
description: "Poder de atencao nos primeiros 30 segundos"
|
|
73
|
+
thresholds:
|
|
74
|
+
aprovado:
|
|
75
|
+
min_score: 10
|
|
76
|
+
action: "Prosseguir para compliance"
|
|
77
|
+
label: "APROVADO"
|
|
78
|
+
ajustes:
|
|
79
|
+
min_score: 7
|
|
80
|
+
max_score: 9
|
|
81
|
+
action: "Retornar para @apolo com feedback especifico"
|
|
82
|
+
label: "AJUSTES"
|
|
83
|
+
reescrever:
|
|
84
|
+
min_score: 0
|
|
85
|
+
max_score: 6
|
|
86
|
+
action: "Escalar para @atena"
|
|
87
|
+
label: "REESCREVER"
|
|
88
|
+
|
|
89
|
+
# ---------------------------------------------------------------------------
|
|
90
|
+
# SEQUENCIA DE STEPS
|
|
91
|
+
# ---------------------------------------------------------------------------
|
|
92
|
+
sequence:
|
|
93
|
+
|
|
94
|
+
# =========================================================================
|
|
95
|
+
# FASE 1 — ESCRITA INICIAL (@apolo)
|
|
96
|
+
# =========================================================================
|
|
97
|
+
- step: escrever_copy
|
|
98
|
+
phase: 1
|
|
99
|
+
agent: "@apolo"
|
|
100
|
+
action: "*escrever-copy"
|
|
101
|
+
description: >
|
|
102
|
+
Escreve a copy solicitada seguindo o briefing, posicionamento e
|
|
103
|
+
avatar definidos. Na primeira iteracao, escreve do zero. Nas
|
|
104
|
+
iteracoes subsequentes, aplica o feedback especifico do @zeus
|
|
105
|
+
sobre os pontos fracos identificados.
|
|
106
|
+
inputs:
|
|
107
|
+
- "Briefing da copy (tipo: VSL, ad, email, pagina)"
|
|
108
|
+
- "docs/estrategia/avatar-profile.md (se existir)"
|
|
109
|
+
- "docs/estrategia/posicionamento.md (se existir)"
|
|
110
|
+
- "docs/copy-review/feedback-iteration-{n}.md (se iteracao > 1)"
|
|
111
|
+
outputs:
|
|
112
|
+
- "docs/copy-review/copy-draft-v{n}.md"
|
|
113
|
+
requires: null
|
|
114
|
+
next: validar_copy
|
|
115
|
+
on_failure: "Usar template de copy padrao como base"
|
|
116
|
+
validation:
|
|
117
|
+
type: checklist
|
|
118
|
+
criteria: >
|
|
119
|
+
Copy completa conforme tipo solicitado, todas as secoes
|
|
120
|
+
presentes, mecanismo unico articulado, CTA definido.
|
|
121
|
+
iteration_behavior:
|
|
122
|
+
first_iteration: "Escrever do zero seguindo briefing"
|
|
123
|
+
subsequent_iterations: >
|
|
124
|
+
Aplicar feedback especifico de docs/copy-review/feedback-iteration-{n-1}.md.
|
|
125
|
+
Focar nas dimensoes com score mais baixo. NAO reescrever
|
|
126
|
+
secoes que ja atingiram score alto.
|
|
127
|
+
|
|
128
|
+
# =========================================================================
|
|
129
|
+
# FASE 2 — VALIDACAO DE QUALIDADE (@zeus)
|
|
130
|
+
# =========================================================================
|
|
131
|
+
- step: validar_copy
|
|
132
|
+
phase: 2
|
|
133
|
+
agent: "@zeus"
|
|
134
|
+
action: "*copy-quality-gate"
|
|
135
|
+
description: >
|
|
136
|
+
Avalia a copy usando o sistema de scoring copy-quality-gate.
|
|
137
|
+
Score de 1-15 baseado em 7 dimensoes. Gera feedback detalhado
|
|
138
|
+
e especifico para cada dimensao abaixo do esperado.
|
|
139
|
+
inputs:
|
|
140
|
+
- "docs/copy-review/copy-draft-v{n}.md"
|
|
141
|
+
- "docs/estrategia/avatar-profile.md (se existir)"
|
|
142
|
+
- "docs/estrategia/posicionamento.md (se existir)"
|
|
143
|
+
outputs:
|
|
144
|
+
- "docs/copy-review/quality-report-v{n}.md"
|
|
145
|
+
- "docs/copy-review/feedback-iteration-{n}.md (se score < 10)"
|
|
146
|
+
requires: escrever_copy
|
|
147
|
+
next: decision_gate
|
|
148
|
+
on_failure: "Gerar report com score minimo e feedback generico"
|
|
149
|
+
validation:
|
|
150
|
+
type: verdict
|
|
151
|
+
criteria: >
|
|
152
|
+
Score >= 10: APROVADO — prosseguir para compliance.
|
|
153
|
+
Score 7-9: AJUSTES — gerar feedback especifico por dimensao.
|
|
154
|
+
Score < 7: REESCREVER — escalar se 3a iteracao.
|
|
155
|
+
|
|
156
|
+
- step: decision_gate
|
|
157
|
+
phase: 2
|
|
158
|
+
agent: "@zeus"
|
|
159
|
+
action: "*decision-gate"
|
|
160
|
+
description: >
|
|
161
|
+
Ponto de decisao baseado no score e numero de iteracoes.
|
|
162
|
+
Roteia o fluxo para o proximo passo correto: compliance
|
|
163
|
+
(se aprovado), loop (se ajustes), ou escalacao (se 3a falha
|
|
164
|
+
ou score muito baixo).
|
|
165
|
+
inputs:
|
|
166
|
+
- "docs/copy-review/quality-report-v{n}.md"
|
|
167
|
+
- "Numero da iteracao atual"
|
|
168
|
+
outputs:
|
|
169
|
+
- "docs/copy-review/decision-log.md (append)"
|
|
170
|
+
requires: validar_copy
|
|
171
|
+
next: "condicional"
|
|
172
|
+
on_failure: "Escalar para @atena em caso de erro no gate"
|
|
173
|
+
validation:
|
|
174
|
+
type: routing
|
|
175
|
+
criteria: >
|
|
176
|
+
Roteamento baseado em score e iteracao.
|
|
177
|
+
routing_rules:
|
|
178
|
+
- condition: "score >= 10"
|
|
179
|
+
next: compliance_review
|
|
180
|
+
log: "APROVADO — prosseguindo para compliance"
|
|
181
|
+
- condition: "score 7-9 AND iteracao < 3"
|
|
182
|
+
next: escrever_copy
|
|
183
|
+
log: "AJUSTES — iteracao {n+1}, feedback enviado para @apolo"
|
|
184
|
+
feedback_required:
|
|
185
|
+
- "Dimensoes com score abaixo da media"
|
|
186
|
+
- "Exemplo concreto do problema"
|
|
187
|
+
- "Sugestao especifica de melhoria"
|
|
188
|
+
- "Secao exata que precisa de ajuste"
|
|
189
|
+
- condition: "score < 7 AND iteracao < 3"
|
|
190
|
+
next: escrever_copy
|
|
191
|
+
log: "REESCREVER — problemas graves identificados"
|
|
192
|
+
feedback_required:
|
|
193
|
+
- "Listagem completa de problemas"
|
|
194
|
+
- "Recomendacao de reescrita por secao"
|
|
195
|
+
- "Referencia ao briefing original"
|
|
196
|
+
- condition: "iteracao >= 3 AND score < 10"
|
|
197
|
+
next: escalacao_atena
|
|
198
|
+
log: "ESCALACAO — 3 iteracoes sem aprovacao"
|
|
199
|
+
|
|
200
|
+
# =========================================================================
|
|
201
|
+
# FASE 3 — REVISAO DE COMPLIANCE (@temis)
|
|
202
|
+
# =========================================================================
|
|
203
|
+
- step: compliance_review
|
|
204
|
+
phase: 3
|
|
205
|
+
agent: "@temis"
|
|
206
|
+
action: "*compliance-copy-review"
|
|
207
|
+
description: >
|
|
208
|
+
Revisao de compliance da copy aprovada: claims verificaveis,
|
|
209
|
+
promessas legais, disclaimers necessarios, CONAR, CDC,
|
|
210
|
+
politicas da plataforma de destino (Meta, Google, WhatsApp).
|
|
211
|
+
inputs:
|
|
212
|
+
- "docs/copy-review/copy-draft-v{n}.md (versao aprovada)"
|
|
213
|
+
- "docs/copy-review/quality-report-v{n}.md"
|
|
214
|
+
- "Plataforma de destino (Meta Ads, Google Ads, email, WhatsApp)"
|
|
215
|
+
outputs:
|
|
216
|
+
- "docs/copy-review/compliance-report.md"
|
|
217
|
+
- "docs/copy-review/copy-final.md (se aprovado)"
|
|
218
|
+
- "docs/copy-review/compliance-fixes.md (se ajustes necessarios)"
|
|
219
|
+
requires: decision_gate
|
|
220
|
+
next: finalizar_copy
|
|
221
|
+
on_failure: "Listar violacoes e retornar para @apolo corrigir"
|
|
222
|
+
validation:
|
|
223
|
+
type: verdict
|
|
224
|
+
criteria: >
|
|
225
|
+
APROVADO: Copy em compliance total — gerar copy final.
|
|
226
|
+
AJUSTES: Correcoes menores de compliance — @apolo aplica.
|
|
227
|
+
BLOQUEADO: Violacoes criticas — retornar para ajustes.
|
|
228
|
+
compliance_checks:
|
|
229
|
+
- "Claims de resultado com evidencia ou disclaimer"
|
|
230
|
+
- "Garantia conforme CDC"
|
|
231
|
+
- "Sem linguagem discriminatoria"
|
|
232
|
+
- "Politica de plataforma respeitada"
|
|
233
|
+
- "Disclaimers obrigatorios presentes"
|
|
234
|
+
|
|
235
|
+
- step: finalizar_copy
|
|
236
|
+
phase: 3
|
|
237
|
+
agent: "@apolo"
|
|
238
|
+
action: "*finalizar-copy"
|
|
239
|
+
description: >
|
|
240
|
+
Aplica ajustes finais de compliance (se houver) e gera a versao
|
|
241
|
+
final da copy pronta para uso. Mantem a eficacia da copy
|
|
242
|
+
enquanto atende todas as exigencias de compliance.
|
|
243
|
+
inputs:
|
|
244
|
+
- "docs/copy-review/compliance-fixes.md (se existir)"
|
|
245
|
+
- "docs/copy-review/copy-draft-v{n}.md"
|
|
246
|
+
outputs:
|
|
247
|
+
- "docs/copy-review/copy-final.md"
|
|
248
|
+
- "docs/copy-review/loop-summary.md"
|
|
249
|
+
requires: compliance_review
|
|
250
|
+
next: null
|
|
251
|
+
on_failure: "Gerar copy final com disclaimers mesmo sem ajustes perfeitos"
|
|
252
|
+
validation:
|
|
253
|
+
type: checklist
|
|
254
|
+
criteria: >
|
|
255
|
+
Copy final com: todas as correcoes de compliance aplicadas,
|
|
256
|
+
score de qualidade mantido, versao final marcada, log de
|
|
257
|
+
iteracoes documentado.
|
|
258
|
+
|
|
259
|
+
# =========================================================================
|
|
260
|
+
# FASE ESCALACAO — DECISAO @atena
|
|
261
|
+
# =========================================================================
|
|
262
|
+
- step: escalacao_atena
|
|
263
|
+
phase: escalation
|
|
264
|
+
agent: "@atena"
|
|
265
|
+
action: "*decidir-escalacao-copy"
|
|
266
|
+
description: >
|
|
267
|
+
@atena recebe o historico completo das 3 iteracoes, scores,
|
|
268
|
+
feedbacks e decide entre 3 opcoes: reescrever do zero com novo
|
|
269
|
+
angulo, aprovar com ressalvas documentadas, ou pivotar o angulo
|
|
270
|
+
estrategico completamente.
|
|
271
|
+
inputs:
|
|
272
|
+
- "docs/copy-review/copy-draft-v1.md"
|
|
273
|
+
- "docs/copy-review/copy-draft-v2.md"
|
|
274
|
+
- "docs/copy-review/copy-draft-v3.md"
|
|
275
|
+
- "docs/copy-review/quality-report-v1.md"
|
|
276
|
+
- "docs/copy-review/quality-report-v2.md"
|
|
277
|
+
- "docs/copy-review/quality-report-v3.md"
|
|
278
|
+
- "docs/copy-review/decision-log.md"
|
|
279
|
+
- "docs/estrategia/posicionamento.md (se existir)"
|
|
280
|
+
outputs:
|
|
281
|
+
- "docs/copy-review/escalation-decision.md"
|
|
282
|
+
requires: decision_gate
|
|
283
|
+
next: "condicional"
|
|
284
|
+
on_failure: "Aprovar com ressalvas como fallback minimo"
|
|
285
|
+
validation:
|
|
286
|
+
type: decision
|
|
287
|
+
criteria: >
|
|
288
|
+
@atena deve escolher uma das 3 opcoes com justificativa.
|
|
289
|
+
options:
|
|
290
|
+
- id: reescrever_zero
|
|
291
|
+
label: "Reescrever do Zero"
|
|
292
|
+
description: >
|
|
293
|
+
Descarta todas as versoes e reinicia o loop com novo
|
|
294
|
+
angulo estrategico. Reset do contador de iteracoes.
|
|
295
|
+
next_step: escrever_copy
|
|
296
|
+
resets_iteration: true
|
|
297
|
+
max_resets: 1
|
|
298
|
+
requires: "Novo angulo definido por @atena"
|
|
299
|
+
|
|
300
|
+
- id: aprovar_ressalvas
|
|
301
|
+
label: "Aprovar com Ressalvas"
|
|
302
|
+
description: >
|
|
303
|
+
Aprova a melhor versao (maior score) com ressalvas
|
|
304
|
+
documentadas. Segue para compliance com notas.
|
|
305
|
+
next_step: compliance_review
|
|
306
|
+
requires: "Lista de ressalvas documentada"
|
|
307
|
+
|
|
308
|
+
- id: pivotar_angulo
|
|
309
|
+
label: "Pivotar Angulo"
|
|
310
|
+
description: >
|
|
311
|
+
Muda completamente o angulo estrategico. Requer novo
|
|
312
|
+
posicionamento antes de reiniciar o loop.
|
|
313
|
+
next_step: null
|
|
314
|
+
triggers_workflow: "Novo briefing estrategico necessario"
|
|
315
|
+
requires: "Justificativa do pivot e novo angulo sugerido"
|
|
316
|
+
|
|
317
|
+
# ---------------------------------------------------------------------------
|
|
318
|
+
# CONFIGURACAO GLOBAL
|
|
319
|
+
# ---------------------------------------------------------------------------
|
|
320
|
+
config:
|
|
321
|
+
max_iterations: 3
|
|
322
|
+
max_resets: 1
|
|
323
|
+
scoring_system: "copy-quality-gate"
|
|
324
|
+
approval_threshold: 10
|
|
325
|
+
adjustment_threshold: 7
|
|
326
|
+
compliance_required: true
|
|
327
|
+
track_iteration_history: true
|
|
328
|
+
|
|
329
|
+
failure_handling:
|
|
330
|
+
global_escalation: "@atena"
|
|
331
|
+
on_max_iterations: "Escalar para @atena com historico completo"
|
|
332
|
+
on_compliance_block: "Retornar para @apolo com fixes especificos"
|
|
333
|
+
on_critical_failure: "Pausar loop, preservar estado, notificar usuario"
|