Atualizar uma especificação existente
Incorpore um pedido surgido depois da definição inicial sem esconder a mudança,
duplicar a fonte normativa ou obrigar a pessoa a conhecer atos e gates.
Orquestrar a conversa
Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie
Pendência detectada: <descrição> — ação: resolvendo nesta etapa e resolva-a
quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,
anuncie Transição automática: $specsfy-update-spec → $<destino> — motivo: <motivo> — resultado esperado: <resultado> e carregue imediatamente a skill de
destino, sem pedir confirmação nem repetir o comando. Continue na mesma
conversa. Depois de uma correção necessária a esta etapa, anuncie Retomada automática: $<destino> → $specsfy-update-spec — pendência resolvida: <resultado> e retome-a imediatamente. Reavalie o estado após cada handoff para
evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam
exigindo autorização específica.
Confirmar a entrada
- Preserve literalmente o novo pedido antes de interpretá-lo.
- Localize a spec canônica em
specs/specs/<NNNN>-<slug>/spec.md e leia seus metadados, requisitos,
cenários, plano, tarefas, gates e evidências.
- Leia as instruções do projeto,
PROJECT.md, .specsfy/STACK.md,
.specsfy/RULES.md, .specsfy/DATABASE.md e o research indexado aplicável.
- Inspecione mudanças Git preexistentes na spec e não as atribua ao pedido
atual.
- Se não existir uma spec, anuncie a pendência e carregue
$specsfy-02-backlog para uma ideia superficial ou
$specsfy-03-specify quando já houver intenção explícita de criar a fatia.
- Se a spec ainda estiver em
Draft e nunca tiver obtido
Definition Gate: Passed, carregue $specsfy-03-specify; esta skill
governa somente a revisão de uma definição que já avançou.
Classificar antes de escrever
Leia a matriz de classificação quando o
pedido puder alterar comportamento, plano ou fronteira entre specs.
- Para correção interna reversível sem efeito observável, não altere a spec:
registre a avaliação na evidência da tarefa e retome
$specsfy-07-implement.
- Para esclarecimento editorial que não muda significado, preserve os gates e
altere somente a redação necessária.
- Para mudança de comportamento, aceite, escopo, dados, segurança ou interface,
reabra desde o Ato I.
- Para mudança somente de solução, tarefas ou estratégia de testes, reabra
desde o Ato II.
- Para capacidade independente da finalidade e dos atores da fatia atual, não a
acrescente silenciosamente: carregue
$specsfy-02-backlog ou
$specsfy-03-specify conforme a maturidade do pedido.
- Quando opções plausíveis mudarem materialmente o resultado, faça handoff para
$specsfy-02-backlog, execute o ciclo adaptativo e
retome esta skill ao final do ciclo. Se a pessoa escolher avançar, preserve as lacunas abertas,
reabra o Ato I, não encaminhe a definição como aprovada e
não reabra o mesmo ciclo nesta retomada.
Esta skill não cria uma spec nova, não decide requisito material pela pessoa,
não altera código de produção e não implementa o pedido.
Incorporar a mudança
- Confirme que a pessoa autorizou incorporar o pedido à spec atual. O pedido
explícito para mudar, adicionar, remover ou corrigir já constitui essa
autorização; não repita a confirmação.
- Edite somente
spec.md e o research indexado necessário. Não crie
change-request.md, plan.md, tasks.md, research.md ou outra fonte
paralela.
- Atualize todas as seções normativas afetadas, preserve IDs e decisões ainda
válidos e nunca renumere IDs existentes. Para mudança de comportamento,
registre razão, decisão e IDs impactados na seção 17. Para mudança somente
de plano, registre a razão na seção de plano ou risco afetada sem criar uma
decisão de produto artificial.
- Não reescreva evidência histórica como se tivesse sido produzida para a nova
entrada. Marque como pendente toda prova posterior que dependa da versão
invalidada.
- Execute a projeção de impacto:
python3 -B .agents/skills/specsfy-update-spec/scripts/analyze_change.py \
specs/specs/<NNNN>-<slug>/spec.md --base HEAD --mode impact
Use --mode changelog para listar IDs adicionados, removidos e alterados. A
classificação usa títulos canônicos, não números de seção; unknown reabre do
Ato I por segurança. O script é somente leitura e não substitui a comparação
semântica com o pedido.
Invalidar somente o necessário
- Para mudança do Ato I, defina
Status: Draft,
Definition Gate: Pending, Plan Gate: Pending e
Delivery Gate: Pending.
- Para mudança somente do Ato II, defina
Status: Defined, preserve
Definition Gate: Passed e retorne Plan Gate e Delivery Gate para
Pending.
- Para esclarecimento editorial comprovadamente sem mudança semântica, preserve
status e gates.
- Nunca mantenha um gate posterior aprovado sobre uma entrada invalidada.
- Preserve tarefas e evidências ainda válidas;
$specsfy-05-tasks reconcilia
itens afetados e suas dependências antes de novo RED.
Valide a estrutura intermediária:
python3 -B .agents/skills/specsfy-04-validate/scripts/validate_spec.py \
specs/specs/<NNNN>-<slug>/spec.md --allow-draft
Retomar o fluxo
- Mudança desde o Ato I: carregue
$specsfy-04-validate; depois percorra
tasks, TDD/BDD e a etapa que originou a mudança. Se o refinamento do backlog terminou por
avançar, não faça esse handoff na mesma retomada: relate as lacunas e encerre
com os gates pendentes.
- Mudança somente do Ato II: carregue
$specsfy-05-tasks, que reconcilia o
plano, chama $specsfy-06-tdd-bdd e retoma a origem.
- Mudança detectada durante implementação: retome
$specsfy-07-implement somente depois de Definition e Plan Gate voltarem a
Passed e existir RED válido para o comportamento novo ou alterado.
- Mudança detectada depois de
Complete: percorra novamente os atos invalidados
e só restaure Complete com Delivery Gate e DoD comprovados.
Relatar
Informe o pedido preservado, a spec alterada, a classificação, os IDs e seções
afetados, os gates invalidados, as evidências preservadas ou tornadas pendentes
e a próxima skill carregada. Não exponha complexidade do framework antes do
resultado: diga primeiro que o pedido foi incorporado e que o fluxo necessário
será retomado automaticamente.
1---2name: specsfy-update-spec-23description: Use quando o usuário esqueceu algo, quer adicionar, remover, corrigir ou mudar um pedido em uma spec existente que já foi definida, planejada, está sendo implementada ou foi concluída. Use também quando uma transição automática detectar mudança tardia de comportamento, escopo, aceite, dados, segurança ou plano. Atualiza a fonte normativa, invalida somente os gates afetados e coordena a retomada; para criar a spec inicial use specsfy-03-specify, para decidir uma ambiguidade use specsfy-02-backlog e para implementar use specsfy-07-implement.4---56# Atualizar uma especificação existente78Incorpore um pedido surgido depois da definição inicial sem esconder a mudança,9duplicar a fonte normativa ou obrigar a pessoa a conhecer atos e gates.1011## Orquestrar a conversa1213Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie14`Pendência detectada: <descrição> — ação: resolvendo nesta etapa` e resolva-a15quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,16anuncie `Transição automática: $specsfy-update-spec → $<destino> — motivo:17<motivo> — resultado esperado: <resultado>` e carregue imediatamente a skill de18destino, sem pedir confirmação nem repetir o comando. Continue na mesma19conversa. Depois de uma correção necessária a esta etapa, anuncie `Retomada20automática: $<destino> → $specsfy-update-spec — pendência resolvida:21<resultado>` e retome-a imediatamente. Reavalie o estado após cada handoff para22evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam23exigindo autorização específica.2425## Confirmar a entrada26271. Preserve literalmente o novo pedido antes de interpretá-lo.282. Localize a spec canônica em29 `specs/specs/<NNNN>-<slug>/spec.md` e leia seus metadados, requisitos,30 cenários, plano, tarefas, gates e evidências.313. Leia as instruções do projeto, `PROJECT.md`, `.specsfy/STACK.md`,32 `.specsfy/RULES.md`, `.specsfy/DATABASE.md` e o research indexado aplicável.334. Inspecione mudanças Git preexistentes na spec e não as atribua ao pedido34 atual.355. Se não existir uma spec, anuncie a pendência e carregue36 `$specsfy-02-backlog` para uma ideia superficial ou37 `$specsfy-03-specify` quando já houver intenção explícita de criar a fatia.386. Se a spec ainda estiver em `Draft` e nunca tiver obtido39 `Definition Gate: Passed`, carregue `$specsfy-03-specify`; esta skill40 governa somente a revisão de uma definição que já avançou.4142## Classificar antes de escrever4344Leia [a matriz de classificação](references/change-classification.md) quando o45pedido puder alterar comportamento, plano ou fronteira entre specs.4647- Para correção interna reversível sem efeito observável, não altere a spec:48 registre a avaliação na evidência da tarefa e retome49 `$specsfy-07-implement`.50- Para esclarecimento editorial que não muda significado, preserve os gates e51 altere somente a redação necessária.52- Para mudança de comportamento, aceite, escopo, dados, segurança ou interface,53 reabra desde o Ato I.54- Para mudança somente de solução, tarefas ou estratégia de testes, reabra55 desde o Ato II.56- Para capacidade independente da finalidade e dos atores da fatia atual, não a57 acrescente silenciosamente: carregue `$specsfy-02-backlog` ou58 `$specsfy-03-specify` conforme a maturidade do pedido.59- Quando opções plausíveis mudarem materialmente o resultado, faça handoff para60 `$specsfy-02-backlog`, execute o ciclo adaptativo e61 retome esta skill ao final do ciclo. Se a pessoa escolher `avançar`, preserve as lacunas abertas,62 reabra o Ato I, não encaminhe a definição como aprovada e63 não reabra o mesmo ciclo nesta retomada.6465Esta skill não cria uma spec nova, não decide requisito material pela pessoa,66não altera código de produção e não implementa o pedido.6768## Incorporar a mudança69701. Confirme que a pessoa autorizou incorporar o pedido à spec atual. O pedido71 explícito para mudar, adicionar, remover ou corrigir já constitui essa72 autorização; não repita a confirmação.732. Edite somente `spec.md` e o research indexado necessário. Não crie74 `change-request.md`, `plan.md`, `tasks.md`, `research.md` ou outra fonte75 paralela.763. Atualize todas as seções normativas afetadas, preserve IDs e decisões ainda77 válidos e nunca renumere IDs existentes. Para mudança de comportamento,78 registre razão, decisão e IDs impactados na seção 17. Para mudança somente79 de plano, registre a razão na seção de plano ou risco afetada sem criar uma80 decisão de produto artificial.814. Não reescreva evidência histórica como se tivesse sido produzida para a nova82 entrada. Marque como pendente toda prova posterior que dependa da versão83 invalidada.845. Execute a projeção de impacto:8586```bash87python3 -B .agents/skills/specsfy-update-spec/scripts/analyze_change.py \88 specs/specs/<NNNN>-<slug>/spec.md --base HEAD --mode impact89```9091Use `--mode changelog` para listar IDs adicionados, removidos e alterados. A92classificação usa títulos canônicos, não números de seção; `unknown` reabre do93Ato I por segurança. O script é somente leitura e não substitui a comparação94semântica com o pedido.9596## Invalidar somente o necessário9798- Para mudança do Ato I, defina `Status: Draft`,99 `Definition Gate: Pending`, `Plan Gate: Pending` e100 `Delivery Gate: Pending`.101- Para mudança somente do Ato II, defina `Status: Defined`, preserve102 `Definition Gate: Passed` e retorne `Plan Gate` e `Delivery Gate` para103 `Pending`.104- Para esclarecimento editorial comprovadamente sem mudança semântica, preserve105 status e gates.106- Nunca mantenha um gate posterior aprovado sobre uma entrada invalidada.107- Preserve tarefas e evidências ainda válidas; `$specsfy-05-tasks` reconcilia108 itens afetados e suas dependências antes de novo RED.109110Valide a estrutura intermediária:111112```bash113python3 -B .agents/skills/specsfy-04-validate/scripts/validate_spec.py \114 specs/specs/<NNNN>-<slug>/spec.md --allow-draft115```116117## Retomar o fluxo118119- Mudança desde o Ato I: carregue `$specsfy-04-validate`; depois percorra120 tasks, TDD/BDD e a etapa que originou a mudança. Se o refinamento do backlog terminou por121 `avançar`, não faça esse handoff na mesma retomada: relate as lacunas e encerre122 com os gates pendentes.123- Mudança somente do Ato II: carregue `$specsfy-05-tasks`, que reconcilia o124 plano, chama `$specsfy-06-tdd-bdd` e retoma a origem.125- Mudança detectada durante implementação: retome126 `$specsfy-07-implement` somente depois de Definition e Plan Gate voltarem a127 `Passed` e existir RED válido para o comportamento novo ou alterado.128- Mudança detectada depois de `Complete`: percorra novamente os atos invalidados129 e só restaure `Complete` com Delivery Gate e DoD comprovados.130131## Relatar132133Informe o pedido preservado, a spec alterada, a classificação, os IDs e seções134afetados, os gates invalidados, as evidências preservadas ou tornadas pendentes135e a próxima skill carregada. Não exponha complexidade do framework antes do136resultado: diga primeiro que o pedido foi incorporado e que o fluxo necessário137será retomado automaticamente.