// conceitos · 05

Skills, contratos e gosto

O harness sabe usar skills, não só tools. Skills forçadas por contrato são injetadas inteiras e viram gate; as demais aparecem como catálogo leve e são carregadas s…

Formato e seleção

Skills seguem o formato agentskills.io (SKILL.md), instaladas via skill.sh (okami learn <fonte>). Há dois caminhos: forçadas por contrato/keywords (injetadas inteiras, viram gate) e progressive disclosure estilo Claude Code (catálogo leve sempre no prompt; a relevante é carregada sob demanda).

Skills empacotadas

14 skills customizadas vêm no skills/, todas passando pelo scan:

  • frontend-shadcn · frontend-heroui · claude-design (HTML one-off)
  • humanizer · proactive-agent · tdd · writing-plans · communication-131
  • code-wiki · page-agent · kanban-orchestrator · honcho-memory
  • delegate-claude · delegate-codex (quando escalar pro modelo forte)

Contratos de projeto

okami.yaml → contracts.ui declara regras duras e verificáveis. O contrato é injetado no contexto e vira exitCriteria — design system deixa de ser sugestão.

okami.yaml
contracts:
  ui:
    library: shadcn
    component_source: '@/components/ui'
    forbid_inline_hex: true
    forbid_raw_css: true
    require_component_source: true

Verification gates

Antes de aceitar conclusão de UI, okami gate roda, em ordem:

  1. AST de imports — vêm de component_source? exige o import da lib declarada?
  2. Anti-CSS-ad-hoc — sem <style> cru / hex inline fora dos tokens.
  3. Lint de design tokens.
  4. Build + typecheck.
  5. Self-check visual — render headless → screenshot → critic.

Gosto de design (taste)

Aprovado atrai, recusado repele, “diferente” explora. Atratores e repulsores com peso ficam em .okami/taste.json por workspace. A escolha entre candidatos usa score(c) = w1·sim(atratores) − w2·sim(repulsores) − w3·sim(atual). CLI: okami taste like/dislike/different.

Segurança de skills

Skills são código + instruções que entram direto no contexto — vetor de prompt injection, exfiltração e RCE. Nada entra em skills/ sem passar por scan, que detecta:

  • prompt injection / prompt-leak / stealth
  • shell destrutivo (rm -rf, fork bomb, pipe-to-shell)
  • exfiltração (webhooks Discord/Slack, requestbin/ngrok/pastebin)
  • acesso a segredos (~/.ssh, .aws, .codex/auth) e RCE/ofuscação (eval/exec/base64)
  • unicode oculto / Trojan Source (zero-width, bidi) e binários empacotados
okami learn owner/repo     # baixa p/ quarentena, escaneia, promove se passar
okami scan ./skills/x      # valida uma skill sob demanda

Abrir esta página nos docs interativos