Skip to content

feat: fda_sdlc enxuto — repair loop in-run, review gated, planner condicional e docs por milestone - #47

Merged
elberrd merged 1 commit into
mainfrom
feat/sdlc-enxuto
Aug 23, 2026
Merged

feat: fda_sdlc enxuto — repair loop in-run, review gated, planner condicional e docs por milestone#47
elberrd merged 1 commit into
mainfrom
feat/sdlc-enxuto

Conversation

@elberrd

@elberrd elberrd commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Contexto

Estudo de consumo medido no projeto real info-move: ~1,04B tokens / US$637 / ~53h para um web app médio. O fda_sdlc (runner default do /goal) respondeu por 679M em 31 runs — e era o único FDA testado sem loop de reparo: cada suite vermelha virava recovery por resume do orquestrador (re-retomando todas as sessões gigantes), com review rodando mesmo em suite vermelha (mesma classe do bug do audit do /qa, PR #43). Pior run: 16 ciclos de build, 112M tokens, US$79.

O que muda

  1. Repair loop in-run (portado do fda_build_test): createRepairTracker + test_1..n + fix_i com a regra repairExecuted (replay não conta), encerrando como no_progress/attempt_cap — 3 rounds baratos na mesma sessão pequena em vez de N resumes de run inteiro.
  2. review só com suite verde — fase gratuita review_skip (nome distinto ⇒ resume pós-fix roda o review real), espelho exato do audit_skip do /qa.
  3. Planner condicional (sdlc.plan: auto|always|never, default auto): brief autocontido do sequencer (seções + checklist) pula o planner; Kind: foundation/kit e Planning: full sempre planejam. O brief JÁ é o plano — replanejar custava ~2,5M tokens/run.
  4. Docs por milestone (sdlc.document: per_milestone default): o /goal drena a documentação com UM fda_document na virada do milestone (29 chamadas → ~7 no projeto medido); per_task mantém o comportamento antigo.
  5. builderDeclaredFiles extraído para modules/utils.mjs — 5 cópias viram 1 (pattern por runner), lição "nunca o mesmo parágrafo em duas casas".

Superfícies atualizadas

fia.config.yaml (bloco sdlc: comentado + attempt_cap agora cita o sdlc), goal.md (drain de docs no milestone), cookbooks run_fda/harness_bridge, DOCS.md §9 (linha do fda_sdlc reescrita — o texto antigo dizia "review runs even when tests failed").

Testes

test/fia-sdlc-repair.test.js novo: política sdlc (defaults/overrides/warns), briefIsSelfContained/briefWantsPlanner (foundation/Planning: full/one-liner), builderDeclaredFiles compartilhado (união, pattern custom, degrade), e asserts de fonte pinando: review atrás de test.passed, loop bounded pelo tracker, documenter atrás de per_task — o mesmo estilo que pina os guards do /qa. Suite completa: 1443 pass + lint limpo.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NPYaKxNaVRhPumKbawFNT3

…, planner condicional e docs por milestone

O runner default do /goal era o único FDA testado sem loop de reparo e sem
tracker de progresso: cada suite vermelha virava recovery por resume do
orquestrador (re-retomando todas as sessões de agente na largura máxima), e o
review rodava mesmo com teste vermelho — a mesma classe de bug do audit do /qa
(caso de US$13/10,5M tokens). Medido em projeto real: 679M tokens em 31 runs de
fda_sdlc, com um run de 16 ciclos de build (112M/US$79).

- Repair loop in-run portado do fda_build_test (createRepairTracker, test_1..n,
  fix_i com a regra repairExecuted; NO_PROGRESS/ATTEMPT_CAP no lugar de resume).
- review atrás de test.passed, com fase gratuita review_skip (nome distinto —
  resume pós-fix roda o review real), espelhando o audit_skip do /qa.
- Planner condicional (sdlc.plan: auto|always|never): brief autocontido do
  sequencer pula o planner; Kind: foundation/kit e Planning: full sempre planejam.
- Documentação por milestone (sdlc.document: per_milestone default): o /goal
  drena docs com UM fda_document na virada de milestone; per_task mantém o
  comportamento antigo.
- builderDeclaredFiles extraído para modules/utils.mjs (5 cópias viram 1, com
  pattern por runner).
- Config template, goal.md, cookbooks (run_fda, harness_bridge) e DOCS.md §9
  atualizados; testes novos em test/fia-sdlc-repair.test.js.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPYaKxNaVRhPumKbawFNT3
@elberrd
elberrd merged commit 1848c69 into main Aug 23, 2026
7 checks passed
@elberrd
elberrd deleted the feat/sdlc-enxuto branch August 23, 2026 20:33
elberrd added a commit that referenced this pull request Aug 23, 2026
Fecha a release da sprint de redução de tokens (#47-#53): fda_sdlc enxuto,
rotação de sessão, orçamentos de tokens/timeout, reviewer escopado, tree-guard
compartilhado, /goal por milestone e phase_overrides pré-semeados.


Claude-Session: https://claude.ai/code/session_01NPYaKxNaVRhPumKbawFNT3

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