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,375 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Onboarding do primeiro uso do UP. Conduzido pelo CEO (nome temporario "CEO" ate o dono escolher).
|
|
3
|
+
|
|
4
|
+
Cria `~/.claude/up/owner-profile.md` personalizado. Roda:
|
|
5
|
+
1. Automaticamente no primeiro uso de qualquer comando UP (se profile nao existe)
|
|
6
|
+
2. Explicitamente via `/up:onboard`
|
|
7
|
+
3. Refeito via `/up:onboard --update`
|
|
8
|
+
</purpose>
|
|
9
|
+
|
|
10
|
+
<process>
|
|
11
|
+
|
|
12
|
+
## Passo 0: Verificar se ja existe profile
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
if [ -f ~/.claude/up/owner-profile.md ]; then
|
|
16
|
+
# Ja existe
|
|
17
|
+
if [[ "$ARGUMENTS" == *"--update"* ]]; then
|
|
18
|
+
echo "Atualizando profile existente..."
|
|
19
|
+
else
|
|
20
|
+
echo "Profile ja existe. Use --update pra refazer."
|
|
21
|
+
exit 0
|
|
22
|
+
fi
|
|
23
|
+
fi
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Passo 1: Apresentacao Inicial
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
+
Bem-vindo ao UP!
|
|
31
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
32
|
+
|
|
33
|
+
Ola! Sou o CEO do seu proximo projeto UP.
|
|
34
|
+
|
|
35
|
+
A partir de agora vou conduzir seus projetos — coletar briefing,
|
|
36
|
+
supervisionar as fases, manter voce informado e entregar resultado.
|
|
37
|
+
|
|
38
|
+
Antes de comecar, preciso te conhecer. Isso vai ser salvo em
|
|
39
|
+
~/.claude/up/owner-profile.md e eu leio antes de cada projeto
|
|
40
|
+
pra me adaptar ao seu estilo.
|
|
41
|
+
|
|
42
|
+
Sao 6 blocos rapidos (+ nome do seu CEO). Pronto?
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Aguardar confirmacao (sim/nao/enter).
|
|
46
|
+
|
|
47
|
+
## Passo 2: Bloco 1 — Identidade
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
AskUserQuestion(
|
|
51
|
+
header="Bloco 1/7: Identidade",
|
|
52
|
+
question="Qual e o seu nome completo?",
|
|
53
|
+
followUp=None
|
|
54
|
+
)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Salvar como `name`.
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
AskUserQuestion(
|
|
61
|
+
header="Bloco 1/7: Identidade",
|
|
62
|
+
question="Como voce prefere ser chamado no dia a dia? (ex: primeiro nome)",
|
|
63
|
+
followUp=None
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Salvar como `preferred_name`. Default: primeiro nome de `name`.
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
AskUserQuestion(
|
|
71
|
+
header="Bloco 1/7: Identidade",
|
|
72
|
+
question="Qual e o seu papel profissional? (ex: dev fullstack, founder, designer, PM, estudante...)",
|
|
73
|
+
followUp=None
|
|
74
|
+
)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Salvar como `role`.
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
AskUserQuestion(
|
|
81
|
+
header="Bloco 1/7: Identidade",
|
|
82
|
+
question="Voce tem uma empresa? Qual o nome? (opcional — enter pra pular)",
|
|
83
|
+
followUp=None
|
|
84
|
+
)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Salvar como `company`.
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
AskUserQuestion(
|
|
91
|
+
header="Bloco 1/7: Identidade",
|
|
92
|
+
question="Onde voce mora? (cidade/pais, opcional)",
|
|
93
|
+
followUp=None
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Salvar como `location`. Detectar timezone se possivel.
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
AskUserQuestion(
|
|
101
|
+
header="Bloco 1/7: Identidade",
|
|
102
|
+
question="Qual idioma voce prefere? (pt-BR, en, es)",
|
|
103
|
+
followUp=None
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Salvar como `language`. Default: detectar do $LANG do sistema.
|
|
108
|
+
|
|
109
|
+
## Passo 3: Bloco 2 — Como me chamar (CEO name)
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
113
|
+
Bloco 2/7: Como voce quer me chamar?
|
|
114
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
115
|
+
|
|
116
|
+
Eu sou o CEO do seu projeto. Voce pode me dar qualquer nome:
|
|
117
|
+
|
|
118
|
+
- Um nome humano (Ana, Carlos, Sofia, Renan...)
|
|
119
|
+
- Um nome tecnico (Chief, Conductor, Captain...)
|
|
120
|
+
- Algo divertido (JARVIS, HAL, Alfred, FRIDAY...)
|
|
121
|
+
- Enter pra manter "CEO"
|
|
122
|
+
|
|
123
|
+
Como voce quer me chamar?
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
AskUserQuestion(
|
|
128
|
+
header="Nome do CEO",
|
|
129
|
+
question="Qual nome voce quer que eu use?",
|
|
130
|
+
followUp=None
|
|
131
|
+
)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Salvar como `ceo_name`. Default: "CEO".
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
AskUserQuestion(
|
|
138
|
+
header="Tom",
|
|
139
|
+
question="""Qual tom voce prefere que eu use?
|
|
140
|
+
|
|
141
|
+
a) Formal — "Prezado {preferred_name}, apresento os resultados..."
|
|
142
|
+
b) Amigavel — "Oi {preferred_name}, trouxe os resultados..."
|
|
143
|
+
c) Direto — "{preferred_name}: resultados."
|
|
144
|
+
|
|
145
|
+
Qual?""",
|
|
146
|
+
followUp=None
|
|
147
|
+
)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Salvar como `ceo_tone`. Default: "amigavel".
|
|
151
|
+
|
|
152
|
+
## Passo 4: Bloco 3 — Contexto Profissional
|
|
153
|
+
|
|
154
|
+
```python
|
|
155
|
+
AskUserQuestion(
|
|
156
|
+
header="Bloco 3/7: Contexto Profissional",
|
|
157
|
+
question="O que voce faz no dia a dia? Descreva brevemente sua area de atuacao.",
|
|
158
|
+
followUp=None
|
|
159
|
+
)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Salvar como `professional_context`.
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
AskUserQuestion(
|
|
166
|
+
header="Bloco 3/7: Contexto Profissional",
|
|
167
|
+
question="Voce opera sozinho ou tem time?",
|
|
168
|
+
followUp=None
|
|
169
|
+
)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Salvar como `team_size`.
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
AskUserQuestion(
|
|
176
|
+
header="Bloco 3/7: Contexto Profissional",
|
|
177
|
+
question="Que tipos de projeto voce costuma fazer? (apps web, apis, landing pages, sistemas internos, automacoes, etc.)",
|
|
178
|
+
followUp=None
|
|
179
|
+
)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Salvar como `project_types`.
|
|
183
|
+
|
|
184
|
+
## Passo 5: Bloco 4 — Stack Preferida
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
AskUserQuestion(
|
|
188
|
+
header="Bloco 4/7: Stack",
|
|
189
|
+
question="Qual sua stack frontend preferida? (ex: Next.js, Vite+React, Vue, SvelteKit, Flutter)",
|
|
190
|
+
followUp=None
|
|
191
|
+
)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Salvar como `stack.frontend`.
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
AskUserQuestion(
|
|
198
|
+
header="Bloco 4/7: Stack",
|
|
199
|
+
question="Qual sua stack backend preferida? (ex: FastAPI, Express, Rails, Supabase Functions, Go)",
|
|
200
|
+
followUp=None
|
|
201
|
+
)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Salvar como `stack.backend`.
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
AskUserQuestion(
|
|
208
|
+
header="Bloco 4/7: Stack",
|
|
209
|
+
question="Database preferido? (ex: Postgres, Supabase, MongoDB, SQLite, MySQL)",
|
|
210
|
+
followUp=None
|
|
211
|
+
)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Salvar como `stack.database`.
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
AskUserQuestion(
|
|
218
|
+
header="Bloco 4/7: Stack",
|
|
219
|
+
question="Package manager? (npm, pnpm, yarn, bun)",
|
|
220
|
+
followUp=None
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Salvar como `stack.package_manager`. Default: pnpm.
|
|
225
|
+
|
|
226
|
+
```python
|
|
227
|
+
AskUserQuestion(
|
|
228
|
+
header="Bloco 4/7: Stack",
|
|
229
|
+
question="Onde voce faz deploy? (Vercel, Netlify, Hetzner, Railway, AWS, Coolify self-hosted...)",
|
|
230
|
+
followUp=None
|
|
231
|
+
)
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Salvar como `stack.deploy`.
|
|
235
|
+
|
|
236
|
+
## Passo 6: Bloco 5 — Estilo de Trabalho
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
AskUserQuestion(
|
|
240
|
+
header="Bloco 5/7: Estilo",
|
|
241
|
+
question="""Quando ha trade-off, voce prefere:
|
|
242
|
+
|
|
243
|
+
a) Velocidade — entrega rapida, refinamento depois
|
|
244
|
+
b) Qualidade — leva mais tempo mas entrega polido
|
|
245
|
+
c) Balanceado — meio termo
|
|
246
|
+
|
|
247
|
+
Qual?""",
|
|
248
|
+
followUp=None
|
|
249
|
+
)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Salvar como `style.priority`.
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
AskUserQuestion(
|
|
256
|
+
header="Bloco 5/7: Estilo",
|
|
257
|
+
question="""Como voce prefere que eu lide com decisoes ambiguas?
|
|
258
|
+
|
|
259
|
+
a) Automaticas — decido sozinho com base em defaults
|
|
260
|
+
b) Perguntadas — sempre te pergunto
|
|
261
|
+
c) Hibrido — decido pequenas, pergunto grandes
|
|
262
|
+
|
|
263
|
+
Qual?""",
|
|
264
|
+
followUp=None
|
|
265
|
+
)
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Salvar como `style.decisions`.
|
|
269
|
+
|
|
270
|
+
```python
|
|
271
|
+
AskUserQuestion(
|
|
272
|
+
header="Bloco 5/7: Estilo",
|
|
273
|
+
question="""Quanto update voce quer receber durante os projetos?
|
|
274
|
+
|
|
275
|
+
a) Verbose — updates a cada fase, detalhado
|
|
276
|
+
b) Normal — updates ocasionais, resumo
|
|
277
|
+
c) Silent — so intake e delivery final
|
|
278
|
+
|
|
279
|
+
Qual?""",
|
|
280
|
+
followUp=None
|
|
281
|
+
)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Salvar como `style.updates`.
|
|
285
|
+
|
|
286
|
+
## Passo 7: Bloco 6 — Restricoes Permanentes
|
|
287
|
+
|
|
288
|
+
```python
|
|
289
|
+
AskUserQuestion(
|
|
290
|
+
header="Bloco 6/7: Restricoes",
|
|
291
|
+
question="""Tem alguma tecnologia ou pattern que voce NUNCA quer usar?
|
|
292
|
+
|
|
293
|
+
Exemplos:
|
|
294
|
+
- "Odeio jQuery, nunca use"
|
|
295
|
+
- "Sem MongoDB"
|
|
296
|
+
- "Nao uso yarn"
|
|
297
|
+
|
|
298
|
+
Liste tudo separado por virgula. Ou enter pra pular.""",
|
|
299
|
+
followUp=None
|
|
300
|
+
)
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Salvar como `restrictions` (lista).
|
|
304
|
+
|
|
305
|
+
## Passo 8: Bloco 7 — Integracoes Disponiveis
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
AskUserQuestion(
|
|
309
|
+
header="Bloco 7/7: Integracoes",
|
|
310
|
+
question="""Quais APIs/servicos voce tem acesso? (nao precisa passar credenciais agora)
|
|
311
|
+
|
|
312
|
+
Exemplos:
|
|
313
|
+
- Supabase, Vercel, GitHub Pro, Stripe, Resend, Twilio, OpenAI, Anthropic, etc.
|
|
314
|
+
|
|
315
|
+
Liste separado por virgula. Ou enter pra pular.""",
|
|
316
|
+
followUp=None
|
|
317
|
+
)
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Salvar como `integrations` (lista).
|
|
321
|
+
|
|
322
|
+
## Passo 9: Gerar owner-profile.md
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
mkdir -p ~/.claude/up
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Usar Write tool pra criar `~/.claude/up/owner-profile.md` com base no template `$HOME/.claude/up/templates/owner-profile.md`, preenchendo os campos coletados.
|
|
329
|
+
|
|
330
|
+
## Passo 10: Confirmar e Finalizar
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
334
|
+
Perfeito, {preferred_name}!
|
|
335
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
336
|
+
|
|
337
|
+
Resumindo o que aprendi sobre voce:
|
|
338
|
+
|
|
339
|
+
✓ Nome: {name} (te chamo de {preferred_name})
|
|
340
|
+
✓ Papel: {role}
|
|
341
|
+
✓ Vou me chamar: {ceo_name}
|
|
342
|
+
✓ Tom: {ceo_tone}
|
|
343
|
+
✓ Stack: {stack.frontend} + {stack.backend} + {stack.database}
|
|
344
|
+
✓ Deploy: {stack.deploy}
|
|
345
|
+
✓ Prioridade: {style.priority}
|
|
346
|
+
✓ Updates: {style.updates}
|
|
347
|
+
✓ Restricoes: {restrictions}
|
|
348
|
+
✓ Integracoes: {integrations}
|
|
349
|
+
|
|
350
|
+
Perfil salvo em ~/.claude/up/owner-profile.md
|
|
351
|
+
|
|
352
|
+
Pronto! Da proxima vez que voce usar um comando UP, eu vou
|
|
353
|
+
lembrar quem voce e e adaptar meu jeito.
|
|
354
|
+
|
|
355
|
+
Para refazer: /up:onboard --update
|
|
356
|
+
|
|
357
|
+
Comandos principais:
|
|
358
|
+
- /up:modo-builder "briefing" — construir projeto completo
|
|
359
|
+
- /up:rapido "tarefa" — tarefa rapida
|
|
360
|
+
- /up:testar — testar projeto existente
|
|
361
|
+
- /up:ajuda — ver todos os comandos
|
|
362
|
+
|
|
363
|
+
Boa sorte com seus projetos, {preferred_name}!
|
|
364
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
</process>
|
|
368
|
+
|
|
369
|
+
<success_criteria>
|
|
370
|
+
- [ ] owner-profile.md criado em ~/.claude/up/
|
|
371
|
+
- [ ] Todos campos obrigatorios preenchidos (name, preferred_name, ceo_name, language)
|
|
372
|
+
- [ ] Template seguido fielmente
|
|
373
|
+
- [ ] Resumo apresentado ao usuario
|
|
374
|
+
- [ ] Usuario sabe que pode atualizar com --update
|
|
375
|
+
</success_criteria>
|