@spec-wave/cli 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/api/github-graphql.mjs +28 -0
- package/src/api/github-rest.mjs +24 -0
- package/src/cli.mjs +6 -2
- package/src/commands/audit.mjs +10 -1
- package/src/commands/dev-agent.mjs +20 -4
- package/src/commands/doctor.mjs +107 -13
- package/src/commands/implement.mjs +167 -34
- package/src/commands/merge.mjs +18 -0
- package/src/commands/update.mjs +55 -10
- package/src/commands/validate.mjs +14 -0
- package/src/config.mjs +57 -4
- package/src/lib/bug-context.mjs +17 -6
- package/src/lib/commit-trailers.mjs +134 -0
- package/src/lib/delivery-mode.mjs +26 -0
- package/src/lib/rate-budget.mjs +36 -0
- package/src/lib/spec-audit.mjs +135 -19
- package/src/plugin/.claude-plugin/plugin.json +1 -1
- package/src/plugin/skills/audit/SKILL.md +2 -2
- package/src/plugin/skills/doctor/SKILL.md +6 -2
- package/src/plugin/skills/implement/SKILL.md +8 -2
- package/src/plugin/skills/merge/SKILL.md +1 -0
- package/src/plugin/skills/spec/model-prompt.md +1 -1
- package/src/setup/labels.mjs +6 -5
- package/src/templates/issue/spec-template.md +7 -2
- package/src/templates/skill/SKILL.md +14 -4
|
@@ -650,20 +650,24 @@ npx @spec-wave/cli@latest install-skill --force
|
|
|
650
650
|
|
|
651
651
|
> **Quando usar:** Use como PRIMEIRO passo de troubleshooting do spec-wave: erro 404 ao criar issues, comando falhando sem motivo claro, board com colunas estranhas, Action que não roda, dúvida sobre token/escopos ou sobre qual modelo de IA está configurado. Também no início de uma sessão de trabalho. Gatilhos: 'spec-wave está com erro', 'não consigo criar issue', 'diagnosticar spec-wave', 'rodar o doctor'. Prefira esta skill a depurar gh api na mão.
|
|
652
652
|
|
|
653
|
-
Comando **local
|
|
653
|
+
Comando **local**:
|
|
654
654
|
|
|
655
655
|
```bash
|
|
656
656
|
npx @spec-wave/cli@latest doctor
|
|
657
|
+
npx @spec-wave/cli@latest doctor --deep # confere também as Tasks de cada decomposição
|
|
657
658
|
```
|
|
658
659
|
|
|
659
660
|
#### O que ele checa
|
|
660
661
|
|
|
661
|
-
- **Token GitHub** e a fonte dele
|
|
662
|
+
- **Token GitHub** e a fonte dele
|
|
663
|
+
- **Cota da API (GraphQL)**: pontos restantes e horário do reset — medido de graça (a consulta não custa pontos) e usado pelos checks abaixo para decidir se cabem no orçamento
|
|
664
|
+
- **Escopos** (`repo`, `project`, `workflow`), com degradação para checks funcionais em fine-grained PATs
|
|
662
665
|
- **Conta ativa do `gh`** vs. o owner do repositório
|
|
663
666
|
- **`.spec-wave.json`**: campos presentes e sincronia com o Project real
|
|
664
667
|
- **Acesso ao repositório**
|
|
665
668
|
- **Configuração de IA**: provider, modelo, `ai.models`, escalada da crítica, apelidos de modelo, teto de saída e os secrets do Actions
|
|
666
669
|
- **Higiene do board e das labels**: colunas fora do fluxo canônico, labels `spec-wave:*` descontinuadas ou ausentes
|
|
670
|
+
- **Decomposições aplicadas**: `decomposition.md` × issues reais. Por padrão confere só até o nível de Story (1 chamada por Feature); `--deep` desce até as Tasks (1 chamada a mais por Story) — mais completo, mais caro. Se a cota estiver baixa, o check é pulado com a causa explícita em vez de estourar em silêncio.
|
|
667
671
|
- **spec-kit**: `specKit.command` / env `SPEC_WAVE_IMPLEMENT_CMD` — se ausente, sugere exemplos por agente (Claude Code, opencode, Codex, Copilot CLI, Kiro CLI, Qwen Code)
|
|
668
672
|
- **Workflows**: presença + **versão da CLI fixada** (não `@latest`)
|
|
669
673
|
|
|
@@ -1030,6 +1034,7 @@ Comando **local** (lê o `.spec-wave.json`, como o `issue`), **não** disparado
|
|
|
1030
1034
|
| `<issue>` | **Obrigatório**, posicional. Número da Feature, Story ou Task (`12` ou `#12`). |
|
|
1031
1035
|
| `--feature-dir <path>` | Caminho `docs/features/<slug>` para anexar `spec.md`/`plan.md` (sobrescreve a resolução automática). |
|
|
1032
1036
|
| `--dry-run` | Monta o contexto e imprime o comando **sem executar** e **sem escrever nada no GitHub**. |
|
|
1037
|
+
| `--verify-commits` | Depois de executar, confere se os commits recentes trazem o trailer `Spec-Wave-Story`/`Spec-Wave-Tasks` (rastro verificável, não depende do assunto do commit). Best-effort — nunca bloqueia. |
|
|
1033
1038
|
|
|
1034
1039
|
**Pré-requisitos:** `.spec-wave.json` presente (senão → skill **setup**) e a issue ser Feature, Story ou Task. Para executar de fato, o spec-kit precisa estar configurado em `specKit.command` (no `.spec-wave.json`) ou na env `SPEC_WAVE_IMPLEMENT_CMD`.
|
|
1035
1040
|
|
|
@@ -1083,15 +1088,20 @@ npx @spec-wave/cli@latest task start <n> # Etapa 🚧 Desenvolvimento + Status
|
|
|
1083
1088
|
npx @spec-wave/cli@latest task done <n> # Etapa 🎉 Done + Status Done
|
|
1084
1089
|
```
|
|
1085
1090
|
|
|
1086
|
-
**Ao concluir toda a Story:** faça o commit,
|
|
1091
|
+
**Ao concluir toda a Story:** faça o commit e mova a Story. O **assunto** do commit é livre (o que você achar mais claro), mas o **rodapé** precisa trazer o rastro exato que o contexto montado dita — `Spec-Wave-Story: #<n>` e `Spec-Wave-Tasks: #<n>, #<n>...` — copiado literalmente, sem alterar as chaves. É esse rodapé, não o assunto, que `--verify-commits` e o `merge` conferem:
|
|
1087
1092
|
|
|
1088
1093
|
```bash
|
|
1089
1094
|
npx @spec-wave/cli@latest story review <n> # Etapa 👀 Code Review, Status Todo
|
|
1090
1095
|
```
|
|
1091
1096
|
|
|
1097
|
+
Se abre PR e onde faz push depende do **modo de entrega** — o contexto montado já diz qual é (não adivinhe pelo tipo de issue):
|
|
1098
|
+
|
|
1099
|
+
- **`pr-stack`** (fluxo manual padrão): abra o **Pull Request da Story como rascunho** (`gh pr create --draft`) antes de mover a Story. Numa Feature com várias Stories os PRs ficam **empilhados** (cada um baseado no anterior) — o merge é ordem-dependente; use `spec-wave merge <feature>`, nunca `--delete-branch` manual num PR da pilha.
|
|
1100
|
+
- **`agent`** (rodando sob o `dev-agent`): **NÃO crie branch, NÃO abra PR** — faça só o commit e o push no branch atual. O daemon mantém um único branch (`agent/issue-<n>`) e é ele quem abre o PR ao final, para a Feature inteira. Abrir um PR por Story aqui cria um branch lateral (`agent/issue-<n>-story-<m>`) cujo trabalho não entra no PR do agente.
|
|
1101
|
+
|
|
1092
1102
|
**A Feature só avança** para 👀 Code Review quando **TODAS** as suas Stories já estiverem lá. Enquanto houver Story pendente, deixe a Feature em 🚧 Desenvolvimento. No modo Feature isso acontece dentro da mesma execução.
|
|
1093
1103
|
|
|
1094
|
-
**No modo Feature**, siga o contexto Story a Story, **na ordem listada**: implemente as Tasks, depois commit + PR + `story review`; só então passe à próxima Story.
|
|
1104
|
+
**No modo Feature**, siga o contexto Story a Story, **na ordem listada**: implemente as Tasks, depois commit (+ PR só em modo `pr-stack`) + `story review`; só então passe à próxima Story.
|
|
1095
1105
|
|
|
1096
1106
|
> **Aviso de dependência pendente** no contexto (a issue depende de outra não concluída, via `Depende de: #N` ou *blocked by*) → **confirme com o usuário** antes de seguir fora de ordem.
|
|
1097
1107
|
|