Skip to content

feat: comando /defer + imp defer — adiar tarefa com quarentena reversível dos probes selados - #45

Merged
elberrd merged 1 commit into
mainfrom
feat/imp-defer
Aug 22, 2026
Merged

feat: comando /defer + imp defer — adiar tarefa com quarentena reversível dos probes selados#45
elberrd merged 1 commit into
mainfrom
feat/imp-defer

Conversation

@elberrd

@elberrd elberrd commented Aug 22, 2026

Copy link
Copy Markdown
Owner

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 um mv manual 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> renomeia NN-*.mjs_NN-*.mjs (prefixo "não é probe" do runner — conteúdo intocado, reversível), marca deferred nos dois lugares (issue + index), grava ledger em imp/data/deferrals.json e nota em ai-docs/inbox.md. imp defer 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 (um builder nunca adia o probe que o julga); confirmação em TTY ou --yes explícito; rename nunca sobrescreve (colisão = erro).
  • Launch check: novo warn tasks_deferredtasks_done conta deferred como fechada e um probe quarentenado ficava invisível para sempre; agora todo adiamento aberto aparece no /launch, com o fix.
  • Registro completo (regra do CLAUDE.md): STAMPED + help do bin/imp.js, npmScripts defer, prompt Pi /defer, linha no 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 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_deferred no fia-launch-check.test.js (task deferred só no index, probe quarentenado órfão, retorno a pass).
  • Asserts novos no imp-smoke (help + verbo STAMPED).
  • Suíte completa: 1431/1431 verde · lint limpo.

🤖 Generated with Claude Code

https://claude.ai/code/session_01B9gdPsvMDQNkqKpz9HPx4X

…í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
elberrd merged commit 59df22d into main Aug 22, 2026
7 checks passed
@elberrd
elberrd deleted the feat/imp-defer branch August 22, 2026 22:06
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>
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