Skip to content

agent-spec-taskcard-generate ​

TaskCard Generator

Resumo: Gera uma TaskCard individual — unidade atômica de trabalho técnico com escopo fechado, guardrails e critérios de aceite objetivos. Conduz processo interativo (uma pergunta por vez) e delega §10 (Testes) ao agent-spec-qa-test-generator.


Quando usar ​

  • Task isolada com escopo fechado em 1-2 arquivos.
  • Reuso de padrão existente no codebase, sem decisão arquitetural nova.
  • Bug fix, ajuste, refactor pontual.
  • Quando o Strategy Selector recomendou TaskCard.

Quando NÃO usar ​


Inputs ​

InputOrigemObrigatório?
$ARGUMENTS (contexto da tarefa ou Intent + Scope)UsuárioSim
pre-refinement.mdagent-spec-pre-refinementNão (recomendado)
CLAUDE.md + .claude/rules/*System-promptSim

Outputs ​

ArtefatoPath resolvidoConsumido por
task-{nn}-{slug}.mdtaskcard.tasks.dir + taskcard.tasks.pattern → /docs/specs/features/{feature}/{version}/tasks/task-01-cadastro-usuario.mdagent-spec-taskcard-run, executor

Fluxo de execução ​

FASE 0.-1 — Detecção da Frente (Web | Mobile | Backend) — SEMPRE PERGUNTAR ​

Primeira ação da skill, antes de detectar modo ou ler o agent-spec-pre-refinement. TaskCard usa template único, mas a frente escolhida é necessária para:

  • Alimentar o subagente agent-spec-qa-test-generator (parâmetro frente) na FASE 6.
  • Preencher o campo Variante no frontmatter da TaskCard (seção 1).
  • Calibrar a heurística de model/risk (FASE 3) quando os paths são ambíguos.

Regra dura: pergunta OBRIGATÓRIA e SEMPRE disparada via AskUserQuestion. Não infere a partir de paths, nome da feature ou contexto.

Procedimento:

  1. Pré-leitura opcional (só para sugerir default): se houver tech_alignment.path, minispec.scope.path ou sdd.tech_spec.path derivável, tenta extrair a variante registrada e reserva como opção destacada ("Recomendado").
  2. Pergunta obrigatória (sempre via AskUserQuestion):

    "Qual é a frente desta TaskCard? Web | Mobile | Backend"

Persistência:

  • FASE 6: enviada ao agent-spec-qa-test-generator como parâmetro frente.
  • FASE 5: preenche campo Variante do frontmatter/seção 1.
  • Variável de sessão taskcard.variant reaproveitada em modo batch e CRUD Fast-Path.

Por que SEMPRE perguntar: TaskCard pode ser invocada sem upstream (scope.md/tech_spec.md). Sem fonte canônica, inferência é frágil — pergunta explícita custa 1 turn e elimina ambiguidade.

FASE 0.0 — Detecção de modo (Standard vs CRUD Fast-Path) ⚡ ​

Antes de tudo, detecta o modo:

  • Standard mode (default): comportamento normal — template completo, perguntas interativas, decomposição em N TaskCards se necessário.
  • CRUD Fast-Path mode: ativado quando:
    • $ARGUMENTS começa com --mode=crud-fastpath (flag explícita), OU
    • pre-refinement.md da feature tem S9 = sim em §15.1 + §15.2 recomenda "TaskCard CRUD Fast-Path".

Veja Strategy Selector e TaskCard — Frameworks para detalhes do modo.

Diferenças entre os modos:

AspectoStandard modeCRUD Fast-Path
Template11 seções completasEnxuto: TODAS as seções em formato reduzido (§2 em 2 linhas, §4 com 1-3 bullets, §6 com ADRs + pattern, §7 com checklist de 5-7 itens; §8 inclui a 8.1 com os arquivos exemplares do pattern)
Perguntas interativas4-5 perguntas (escopo, arquivos, restrições, dependências, aceite)2 perguntas (entidade+campos, endpoints)
GranularidadeMúltiplas TaskCards OK1 TaskCard apenas para a feature CRUD inteira
Gates defaultInferido por tipo ([qa] ou [qa, tech_review])gates: [qa] forçado
task_plan.mdPode criar (se múltiplas TaskCards)NÃO cria — 1 TaskCard só
Chamadas agent-spec-qa-test-generator1 por TaskCard1 batched para a feature inteira
Tempo alvo30-90min por TaskCard30-45min total para a feature CRUD

FASE 0 — Pré-verificação ​

Lê pre-refinement.md (se existir) e checa recomendação de framework. Aviso não-bloqueante se divergente.

FASE 1 — Análise obrigatória do projeto ​

Inclui sub-passo 1.2 — Inventário de ADRs Aplicáveis (obrigatório se docs/adr/ existe):

  1. Lista todas as ADRs em docs/adr/INDEX.md com status Accepted.
  2. Para cada ADR, marca APLICÁVEL / PARCIAL / N/A com 1 linha de motivo, citando a seção da TaskCard afetada.
  3. Para cada APLICÁVEL/PARCIAL, adiciona item explícito na seção 6 (Guardrails — DEVE) da TaskCard: "Obedecer ADR-XXXX: <descrição curta da regra>". Vira guardrail bloqueante para o executor.
  4. Escreve a subseção canônica "ADRs Aplicáveis nesta Feature" na §11 (Notas) — uma linha por ADR (ADR-NNNN — descrição curta), ou "Nenhuma". É o nome exato auditado pela /agent-spec-adr-review (rastreabilidade Feature→ADR).

FASE 2 — Construção interativa ​

Standard mode: faz 4-5 perguntas via AskUserQuestion.

Standard mode — sub-passo 2.1 (Gate Anti-Agregação) ⚡: ao mapear arquivos preliminares (§8.2/§8.3), conta arquivos de contrato (DTOs/Requests/Responses/types) e handlers. Se ≥ 3 contratos novos + ≥ 1 handler com lógica → pergunta:

"Histórico mostra que esse formato cascateia retrabalho. Quebrar em (A) TaskCard de base+contratos e (B) TaskCard(s) de handler(s)?"

Opções: Sim, quebrar em 2+ TaskCards | Não, manter agregado (justificativa em source_note) | Other.

CRUD Fast-Path mode: 2 perguntas apenas (entidade+campos / endpoints).

FASE 3 — Heurística model/risk/gates ​

Preenche frontmatter (seção 1):

  • model: sonnet default; opus se area crítica.
  • risk: low | medium | high.
  • gates: inferido pela Gates inference rules a partir do tipo da TaskCard. CRUD Fast-Path força gates: [qa].

FASE 5 — Construção do template ​

Standard mode: preenche todas as 11 seções padronizadas:

  1. Identificação (frontmatter) — inclui Variante, mode, source/source_note (instrumentação de aderência ao discovery) e Símbolos públicos criados/consumidos ⚡ (direção de dependência de símbolo entre cards; usados pela validação de ordem da FASE 8 — em execução, o run processa 1 card por vez e a ordem é do usuário)
  2. Objetivo
  3. Descrição
  4. Aceite Técnico
  5. Escopo (DENTRO / FORA) + Subseção 5.1 — Exemplo de Payload ⚡ (obrigatório se TaskCard expõe endpoint PUT/PATCH parcial)
  6. Guardrails (DEVE / NÃO DEVE) — inclui ADRs aplicáveis (FASE 1.2)
  7. Restrições
  8. Arquivos Envolvidos (8.1 existentes, 8.2 a criar, 8.3 a modificar)
  9. Dependências
  10. Testes — delegada ao agent-spec-qa-test-generator
  11. Checklist final

CRUD Fast-Path mode (FASE 6.5): template enxuto. Preenche TODAS as seções em formato reduzido (fonte de verdade: FASE 6.5.2), incluindo §8.1 com os arquivos exemplares do pattern e mode: crud-fastpath no frontmatter. gates: [qa]. 1 chamada batched do agent-spec-qa-test-generator para a feature inteira (não 1 por endpoint).

Subseção 5.1 — Exemplo de Payload (PUT/PATCH parcial) ​

Para endpoint que aceita atualização parcial, exige:

  1. Exemplo de body/form mínimo (só com 1 campo).
  2. Observação literal: "campos ausentes ignorados; sem binding:"required" / sem @NotNull / sem validates_presence_of no Request — apenas o ID na URL é obrigatório".
  3. Distinção POST vs PUT/PATCH:
OperaçãoComportamento de campos
POST (criação)Campos obrigatórios continuam obrigatórios (binding:"required", @NotNull aplicam)
PUT/PATCH parcial (atualização)Campos ausentes são ignorados — nenhum é obrigatório no Request, apenas o ID na URL

Marca "N/A — sem payload parcial" se não aplicável.

Motivação (post-mortem cadastro-pratos-franquia): T9 gastou rodada extra porque o executor copiou binding:"required" do POST para o PUT. Payload-exemplo explícito com a observação literal acima elimina a ambiguidade no executor.

FASE 6 — Delegação da §10 (Testes) ​

  • O prompt do agente passa arquivos, instruções e frente (da FASE 0.-1), e manda ler a doutrina via Read (subagentes não invocam skills).
  • Exceção N/A: gates: none por tipo docs/config/constantes → NÃO dispara o agente; §10 recebe N/A — task não envolve código testável (literal que o run reconhece).
  • Modo batch (≥ 2 TaskCards do mesmo domínio): 1 chamada com envelope por TC-ID — formalizado no contrato do agente ({"TC-001": <schema>, "TC-002": <schema>}).

FASE 7 — Formatação e edição da §10 ​

Transforma JSON do agent-spec-qa-test-generator em §10 (10.1 a 10.6) da TaskCard. Regras-chave: agrupamento da 10.2 por owning_layer (agnóstico de frente); §10.2.1 Detalhamento dos Casos de Teste — 1 card lossless por CT (Invariant, Owning layer, Pré-condições, Passos, Resultado esperado, Negative companion, Precondição privilegiada), destrinchado do JSON: 10.1/10.2 são o índice, o card é o detalhe que o revisor humano valida self-contained e o executor implementa; sub-bullet "Setup (caminho legítimo)" quando precondicao_privilegiada.presente == true (receita do seam — Iron Law #6, consumida pelo executor no run); coluna Tipo da 10.6 com o enum completo (Unitário/Integração/Componente/E2E/Segurança/Acessibilidade); padrões da 10.4 extraídos de stack_discovery; célula vaga em Expected (índice ou card) é bloqueante. Ao final, o JSON é persistido integralmente em shared.test_cases.path (test-cases.json, task_id = TC-ID por caso; no batch, a chave do envelope) — forward-only: após o destrinchamento, a TaskCard é canônica.

FASE 8 — Salvamento e Task Plan ​

Resolve path com taskcard.tasks.dir + taskcard.tasks.pattern. Com ≥ 2 TaskCards, criar o task_plan.md é obrigatório (tabela com Ordem, ID, Dependências e Status — sem coluna de paralelismo: o run executa 1 card por vez; a coluna Status é atualizada pelo run). CRUD Fast-Path NÃO cria task_plan.md — é 1 TaskCard apenas.

Coerência de dependências e escopo (quando há múltiplas TaskCards): antes de fixar a ordem no task_plan.md, valide (bloqueante): nenhuma card referencia símbolo nascido em card posterior (mover ref OU reordenar); mudança com blast radius além dos arquivos tocados lista os dependentes em §8.3 e valida no escopo do blast radius; mudança de assinatura inclui os dependentes mecanicamente forçados em §8.3 (não é scope_deviation). (Originado do run esqueci-a-senha, onde uma referência a símbolo de task posterior forçou reorder em execução.)


Gates invocados ​

Esta skill não roda gates de validação. Apenas geração.


Princípios de design da TaskCard ​

PrincípioAplicação
AtômicaUma única entrega clara. Se precisa de 5+ arquivos, é miniSpec.
Escopo fechadoLimites explícitos (DENTRO / FORA).
Guardrails objetivosDEVE / NÃO DEVE invalidam a task se violadas.
Aceite técnico mensurávelCritérios que LLMs e humanos podem verificar sem ambiguidade.
Reuso de stackInspeciona projeto antes de propor tecnologia nova.

Templates / assets usados ​

  • assets/taskcard-template.md — estrutura canônica (11 seções).

Exemplo de uso ​

bash
/agent-spec-taskcard-generate "adicionar validação de CPF no endpoint de cadastro"
[FASE 0] pre-refinement.md não existe → segue
[FASE 1] Pergunta 1/N: Em qual arquivo está o endpoint hoje?
> internal/users/handler.go:42

[Pergunta 2/N: O CPF é obrigatório ou opcional?]
> obrigatório

[continua interativamente]

[FASE 2] Delegação §10 ao agent-spec-qa-test-generator
[Cria task-01-validar-cpf-cadastro.md]

✅ TaskCard salva em /docs/specs/features/cadastro-cpf/v1/tasks/task-01-validar-cpf-cadastro.md
Próximo passo: /agent-spec-taskcard-run <task_path> [agent_name]

Skills relacionadas ​

Configuração via framework-paths.md ​

Paths usados: pre_refinement.path, taskcard.tasks.dir, taskcard.tasks.pattern. Veja Path Templates.

AgentSpec Framework · Spec-driven com IA sobre Claude Code