feat: fda_sdlc enxuto — repair loop in-run, review gated, planner condicional e docs por milestone - #47
Merged
Merged
Conversation
…, 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
This was referenced Aug 23, 2026
Merged
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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), comreviewrodando 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
fda_build_test):createRepairTracker+test_1..n+fix_icom a regrarepairExecuted(replay não conta), encerrando comono_progress/attempt_cap— 3 rounds baratos na mesma sessão pequena em vez de N resumes de run inteiro.reviewsó com suite verde — fase gratuitareview_skip(nome distinto ⇒ resume pós-fix roda o review real), espelho exato doaudit_skipdo /qa.sdlc.plan: auto|always|never, defaultauto): brief autocontido do sequencer (seções + checklist) pula o planner;Kind: foundation/kitePlanning: fullsempre planejam. O brief JÁ é o plano — replanejar custava ~2,5M tokens/run.sdlc.document: per_milestonedefault): o /goal drena a documentação com UMfda_documentna virada do milestone (29 chamadas → ~7 no projeto medido);per_taskmantém o comportamento antigo.builderDeclaredFilesextraído paramodules/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(blocosdlc:comentado + attempt_cap agora cita o sdlc),goal.md(drain de docs no milestone), cookbooksrun_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.jsnovo: política sdlc (defaults/overrides/warns),briefIsSelfContained/briefWantsPlanner(foundation/Planning: full/one-liner),builderDeclaredFilescompartilhado (união, pattern custom, degrade), e asserts de fonte pinando: review atrás detest.passed, loop bounded pelo tracker, documenter atrás deper_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