promovaweb/specsfy

specsfy-07-implement

Use quando o usuário pede para implementar, executar ou concluir tarefas da seção 14.

查看源码
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

Implementar as tarefas e criar o código

Preparação obrigatória

Antes de executar esta skill, carregue obrigatoriamente $specsfy-setup na raiz do projeto. Em handoff automático, carregue-o de novo antes desta etapa. Reutilize a raiz confirmada na conversa e não prossiga se o setup apontar uma pendência.

Modo de interação

Modo de interação: perguntas. Antes de formular qualquer pergunta, leia e aplique o Contrato de perguntas numeradas de .specsfy/Spec.md.

Execute a seção 14. Tarefas de spec.md em ordem de dependência, mantendo a fonte única, testes, código, evidências e checkboxes coerentes.

Para Laravel, consulte .specsfy/PACKAGES.md, docs/packages/README.md e as fichas existentes antes de adicionar ou substituir uma dependência. Se a tarefa trouxer uma URL GitHub ou mudar Composer, carregue $specsfy-specialist-laravel-package-manager e reutilize pacotes já instalados quando eles atenderem ao requisito.

Proteção obrigatória do banco

Antes de executar qualquer teste, suíte, regressão ou migration, rode:

bash
node .agents/skills/specsfy-setup/scripts/check_database_safety.mjs \
  --project <raiz> --command "<comando-pretendido>"

Em Laravel, exija .env.testing, APP_ENV=testing e um banco explicitamente diferente do banco de desenvolvimento definido no .env. Enquanto o estado for PENDING, não execute teste algum. Corrija o ambiente, repita a conferência e continue somente após SAFE.

Ignore todo comando classificado como IGNORED. Não execute, não transforme em tarefa e não peça autorização para rodar migrate:fresh, migrate:refresh, migrate:reset, migrate:rollback, db:wipe, schema:drop, prisma migrate reset, DROP DATABASE, DROP SCHEMA, DROP TABLE, TRUNCATE ou equivalentes. A mesma recusa vale para scripts indiretos e para testes com RefreshDatabase ou DatabaseMigrations. Use isolamento transacional e fixtures mínimas sem apagar o banco.

Revisão visual obrigatória

Toda tarefa de desenvolvimento executa uma revisão visual, mesmo sem pedido da pessoa. O item VISUAL vem depois de VERIFY e precisa estar concluído antes de EVIDENCE.

Para qualquer alteração com interface, leia DESIGNSYSTEM.MD, INTERFACE.md e os componentes afetados. Inspecione a renderização ou o DOM nos viewports e estados relevantes. Confira bordas, espaçamentos, margens, padding e tipografia do sistema, além de alinhamento, largura, overflow, foco, zoom e quebra de texto. Registre método, viewport, estados, ajustes e resultado na tarefa.

Quando a tarefa não alterar interface, conclua VISUAL com Não aplicável e um motivo concreto. Nunca pule esse item porque a pessoa não pediu revisão visual.

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-07-implement → $<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-07-implement — 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.

Gate inicial

  1. Resolva a raiz pelo caminho confirmado no $specsfy-setup. Se a pessoa

informar um subdiretório, trate-o como projeto e não o promova para a raiz Git. Leia <raiz>/specs/planned/<NNNN>-<slug>/spec.md, evidências indexadas em research/, instruções do repositório e código relevante. Não procure tasks.md, plan.md, research.md ou data-model.md.

  1. Exija Formato: Specsfy/2.0, Status: Planned ou Implementing,

Definition Gate: Passed e Plan Gate: Passed.

  1. Se Interface para pessoas for Sim, leia a seção 10 e confirme que o

plano contém tarefas para stack local, telas, menus e navegação principal, formulários, ações, blocos React, componentes shadcn/ui/ReUI, estados e testes de interação. Compare a stack, as telas e os fluxos atuais com o projeto antes de alterar código. Preserve componentes, rotas, conteúdo, permissões e comportamentos existentes fora do alcance registrado. Se faltar algum deles ou a tecnologia proposta divergir sem confirmação, retorne automaticamente para $specsfy-05-tasks; não implemente um CRUD somente como API ou persistência. Antes de programar, confirme os itens escolhidos na tabela da seção 10 e em INTERFACE.md; depois de programar, atualize INTERFACE.md com todos os blocos criados, alterados ou reaproveitados. Em projeto React, carregue obrigatoriamente $specsfy-specialist-react-ui-components antes de escrever JSX ou TSX. Se a skill não estiver instalada, retorne ao $specsfy-setup para instalar o especialista detectado e não implemente a tela até concluir esse preparo. Para um CRUD, confirme também um único PageHeader reutilizável em todas as telas, DataGrid em largura total, coluna ID sempre visível, link da linha para o detalhe e botões de editar e apagar independentes na linha.

  1. Execute os validadores contra specs/<estado>/<NNNN>-<slug>/spec.md. Se um gate

falhar por tarefa, predecessor TDD ou RED ausente em um plano antes aprovado, anuncie a pendência e retorne automaticamente para $specsfy-05-tasks; não altere produção. Essa skill reabre o Ato II, chama TDD/BDD e retoma esta implementação depois de validar novamente o plano. Para outra falha, carregue automaticamente a skill responsável pelo gate.

  1. Confira o comando da suíte base com check_database_safety.mjs. Execute-a

somente após SAFE; sem ambiente de teste separado, não rode nenhum teste. Registre falhas preexistentes e não as atribua à nova mudança.

  1. Antes da primeira alteração de produção, defina Status: Implementing,

Delivery Gate: In Progress e execute specsfy transition <id> in-progress.

  1. Selecione trabalho pronto com:
bash
node .agents/skills/specsfy-07-implement/scripts/next_task.mjs \
  <raiz>/specs/<estado>/<NNNN>-<slug>/spec.md

Se não houver tarefa pronta, diferencie concluído de bloqueado por dependência.

Executar uma tarefa

  1. Confirme ID, tipo, referências, dependências, arquivos e resultado verificável; marque PREP imediatamente após essa confirmação.
  2. Para [TEST], siga $specsfy-06-tdd-bdd: leia o Gherkin de referência na

spec e use-o para desenhar o teste TDD; adicione marcadores e observe RED válido. Nunca crie ou execute .feature. Em PHP, use Pest; em Node, use somente o runner confirmado pelo usuário.

  1. Para [CODE], confirme o predecessor TDD concluído cobrindo os mesmos IDs,

com RED registrado na seção 11. Sem isso, pare e não altere produção. Anuncie a pendência e retorne automaticamente para $specsfy-05-tasks, que reabre o plano, chama $specsfy-06-tdd-bdd e retoma esta skill depois do novo Plan Gate: Passed.

  1. Escreva a menor mudança de produção que torna o teste TDD verde.

Para uma tarefa de interface, implemente a tela, os menus, o formulário e a interação definidos na spec com os estados descritos; não substitua o fluxo por uma rota de API, um componente vazio ou um atalho sem a tela acordada. Em React, siga $specsfy-specialist-react-ui-components para localizar, reaproveitar, adaptar e registrar os componentes antes de criar uma nova composição. Quando a tarefa usa [MIGRATION], crie primeiro o arquivo versionado no caminho planejado. Passe o comando pelo check_database_safety.mjs, aplique a migration no banco de teste e consulte o estado logo depois. Registre os dois comandos com saída zero no comentário specsfy:evidence da tarefa.

  1. Depois de alterar produção e antes de marcar EXECUTE, monitore o contexto:
bash
node .agents/skills/specsfy-setup/scripts/monitor_context.mjs \
  --project <raiz> --check

Para stack pendente, faça handoff a $specsfy-aux-stack; para persistência, a $specsfy-aux-database; para regra confirmada, a $specsfy-aux-rules. Revise PROJECT.md em toda mudança de aplicação. Se não houver impacto material na história, finalidade, capacidades ou limites, registre a avaliação na evidência da tarefa e repita com --acknowledge-project-no-change. Não marque a tarefa enquanto o monitor retornar PENDING.

  1. Depois de cada tarefa [CODE], anuncie

Transição automática: $specsfy-07-implement → $specsfy-documentator — motivo: implementação alterou o sistema — resultado esperado: docs/ reconstruído e atual e carregue $specsfy-documentator. Reconstrua a documentação a partir de todo o código existente, execute seu --check e retome esta skill somente quando a documentação estiver atual.

  1. Para [DOC] ou [OPS], produza a evidência específica pedida.
  2. Marque EXECUTE somente quando a entrega e a documentação exigida existirem

nos caminhos declarados.

  1. Confira novamente cada comando de teste com check_database_safety.mjs.

Execute o teste TDD focal, a suite relacionada e checks estáticos somente após SAFE; marque VERIFY somente com o resultado esperado.

  1. Refatore somente com tudo verde.
  2. Registre comando, resultado e IDs nas seções 11–13 e então marque EVIDENCE.

Quando houver Evidence Contract: 1, grave também o comentário JSON specsfy:evidence no bloco da tarefa e execute:

bash
node .agents/skills/specsfy-07-implement/scripts/verify_evidence.mjs \
  specs/<estado>/<NNNN>-<slug>/spec.md . --task TNNN

Quando uma execução completa produzir atestação schema 2, verifique novamente com --attestation PATH. Exija commit compatível, binding da mesma spec/tarefa, refs e comandos idênticos, checks realmente aprovados e SHA-256 atual de cada arquivo. Atestação de --self-test não prova entrega.

  1. Faça uma micro-retrospectiva: aplique uma melhoria segura encontrada ou registre “nenhuma melhoria necessária” com justificativa; então marque IMPROVE.
  2. Na seção 14 de specs/<estado>/<NNNN>-<slug>/spec.md, altere o pai de - [ ] para - [x] somente quando os seis itens estiverem concluídos, incluindo VISUAL.
  3. Execute validate_tasks.mjs, recalcule a próxima tarefa e confira o próximo item retornado por next_task.mjs.

Uma tarefa [MIGRATION] não pode ser concluída apenas porque o model, a query ou o teste existe. verify_evidence.mjs exige o arquivo da migration, o comando que a aplicou e a consulta que confirma seu estado. Se faltar qualquer um, mantenha EXECUTE, VERIFY e a tarefa abertos.

Atualize os itens conforme o trabalho acontece; não os marque em lote no encerramento. Tarefas [P] podem ser agrupadas apenas quando não tocam os mesmos arquivos ou estado. Se a execução revelar dependência oculta, torne-a explícita na seção 14.

Controlar mudança de escopo

Pare quando a implementação exigir comportamento não descrito, contradizer um AC ou mudar interface pública, dados, segurança ou fora de escopo. Anuncie a pendência e carregue automaticamente $specsfy-update-spec. Essa skill preserva o pedido, decide se precisa refinar a pessoa, atualiza a fonte normativa, reabre somente os gates afetados e percorre validação, tarefas e TDD/BDD. Retome esta skill somente com os gates novamente aprovados. Atualize na ordem:

text
specs/<estado>/<NNNN>-<slug>/spec.md (seções 1–13) → tarefas (seção 14) → testes → código → evidências na mesma spec

Correções internas reversíveis podem ser decididas no código e registradas no relato sem reabrir a especificação.

Gate de conclusão

Quando todas as tarefas da seção 14 estiverem marcadas:

  1. execute a suite completa disponível, lint, tipos e build;
  2. execute a rastreabilidade de testes;
  3. compare cada AC, FR, NFR e item da Definition of Done com evidência atual;
  4. procure tarefas abertas, placeholders, testes pulados e falhas conhecidas;
  5. execute novamente monitor_context.mjs --project <raiz> --check e resolva toda

documentação pendente;

  1. carregue $specsfy-documentator, reconstrua docs/ e exija que o

build_documentation.mjs --project <raiz> --check passe;

  1. não declare conclusão se alguma evidência estiver ausente;
  2. para toda tarefa [MIGRATION], execute verify_evidence.mjs e confirme o

arquivo, a aplicação e a consulta de estado;

  1. altere Delivery Gate para Passed somente com rastreabilidade completa,

defina Status: Reviewing e execute specsfy transition <id> review. $specsfy-04-validate conclui o aceite e move a spec para completed.

Depois do gate final, projete o resumo de entrega sem criar arquivo:

bash
node .agents/skills/specsfy-07-implement/scripts/render_delivery.mjs \
  specs/<estado>/<NNNN>-<slug>/spec.md --format markdown

Use --preview enquanto a entrega estiver aberta. Publicar o texto em PR, commit ou ferramenta externa exige pedido explícito; o script escreve somente em stdout.

Leia references/completion-gates.md para o fechamento.

Relatar

Informe tarefas concluídas, arquivos alterados, comandos e resultados, cobertura de IDs, falhas preexistentes, próxima tarefa pronta ou o gate final. Ao final, anuncie e carregue automaticamente $specsfy-progress para conferir a visão global derivada da fonte. Em falha, anuncie a pendência, carregue automaticamente a skill responsável quando necessário e deixe a tarefa aberta até a correção e retomada.

Especialistas sob demanda

Leia references/specialists.md antes de executar uma tarefa cuja tecnologia ou risco não esteja coberto pelo contexto local. Instale somente com autorização no projeto consumidor.

来自同一仓库

更多 Skills

全部 Skills
promovaweb
社区

specsfy-01-inbox

Use quando o usuário enviar uma ideia, pensamento, necessidade, oportunidade ou texto livre para guardar, capturar, anotar ou retomar depois. Preserve o input integral, faça pré-processamento silencioso e crie imediatamente um arquivo timestampado em specs/inbox/. Não faça perguntas, não peça confirmação e não crie backlog, spec, tarefas, testes ou código.

安装量
1
GitHub Stars
80
最近更新
9月15日
promovaweb
社区

specsfy-03-specify

Use quando o usuário pede para promover uma entrada ou backlog já refinado, criar, iniciar ou consolidar uma especificação nova ou ainda em Draft em spec.md. Use também quando uma transição automática exigir criar ou completar a fonte normativa inicial. Inicializa specs em specs/draft/ e aplica o MCR-10; para mudar spec aprovada use specsfy-update-spec, para captura sem perguntas use specsfy-01-inbox, para refinamento use specsfy-02-backlog e para revisão sem edição use specsfy-04-validate.

安装量
1
GitHub Stars
80
最近更新
9月15日
promovaweb
社区

specsfy-04-validate

Use quando o usuário pede para validar, revisar, auditar ou checar se specs/{id}-{slug}/spec.md segue o formato rígido Specsfy/2.0 e está pronto para planejar. Use também quando uma transição automática pedir prova do Definition Gate ou nova validação após correção. Use antes do Ato II. Registre gates na seção 13 do mesmo arquivo; não crie checklist, relatório, plan.md ou outro artefato.

安装量
1
GitHub Stars
80
最近更新
9月15日
promovaweb
社区

specsfy-05-tasks

Use quando o usuário quer quebrar ou decompor a especificação em tarefas, preencher ou atualizar a seção 14. Tarefas de spec.md, ordenar dependências, planejar fatias verticais ou preparar a execução. Use também quando uma transição automática pedir planejamento, replanejamento ou retomada após RED. Use somente para editar o backlog dentro da fonte única; não crie tasks.md, não escreva código nem marque trabalho como concluído.

安装量
1
GitHub Stars
80
最近更新
9月15日