up-cc 0.4.6 → 0.5.1
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/agents/up-architecture-supervisor.md +122 -0
- package/agents/up-audit-supervisor.md +73 -0
- package/agents/up-chief-architect.md +184 -0
- package/agents/up-chief-engineer.md +202 -0
- package/agents/up-chief-operations.md +123 -0
- package/agents/up-chief-product.md +103 -0
- package/agents/up-chief-quality.md +211 -0
- package/agents/up-delivery-auditor.md +247 -0
- package/agents/up-execution-supervisor.md +268 -0
- package/agents/up-operations-supervisor.md +90 -0
- package/agents/up-planning-supervisor.md +255 -0
- package/agents/up-product-supervisor.md +78 -0
- package/agents/up-project-ceo.md +352 -0
- package/agents/up-quality-supervisor.md +173 -0
- package/agents/up-verification-supervisor.md +106 -0
- package/bin/install.js +1 -0
- package/commands/modo-builder.md +5 -0
- package/commands/onboard.md +69 -0
- package/package.json +1 -1
- package/references/governance-rules.md +157 -0
- package/references/rework-limits.md +162 -0
- package/references/severity-levels.md +189 -0
- package/templates/audit-report.md +118 -0
- package/templates/checklist.md +195 -0
- package/templates/owner-profile.md +111 -0
- package/templates/owner.md +77 -0
- package/templates/pending.md +83 -0
- package/workflows/builder.md +196 -9
- package/workflows/ceo-intake.md +305 -0
- package/workflows/ceo-updates.md +183 -0
- package/workflows/governance.md +237 -0
- package/workflows/onboarding.md +375 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Workflow de intake de projeto conduzido pelo CEO.
|
|
3
|
+
|
|
4
|
+
Usado pelo `/up:modo-builder` e comandos similares quando um projeto novo comeca.
|
|
5
|
+
Diferente do onboarding (que e sobre conhecer o dono), este e sobre conhecer o PROJETO.
|
|
6
|
+
|
|
7
|
+
Apos intake, gera:
|
|
8
|
+
- `.plano/BRIEFING.md` — briefing do projeto
|
|
9
|
+
- `.plano/OWNER.md` — contexto especifico do projeto
|
|
10
|
+
- `.plano/PENDING.md` — assets faltantes
|
|
11
|
+
- `.plano/DESIGN-TOKENS.md` — se dono passou, senao marca pending
|
|
12
|
+
</purpose>
|
|
13
|
+
|
|
14
|
+
<prerequisites>
|
|
15
|
+
Antes de rodar este workflow, verificar:
|
|
16
|
+
1. `~/.claude/up/owner-profile.md` existe → se nao, rodar `/up:onboard` primeiro
|
|
17
|
+
2. Ler owner-profile pra pegar ceo_name, preferred_name, ceo_tone, stack preferida
|
|
18
|
+
</prerequisites>
|
|
19
|
+
|
|
20
|
+
<process>
|
|
21
|
+
|
|
22
|
+
## Passo 0: Carregar Perfil do Dono
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Obrigatorio — CEO precisa saber quem e o dono
|
|
26
|
+
if [ ! -f ~/.claude/up/owner-profile.md ]; then
|
|
27
|
+
echo "Onboarding necessario. Execute /up:onboard primeiro."
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
cat ~/.claude/up/owner-profile.md
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Extrair:
|
|
35
|
+
- `$PREFERRED_NAME`
|
|
36
|
+
- `$CEO_NAME`
|
|
37
|
+
- `$CEO_TONE`
|
|
38
|
+
- Preferencias de stack (usar como defaults)
|
|
39
|
+
|
|
40
|
+
## Passo 1: Apresentacao
|
|
41
|
+
|
|
42
|
+
Com base no `ceo_tone`:
|
|
43
|
+
|
|
44
|
+
**Tom amigavel (default):**
|
|
45
|
+
```
|
|
46
|
+
Ola {PREFERRED_NAME}. Aqui e o {CEO_NAME}, pronto pra conduzir
|
|
47
|
+
seu proximo projeto UP.
|
|
48
|
+
|
|
49
|
+
Me conta um pouco sobre o que voce quer construir.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Tom formal:**
|
|
53
|
+
```
|
|
54
|
+
Prezado {PREFERRED_NAME}. {CEO_NAME} falando. Estou pronto
|
|
55
|
+
para iniciar seu proximo projeto.
|
|
56
|
+
|
|
57
|
+
Por favor, descreva o que deseja construir.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Tom direto:**
|
|
61
|
+
```
|
|
62
|
+
{PREFERRED_NAME}: {CEO_NAME} aqui. Projeto novo?
|
|
63
|
+
Descreve o que voce quer construir.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Passo 2: Bloco 1 — Briefing (obrigatorio)
|
|
67
|
+
|
|
68
|
+
**Se `$ARGUMENTS` ja tem briefing**: usar direto, pular AskUserQuestion.
|
|
69
|
+
|
|
70
|
+
**Se nao:**
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
AskUserQuestion(
|
|
74
|
+
header="Briefing",
|
|
75
|
+
question="O que voce quer construir? Me conta em texto livre.",
|
|
76
|
+
followUp=None
|
|
77
|
+
)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Salvar como `$BRIEFING`.
|
|
81
|
+
|
|
82
|
+
## Passo 3: Validacao de Briefing (rejeicao possivel)
|
|
83
|
+
|
|
84
|
+
Avaliar o briefing:
|
|
85
|
+
- E especifico ou vago demais?
|
|
86
|
+
- Escopo e viavel?
|
|
87
|
+
- Ha contradicoes?
|
|
88
|
+
- Falta contexto critico?
|
|
89
|
+
|
|
90
|
+
**Se briefing e VAGO/INVIAVEL:**
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
AskUserQuestion(
|
|
94
|
+
header="Precisando de mais contexto",
|
|
95
|
+
question="""{PREFERRED_NAME}, antes de comecar preciso entender melhor.
|
|
96
|
+
|
|
97
|
+
Voce disse: "{BRIEFING}"
|
|
98
|
+
|
|
99
|
+
Isso e {muito amplo | inviavel porque X | ambiguo em Y}.
|
|
100
|
+
|
|
101
|
+
Preciso saber:
|
|
102
|
+
- {pergunta especifica 1}
|
|
103
|
+
- {pergunta especifica 2}
|
|
104
|
+
- {pergunta especifica 3}
|
|
105
|
+
|
|
106
|
+
Pode detalhar?""",
|
|
107
|
+
followUp=None
|
|
108
|
+
)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Receber resposta e atualizar `$BRIEFING`.
|
|
112
|
+
|
|
113
|
+
**Se ainda esta vago apos 2 tentativas:** CEO assume responsabilidade, define escopo minimo e segue.
|
|
114
|
+
|
|
115
|
+
## Passo 4: Bloco 2 — Design System (opcional)
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
AskUserQuestion(
|
|
119
|
+
header="Design System",
|
|
120
|
+
question="""{PREFERRED_NAME}, voce tem um design system definido?
|
|
121
|
+
|
|
122
|
+
Pode passar:
|
|
123
|
+
- Cores (primaria, secundaria, semanticas)
|
|
124
|
+
- Tipografia (fontes)
|
|
125
|
+
- Componentes base (shadcn, MUI, custom?)
|
|
126
|
+
- Ou link pro Figma / brand book
|
|
127
|
+
|
|
128
|
+
Se nao tiver, eu crio um placeholder e marco como PENDENTE.""",
|
|
129
|
+
followUp=None
|
|
130
|
+
)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Se passou:**
|
|
134
|
+
- Salvar em `.plano/DESIGN-TOKENS.md`
|
|
135
|
+
- Marcar E1.2 como completed no CHECKLIST
|
|
136
|
+
|
|
137
|
+
**Se nao passou:**
|
|
138
|
+
- Gerar placeholder em `.plano/DESIGN-TOKENS.md` com defaults (shadcn neutro)
|
|
139
|
+
- Adicionar entry em `.plano/PENDING.md` com severity non-blocker
|
|
140
|
+
- Marcar E1.2 como completed (resolvido como pending)
|
|
141
|
+
|
|
142
|
+
## Passo 5: Bloco 3 — Credenciais de API (opcional)
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
AskUserQuestion(
|
|
146
|
+
header="Credenciais de API",
|
|
147
|
+
question="""{PREFERRED_NAME}, quais integracoes voce quer usar neste projeto?
|
|
148
|
+
|
|
149
|
+
Pode passar credenciais de:
|
|
150
|
+
- Supabase (URL + anon key + service key)
|
|
151
|
+
- Email (Resend/SendGrid/Postmark)
|
|
152
|
+
- Pagamentos (Stripe/Asaas)
|
|
153
|
+
- WhatsApp (Evolution/UazAPI/Meta)
|
|
154
|
+
- Outras APIs que voce tem
|
|
155
|
+
|
|
156
|
+
Se nao passar, eu uso mocks/stubs e marco como PENDENTE.""",
|
|
157
|
+
followUp=None
|
|
158
|
+
)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Processar cada credencial:**
|
|
162
|
+
|
|
163
|
+
Para cada credencial passada:
|
|
164
|
+
- Salvar em `.env.local` (sem commitar)
|
|
165
|
+
- Marcar integracao como disponivel
|
|
166
|
+
|
|
167
|
+
Para cada credencial NAO passada:
|
|
168
|
+
- Adicionar em `.plano/PENDING.md` com severity:
|
|
169
|
+
- `blocker` se credencial e critica pra funcionalidade core
|
|
170
|
+
- `non_blocker` se pode usar stub
|
|
171
|
+
|
|
172
|
+
## Passo 6: Bloco 4 — Referencias (opcional)
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
AskUserQuestion(
|
|
176
|
+
header="Referencias",
|
|
177
|
+
question="""{PREFERRED_NAME}, tem alguma referencia que voce quer que eu siga?
|
|
178
|
+
|
|
179
|
+
- URL de um app que voce gosta (tipo 'igual ao Linear')
|
|
180
|
+
- Screenshots de inspiracao
|
|
181
|
+
- Brand book / moodboard
|
|
182
|
+
- Ou 'parecido com X'
|
|
183
|
+
|
|
184
|
+
Se nao tiver, eu pesquiso concorrentes do dominio.""",
|
|
185
|
+
followUp=None
|
|
186
|
+
)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Salvar em `.plano/OWNER.md` na secao Referencias.
|
|
190
|
+
|
|
191
|
+
**Se URL foi passada + flag `--clone`:** Entrar em modo clone-builder.
|
|
192
|
+
|
|
193
|
+
## Passo 7: Bloco 5 — Restricoes (opcional)
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
AskUserQuestion(
|
|
197
|
+
header="Restricoes",
|
|
198
|
+
question="""{PREFERRED_NAME}, ha algo que NAO deve estar no projeto?
|
|
199
|
+
|
|
200
|
+
Exemplos:
|
|
201
|
+
- Features explicitamente rejeitadas
|
|
202
|
+
- Tecnologias banidas
|
|
203
|
+
- Abordagens que voce nao quer
|
|
204
|
+
|
|
205
|
+
Ou enter pra pular.""",
|
|
206
|
+
followUp=None
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Salvar em `.plano/OWNER.md` na secao Restricoes.
|
|
211
|
+
|
|
212
|
+
## Passo 8: Confirmar Intake
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
216
|
+
{CEO_NAME}: Intake Completo
|
|
217
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
218
|
+
|
|
219
|
+
Entendi. Resumo:
|
|
220
|
+
|
|
221
|
+
✓ {resumo do briefing em 1 frase}
|
|
222
|
+
✓ Stack: {stack detectada/definida}
|
|
223
|
+
✓ Design: {custom passado | defaults com pending}
|
|
224
|
+
✓ Credenciais: {quais passou}
|
|
225
|
+
✓ Referencias: {o que passou}
|
|
226
|
+
✓ Restricoes: {lista curta}
|
|
227
|
+
|
|
228
|
+
⚠ Pendencias: {N}
|
|
229
|
+
{lista curta de PENDING.md}
|
|
230
|
+
|
|
231
|
+
Vou montar o time: {N} chiefs, {M} supervisores, agentes operacionais.
|
|
232
|
+
Estimativa: {N} fases.
|
|
233
|
+
|
|
234
|
+
Updates {verbose/normal/silent} conforme seu perfil.
|
|
235
|
+
|
|
236
|
+
Comecando agora...
|
|
237
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Passo 9: Gerar Arquivos
|
|
241
|
+
|
|
242
|
+
**`.plano/BRIEFING.md`:**
|
|
243
|
+
```markdown
|
|
244
|
+
---
|
|
245
|
+
collected_at: [timestamp]
|
|
246
|
+
collected_by: [ceo_name]
|
|
247
|
+
owner: [preferred_name]
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
# Briefing
|
|
251
|
+
|
|
252
|
+
## Briefing Original
|
|
253
|
+
[texto completo]
|
|
254
|
+
|
|
255
|
+
## Contexto Adicional (de respostas)
|
|
256
|
+
[se houve rejeicao/re-perguntas]
|
|
257
|
+
|
|
258
|
+
## Decisoes Iniciais
|
|
259
|
+
- Stack: [...]
|
|
260
|
+
- Design: [custom | defaults]
|
|
261
|
+
- Modo: [greenfield | brownfield]
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**`.plano/OWNER.md`:** usar template.
|
|
265
|
+
|
|
266
|
+
**`.plano/PENDING.md`:** usar template, populado com pendencias detectadas.
|
|
267
|
+
|
|
268
|
+
**`.plano/DESIGN-TOKENS.md`:** custom ou defaults.
|
|
269
|
+
|
|
270
|
+
## Passo 10: Commit Inicial
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
git init 2>/dev/null
|
|
274
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" commit "docs: intake completo — {projeto}" \
|
|
275
|
+
--files .plano/BRIEFING.md .plano/OWNER.md .plano/PENDING.md .plano/DESIGN-TOKENS.md
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Passo 11: Atualizar Checklist
|
|
279
|
+
|
|
280
|
+
Marcar items E1.1 ate E1.5 como completed em `.plano/CHECKLIST.md`.
|
|
281
|
+
|
|
282
|
+
## Passo 12: Passar Controle Pros Chiefs
|
|
283
|
+
|
|
284
|
+
Apos intake, CEO NAO continua executando. Ele passa controle pro pipeline do builder que spawna os chiefs.
|
|
285
|
+
|
|
286
|
+
CEO so volta a agir quando:
|
|
287
|
+
- Chief escala algum problema
|
|
288
|
+
- Fase completa (pra mandar update)
|
|
289
|
+
- Pre-delivery audit
|
|
290
|
+
- Delivery final
|
|
291
|
+
|
|
292
|
+
</process>
|
|
293
|
+
|
|
294
|
+
<success_criteria>
|
|
295
|
+
- [ ] owner-profile.md carregado
|
|
296
|
+
- [ ] Briefing coletado e validado
|
|
297
|
+
- [ ] 5 blocos processados (briefing, design, credenciais, referencias, restricoes)
|
|
298
|
+
- [ ] BRIEFING.md gerado
|
|
299
|
+
- [ ] OWNER.md gerado
|
|
300
|
+
- [ ] PENDING.md gerado (com items se ha)
|
|
301
|
+
- [ ] DESIGN-TOKENS.md gerado (custom ou defaults)
|
|
302
|
+
- [ ] CHECKLIST E1.* marcados como completed
|
|
303
|
+
- [ ] Commit inicial feito
|
|
304
|
+
- [ ] Controle passado pros chiefs
|
|
305
|
+
</success_criteria>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Workflow do CEO pra mandar updates periodicos ao dono durante execucao do projeto.
|
|
3
|
+
|
|
4
|
+
Chamado pelo builder apos cada fase concluida (se updates != silent).
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<process>
|
|
8
|
+
|
|
9
|
+
## Quando rodar
|
|
10
|
+
|
|
11
|
+
- Apos cada fase do build completar
|
|
12
|
+
- Apos Quality Gate completar
|
|
13
|
+
- Apos Delivery Auditor rodar
|
|
14
|
+
- Em qualquer momento critico
|
|
15
|
+
|
|
16
|
+
## Carregar contexto
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cat ~/.claude/up/owner-profile.md
|
|
20
|
+
cat .plano/OWNER.md
|
|
21
|
+
cat .plano/STATE.md
|
|
22
|
+
cat .plano/ROADMAP.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Extrair:
|
|
26
|
+
- `$PREFERRED_NAME`
|
|
27
|
+
- `$CEO_NAME`
|
|
28
|
+
- `$CEO_TONE`
|
|
29
|
+
- `$UPDATES_LEVEL` (verbose | normal | silent)
|
|
30
|
+
|
|
31
|
+
**Se `$UPDATES_LEVEL = silent`:** Pular updates por fase. Voltar pro builder.
|
|
32
|
+
|
|
33
|
+
## Formato do Update (por fase)
|
|
34
|
+
|
|
35
|
+
### Verbose (detalhado)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
39
|
+
{CEO_NAME}: Update — Fase {X}/{TOTAL} concluida
|
|
40
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
41
|
+
|
|
42
|
+
**Fase {X}:** {nome da fase}
|
|
43
|
+
|
|
44
|
+
**O que foi feito:**
|
|
45
|
+
- [bullet 1 — resumo do que foi construido]
|
|
46
|
+
- [bullet 2]
|
|
47
|
+
- [bullet 3]
|
|
48
|
+
|
|
49
|
+
**Qualidade:**
|
|
50
|
+
- Testes E2E: {passed}/{total} ({%})
|
|
51
|
+
- DCRV Score: {score}/10
|
|
52
|
+
- Visual: {N}/10
|
|
53
|
+
- Interacao: {N}% pass
|
|
54
|
+
- API: {N}% pass
|
|
55
|
+
- Code Review: {N} issues ({critical} critical, {high} high)
|
|
56
|
+
- Supervisores: {N} aprovacoes, {M} reworks
|
|
57
|
+
|
|
58
|
+
**Decisoes Tomadas:**
|
|
59
|
+
- [decisao 1]
|
|
60
|
+
- [decisao 2]
|
|
61
|
+
|
|
62
|
+
**Proxima Fase ({X+1}):**
|
|
63
|
+
- {nome}
|
|
64
|
+
- {N} planos estimados
|
|
65
|
+
- {M} tarefas
|
|
66
|
+
|
|
67
|
+
**Progresso Total:** {%} ({phases_done}/{total_phases})
|
|
68
|
+
|
|
69
|
+
Continuar? (enter pra seguir, ou digita feedback)
|
|
70
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Normal (resumido)
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
77
|
+
{CEO_NAME}: Fase {X}/{TOTAL} ✓
|
|
78
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
+
|
|
80
|
+
{nome da fase} concluida.
|
|
81
|
+
{testes} testes, {passed}% pass.
|
|
82
|
+
|
|
83
|
+
Proxima: {nome proxima fase}
|
|
84
|
+
Progresso: {%}
|
|
85
|
+
|
|
86
|
+
(enter pra continuar)
|
|
87
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Silent (nao manda nada)
|
|
91
|
+
|
|
92
|
+
Pular.
|
|
93
|
+
|
|
94
|
+
## Formato Alerta Critico (qualquer modo)
|
|
95
|
+
|
|
96
|
+
Se ha 🔴 CRITICO, interrompe SEMPRE:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
100
|
+
🔴 {CEO_NAME}: Preciso do seu input
|
|
101
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
102
|
+
|
|
103
|
+
{PREFERRED_NAME}, precisei parar.
|
|
104
|
+
|
|
105
|
+
**Situacao:**
|
|
106
|
+
[descricao clara]
|
|
107
|
+
|
|
108
|
+
**Por que nao posso decidir sozinho:**
|
|
109
|
+
[explicacao]
|
|
110
|
+
|
|
111
|
+
**Opcoes:**
|
|
112
|
+
a) [opcao 1]
|
|
113
|
+
b) [opcao 2]
|
|
114
|
+
c) [opcao 3]
|
|
115
|
+
|
|
116
|
+
**Minha recomendacao:** {opcao} — {justificativa curta}
|
|
117
|
+
|
|
118
|
+
Qual voce prefere?
|
|
119
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Usar `AskUserQuestion` para capturar resposta.
|
|
123
|
+
|
|
124
|
+
## Formato Alerta Importante (modo interactive)
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
128
|
+
🟡 {CEO_NAME}: Decisao a tomar
|
|
129
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
130
|
+
|
|
131
|
+
{PREFERRED_NAME}, situacao:
|
|
132
|
+
|
|
133
|
+
[descricao]
|
|
134
|
+
|
|
135
|
+
**Opcoes viaveis:**
|
|
136
|
+
a) [opcao] — {pros/contras}
|
|
137
|
+
b) [opcao] — {pros/contras}
|
|
138
|
+
|
|
139
|
+
**Minha recomendacao:** {opcao}
|
|
140
|
+
**Por que:** {explicacao}
|
|
141
|
+
|
|
142
|
+
Voce confirma? Ou prefere outra?
|
|
143
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Se `$INTERACTIVE = true` ou `$UPDATES_LEVEL = verbose`: perguntar via AskUserQuestion.
|
|
147
|
+
Senao: tomar decisao recomendada e registrar em OWNER.md como "Decisao delegada".
|
|
148
|
+
|
|
149
|
+
## Formato FYI (nao interrompe)
|
|
150
|
+
|
|
151
|
+
Registrar em `.plano/OWNER.md` na secao "Feedback Durante Execucao":
|
|
152
|
+
|
|
153
|
+
```markdown
|
|
154
|
+
| {timestamp} | 🟢 Decisao automatica | {decisao} |
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Nao falar nada pro dono.
|
|
158
|
+
|
|
159
|
+
## Registrar Interacao
|
|
160
|
+
|
|
161
|
+
Toda vez que CEO fala com dono, registrar em `.plano/OWNER.md`:
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
## Interacoes com o CEO
|
|
165
|
+
|
|
166
|
+
| Timestamp | Tipo | Conteudo |
|
|
167
|
+
|-----------|------|----------|
|
|
168
|
+
| {timestamp} | update-verbose | Fase 3 concluida — dashboard |
|
|
169
|
+
| {timestamp} | alerta-critico | Credencial Asaas expirou |
|
|
170
|
+
| {timestamp} | alerta-importante | Trade-off: Redis vs in-memory |
|
|
171
|
+
| {timestamp} | fyi | Adicionei loading states automaticamente |
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
</process>
|
|
175
|
+
|
|
176
|
+
<success_criteria>
|
|
177
|
+
- [ ] Owner-profile lido
|
|
178
|
+
- [ ] Nivel de updates respeitado (verbose/normal/silent)
|
|
179
|
+
- [ ] Tom correto usado
|
|
180
|
+
- [ ] Severidade respeitada (critico sempre interrompe)
|
|
181
|
+
- [ ] Interacao registrada em OWNER.md
|
|
182
|
+
- [ ] Formato apropriado aplicado
|
|
183
|
+
</success_criteria>
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Workflow de governanca do UP. Define o loop de aprovacao operacional → supervisor → chief → CEO.
|
|
3
|
+
|
|
4
|
+
Usado por todos os comandos UP que executam trabalho.
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<process>
|
|
8
|
+
|
|
9
|
+
## Loop de Governanca (Nivel Supervisor)
|
|
10
|
+
|
|
11
|
+
### Passo 1: Operacional executa trabalho
|
|
12
|
+
|
|
13
|
+
Qualquer agente operacional (planejador, executor, verificador, detector, auditor, etc.) completa sua tarefa e retorna output.
|
|
14
|
+
|
|
15
|
+
### Passo 2: Supervisor correspondente revisa
|
|
16
|
+
|
|
17
|
+
Determinar supervisor baseado no agente operacional:
|
|
18
|
+
|
|
19
|
+
| Operacional | Supervisor |
|
|
20
|
+
|------------|-----------|
|
|
21
|
+
| planejador, roteirista | planning-supervisor |
|
|
22
|
+
| executor, frontend/backend/database-specialist | execution-supervisor |
|
|
23
|
+
| verificador, blind-validator | verification-supervisor |
|
|
24
|
+
| visual-critic, exhaustive-tester, api-tester, qa-agent | quality-supervisor |
|
|
25
|
+
| auditor-ux/perf/modernidade, security-reviewer, sintetizador-melhorias | audit-supervisor |
|
|
26
|
+
| product-analyst, pesquisadores, mapeador-codigo | product-supervisor |
|
|
27
|
+
| arquiteto, system-designer, requirements-validator | architecture-supervisor |
|
|
28
|
+
| devops-agent, technical-writer | operations-supervisor |
|
|
29
|
+
|
|
30
|
+
Spawnar o supervisor:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
Agent(
|
|
34
|
+
subagent_type="up-{supervisor_name}",
|
|
35
|
+
model="opus",
|
|
36
|
+
prompt="""
|
|
37
|
+
Revisar output de {operacional_name} para {context}.
|
|
38
|
+
|
|
39
|
+
<files_to_read>
|
|
40
|
+
- $HOME/.claude/up/references/governance-rules.md
|
|
41
|
+
- $HOME/.claude/up/references/rework-limits.md
|
|
42
|
+
- [arquivos do output do operacional]
|
|
43
|
+
- [arquivos de contexto]
|
|
44
|
+
</files_to_read>
|
|
45
|
+
|
|
46
|
+
Avaliar contra criterios objetivos.
|
|
47
|
+
Retornar: APPROVE | REQUEST_CHANGES | ESCALATE
|
|
48
|
+
"""
|
|
49
|
+
)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Passo 3: Processar decisao do supervisor
|
|
53
|
+
|
|
54
|
+
**Se APPROVE:**
|
|
55
|
+
- Marcar item como completed no CHECKLIST
|
|
56
|
+
- Logar em governance/approvals.log
|
|
57
|
+
- Prosseguir pro proximo passo do pipeline
|
|
58
|
+
|
|
59
|
+
**Se REQUEST_CHANGES:**
|
|
60
|
+
- Incrementar rework_cycle do item
|
|
61
|
+
- Se cycle < 3: re-spawnar operacional com review como contexto
|
|
62
|
+
- Se cycle = 3: FORCA aprovacao com debito tecnico, registrar e prosseguir
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
# Re-spawn do operacional
|
|
66
|
+
Agent(
|
|
67
|
+
subagent_type="up-{operacional_name}",
|
|
68
|
+
model="{modelo correto}",
|
|
69
|
+
prompt="""
|
|
70
|
+
REWORK — Ciclo {N}/3
|
|
71
|
+
|
|
72
|
+
Seu output anterior foi revisado e precisa de mudancas.
|
|
73
|
+
|
|
74
|
+
Review: .plano/{path_do_review}
|
|
75
|
+
|
|
76
|
+
Mudancas requeridas:
|
|
77
|
+
{lista_de_mudancas}
|
|
78
|
+
|
|
79
|
+
Refaca seu trabalho atendendo os criterios.
|
|
80
|
+
"""
|
|
81
|
+
)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Se ESCALATE:**
|
|
85
|
+
- Supervisor nao consegue resolver, passa pro chief
|
|
86
|
+
- Spawnar chief correspondente
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
Agent(
|
|
90
|
+
subagent_type="up-chief-{area}",
|
|
91
|
+
model="opus",
|
|
92
|
+
prompt="""
|
|
93
|
+
Escalation recebida do {supervisor_name}.
|
|
94
|
+
|
|
95
|
+
Problema: {problema}
|
|
96
|
+
Contexto: {files_to_read}
|
|
97
|
+
|
|
98
|
+
Decidir: APPROVE | REQUEST_CHANGES | ESCALATE_CEO
|
|
99
|
+
"""
|
|
100
|
+
)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Loop de Governanca (Nivel Chief)
|
|
104
|
+
|
|
105
|
+
### Quando chief age
|
|
106
|
+
|
|
107
|
+
Chief age em 2 situacoes:
|
|
108
|
+
|
|
109
|
+
1. **Escalacao do supervisor** — problema que supervisor nao resolveu
|
|
110
|
+
2. **Aprovacao consolidada** — revisao periodica do trabalho de uma area inteira
|
|
111
|
+
|
|
112
|
+
### Ciclos de Rework (Chief ← Supervisor)
|
|
113
|
+
|
|
114
|
+
Max 2 ciclos:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Ciclo 1: Chief pede rework → Supervisor coordena com operacional
|
|
118
|
+
Ciclo 2: Chief re-revisa → APPROVE ou ESCALATE_CEO
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Loop de Governanca (Nivel CEO)
|
|
122
|
+
|
|
123
|
+
### Quando CEO age
|
|
124
|
+
|
|
125
|
+
1. **Escalacao do chief** — problema que chief nao resolveu
|
|
126
|
+
2. **Pre-delivery** — auditoria final antes de entregar
|
|
127
|
+
3. **Decisao estrategica** — briefing ambiguo, trade-off grande
|
|
128
|
+
|
|
129
|
+
### Ciclos (CEO ← Chief)
|
|
130
|
+
|
|
131
|
+
Max 1 ciclo:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Ciclo 1: CEO pede rework → Chief coordena com supervisores
|
|
135
|
+
Apos isso: CEO decide APPROVE ou ALERTA_DONO
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Se CEO decide ALERTA_DONO
|
|
139
|
+
|
|
140
|
+
CEO usa severidade apropriada:
|
|
141
|
+
- 🔴 Critico: sempre interrompe via AskUserQuestion
|
|
142
|
+
- 🟡 Importante: interrompe se --interactive
|
|
143
|
+
- 🟢 FYI: apenas registra
|
|
144
|
+
|
|
145
|
+
## Forced Approval (Debito Tecnico)
|
|
146
|
+
|
|
147
|
+
Quando max ciclos atingido sem melhoria:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Registrar
|
|
151
|
+
cat >> .plano/governance/technical-debt.log <<EOF
|
|
152
|
+
$(date -u +%Y-%m-%dT%H:%M:%SZ) | {item-id} | {supervisor} | FORCED_APPROVAL
|
|
153
|
+
Reason: Max rework cycles ({N}) reached without improvement
|
|
154
|
+
Remaining issues: [lista]
|
|
155
|
+
EOF
|
|
156
|
+
|
|
157
|
+
# Atualizar checklist
|
|
158
|
+
node "$HOME/.claude/up/bin/up-tools.cjs" checklist update \
|
|
159
|
+
--item "{item-id}" \
|
|
160
|
+
--status "completed_with_debt"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Items com `completed_with_debt` aparecem no AUDIT-REPORT.md como ressalva.
|
|
164
|
+
|
|
165
|
+
## Aplicacao em Cada Comando UP
|
|
166
|
+
|
|
167
|
+
### /up:modo-builder (Full)
|
|
168
|
+
- Governanca COMPLETA em todos estagios
|
|
169
|
+
- CEO conduz intake e delivery
|
|
170
|
+
- Supervisores em cada passo
|
|
171
|
+
- Chiefs consolidam
|
|
172
|
+
- CEO aprova antes do delivery
|
|
173
|
+
|
|
174
|
+
### /up:modo-builder --light
|
|
175
|
+
- Governanca LIGHT
|
|
176
|
+
- Supervisores ainda ativos (criticos)
|
|
177
|
+
- Chiefs pulados
|
|
178
|
+
- CEO so no intake e delivery
|
|
179
|
+
- Max rework: 1 ciclo
|
|
180
|
+
|
|
181
|
+
### /up:rapido
|
|
182
|
+
- Governanca MINIMAL
|
|
183
|
+
- Apenas supervisor do operacional
|
|
184
|
+
- Sem chief, sem CEO
|
|
185
|
+
- Max rework: 1 ciclo
|
|
186
|
+
|
|
187
|
+
### /up:planejar-fase
|
|
188
|
+
- planning-supervisor ativo
|
|
189
|
+
- Sem chief
|
|
190
|
+
- Sem CEO
|
|
191
|
+
|
|
192
|
+
### /up:executar-fase
|
|
193
|
+
- execution-supervisor ativo
|
|
194
|
+
- chief-engineer no final da fase
|
|
195
|
+
- Sem CEO
|
|
196
|
+
|
|
197
|
+
### /up:testar
|
|
198
|
+
- quality-supervisor ativo
|
|
199
|
+
- chief-quality no final
|
|
200
|
+
- Sem CEO
|
|
201
|
+
|
|
202
|
+
### /up:melhorias
|
|
203
|
+
- audit-supervisor ativo
|
|
204
|
+
- chief-quality no final
|
|
205
|
+
|
|
206
|
+
### /up:verificar-trabalho
|
|
207
|
+
- verification-supervisor ativo
|
|
208
|
+
- Sem chief (UAT humano ja e autoritativo)
|
|
209
|
+
|
|
210
|
+
## Flag Global: --no-supervision
|
|
211
|
+
|
|
212
|
+
Para casos emergenciais onde voce precisa bypassar governanca:
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
/up:modo-builder "feature urgente" --no-supervision
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Efeito:
|
|
219
|
+
- Supervisores nao rodam
|
|
220
|
+
- Nenhum rework
|
|
221
|
+
- Trabalho direto pro proximo estagio
|
|
222
|
+
- **Tudo registrado como SKIPPED_SUPERVISION no delivery**
|
|
223
|
+
|
|
224
|
+
Use APENAS em emergencia. Governanca existe por um motivo.
|
|
225
|
+
|
|
226
|
+
</process>
|
|
227
|
+
|
|
228
|
+
<success_criteria>
|
|
229
|
+
- [ ] Supervisor correspondente identificado
|
|
230
|
+
- [ ] Supervisor spawnado com contexto correto
|
|
231
|
+
- [ ] Decisao processada
|
|
232
|
+
- [ ] Rework cycles respeitados
|
|
233
|
+
- [ ] Escalacoes corretas
|
|
234
|
+
- [ ] Forced approval com debito tecnico registrado
|
|
235
|
+
- [ ] Checklist atualizado em cada passo
|
|
236
|
+
- [ ] Governance logs mantidos
|
|
237
|
+
</success_criteria>
|