TRILHA 3 · AVANÇADO

🔬 Técnicas Avançadas

Power-user e extensibilidade. Trocar providers, escrever skills próprias, integrar com outros sistemas, dominar a engenharia do daemon.

6
Módulos
48+
Tópicos
~12h
Duração
Avançado
Nível

📚 Os 6 Módulos da Trilha

Clique para pular direto a um módulo, ou role para ver os tópicos expansíveis.

Conteúdo Detalhado

3.1~80 min

🔌 BYOK Proxy & Multi-modelo

Trocar motor entre Claude Code, Codex, Ollama, MiMo, DeepSeek, OpenRouter, vLLM — sabendo trade-off de cada.

O que é:

Endpoint do daemon: aceita {baseUrl, apiKey, model, messages} e faz pass-through SSE para qualquer endpoint OpenAI-compatible.

Por que aprender:

É o "atalho universal" para qualquer LLM que fale OpenAI chat. Sem mudança de código no OD.

Conceitos-chave:

SSE pass-through · OpenAI-compat · {baseUrl, apiKey, model, messages}

O que é:

Bloqueio na borda do daemon: rejeita destinos loopback (127.x), link-local (169.254.x), RFC1918 (10.x, 172.16-31.x, 192.168.x).

Por que aprender:

Sem isso, baseUrl="http://internal-service" expõe rede interna. Defesa em profundidade.

Conceitos-chave:

SSRF · loopback · RFC1918 · edge guard

O que é:

Padrão de fato: /v1/chat/completions com messages[] + role + content. Quase todo provider implementa.

Por que aprender:

Aprendendo um schema, você fala com 20+ providers. Não precisa de SDK por provider.

Conceitos-chave:

/v1/chat/completions · messages array · streaming · tool calls

O que é:

KNOWN_PROVIDERS no config: presets com baseUrl + model default. Pasta um clique para popular.

Por que aprender:

Cada um tem trade-off: MiMo (custo no CN), DeepSeek (custo global), Groq (velocidade), OpenRouter (variedade).

Conceitos-chave:

KNOWN_PROVIDERS · presets · trade-off por provider

O que é:

baseUrl=http://localhost:11434/v1. Modelo: qwen2.5-coder:32b > generalistas para HTML/CSS.

Por que aprender:

100% local, zero custo, dados sensíveis ok. Mas: hardware exigente (32B+ modelos).

Conceitos-chave:

localhost:11434 · qwen2.5-coder · privacidade · GPU exigente

O que é:

MiMo tem schema de tools malcomportado em geração free-form. OD força tool_choice:'none' automaticamente.

Por que aprender:

Quirks de provider. Mostra que OD compensa por trás dos panos.

Conceitos-chave:

Provider quirks · tool_choice · free-form · auto-fix

O que é:

CLI agent (Claude Code) tem skills locais. BYOK proxy não. Trade-off: custo vs capacidades.

Por que aprender:

Claude Code dá Read/Write/Bash REAIS. BYOK só tem chat. Decisão consciente.

Conceitos-chave:

CLI vs proxy · skills · capacidades · custo

Ver Completo
3.2~90 min

🔗 Agent Client Protocol (ACP) & adapters

JSON-RPC stdio bidirecional ("LSP para coding agents"). 11 CLIs, 6 famílias de stream format. Como adicionar adapter novo.

O que é:

JSON-RPC 2.0 sobre stdio, bidirecional simétrico. Editor e agente podem iniciar requests.

Por que aprender:

É o "LSP para coding agents". Vai virar padrão. Saber agora = adoção cedo.

Conceitos-chave:

JSON-RPC 2.0 · stdio · bidirecional · simétrico · LSP-like

O que é:

Process isolation, language independence, sem porta, sem CORS, sem rede.

Por que aprender:

stdio é mais simples e mais seguro que HTTP local. Spawn-and-talk.

Conceitos-chave:

Process boundary · zero port · zero CORS · spawn

O que é:

Taxonomia: claude-stream-json, copilot-stream-json, json-event-stream (Codex/Gemini/OpenCode/Cursor), acp-json-rpc (Hermes/Kimi/Kiro), pi-rpc, plain (Qwen).

Por que aprender:

Saber qual fala qual protocolo te ajuda a debugar quando um para de funcionar.

Conceitos-chave:

6 stream formats · 11 CLIs · per-CLI parser

O que é:

PATH scan no boot do daemon. Cada bin encontrado vira candidato. Available/unavailable.

Por que aprender:

Sem config. Plug-and-play. Adicione binary ao PATH e aparece no picker.

Conceitos-chave:

PATH scan · which · zero config · auto-detection

O que é:

Cada CLI tem argv builder próprio. Windows ENAMETOOLONG fallback: prompt via stdin ou file.

Por que aprender:

Prompts compostos passam de 32KB no Windows. Argv não aguenta. Stdin sim.

Conceitos-chave:

argv builder · ENAMETOOLONG · stdin fallback · 32KB limit

O que é:

Array em apps/daemon/src/agents.ts com {id, bin, streamFormat, eventParser, models, ...}.

Por que aprender:

Single source of truth. Editar = adicionar/modificar CLI suportada.

Conceitos-chave:

AGENT_DEFS · descritor · streamFormat enum

O que é:

Uma entrada em AGENT_DEFS + um eventParser (se streamFormat=json-event-stream).

Por que aprender:

Você pode plugar CLI custom em ~30min. PR de upstream relativamente simples.

Conceitos-chave:

+1 entry · eventParser fn · upstream PR pattern

Ver Completo
3.3~75 min

🎨 Brand-Spec Extraction Avançada

Extrair sistema visual de URL/screenshot do cliente sem inventar cores. Protocolo 5 passos.

O que é:

LLM "tem na memória" cores aproximadas. Pede laranja Stripe, vem qualquer laranja.

Por que aprender:

É a fonte #1 de output que parece "quase certo mas não". Cores aproximadas matam credibilidade.

Conceitos-chave:

Hallucinated colors · approximation · brand mismatch

O que é:

Locate · Download · grep hex · Codify · Vocalise. Protocolo determinístico.

Por que aprender:

Cada passo elimina uma fonte de erro. Não inventar = chave do output bom.

Conceitos-chave:

5 passos · determinístico · evidence-based

O que é:

Convencionalmente marcas têm /brand, /press ou /about com brand assets.

Por que aprender:

Saber onde procurar antes de scrap aleatório.

Conceitos-chave:

/brand /press /about · convenções · WebFetch

O que é:

Qualquer artefato disponível: CSS público, PDF brand guide, screenshots.

Por que aprender:

Quanto mais artefato, mais robusta a extração. Diversificar fontes.

Conceitos-chave:

CSS público · PDF guides · screenshots · multi-source

O que é:

Regex captura todos hex codes. Ordena por frequência. Top 6 = probable palette.

Por que aprender:

Extração mecânica. Zero alucinação. Reproduzível.

Conceitos-chave:

Regex hex · sort by freq · top 6 · mecânico

O que é:

Escrever brand-spec.md no projeto: 6 tokens OKLch + 3 font stacks + 3-5 posture rules.

Por que aprender:

Formato canônico. Próximas sessões herdam. Versionável.

Conceitos-chave:

brand-spec.md · 6 tokens · OKLch · 3 font stacks · 3-5 rules

O que é:

"warm cream background, single rust accent at oklch(58% 0.15 35), Newsreader display + system body".

Por que aprender:

Usuário pode redirecionar barato. "Não, queria mais frio." Antes de gerar 5 telas.

Conceitos-chave:

One-sentence summary · cheap redirect · pre-build check

O que é:

Conversão direta perde nuance. Preservar L (lightness percebida) mantém WCAG.

Por que aprender:

Dark mode automático fica predictível. Não precisa eyeball ajuste.

Conceitos-chave:

L preservation · WCAG predictable · dark mode auto

Ver Completo
3.4~70 min

🔄 Critique 5-dim como Loop

Crítica não como ferramenta avulsa, mas como gate pre-emit em todo turn. Auto-crítica integrada.

O que é:

skills/critique/ = relatório HTML rich. Crítica embutida em discovery.ts = silent gate.

Por que aprender:

Duas modalidades para dois usos: deep audit vs continuous quality.

Conceitos-chave:

Manual skill · embedded gate · 2 modalidades

O que é:

Philosophy · Hierarchy · Execution · Specificity · Restraint. Cada uma com perguntas concretas.

Por que aprender:

Sem definição operacional, "execução boa" é vibes. Definição = score reproduzível.

Conceitos-chave:

5 dim · operacional · perguntas concretas · reproduzível

O que é:

0-10 = relatório rico, granularidade fina. 1-5 = gate rápido, decisão binária.

Por que aprender:

Escolha de escala = escolha de granularidade. Cada uso pede uma.

Conceitos-chave:

Granularidade · 0-10 vs 1-5 · escolha consciente

O que é:

Hard rule: qualquer dimensão abaixo de 3/5 = não emite, refaz. Re-score. 2 passes normais.

Por que aprender:

Gate explícito > "tente fazer melhor". Comportamento previsível.

Conceitos-chave:

Hard threshold · 3/5 · refaz · 2 passes

O que é:

Esperado: 1º draft, 1ª crítica (encontra problema), fix, 2ª crítica (passa). Mais que 3 = brief errado.

Por que aprender:

Saber quando parar. Loop infinito = sintoma de problema upstream.

Conceitos-chave:

2 passes · diminishing returns · brief signal

O que é:

Lint encontra problemas estruturais (artifact framing, missing assets). Findings alimentam crítica.

Por que aprender:

Crítica não é só "vibes" — é vibes + evidências de lint estrutural.

Conceitos-chave:

Lint findings · evidence-grounded · vibes + dados

O que é:

references/checklist.md por skill define P0 customizados. Você pode adicionar "no rounded cards" como P0.

Por que aprender:

Skill especializada exige checklist especializada.

Conceitos-chave:

P0 customizado · per-skill checklist · barra por contexto

O que é:

Specificity = "every word/number/image specific to THIS brief?" Slop = filler, generic. Blacklist captura.

Por que aprender:

Specificity é a dimensão mais difícil. Blacklist torna ela mais objetiva.

Conceitos-chave:

Specificity · blacklist · filler detection · objetiva

Ver Completo
3.5~90 min

🛠️ Criando uma Skill Própria

Escrever skill end-to-end: SKILL.md + assets/template.html + references/{layouts,checklist}.md, instalar, agente usa.

O que é:

Estender se a base é 80% certa. Criar nova se semantics diferentes (mobile vs desktop, deck vs prototype).

Por que aprender:

Evitar duplicação. Ecossistema mais limpo.

Conceitos-chave:

DRY · semantic boundary · 80% rule

O que é:

<skill-name>/{SKILL.md, assets/, references/}. Convenção fixa.

Por que aprender:

Padrão = OD discovery automático. Sem padrão = skill invisível.

Conceitos-chave:

3 partes · convenção · auto-discovery

O que é:

name (kebab-case, único), description (multi-line), triggers (multi-idioma), od:{...} extensions.

Por que aprender:

Cada campo tem efeito específico no UX do picker.

Conceitos-chave:

YAML frontmatter · campos obrigatórios · od: opcional

O que é:

Tokens em :root + class system + comentários por seção. Seed bem opinionado.

Por que aprender:

Quanto mais opinionado o seed, mais consistente o output. Não tenha medo de ser específico.

Conceitos-chave:

:root tokens · class system · comentários por seção

O que é:

Skeletons de seção/tela/slide que o agente cola e adapta. Não escreve do zero.

Por que aprender:

Paste-ready é o segredo da qualidade consistente. Agente improvisa menos.

Conceitos-chave:

Paste-ready · skeletons · classes esperadas

O que é:

Lista P0/P1/P2 específica da skill. P0 são "faltou? não emite". P1 = fix antes de export. P2 = nice.

Por que aprender:

P0 errados = bloqueia agente. P0 certos = qualidade automática.

Conceitos-chave:

P0/P1/P2 · hard gate · pragmatismo

O que é:

Prompt exemplo aparece no picker como tooltip. Ajuda usuário decidir se a skill é a certa.

Por que aprender:

UX: usuário não tem que abrir SKILL.md inteiro pra entender o que faz.

Conceitos-chave:

UX picker · tooltip · concrete example

O que é:

~/.claude/skills/<nome>/ (global) ou ./skills/ (repo). Restart daemon: pnpm tools-dev stop && start.

Por que aprender:

Sem restart, picker não mostra skill nova.

Conceitos-chave:

Locais · restart · FS-watch (futuro)

O que é:

PR pattern: skills/<sua-skill>/ + entry no skills/AGENTS.md (se houver). Apache-2.0.

Por que aprender:

Sua skill vira parte do produto. Outros se beneficiam. Bonifica reputação.

Conceitos-chave:

PR upstream · Apache-2.0 · ecossistema

Ver Completo
3.6~85 min

⚙️ Daemon, Sidecar IPC & Multi-namespace

Engenharia do daemon. Operar múltiplos namespaces em paralelo. Debugar via inspect tools.

O que é:

Subcommands: start/stop/run/status/logs/inspect/check. Lifecycle 100% via tools-dev.

Por que aprender:

Não tem pnpm dev. Não tem pnpm start. Tudo via tools-dev. Único caminho.

Conceitos-chave:

7 subcommands · single entrypoint · no pnpm dev

O que é:

app · mode · namespace · ipc · source. Carregados em todo processo (daemon/web/desktop).

Por que aprender:

Process discovery sem heurística. ps aux + grep stamp = encontrou.

Conceitos-chave:

5 campos · process discovery · sem regex · type-safe

O que é:

Unix socket em /tmp/open-design/ipc/<ns>/<app>.sock. JSON-RPC por cima.

Por que aprender:

Automação E2E sem framework próprio. tools-dev inspect desktop screenshot.

Conceitos-chave:

Unix socket · JSON-RPC · 6 commands · E2E sem harness

O que é:

OD_DATA_DIR muda raiz dos dados. --namespace muda subdir dentro da raiz.

Por que aprender:

Permite rodar Playwright + dev + projetos reais sem colisão de SQLite.

Conceitos-chave:

env var · CLI flag · isolamento · sem colisão

O que é:

Casos de uso reais: Playwright (testes), beta channel, projetos de cliente, experiments.

Por que aprender:

Sem namespaces, testes apagam projetos reais. Com, tudo coexiste.

Conceitos-chave:

Test isolation · beta channels · multi-client · safety

O que é:

Tira screenshot do desktop Electron via IPC. Sem Playwright. Sem framework.

Por que aprender:

E2E desktop sem dependência pesada. Útil para CI.

Conceitos-chave:

SCREENSHOT command · sem Playwright · CI-ready

O que é:

Renderer sandboxed. Descobre URL do web via IPC do daemon. Não adivinha porta.

Por que aprender:

Port discovery via IPC > scan de porta. Robusto a mudanças.

Conceitos-chave:

Sandboxed renderer · IPC discovery · sem port scan

O que é:

3 packages com responsabilidade clara: proto (contrato OD), sidecar (runtime genérico), platform (OS primitives).

Por que aprender:

Separação genérico vs específico. Reusável fora do OD.

Conceitos-chave:

3 layers · genérico/específico · reuso

O que é:

.tmp/tools-dev/<namespace>/logs/<app>/latest.log. JSON quando --json.

Por que aprender:

Debugging sério. Por namespace, por app, JSON parseable.

Conceitos-chave:

Log estruturado · per-namespace · JSON · latest.log

O que é:

Comando que retorna logs em JSON. Pipe pra jq, grep estruturado.

Por que aprender:

Debug eficiente. jq '.message | select(. | contains("error"))'.

Conceitos-chave:

--json flag · jq pipe · structured grep

Ver Completo
← Trilha 2: Exemplos Voltar ao Início ↑