Skip to content

fix: guard do /onboarding invertido — recusava o caso principal (app real nunca absorvido) - #29

Merged
elberrd merged 1 commit into
mainfrom
fix/onboarding-guard
Aug 17, 2026
Merged

fix: guard do /onboarding invertido — recusava o caso principal (app real nunca absorvido)#29
elberrd merged 1 commit into
mainfrom
fix/onboarding-guard

Conversation

@elberrd

@elberrd elberrd commented Aug 17, 2026

Copy link
Copy Markdown
Owner

O bug (achado no double-check)

O passo 0 do /onboarding exigia mode === brownfield do project-mode.mjs — mas o script só devolve brownfield DEPOIS do onboarding (map.yaml, task-master ou PRD-as-built presentes). Um app existente recém-instalado, nunca absorvido, reporta greenfield — por design: o próprio header do script diz que reconhecer app real não absorvido "fica com a IA" (código não distingue starter de produto). Resultado: o comando parava com "nothing to absorb" exatamente no cenário para o qual foi criado.

O fix

Guard reescrito nos 3 arquivos (prompt Pi + variantes .cursor/.claude no harness, commit a1db4e7): o script fornece a evidência; o agente decide a pergunta de entrada — "há uma aplicação REAL aqui (código feito à mão, não o starter)?". App real → segue (brownfield já absorvido também, com o skip por estágio); sem app real → roteia em uma linha (/idea sem PRD real; /grill→/map — /start no harness — com PRD real e nada construído).

Alinhamento do funil (mesma varredura)

Rotas antigas que mandavam sistema nunca onboardado direto ao /absorb agora preferem /onboarding:

  • idea.md (nota greenfield/ideation) e guide.md (sonda 5) → "/onboarding first"
  • feature.md (Pi + .cursor + .claude) → "/onboarding first (or /absorb alone for just the map)"
  • src/steps/stack.js (info do installer) e src/lib/stack.js (label brownfield do manifesto stack.md)

Verificado sem problemas

Contratos de CLI citados nos prompts conferidos contra os scripts reais (decision-log.mjs open/note/close/latest + regex de nome + --json devolve null gracioso; docs-commit.mjs --message; project-mode.mjs --json); paridade byte-a-byte das variantes .cursor/.claude (só frontmatter + paths); symlink .agents; 24 prompts = header do DOCS §12.1; prompt no tarball do npm pack. Lição registrada no lessons.md (local).

Testes

npm test — 746 pass, 0 fail · npm run lint limpo

🤖 Generated with Claude Code

…pós o absorb) + rotas de sistema nunca onboardado apontam /onboarding

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@elberrd
elberrd merged commit ca01c84 into main Aug 17, 2026
@elberrd
elberrd deleted the fix/onboarding-guard branch August 17, 2026 00:37
elberrd added a commit that referenced this pull request Aug 17, 2026
… retomada, --report-only) (#30)

A alpha.12 foi publicada às 20:07 de hoje, ANTES dos merges do /onboarding
(#27 às 20:37, #28 e #29 depois) — o pacote publicado não tem nada do
comando novo. Mesma versão devolve E403, então o bump é o caminho.

Delta desde a alpha.12 publicada: o comando /onboarding inteiro (prompt Pi
+ registro em SKILL.md/fia.js/finish.js/mode.js/README/DOCS), o trilho de
retomada no decision log + modo expresso --report-only, e o fix do guard
invertido do project-mode (+ funil idea/guide/feature/stack apontando
/onboarding).

Testes: 746 passando, lint limpo. Tarball: npm pack --dry-run com 184
arquivos, 424.9 kB, onboarding.md incluído.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant