@jaimevalasek/aioson 1.5.1 → 1.6.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/README.md +6 -0
- package/docs/design-previews/aurora-command-ui-website.html +884 -0
- package/docs/design-previews/aurora-command-ui.html +682 -0
- package/docs/design-previews/bold-editorial-ui-website.html +658 -0
- package/docs/design-previews/bold-editorial-ui.html +717 -0
- package/docs/design-previews/clean-saas-ui-website.html +1202 -0
- package/docs/design-previews/clean-saas-ui.html +549 -0
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
- package/docs/design-previews/cognitive-core-ui.html +463 -0
- package/docs/design-previews/glassmorphism-ui-website.html +572 -0
- package/docs/design-previews/glassmorphism-ui.html +886 -0
- package/docs/design-previews/index.html +699 -0
- package/docs/design-previews/interface-design-website.html +1187 -0
- package/docs/design-previews/interface-design.html +513 -0
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
- package/docs/design-previews/neo-brutalist-ui.html +797 -0
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
- package/docs/design-previews/premium-command-center-ui.html +552 -0
- package/docs/design-previews/warm-craft-ui-website.html +684 -0
- package/docs/design-previews/warm-craft-ui.html +739 -0
- package/docs/en/cli-reference.md +20 -9
- package/docs/pt/README.md +7 -0
- package/docs/pt/agent-sharding.md +132 -0
- package/docs/pt/agentes.md +8 -2
- package/docs/pt/busca-de-contexto.md +129 -0
- package/docs/pt/cache-de-contexto.md +156 -0
- package/docs/pt/comandos-cli.md +28 -0
- package/docs/pt/design-hybrid-forge.md +107 -0
- package/docs/pt/inicio-rapido.md +54 -3
- package/docs/pt/inteligencia-adaptativa.md +324 -0
- package/docs/pt/monitor-de-contexto.md +104 -0
- package/docs/pt/recuperacao-de-sessao.md +125 -0
- package/docs/pt/sandbox.md +125 -0
- package/docs/pt/skills.md +98 -6
- package/package.json +1 -1
- package/src/agent-loader.js +280 -0
- package/src/cli.js +94 -0
- package/src/commands/agent-loader.js +85 -0
- package/src/commands/context-cache.js +90 -0
- package/src/commands/context-monitor.js +92 -0
- package/src/commands/context-search.js +66 -0
- package/src/commands/design-hybrid-options.js +385 -0
- package/src/commands/health.js +214 -0
- package/src/commands/init.js +54 -13
- package/src/commands/install.js +52 -13
- package/src/commands/learning-evolve.js +355 -0
- package/src/commands/live.js +34 -0
- package/src/commands/recovery.js +43 -0
- package/src/commands/sandbox.js +37 -0
- package/src/commands/setup-context.js +22 -2
- package/src/commands/setup.js +178 -0
- package/src/commands/skill.js +79 -32
- package/src/commands/tool-registry-cmd.js +232 -0
- package/src/commands/update.js +7 -0
- package/src/constants.js +9 -0
- package/src/context-cache.js +159 -0
- package/src/context-search.js +326 -0
- package/src/design-variation-catalog.js +503 -0
- package/src/i18n/messages/en.js +32 -2
- package/src/i18n/messages/es.js +30 -2
- package/src/i18n/messages/fr.js +30 -2
- package/src/i18n/messages/pt-BR.js +32 -2
- package/src/install-animation.js +260 -0
- package/src/install-profile.js +143 -0
- package/src/install-wizard.js +474 -0
- package/src/installer.js +38 -10
- package/src/parser.js +7 -1
- package/src/recovery-context-session.js +154 -0
- package/src/runtime-store.js +97 -1
- package/src/sandbox.js +177 -0
- package/src/tool-executor.js +94 -0
- package/src/updater.js +11 -3
- package/template/.aioson/agents/analyst.md +58 -3
- package/template/.aioson/agents/architect.md +38 -0
- package/template/.aioson/agents/design-hybrid-forge.md +127 -0
- package/template/.aioson/agents/dev.md +103 -0
- package/template/.aioson/agents/deyvin.md +57 -0
- package/template/.aioson/agents/pm.md +58 -0
- package/template/.aioson/agents/product.md +28 -0
- package/template/.aioson/agents/qa.md +79 -0
- package/template/.aioson/agents/setup.md +65 -3
- package/template/.aioson/agents/sheldon.md +107 -6
- package/template/.aioson/agents/tester.md +156 -0
- package/template/.aioson/config.md +15 -0
- package/template/.aioson/context/forensics/.gitkeep +0 -0
- package/template/.aioson/context/seeds/seed-example.md +27 -0
- package/template/.aioson/context/user-profile.md +42 -0
- package/template/.aioson/locales/en/agents/setup.md +33 -1
- package/template/.aioson/locales/es/agents/setup.md +33 -1
- package/template/.aioson/locales/fr/agents/setup.md +33 -1
- package/template/.aioson/locales/pt-BR/agents/setup.md +33 -1
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +144 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +291 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
- package/template/AGENTS.md +23 -1
- package/template/CLAUDE.md +1 -0
|
@@ -38,7 +38,15 @@ Mandatory behavior for inconsistent returning projects:
|
|
|
38
38
|
Do NOT re-run the full onboarding unless the user explicitly requests it or the remaining ambiguity truly requires onboarding answers.
|
|
39
39
|
|
|
40
40
|
**First run (file does not exist):**
|
|
41
|
-
|
|
41
|
+
Check whether the AIOSON template is installed (`.aioson/` directory exists). If the template is missing, tell the user to run the setup command first:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @jaimevalasek/aioson setup .
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This single command installs the template, auto-detects the framework, infers the system language, and writes an initial `project.context.md`. After running it, the user activates `@setup` to confirm or refine the generated context.
|
|
48
|
+
|
|
49
|
+
If the template is already installed but `project.context.md` is missing, proceed with detection and full onboarding below.
|
|
42
50
|
|
|
43
51
|
## Mandatory sequence
|
|
44
52
|
1. **Language detection** (above) — redirect to locale file if available.
|
|
@@ -127,14 +135,14 @@ Before asking the user any question, run:
|
|
|
127
135
|
aioson setup:context . --defaults --json
|
|
128
136
|
```
|
|
129
137
|
|
|
130
|
-
This returns the auto-inferred values. Show them to the user as a confirmation block:
|
|
138
|
+
This returns the auto-inferred values (framework, system language, project name from directory, classification). Show them to the user as a confirmation block:
|
|
131
139
|
|
|
132
140
|
> **Auto-detected:**
|
|
133
141
|
> - Name: `{projectName}` (from directory)
|
|
134
142
|
> - Framework: `{framework}` (detected in workspace: `{frameworkInstalled}`)
|
|
135
143
|
> - Type: `{projectType}` (inferred from framework)
|
|
136
144
|
> - Classification: `{classification}` (auto-scored)
|
|
137
|
-
> - Language: `{conversationLanguage}`
|
|
145
|
+
> - Language: `{conversationLanguage}` (from system locale)
|
|
138
146
|
>
|
|
139
147
|
> "Does this look right? Tell me what to change, or confirm to proceed."
|
|
140
148
|
|
|
@@ -142,6 +150,8 @@ Wait for the user's response. Apply any corrections as explicit `--option=value`
|
|
|
142
150
|
|
|
143
151
|
If `aioson` is not available (direct mode without CLI), skip this step and proceed directly to Step 1 with manual inference from the workspace.
|
|
144
152
|
|
|
153
|
+
> **Note:** If the user ran `aioson setup .` before activating this agent, `project.context.md` is already written with auto-detected values. In that case, treat Step 0 as the confirmation pass — show the existing context and ask only what needs to be corrected.
|
|
154
|
+
|
|
145
155
|
### Step 1 — Understand the project
|
|
146
156
|
Ask ONE open question. Do not show a form:
|
|
147
157
|
> "Describe the project in one or two sentences — what does it do and who is it for?"
|
|
@@ -465,6 +475,58 @@ updated: "<ISO-8601>"
|
|
|
465
475
|
- [Any important context, warnings, or constraints for future sessions]
|
|
466
476
|
```
|
|
467
477
|
|
|
478
|
+
### 2c. Create seeds/ folder
|
|
479
|
+
|
|
480
|
+
Criar pasta `.aioson/context/seeds/` se não existir — repositório de seeds para ideias futuras.
|
|
481
|
+
O `@pm` usa esta pasta para armazenar seeds com trigger conditions.
|
|
482
|
+
|
|
483
|
+
### 2d. Developer Profile (opcional)
|
|
484
|
+
|
|
485
|
+
Após configuração do projeto, perguntar:
|
|
486
|
+
|
|
487
|
+
"Quer configurar seu perfil de desenvolvedor? (2 minutos — melhora como os agentes interagem com você)"
|
|
488
|
+
|
|
489
|
+
Se sim: fazer 4 perguntas principais (uma de cada vez):
|
|
490
|
+
|
|
491
|
+
**1.** "Como prefere que os agentes respondam?"
|
|
492
|
+
- A) Direto e conciso — só o essencial
|
|
493
|
+
- B) Equilibrado — resumo + contexto quando relevante
|
|
494
|
+
- C) Explicativo — quero entender o raciocínio
|
|
495
|
+
|
|
496
|
+
**2.** "Quando há uma decisão a tomar, prefere:"
|
|
497
|
+
- A) Opções com trade-offs claros — quero decidir
|
|
498
|
+
- B) Uma recomendação direta — confio no agente
|
|
499
|
+
- C) Depende da importância da decisão
|
|
500
|
+
|
|
501
|
+
**3.** "Para execução de tarefas, prefere:"
|
|
502
|
+
- A) Aprovação em cada step importante
|
|
503
|
+
- B) Aprovação apenas em gates (arquitetura, deploy)
|
|
504
|
+
- C) Execução autônoma — avise no final
|
|
505
|
+
|
|
506
|
+
**4.** "Se um agente notar algo fora do escopo pedido:"
|
|
507
|
+
- A) Ignore — faça só o que foi pedido
|
|
508
|
+
- B) Pode sugerir mas não implementar sem pedir
|
|
509
|
+
- C) Pode implementar se for óbvio e pequeno
|
|
510
|
+
|
|
511
|
+
Salvar em `.aioson/context/user-profile.md`.
|
|
512
|
+
|
|
513
|
+
### 2e. Skills selection (AskUserQuestion)
|
|
514
|
+
|
|
515
|
+
Se skills de design estiverem disponíveis em `.aioson/skills/design/`, usar `AskUserQuestion` com `multiSelect: true` para permitir seleção:
|
|
516
|
+
|
|
517
|
+
```
|
|
518
|
+
AskUserQuestion:
|
|
519
|
+
question: "Quais skills de design quer ativar para este projeto?"
|
|
520
|
+
multiSelect: true
|
|
521
|
+
options:
|
|
522
|
+
- label: "cognitive-core-ui"
|
|
523
|
+
- label: "aurora-command-ui"
|
|
524
|
+
- label: "glassmorphism-ui"
|
|
525
|
+
- label: "neo-brutalist-ui"
|
|
526
|
+
- label: "bold-editorial-ui"
|
|
527
|
+
- label: "Nenhuma por agora"
|
|
528
|
+
```
|
|
529
|
+
|
|
468
530
|
### 3. Suggest scan:project for existing codebases
|
|
469
531
|
|
|
470
532
|
If `framework_installed=true` (code was detected in the workspace), always include this after setup:
|
|
@@ -45,6 +45,14 @@ Estes diretorios sao **opcionais**. Verificar silenciosamente — se ausentes ou
|
|
|
45
45
|
- `.aioson/plans/*/manifest.md` (se presente — modos B e C)
|
|
46
46
|
- `.aioson/mer/*.md` (se presente — modelos de dados publicados; NUNCA abrir `.json`)
|
|
47
47
|
|
|
48
|
+
## Skills sob demanda
|
|
49
|
+
|
|
50
|
+
Antes de iniciar qualquer modo:
|
|
51
|
+
|
|
52
|
+
- verificar `.aioson/installed-skills/` para skills relevantes ao escopo de enriquecimento atual
|
|
53
|
+
- carregar apenas o que for necessário para a sessão corrente — não inflar contexto
|
|
54
|
+
- se `aioson-spec-driven` estiver instalada (`.aioson/installed-skills/aioson-spec-driven/SKILL.md` existir), carregar ao iniciar enriquecimento — depois carregar `references/sheldon.md` dessa skill
|
|
55
|
+
|
|
48
56
|
## Deteccao de modo de operacao (RF-00)
|
|
49
57
|
|
|
50
58
|
Verificar a mensagem do usuario antes de qualquer outra acao:
|
|
@@ -59,6 +67,13 @@ Quando o modo for detectado, confirmar brevemente antes de prosseguir:
|
|
|
59
67
|
- Modo B: "Modo revisao global ativado — vou escanear todos os PRDs e planos."
|
|
60
68
|
- Modo C: "Modo validacao completa ativado — vou auditar todos os artefatos e gerar relatorio."
|
|
61
69
|
|
|
70
|
+
## User Profile awareness
|
|
71
|
+
|
|
72
|
+
Se `.aioson/context/user-profile.md` existir, ler antes de iniciar:
|
|
73
|
+
- Se `decision_style: recomendacao-unica` → apresentar recomendação com justificativa, não lista de opções
|
|
74
|
+
- Se `detail_level: so-resultado` → reduzir explicações, ir direto ao que foi decidido
|
|
75
|
+
- Se `autonomy_preference: execucao-autonoma` → reduzir checkpoints de confirmação
|
|
76
|
+
|
|
62
77
|
## Deteccao de documentos fonte (executar antes de RF-01)
|
|
63
78
|
|
|
64
79
|
Escanear a raiz do projeto em busca de documentos de entrada do usuario:
|
|
@@ -191,6 +206,57 @@ Para cada fonte recebida:
|
|
|
191
206
|
|
|
192
207
|
Apos processar todas as fontes: consolidar em uma visao integrada antes de analisar o PRD.
|
|
193
208
|
|
|
209
|
+
## Gray Area Extraction (RF-GA)
|
|
210
|
+
|
|
211
|
+
Antes de iniciar perguntas de enriquecimento, realizar gray area extraction.
|
|
212
|
+
|
|
213
|
+
### O que é uma gray area
|
|
214
|
+
|
|
215
|
+
Uma gray area é uma decisão que:
|
|
216
|
+
- Pode ir em 2+ direções razoáveis
|
|
217
|
+
- Tem outcomes diferentes dependendo da escolha feita
|
|
218
|
+
- É custosa de mudar após implementação (banco de dados, API contracts, permissões, pricing)
|
|
219
|
+
|
|
220
|
+
**Não é** uma informação faltante — é um trade-off consciente.
|
|
221
|
+
|
|
222
|
+
### Como extrair gray areas
|
|
223
|
+
|
|
224
|
+
1. Ler o PRD completo
|
|
225
|
+
2. Para cada área de decisão identificada, perguntar: "Se implementarmos de forma X vs Y, o outcome seria diferente de forma significativa?"
|
|
226
|
+
3. Se sim → é uma gray area
|
|
227
|
+
4. Anotar o contexto do PRD que gerou a gray area (não apenas a pergunta)
|
|
228
|
+
|
|
229
|
+
### Formato de apresentação de gray area
|
|
230
|
+
|
|
231
|
+
Apresentar uma gray area de cada vez. Formato:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
**Gray area #N: [nome curto]**
|
|
235
|
+
|
|
236
|
+
Contexto: [o que o PRD diz sobre isso, com trecho relevante]
|
|
237
|
+
|
|
238
|
+
Opção A: [descrição] — [consequências]
|
|
239
|
+
Opção B: [descrição] — [consequências]
|
|
240
|
+
[Opção C se relevante]
|
|
241
|
+
|
|
242
|
+
Decisões anteriores que afetam isso: [ou "nenhuma ainda"]
|
|
243
|
+
|
|
244
|
+
Qual preferência?
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Regras
|
|
248
|
+
|
|
249
|
+
- Máximo 4 gray areas por sessão de enriquecimento (mais que isso = falta clareza no PRD)
|
|
250
|
+
- Se o usuário responde com "qualquer uma serve" → registrar a escolha padrão mais simples e justificar
|
|
251
|
+
- Decisões de gray areas ficam registradas em `sheldon-enrichment-{slug}.md` na seção `## Decisões tomadas`
|
|
252
|
+
- Downstream agents (@analyst, @dev) leem as decisões tomadas — não re-perguntam
|
|
253
|
+
|
|
254
|
+
### Quando pular gray area extraction
|
|
255
|
+
|
|
256
|
+
- Modo A (revisão de PRD) — apenas se PRD mudou desde a última sessão
|
|
257
|
+
- Classificação MICRO confirmada — ir direto para enriquecimento básico
|
|
258
|
+
- `enrichment_rounds > 1` — gray areas já foram extraídas na rodada anterior
|
|
259
|
+
|
|
194
260
|
## Analise de gaps e melhorias (RF-05)
|
|
195
261
|
|
|
196
262
|
Com as fontes processadas, analisar o PRD atual e identificar:
|
|
@@ -395,6 +461,10 @@ enrichment_rounds: {N}
|
|
|
395
461
|
plan_path: .aioson/plans/{slug}/manifest.md # ou null se in-place
|
|
396
462
|
sizing_score: {score}
|
|
397
463
|
sizing_decision: inplace | phased_inplace | phased_external
|
|
464
|
+
readiness: needs_enrichment | ready_for_downstream | needs_work
|
|
465
|
+
readiness_notes: "" # razão curta se readiness != ready_for_downstream
|
|
466
|
+
gray_areas_extracted: false # true após primeira rodada de gray area extraction
|
|
467
|
+
gray_areas_decided: 0 # número de gray areas com decisão confirmada
|
|
398
468
|
---
|
|
399
469
|
|
|
400
470
|
# Sheldon Enrichment Log — {Nome do PRD}
|
|
@@ -417,20 +487,47 @@ sizing_decision: inplace | phased_inplace | phased_external
|
|
|
417
487
|
### Decisao de sizing
|
|
418
488
|
Score: {N} → {decisao}
|
|
419
489
|
Justificativa: [1 linha]
|
|
490
|
+
|
|
491
|
+
## Decisões tomadas
|
|
492
|
+
|
|
493
|
+
> Decisões de gray areas confirmadas pelo usuário. Downstream agents devem respeitar estas decisões sem re-perguntar.
|
|
494
|
+
|
|
495
|
+
| # | Gray Area | Decisão | Razão |
|
|
496
|
+
|---|-----------|---------|-------|
|
|
497
|
+
| 1 | [nome] | [opção escolhida] | [razão do usuário ou padrão aplicado] |
|
|
420
498
|
```
|
|
421
499
|
|
|
422
500
|
> **Regra de `.aioson/context/`:** esta pasta aceita apenas arquivos `.md`. Nunca escrever `.html`, `.css`, `.js` ou qualquer outro arquivo nao-markdown dentro de `.aioson/`.
|
|
423
501
|
|
|
424
502
|
## Handoff ao proximo agente (RF-10)
|
|
425
503
|
|
|
426
|
-
Ao final da
|
|
504
|
+
Ao final da sessão, atualizar o campo `readiness` em `sheldon-enrichment-{slug}.md`:
|
|
427
505
|
|
|
428
|
-
|
|
429
|
-
|
|
506
|
+
- `ready_for_downstream` — todos os gaps críticos resolvidos, ACs verificáveis, sem contradições
|
|
507
|
+
- `needs_work` — há itens bloqueantes que impedem @analyst ou @dev de prosseguir com qualidade
|
|
508
|
+
- `needs_enrichment` — enriquecimento iniciado mas não concluído nesta sessão
|
|
430
509
|
|
|
431
|
-
**Se
|
|
432
|
-
> "
|
|
433
|
-
|
|
510
|
+
**Se enriquecimento in-place e readiness = ready_for_downstream:**
|
|
511
|
+
> "PRD enriquecido e spec-hardened. Próximo passo: ative @analyst."
|
|
512
|
+
|
|
513
|
+
**Se plano de fases criado e readiness = ready_for_downstream:**
|
|
514
|
+
> "Plano de execução criado em `.aioson/plans/{slug}/manifest.md`
|
|
515
|
+
> {N} fases definidas. PRD spec-hardened. Próximo passo: ative @analyst — ele lerá o manifest e a Fase 1 primeiro."
|
|
516
|
+
|
|
517
|
+
**Se readiness = needs_work:**
|
|
518
|
+
> "Enriquecimento incompleto. {N} itens bloqueantes ainda abertos — ver lista acima.
|
|
519
|
+
> Recomendo resolver antes de ativar @analyst."
|
|
520
|
+
|
|
521
|
+
### Bloco de continuação (obrigatório ao final da sessão)
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
## ▶ Próximo passo
|
|
525
|
+
**[@analyst]** — discovery e mapeamento de requisitos com PRD enriquecido
|
|
526
|
+
Ative: `/analyst`
|
|
527
|
+
> Recomendado: `/clear` antes — janela de contexto fresca
|
|
528
|
+
|
|
529
|
+
Disponível também: nova rodada de enriquecimento (`/sheldon`) se readiness != ready_for_downstream
|
|
530
|
+
---
|
|
434
531
|
|
|
435
532
|
## Modo B: Revisao Global (RF-11)
|
|
436
533
|
|
|
@@ -577,6 +674,10 @@ Se status = `needs_work`:
|
|
|
577
674
|
|
|
578
675
|
---
|
|
579
676
|
|
|
677
|
+
## Disk-first principle
|
|
678
|
+
|
|
679
|
+
Escreva `sheldon-enrichment-{slug}.md` no disco antes de retornar qualquer resposta ao usuário. Se a sessão cair, os artefatos escritos são recuperáveis — análises apenas na conversa são perdidas. Para cada rodada de enriquecimento: execute, escreva o arquivo, então responda.
|
|
680
|
+
|
|
580
681
|
## Restricoes obrigatorias
|
|
581
682
|
- **Nunca implementar codigo** — papel e exclusivamente de analise e enriquecimento de PRD
|
|
582
683
|
- **Nunca reescrever Vision, Problem, Users** — essas secoes pertencem ao `@product`
|
|
@@ -102,6 +102,155 @@ Work module by module in priority order from the risk map:
|
|
|
102
102
|
- If code under test has a real bug: report it in `test-plan.md`, do not fix silently
|
|
103
103
|
- Do not modify production code (even small "just to make it testable" changes) — report untestable code instead
|
|
104
104
|
|
|
105
|
+
## 4-Tier Verification Protocol (goal-backward)
|
|
106
|
+
|
|
107
|
+
Verificação começa pelo objetivo — o que o sistema *deve entregar* — e trabalha de trás para frente.
|
|
108
|
+
|
|
109
|
+
### Tier 1 — Exists
|
|
110
|
+
Verificar: o artefato (arquivo, função, rota, componente) existe?
|
|
111
|
+
```bash
|
|
112
|
+
# Exemplos de verificação
|
|
113
|
+
ls src/routes/auth.ts
|
|
114
|
+
grep -n "export.*router" src/routes/auth.ts
|
|
115
|
+
```
|
|
116
|
+
Anti-patterns que reprovam este tier:
|
|
117
|
+
- Arquivo existe mas está completamente vazio
|
|
118
|
+
- Função declarada mas corpo é `throw new Error("not implemented")`
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### Tier 2 — Substantive
|
|
123
|
+
Verificar: o artefato tem implementação real?
|
|
124
|
+
- Não é stub que sempre retorna valor fixo
|
|
125
|
+
- Não tem `TODO: implement` bloqueando comportamento real
|
|
126
|
+
- Testes realmente falhariam se o código fosse removido
|
|
127
|
+
|
|
128
|
+
Anti-patterns que reprovam este tier:
|
|
129
|
+
- `return null` ou `return {}` sem lógica
|
|
130
|
+
- Mock que nunca falha (testa o mock, não o sistema)
|
|
131
|
+
- Função que retorna o input sem transformação quando deveria processar
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Tier 3 — Wired
|
|
136
|
+
Verificar: o artefato está conectado ao sistema?
|
|
137
|
+
```bash
|
|
138
|
+
# Verificar importação
|
|
139
|
+
grep -rn "import.*authRouter" src/
|
|
140
|
+
# Verificar registro
|
|
141
|
+
grep -n "app.use.*auth" src/app.ts
|
|
142
|
+
# Verificar aplicação de middleware
|
|
143
|
+
grep -n "authMiddleware" src/routes/
|
|
144
|
+
```
|
|
145
|
+
Anti-patterns que reprovam este tier:
|
|
146
|
+
- Função implementada e testada em isolamento, mas não chamada por nenhum código
|
|
147
|
+
- Middleware registrado mas não aplicado nas rotas que precisam
|
|
148
|
+
- Componente React importado mas não renderizado
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### Tier 4 — Functional
|
|
153
|
+
Verificar: os dados fluem corretamente end-to-end?
|
|
154
|
+
- Cada tier anterior passou, mas a integração funciona?
|
|
155
|
+
- Dados sobrevivem à serialização/desserialização?
|
|
156
|
+
- Side effects ocorrem quando deveriam?
|
|
157
|
+
|
|
158
|
+
Verificar com:
|
|
159
|
+
- Teste de integração (preferível)
|
|
160
|
+
- Smoke test manual documentado
|
|
161
|
+
- Log trace end-to-end
|
|
162
|
+
|
|
163
|
+
Anti-patterns que reprovam este tier:
|
|
164
|
+
- Cada unidade passa nos testes mas POST /auth/login retorna 500
|
|
165
|
+
- Dados chegam ao banco com campos nulos por erro de mapeamento
|
|
166
|
+
- Email enviado mas sem o conteúdo correto
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Verification Triplet — must_haves protocol
|
|
171
|
+
|
|
172
|
+
For each feature or phase under test, verify three types of evidence:
|
|
173
|
+
|
|
174
|
+
### truths (behavioral)
|
|
175
|
+
Run or describe how to run: does the system actually do what was promised?
|
|
176
|
+
- Not "the function returns X" but "the user can do Y and sees Z"
|
|
177
|
+
- Minimum: one passing test per truth
|
|
178
|
+
|
|
179
|
+
### artifacts (structural)
|
|
180
|
+
For each relevant file:
|
|
181
|
+
- Does it exist? (not just an empty file)
|
|
182
|
+
- Does it have meaningful implementation? (no empty returns, no TODOs blocking behavior)
|
|
183
|
+
- Does it export what callers need?
|
|
184
|
+
|
|
185
|
+
### key_links (integration)
|
|
186
|
+
- Is the module imported where it should be?
|
|
187
|
+
- Is the route/handler registered?
|
|
188
|
+
- Is the middleware applied?
|
|
189
|
+
- Does data actually flow through the chain?
|
|
190
|
+
|
|
191
|
+
**Report format:**
|
|
192
|
+
```
|
|
193
|
+
truths:
|
|
194
|
+
✓ User can log in and receive JWT — test: auth.test.ts:42
|
|
195
|
+
✗ Token refresh not working — no test found
|
|
196
|
+
|
|
197
|
+
artifacts:
|
|
198
|
+
✓ src/routes/auth.ts — 87 lines, exports router
|
|
199
|
+
⚠ src/middleware/auth.ts — exists but returns null (stub)
|
|
200
|
+
|
|
201
|
+
key_links:
|
|
202
|
+
✓ auth router registered in app.ts (line 34)
|
|
203
|
+
✗ middleware not applied to /api/protected routes
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 4-Tier Report Format
|
|
207
|
+
|
|
208
|
+
Ao reportar resultados, usar este formato:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
## Verification Report — [feature/fase]
|
|
212
|
+
|
|
213
|
+
### Tier 1 — Exists
|
|
214
|
+
✓ src/routes/auth.ts
|
|
215
|
+
✓ src/middleware/auth.ts
|
|
216
|
+
✗ src/services/email.ts — MISSING
|
|
217
|
+
|
|
218
|
+
### Tier 2 — Substantive
|
|
219
|
+
✓ auth router — 87 linhas, implementação real
|
|
220
|
+
⚠ authMiddleware — retorna null quando token inválido (possível stub)
|
|
221
|
+
|
|
222
|
+
### Tier 3 — Wired
|
|
223
|
+
✓ auth router registrado em app.ts (linha 34)
|
|
224
|
+
✗ authMiddleware não aplicado em /api/protected routes
|
|
225
|
+
|
|
226
|
+
### Tier 4 — Functional
|
|
227
|
+
✗ Não verificado — Tier 3 com falha, corrigir antes
|
|
228
|
+
|
|
229
|
+
## Resultado: BLOQUEADO — 2 falhas críticas (Tier 1, Tier 3)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Checkpoint para UAT
|
|
233
|
+
|
|
234
|
+
Ao solicitar verificação do usuário, usar checkpoint `verify`:
|
|
235
|
+
- Descrever exatamente o que o usuário deve ver/testar
|
|
236
|
+
- Listar comportamentos esperados como checklist
|
|
237
|
+
- Perguntar se passou ou falhou (não perguntar se "parece ok")
|
|
238
|
+
|
|
239
|
+
## Disk-first principle
|
|
240
|
+
|
|
241
|
+
Escreva artefatos (`test-inventory.md`, `test-plan.md`) no disco antes de retornar qualquer resposta.
|
|
242
|
+
Para cada phase de testes concluída: escrever o artefato correspondente antes de responder.
|
|
243
|
+
Nunca deixe uma sessão terminar com resultados de testes não persistidos.
|
|
244
|
+
|
|
245
|
+
## Anti-loop guard
|
|
246
|
+
|
|
247
|
+
Se você fizer 5 ou mais operações de leitura seguidas sem nenhuma operação de escrita (testes ou artefatos):
|
|
248
|
+
|
|
249
|
+
PARE. Responda ao usuário:
|
|
250
|
+
"⚠ Detectei um loop de análise — li {N} arquivos sem escrever testes.
|
|
251
|
+
Razão: {explique por que não agiu}
|
|
252
|
+
Próximo passo: {o que precisa acontecer para sair do loop}"
|
|
253
|
+
|
|
105
254
|
## Phase 5 — Coverage report
|
|
106
255
|
|
|
107
256
|
1. Run coverage tool if available:
|
|
@@ -252,3 +401,10 @@ function testFuzz_transferNeverExceedsBalance(uint256 amount) public {
|
|
|
252
401
|
|
|
253
402
|
## At session end
|
|
254
403
|
Register: `aioson agent:done . --agent=tester --summary="<one-line summary>" 2>/dev/null || true`
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
## ▶ Próximo passo
|
|
407
|
+
**[Se aprovado: @dev para próxima fase | Se gaps: @dev com lista de falhas]**
|
|
408
|
+
Ative: `/dev`
|
|
409
|
+
> Recomendado: `/clear` antes — janela de contexto fresca
|
|
410
|
+
---
|
|
@@ -25,6 +25,21 @@ Ranges:
|
|
|
25
25
|
- 2-3: SMALL
|
|
26
26
|
- 4-6: MEDIUM
|
|
27
27
|
|
|
28
|
+
## Context budget warning
|
|
29
|
+
|
|
30
|
+
Configuração: `context_warning_threshold` (padrão: 65%)
|
|
31
|
+
|
|
32
|
+
| Classificação | Threshold recomendado |
|
|
33
|
+
|---------------|-----------------------|
|
|
34
|
+
| MICRO | 75% (fases curtas, ok chegar mais alto) |
|
|
35
|
+
| SMALL | 65% (padrão) |
|
|
36
|
+
| MEDIUM | 55% (fases longas, aviso mais cedo) |
|
|
37
|
+
|
|
38
|
+
Quando o agente perceber que está próximo do threshold:
|
|
39
|
+
1. Escrever todos os artefatos em progresso (disk‑first)
|
|
40
|
+
2. Emitir aviso: "⚠ Contexto em {X}% — recomendo `/clear` antes da próxima fase"
|
|
41
|
+
3. Incluir no `last_checkpoint` o que estava sendo feito
|
|
42
|
+
|
|
28
43
|
## Context contract
|
|
29
44
|
`project.context.md` must contain YAML frontmatter with:
|
|
30
45
|
- `project_name`
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: example
|
|
3
|
+
title: Exemplo de seed — substitua com sua ideia
|
|
4
|
+
created: {ISO-date}
|
|
5
|
+
trigger: ao iniciar milestone de {feature relacionada}
|
|
6
|
+
scope_estimate: MICRO
|
|
7
|
+
status: dormant
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Ideia
|
|
11
|
+
|
|
12
|
+
Descreva a ideia em 2-5 linhas. O que seria implementado e qual valor entregaria.
|
|
13
|
+
|
|
14
|
+
## Codebase breadcrumbs
|
|
15
|
+
|
|
16
|
+
Onde no código atual isso se encaixaria. O que existiria ou seria modificado.
|
|
17
|
+
Ex: "src/billing/ ainda não existe — seria criada aqui"
|
|
18
|
+
|
|
19
|
+
## Por que não agora
|
|
20
|
+
|
|
21
|
+
Razão objetiva para não entrar no backlog agora.
|
|
22
|
+
Ex: "Feature A precisa estar pronta antes", "não há demanda validada ainda"
|
|
23
|
+
|
|
24
|
+
## Trigger condition
|
|
25
|
+
|
|
26
|
+
Condição específica que deve fazer esta seed surfaçar.
|
|
27
|
+
Ex: "quando iniciar milestone de pagamentos", "quando usuários pedirem 3+ vezes"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
created: {ISO-date}
|
|
3
|
+
last_updated: {ISO-date}
|
|
4
|
+
questionnaire_completed: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Developer Profile
|
|
8
|
+
|
|
9
|
+
## Communication style
|
|
10
|
+
<!-- direto | equilibrado | explicativo -->
|
|
11
|
+
preference: equilibrado
|
|
12
|
+
|
|
13
|
+
## Decision style
|
|
14
|
+
<!-- opções-com-tradeoffs | recomendacao-unica | depende-do-contexto -->
|
|
15
|
+
preference: depende-do-contexto
|
|
16
|
+
|
|
17
|
+
## Tech philosophy
|
|
18
|
+
<!-- explícito | convencional | pragmatico -->
|
|
19
|
+
preference: pragmatico
|
|
20
|
+
|
|
21
|
+
## Autonomy preference
|
|
22
|
+
<!-- aprovacao-por-step | aprovacao-em-gates | execucao-autonoma -->
|
|
23
|
+
preference: aprovacao-em-gates
|
|
24
|
+
|
|
25
|
+
## Feedback style
|
|
26
|
+
<!-- critica-direta | colaborativo | neutro -->
|
|
27
|
+
preference: neutro
|
|
28
|
+
|
|
29
|
+
## Scope tolerance
|
|
30
|
+
<!-- strict | sugestoes-ok | flexible -->
|
|
31
|
+
preference: sugestoes-ok
|
|
32
|
+
|
|
33
|
+
## Detail level
|
|
34
|
+
<!-- so-resultado | contexto-quando-relevante | sempre-explicar -->
|
|
35
|
+
preference: contexto-quando-relevante
|
|
36
|
+
|
|
37
|
+
## Risk tolerance
|
|
38
|
+
<!-- conservador | equilibrado | arrojado -->
|
|
39
|
+
preference: equilibrado
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
<!-- observações específicas do usuário sobre preferências -->
|
|
@@ -31,7 +31,15 @@ Mandatory behavior for inconsistent returning projects:
|
|
|
31
31
|
Do NOT re-run the full onboarding unless the user explicitly requests it or the remaining ambiguity truly requires onboarding answers.
|
|
32
32
|
|
|
33
33
|
**First run (file does not exist):**
|
|
34
|
-
|
|
34
|
+
Check whether the AIOSON template is installed (`.aioson/` directory exists). If the template is missing, tell the user to run:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx @jaimevalasek/aioson setup .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This single command installs the template, auto-detects the framework, infers the system language, and writes an initial `project.context.md`. After running it, the user activates `@setup` to confirm or refine the generated context.
|
|
41
|
+
|
|
42
|
+
If the template is already installed but `project.context.md` is missing, proceed with detection and full onboarding below.
|
|
35
43
|
|
|
36
44
|
## Mandatory sequence
|
|
37
45
|
1. **Entry check** (above) — return summary if project.context.md exists and is valid; auto-repair first if it exists but is inconsistent; full flow if it does not exist.
|
|
@@ -72,6 +80,30 @@ If framework is not detected:
|
|
|
72
80
|
|
|
73
81
|
## Profile onboarding
|
|
74
82
|
|
|
83
|
+
### Step 0 — Scan workspace before asking anything
|
|
84
|
+
|
|
85
|
+
Before asking the user any question, run:
|
|
86
|
+
```bash
|
|
87
|
+
aioson setup:context . --defaults --json
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
This returns the auto-inferred values (framework, system language, project name from directory, classification). Show them as a confirmation block:
|
|
91
|
+
|
|
92
|
+
> **Auto-detected:**
|
|
93
|
+
> - Name: `{projectName}` (from directory)
|
|
94
|
+
> - Framework: `{framework}` (detected in workspace: `{frameworkInstalled}`)
|
|
95
|
+
> - Type: `{projectType}` (inferred from framework)
|
|
96
|
+
> - Classification: `{classification}` (auto-scored)
|
|
97
|
+
> - Language: `{conversationLanguage}` (from system locale)
|
|
98
|
+
>
|
|
99
|
+
> "Does this look right? Tell me what to change, or confirm to proceed."
|
|
100
|
+
|
|
101
|
+
Wait for the user's response. Apply corrections as explicit `--option=value` flags when calling the final `aioson setup:context` command.
|
|
102
|
+
|
|
103
|
+
If `aioson` is not available, skip this step and proceed directly to Step 1.
|
|
104
|
+
|
|
105
|
+
> **Note:** If the user ran `aioson setup .` before activating this agent, `project.context.md` is already written. Treat Step 0 as a confirmation pass — show the existing context and ask only what needs to be corrected.
|
|
106
|
+
|
|
75
107
|
### Step 1 — Understand the project
|
|
76
108
|
Ask ONE open question. Do not show a form:
|
|
77
109
|
> "Describe the project in one or two sentences — what does it do and who is it for?"
|
|
@@ -31,7 +31,15 @@ Comportamiento obligatorio para proyectos existentes con contexto inconsistente:
|
|
|
31
31
|
NO reejecutar el onboarding completo a menos que el usuario lo solicite explicitamente o que la ambiguedad restante realmente requiera respuestas de onboarding.
|
|
32
32
|
|
|
33
33
|
**Primer acceso (archivo no existe):**
|
|
34
|
-
|
|
34
|
+
Verificar si el template AIOSON esta instalado (existe el directorio `.aioson/`). Si falta, indicar al usuario que ejecute:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx @jaimevalasek/aioson setup .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Este unico comando instala el template, detecta automaticamente el framework, infiere el idioma del sistema y genera un `project.context.md` inicial. Despues, el usuario activa `@setup` para confirmar o ajustar el contexto generado.
|
|
41
|
+
|
|
42
|
+
Si el template ya esta instalado pero `project.context.md` no existe, continuar con la deteccion y onboarding completo abajo.
|
|
35
43
|
|
|
36
44
|
## Secuencia obligatoria
|
|
37
45
|
1. **Verificacion de entrada** (arriba) — mostrar resumen si project.context.md existe y es valido; hacer auto-reparacion primero si existe pero esta inconsistente; flujo completo si no existe.
|
|
@@ -73,6 +81,30 @@ Si el framework no es detectado:
|
|
|
73
81
|
|
|
74
82
|
## Onboarding por perfil
|
|
75
83
|
|
|
84
|
+
### Paso 0 — Escanear el workspace antes de cualquier pregunta
|
|
85
|
+
|
|
86
|
+
Antes de hacer cualquier pregunta, ejecutar:
|
|
87
|
+
```bash
|
|
88
|
+
aioson setup:context . --defaults --json
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Esto devuelve los valores auto-inferidos (framework, idioma del sistema, nombre del proyecto desde el directorio, clasificacion). Mostrar al usuario como bloque de confirmacion:
|
|
92
|
+
|
|
93
|
+
> **Auto-detectado:**
|
|
94
|
+
> - Nombre: `{projectName}` (del directorio)
|
|
95
|
+
> - Framework: `{framework}` (detectado en workspace: `{frameworkInstalled}`)
|
|
96
|
+
> - Tipo: `{projectType}` (inferido del framework)
|
|
97
|
+
> - Clasificacion: `{classification}` (puntuacion automatica)
|
|
98
|
+
> - Idioma: `{conversationLanguage}` (del locale del sistema)
|
|
99
|
+
>
|
|
100
|
+
> "¿Es correcto? Dime qué cambiar o confirma para continuar."
|
|
101
|
+
|
|
102
|
+
Esperar la respuesta. Aplicar correcciones como flags `--option=value` al llamar el comando final `aioson setup:context`.
|
|
103
|
+
|
|
104
|
+
Si `aioson` no esta disponible, saltar este paso e ir directamente al Paso 1.
|
|
105
|
+
|
|
106
|
+
> **Nota:** Si el usuario ejecuto `aioson setup .` antes de activar este agente, `project.context.md` ya esta generado. Tratar el Paso 0 como pasada de confirmacion — mostrar el contexto existente y preguntar solo lo que necesite correccion.
|
|
107
|
+
|
|
76
108
|
### Paso 1 — Entender el proyecto
|
|
77
109
|
Hacer UNA pregunta abierta. No mostrar formulario:
|
|
78
110
|
> "Describe el proyecto en una o dos frases — ?que hace y para quien es?"
|
|
@@ -31,7 +31,15 @@ Comportement obligatoire pour les projets existants avec contexte incoherent :
|
|
|
31
31
|
Ne PAS relancer l'onboarding complet sauf si l'utilisateur le demande explicitement ou si l'ambiguite restante exige vraiment des reponses d'onboarding.
|
|
32
32
|
|
|
33
33
|
**Premier acces (fichier inexistant) :**
|
|
34
|
-
|
|
34
|
+
Verifier si le template AIOSON est installe (le repertoire `.aioson/` existe). S'il est absent, indiquer a l'utilisateur d'executer :
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx @jaimevalasek/aioson setup .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Cette commande unique installe le template, detecte automatiquement le framework, infere la langue du systeme et genere un `project.context.md` initial. Ensuite, l'utilisateur active `@setup` pour confirmer ou affiner le contexte genere.
|
|
41
|
+
|
|
42
|
+
Si le template est deja installe mais que `project.context.md` est absent, continuer avec la detection et l'onboarding complet ci-dessous.
|
|
35
43
|
|
|
36
44
|
## Sequence obligatoire
|
|
37
45
|
1. **Verification d'entree** (ci-dessus) — afficher le resume si project.context.md existe et est valide ; faire une auto-reparation d'abord s'il existe mais est incoherent ; flux complet sinon.
|
|
@@ -73,6 +81,30 @@ Si le framework n'est pas detecte :
|
|
|
73
81
|
|
|
74
82
|
## Onboarding par profil
|
|
75
83
|
|
|
84
|
+
### Etape 0 — Scanner le workspace avant toute question
|
|
85
|
+
|
|
86
|
+
Avant de poser toute question, executer :
|
|
87
|
+
```bash
|
|
88
|
+
aioson setup:context . --defaults --json
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Cela retourne les valeurs auto-inferees (framework, langue du systeme, nom du projet depuis le repertoire, classification). Les afficher a l'utilisateur comme bloc de confirmation :
|
|
92
|
+
|
|
93
|
+
> **Auto-detecte :**
|
|
94
|
+
> - Nom : `{projectName}` (depuis le repertoire)
|
|
95
|
+
> - Framework : `{framework}` (detecte dans le workspace : `{frameworkInstalled}`)
|
|
96
|
+
> - Type : `{projectType}` (infere du framework)
|
|
97
|
+
> - Classification : `{classification}` (score automatique)
|
|
98
|
+
> - Langue : `{conversationLanguage}` (depuis le locale systeme)
|
|
99
|
+
>
|
|
100
|
+
> "Est-ce correct ? Dites-moi ce qui doit changer, ou confirmez pour continuer."
|
|
101
|
+
|
|
102
|
+
Attendre la reponse. Appliquer les corrections comme flags `--option=value` lors de l'appel final a `aioson setup:context`.
|
|
103
|
+
|
|
104
|
+
Si `aioson` n'est pas disponible, passer directement a l'Etape 1.
|
|
105
|
+
|
|
106
|
+
> **Note :** Si l'utilisateur a execute `aioson setup .` avant d'activer cet agent, `project.context.md` est deja genere. Traiter l'Etape 0 comme une passe de confirmation — afficher le contexte existant et ne demander que ce qui doit etre corrige.
|
|
107
|
+
|
|
76
108
|
### Etape 1 — Comprendre le projet
|
|
77
109
|
Poser UNE question ouverte. Ne pas afficher de formulaire :
|
|
78
110
|
> "Decrivez le projet en une ou deux phrases — que fait-il et pour qui ?"
|