up-cc 0.4.5 → 0.5.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.
@@ -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>