Command Structure
commands specs/commands/structure.kmd
Estrutura canônica de um comando `/k-*` em `meta/context/commands/`: frontmatter obrigatório (name, type, category, inputs, outputs, requires), seções obrigatórias (descrição, sintaxe, fases numeradas, regras, exemplos), declaração de cada fase como `deterministic` ou `analytical` (Code First), audit block opcional. Toda comando novo segue este schema.
Quando esta spec se aplica
Todos os triggers
- Criar /k-* comando novo
- Refatorar comando markdown existente
- Auditar conformidade de comandos
Corpo da especificação
Spec — Command Structure
Toda spec de comando /k-* em meta/context/commands/*.md segue um
schema mínimo que permite (1) auditoria automática, (2) reuso por outros
comandos, (3) classificação Code-First de cada fase.
Frontmatter obrigatório
---
name: <slug> # mesmo do filename sem extensão
type: command
category: mutation | read | audit | generation | meta
description: <one-line summary> # < 200 chars; aparece em /k-help
inputs: # arguments aceitos
- name: <arg>
type: string | path | flag | choice
required: true | false
description: <one-line>
outputs: # side effects esperados
- <kind>: <description> # ex: "filesystem: edits N files"
requires: # dependências
binaries: [<list of koder-* tools>] # binários invocados
commands: [<list of /k-* commands>] # outros /k-* chamados
tasks: [<list of tasks/*.md>] # task blocks @included
audit: # opcional; se presente segue specs/audit/frontmatter.kmd
applicable_to: [...]
script: ./<basename>-audit.sh
severity: hard | advisory
---
Seções markdown obrigatórias
1. Descrição (parágrafo inicial, sem heading)
Frase única ou parágrafo curto: o que o comando faz, em uma sentença que
poderia entrar em /k-help. Reflete description do frontmatter.
2. Sintaxe
## Sintaxe
/k-
3. Fases numeradas (se aplicável)
Comandos multi-step declaram fases como ## FASE N — <nome>. Cada fase tem:
- Bloco de descrição
- Heading de classificação Code-First:
> Determinismo: deterministic | analytical | mixed - Conteúdo (procedimento)
Fases marcadas deterministic são candidatas a binário (policies/code-first.kmd audit detecta).
4. Regras
Lista numerada de regras invariantes do comando. Devem ser explícitas ("nunca push sem rebase") em vez de implícitas no procedimento.
5. Exemplos
Pelo menos 1 exemplo real de uso, com input e expected output.
Tasks reusáveis
Comando que repete lógica encontrada em outros comandos deve extrair
em meta/context/commands/tasks/*.md e usar @include tasks/<x>.md em
vez de duplicar. Per policies/divide-and-conquer.kmd (regra dos 3).
Audit
/k-audit commands (via koder-spec-audit) verifica:
- Frontmatter parseável e contém campos obrigatórios
- Frontmatter cita
categoryválida - Pelo menos as 5 seções obrigatórias estão presentes
- Fases têm heading de classificação Code-First quando declaradas
- Tasks
@includeapontam para arquivos existentes emtasks/
Anti-patterns
Don't:
- Comando sem frontmatter — perde metadados pra discovery e audit
- Lógica determinística em narrativa sem classificação — bloqueia
detecção pelo
/k-audit code-first - Duplicar lógica de outro comando — extrair pra task ou wrappar
Do:
- Declarar inputs/outputs explicitamente — evita IA reinterpretar
- Marcar fases como determinísticas quando aplicável — semente pro refactor pra binário
- Reusar tasks —
@include tasks/concurrent-lock.mdem vez de re-escrever
Origem
Spec criada durante o ticket KSTACK-101 ETAPA 2.3. Dependência de
policies/command-creation.kmd (ETAPA 2.4) e /k-new <artifact>
scaffolder (ETAPA 5.1).
Referências
policies/code-first.kmdpolicies/divide-and-conquer.kmdpolicies/command-creation.kmdspecs/audit/frontmatter.kmd