feat: comando /defer + imp defer — adiar tarefa com quarentena reversível dos probes selados - #45
Merged
Merged
Conversation
…ível dos probes selados Situação-alvo: uma task não pode avançar por motivo FORA do código (API keys que o aluno só vai colocar depois, decisão pendente) e seus probes selados em imp/data/holdout/ passariam a falhar toda run — e agentes não podem tocar o diretório. A válvula de escape era um mv manual ditado pelo Pi; agora é comando de primeira classe, reversível e com trilha. - imp/scripts/task-defer.mjs novo: `imp defer <n>` renomeia NN-*.mjs → _NN-*.mjs (prefixo "não é probe" do runner, conteúdo intocado), marca `deferred` nos DOIS lugares (issue + index), grava ledger em imp/data/deferrals.json e nota em ai-docs/inbox.md; `resume <n>` restaura tudo e volta para `pending`; `list --json` para máquinas. - Guards de engenheiro: recusa sob FIA_FDA_RUN e com .fda.lock vivo (builder nunca adia o probe que o julga); confirmação em TTY ou --yes explícito; rename nunca sobrescreve (colisão = erro). - Launch check ganha `tasks_deferred` (warn): tasks_done conta deferred como fechada e um probe _quarentenado ficava invisível — agora todo adiamento aberto aparece no lançamento, com o fix (`imp defer resume <n>`). - Registro completo: STAMPED + help do bin/imp.js, npmScripts defer, prompt Pi /defer, Routing do SKILL.md + seção no cookbook run_fda, painéis fia.js/finish.js, README e DOCS (§12.1 vira "The 28 commands" + §9.9). - Testes: test/task-defer.test.js (quarentena/restauração, dois lugares de status, ledger/inbox, guards, colisão, CLI) + tasks_deferred no fia-launch-check.test.js + asserts no imp-smoke. Suíte completa verde (1431) e lint limpo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B9gdPsvMDQNkqKpz9HPx4X
elberrd
added a commit
that referenced
this pull request
Aug 22, 2026
Fecha a release com /llm + imp llm (#42), guards do /qa (#43) e o novo /defer + imp defer (#45) — pronta para npm publish. Claude-Session: https://claude.ai/code/session_01B9gdPsvMDQNkqKpz9HPx4X 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.
O problema
Uma task que não pode avançar por motivo fora do código (API keys que o aluno só vai colocar depois, decisão pendente) deixava seus probes selados em
imp/data/holdout/falhando toda run seguinte — e agentes não podem tocar o diretório (ele os julga). A válvula de escape era ummvmanual ditado pelo Pi: frágil, sem trilha e invisível no lançamento.O que entra
imp/scripts/task-defer.mjs(novo):imp defer <n>renomeiaNN-*.mjs→_NN-*.mjs(prefixo "não é probe" do runner — conteúdo intocado, reversível), marcadeferrednos dois lugares (issue + index), grava ledger emimp/data/deferrals.jsone nota emai-docs/inbox.md.imp defer resume <n>restaura tudo e volta parapending.list --jsonpara máquinas.FIA_FDA_RUNe com.fda.lockvivo (um builder nunca adia o probe que o julga); confirmação em TTY ou--yesexplícito; rename nunca sobrescreve (colisão = erro).tasks_deferred—tasks_doneconta deferred como fechada e um probe quarentenado ficava invisível para sempre; agora todo adiamento aberto aparece no/launch, com o fix.bin/imp.js, npmScriptsdefer, prompt Pi/defer, linha no Routing do SKILL.md + seção no cookbookrun_fda, painéisfia.js/finish.js, README e DOCS (§12.1 vira "The 28 commands" + §9.9).Testes
test/task-defer.test.js: quarentena/restauração round-trip, escrita nos dois lugares de status, ledger + inbox, guards (env + lock com pid vivo), recusa de task done, colisão de rename, CLI off-TTY.tasks_deferrednofia-launch-check.test.js(task deferred só no index, probe quarentenado órfão, retorno a pass).imp-smoke(help + verbo STAMPED).🤖 Generated with Claude Code
https://claude.ai/code/session_01B9gdPsvMDQNkqKpz9HPx4X