Comandos com model: haiku no frontmatter não forçam execução em Haiku quando usuário está em outro modelo

Open 💬 0 comments Opened Jun 15, 2026 by obarbosa2020

Descrição do problema

Comandos definidos com model: haiku no frontmatter YAML não estão sendo forçados para execução em Haiku quando o usuário está usando outro modelo. O harness ignora silenciosamente a diretiva de modelo.

Arquivo de configuração

Localização: ~/.claude/commands/pendencias.md

---
description: Lista as pendências do projeto (roda no Haiku; não altera o modelo padrão)
argument-hint: "[tudo | backlog]  (opcional — mostra a lista completa)"
model: haiku
---

Passos para reproduzir

  1. Trocar modelo para Opus: /model opus
  2. Executar comando: /pendencias
  3. Observar a saída (deveria estar em Haiku, mas não está)
  4. Trocar para Haiku: /model haiku
  5. Executar novamente: /pendencias
  6. Comparar as duas saídas (serão idênticas, sugerindo que o comando não foi executado ou o template foi retornado sem execução)

Comportamento esperado

Quando um comando tem model: haiku declarado:

  • Se o usuário está em Haiku: executar normalmente
  • Se o usuário está em outro modelo (Opus, Sonnet, etc.):
  • Opção A: chancar automaticamente para Haiku, executar, e retornar ao modelo anterior
  • Opção B: rejeitar explicitamente com mensagem clara ("Este comando requer Haiku. Troque de modelo com /model haiku")

Comportamento observado

Nenhuma das opções acima acontece. O harness retorna apenas o template do comando (o corpo do markdown após o frontmatter YAML) sem executar, indiferente do modelo ativo.

Ambiente

  • Platform: Windows 11 Pro
  • Claude Code: versão atual (Opus 4.8 / Haiku 4.5 disponíveis)
  • Comando testado: /pendencias (skill customizado definido em ~/.claude/commands/pendencias.md)

Impacto

Comandos sensíveis a modelo (como /pendencias que deve rodar em Haiku por economia de tokens) não funcionam como documentado, criando confusão e impedindo otimizações de custo.

Sugestão

Validar model: no frontmatter do comando e:

  1. Rejeitar com erro claro se o usuário não está no modelo esperado, OU
  2. Implementar chaveamento automático com retorno ao modelo anterior após execução

View original on GitHub ↗