Communitygithub.com

grahama1970/align

Alinhamento de contexto baseado em rodadas antes da execução. Use quando o humano, agente do projeto, WebGPT, scillm, ask, dogpile, memória ou conhecimento-do-projeto podem ter fatos diferentes sobre uma tarefa; especialmente antes de design ambíguo, infográfico, fluxo de trabalho do produto, implementação de alto risco, planejar-iterar, infográfico de projeto ou trabalho com múltiplas revisões.

O que é align?

O skill `$align` é um mecanismo de pré-execução que garante que todos os participantes de uma tarefa — humano, agente do projeto, WebGPT, scillm, ask, dogpile, memória e conhecimento-do-projeto — estejam alinhados antes de qualquer implementação, renderização ou refatoração. Ele funciona por meio de rodadas de alinhamento onde cada participante expõe seus fatos, suposições e perguntas bloqueadoras, que são então resolvidas em um arquivo `alignment_lock.json`. Este skill é particularmente útil antes de tarefas complexas ou ambíguas, como design de infográficos, fluxos de trabalho de produtos ou iterações de planejamento, onde informações conflitantes podem levar a retrabalho. O fluxo inclui roteamento de perguntas para os participantes corretos, integração com revisores externos via WebGPT, scillm ou ask, e uma verificação de sanidade E2E ao vivo. O lock só é marcado como `ready_for_execution: true` quando todas as perguntas bloqueadoras são respondidas, os objetivos e não-objetivos são explícitos, e os critérios de aceitação são testáveis.

Funciona com✓Claude Code~Codex CLI~Cursor✓Antigravity✓Gemini CLI✓OpenCode
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/align

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Alinhamento (Align)

Use $align para equalizar o contexto antes da ação. O skill existe para tarefas onde o humano, agente do projeto, WebGPT, $scillm, $ask, $dogpile, $memory ou $project-knowledge podem cada um saber fatos diferentes. Ele produz um alignment_lock.json que skills posteriores podem executar.

Não use $align para implementar, renderizar, refatorar ou revisar o trabalho final. É um portão de pré-execução. Nenhum código, infográfico, dashboard, fase de planejar-iterar ou renderização de infográfico de projeto deve começar até que o lock de alinhamento diga ready_for_execution: true.

Regra Principal

O alinhamento está completo apenas quando todas as perguntas bloqueadoras são respondidas e o lock registra:

  • objetivo acordado
  • não-objetivos acordados
  • contexto de origem
  • fatos dos participantes
  • suposições e riscos restantes
  • formato da saída
  • critérios de aceitação
  • decisão explícita de pronto/não pronto

Se o desacordo permanecer, mantenha o lock com ready_for_execution: false.

Participantes

Use apenas participantes que sejam relevantes para a tarefa:

ParticipantePapel
humanIntenção, preferências, nuances de domínio, barra de aceitação
project_agentEstado do repositório local, restrições, próximos passos executáveis
project_knowledgeHistórico durável do projeto e notas de transição
memoryLições anteriores e problemas similares resolvidos
scillmCrítica direta do modelo através do proxy LLM localhost
askRuntime de ask/oráculo/revisão profunda com artefatos; possui roteamento WebGPT
dogpilePesquisa externa fresca quando o contexto local é insuficiente
webgptContexto visível no navegador/sessão e julgamento voltado ao humano

As chamadas WebGPT devem ser roteadas através de $ask webgpt; $ask já possui o backend oráculo WebGPT e usa surf webgpt.submit --no-activate contra a aba autenticada do ChatGPT do usuário. $align não chama surf diretamente. Não envie requisições WebGPT através de $scillm; $scillm é para chamadas diretas ao modelo como gpt-5.5, Gemini, Claude ou OpenCode Go. Preserve o id da aba quando o humano o fornecer. Use $dogpile apenas quando o alinhamento estiver bloqueado por conhecimento externo/atual faltante. Não o use para fatos que $project-knowledge ou $memory já respondem.

Roteamento em Tempo de Execução

                         +-----------------------+
                         |    $align init        |
                         | objetivo, saída, fontes|
                         +-----------+-----------+
                                     |
                                     v
                   +-----------------+-----------------+
                   |     Rodada N: alignment_brief      |
                   | participantes declaram fatos,      |
                   | lacunas, contradições e perguntas  |
                   +-----------------+-----------------+
                                     |
                   +-----------------+-----------------+
                   | compilar-rodada extrai perguntas  |
                   | Pergunta[bloqueadora/não bloqueadora]: |
                   +-----------------+-----------------+
                                     |
                  perguntas bloqueadoras abertas?
                         | sim                         | não
                         v                             v
        +----------------+----------------+    +-------+--------+
        | rotear cada pergunta ao dono    |    | lock --pronto   |
        | humano/projeto/memória/revisor   |    | escreve lock    |
        +----------------+----------------+    +----------------+
                         |
                         v
        +----------------+----------------+
        | adicionar-resposta / responder-pergunta |
        | atualizar brief, incrementar rodada   |
        +----------------+----------------+
                         |
                         v
                    Rodada N+1

Rotas de revisor são entradas opcionais para uma rodada:

                                +----------------+
                                | Brief Rodada N |
                                +-------+--------+
                                        |
          +-----------------------------+-----------------------------+
          |                             |                             |
          v                             v                             v
+--------------------+       +--------------------+       +--------------------+
| WebGPT via $ask    |       | $scillm direto     |       | $ask revisão/oráculo |
| preparar-revisão    |       | preparar-revisão    |       | preparar-revisão    |
| --revisor webgpt   |       | --revisor scillm   |       | --revisor ask       |
+---------+----------+       +---------+----------+       +---------+----------+
          |                            |                            |
          v                            v                            v
skills/ask/run.sh ask webgpt    rodada-N-scillm-request.json   rodada-N-ask-request.md
--webgpt-tab-id <id>            modelo: gpt-5.5               skills/ask/run.sh ask
          |                     raciocínio_esforço: alto      --revisão-profunda
          v                     prompt de persona opcional
 $ask -> surf webgpt.submit            |
 --no-activate                          v
          v                  POST localhost:4001/v1/chat/completions
          |
 aba autenticada do ChatGPT

Pesquisa externa/atual:
  preparar-revisão --revisor dogpile -> rodada-N-dogpile-request.md
  Use apenas quando fatos externos faltantes bloqueiam o alinhamento.

Laço de Rodada

Cada rodada segue a mesma sequência:

  1. Transmita o brief de alinhamento atual para os participantes selecionados.
  2. Cada participante declara o que acredita ser a tarefa.
  3. Cada participante lista fatos que conhece que outros podem não conhecer.
  4. Cada participante lista suposições, contradições e perguntas.
  5. Mescle perguntas em conjuntos bloqueadores e não bloqueadores.
  6. Roteie perguntas para a parte que pode respondê-las.
  7. Atualize o brief.
  8. Pare apenas quando as perguntas bloqueadoras forem resolvidas ou o máximo de rodadas for atingido.

Se o máximo de rodadas for atingido com perguntas bloqueadoras abertas, pare com ready_for_execution: false e apresente a menor decisão humana necessária.

CLI

Vinculação de aba WebGPT (paridade CLI)

Prefira zero-flag $ask webgpt de um diretório de trabalho registrado. /ask compõe $browser-oracle automaticamente. init e prepare-review persistem dicas de vinculação em .align/state.json e emitem as mesmas flags no round-*-webgpt-ask-command.sh gerado.

FlagQuando usar
(nenhuma)cwd tem registro de subida + vinculação — preferido
--browser-oracle-from <dir>Sobrescrever raiz de subida (subdiretório monorepo)
--webgpt-project <name>Projeto explícito; pula subida yaml
--webgpt-tab-id <id>Sobrescrita única; pula subida
--webgpt-url <url>Resolver por URL da conversa; pula subida

Ordem de resolução (mesma que $ask / $surf): --webgpt-tab-id → --webgpt-url → $browser-oracle subida → --webgpt-project → uma aba chatgpt.com (falha fechada).

Configuração: $browser-oracle register + bind + doctor --from <dir>. Veja $browser-oracle e as seções Vinculação de aba WebGPT de $ask SKILL.md.

Execute a partir da raiz do repositório ou projeto que possui a tarefa:

skills/align/run.sh init \
  --goal "Criar uma solicitação clara de infográfico planejar-iterar" \
  --output-shape "storyboard derivado da fonte e solicitação de infográfico web" \
  --participant human \
  --participant project_agent \
  --participant project_knowledge \
  --participant scillm \
  --participant ask \
  --participant dogpile \
  --participant webgpt
# Prefira zero-flag de um diretório registrado, ou persista raiz de subida:
#   --browser-oracle-from skills/oc-subagent/personas/mathematics
# Sobrescrita explícita legada:
#   --webgpt-tab-id 837343529

Registre as respostas dos participantes:

skills/align/run.sh add-response \
  --participant project_agent \
  --round 1 \
  --text "Tarefa: reconciliar o fluxo de trabalho antes de renderizar. Fato: o visual anterior falhou porque não havia storyboard aprovado. Pergunta[bloqueadora]: qual projeto de amostra exato deve ancorar o visual?"

Compile a rodada:

skills/align/run.sh compile-round --round 1

Trave apenas após as perguntas bloqueadoras serem resolvidas:

skills/align/run.sh lock --ready --approved-by human

Geração de Solicitação de Revisor

prepare-review cria artefatos de solicitação reproduzíveis para revisores. Ele não chama o revisor por si só.

skills/align/run.sh prepare-review --round 1 --reviewer scillm
skills/align/run.sh prepare-review --round 1 --reviewer ask
skills/align/run.sh prepare-review --round 1 --reviewer dogpile
skills/align/run.sh prepare-review --round 1 --reviewer webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# ou: --webgpt-tab-id 837343529

Use WebGPT quando a revisão precisar da sessão autenticada do navegador ChatGPT do humano ou contexto visível no navegador. Use $scillm quando a revisão deve ser uma chamada de modelo direta e reproduzível, por exemplo GPT-5.5 com raciocínio alto e um prompt de persona/sistema:

skills/align/run.sh prepare-review \
  --round 1 \
  --reviewer scillm \
  --scillm-model gpt-5.5 \
  --reasoning-effort high \
  --persona-prompt "Você é um revisor cético de alinhamento de produto. Foque em suposições incompatíveis e critérios de aceitação ausentes."

Chamadas recomendadas após prepare-review:

# revisão direta scillm
.align/reviews/round-001-scillm-command.sh

# revisão profunda ask ou oráculo WebGPT
skills/ask/run.sh ask "Revise a solicitação de alinhamento em .align/reviews/round-001-ask-request.md" \
  --deep-review --deep-review-target .align/reviews/round-001-ask-request.md

skills/ask/run.sh ask webgpt "Revise a solicitação de alinhamento em .align/reviews/round-001-webgpt-request.md" \
  --browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1

# pesquisa dogpile apenas se o alinhamento estiver bloqueado por fatos externos ausentes
skills/dogpile/run.sh search "fatos necessários para desbloquear este alinhamento" \
  --context-file ".align/reviews/round-001-dogpile-request.md"

Armazene o texto do revisor resultante com add-response. Os recibos do revisor são entradas para o alinhamento; eles não são aprovação de execução por si só.

Verificação de Sanidade de Composição ao Vivo

sanity.sh é a verificação local rápida. Ela prova o laço de rodada, o portão de pergunta bloqueadora, a geração de solicitação de revisor e o esquema do lock sem gastar cota externa.

sanity-live.sh é o portão E2E de mundo real obrigatório antes de declarar $align pronto como um skill composto. É opt-in porque chama sistemas downstream ao vivo:

  • $memory recall --brief através do skill de memória real
  • ingestão de resposta do agente do projeto através de $align add-response
  • $dogpile search com a solicitação de alinhamento gerada como contexto
  • $ask webgpt contra o caminho WebGPT autenticado pelo navegador
  • criação final de alignment_lock.json apenas após esses recibos validarem

Execute apenas quando a estação de trabalho local tiver memória, credenciais/pesquisa dogpile, Chrome e uma sessão autenticada do ChatGPT:

ALIGN_LIVE_E2E=1 skills/align/sanity-live.sh

Controles opcionais:

ALIGN_LIVE_E2E=1 \
ALIGN_WEBGPT_TAB_ID=837343529 \
ALIGN_LIVE_OUTPUT_ROOT=/mnt/storage12tb/skills/align/live-e2e \
skills/align/sanity-live.sh

Se nenhum ALIGN_WEBGPT_TAB_ID ou ALIGN_WEBGPT_PROJECT for fornecido, a verificação ao vivo passa --webgpt-create-tab para $ask; isso ainda requer uma configuração local Chrome/WebGPT válida. O artefato de prova é /mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json por padrão. Verificações ao vivo ignoradas não estabelecem prontidão.

Layout de Artefatos

.align/
  alignment_state.json
  alignment_brief.md
  alignment_lock.json
  rounds/
    round-001/
      participant-human.md
      participant-project_agent.md
      participant-scillm.md
      round_summary.md
      questions.json
  reviews/
    round-001-scillm-request.json
    round-001-scillm-command.sh
    round-001-ask-request.md
    round-001-dogpile-request.md
    round-001-webgpt-request.md
    round-001-webgpt-ask-command.sh

/mnt/storage12tb/skills/align/live-e2e/<timestamp>/
  report.json
  memory.stdout
  dogpile.stdout
  webgpt.stdout
  ask-runs/<ask_id>/

Condições de Parada

Defina ready_for_execution: true apenas quando:

  • nenhuma pergunta bloqueadora permanece aberta
  • o objetivo e não-objetivos acordados são explícitos
  • o formato da saída é concreto
  • os critérios de aceitação são testáveis ou revisáveis
  • o contexto de origem é nomeado
  • o humano ou proprietário delegado aprovou o lock

Defina ready_for_execution: false quando:

  • perguntas bloqueadoras permanecem
  • WebGPT, $scillm, $ask ou conhecimento do projeto contradizem o brief
  • o formato da saída ainda é abstrato
  • um participante expôs evidência de origem ausente
  • o próximo passo solicitado produziria um recibo em vez de resolver a tarefa real

Erros Comuns

  • Não use $align como substituto para $interview; use entrevista quando a informação faltante é puramente preferência humana ou critérios de aceitação.
  • Não use $align como substituto para $review-code, $review-plan ou $plan-iterate; o alinhamento acontece antes desses skills.
  • Não resuma WebGPT ou $ask manualmente. Use seus runtimes reais e armazene caminhos de artefatos ou texto do revisor.
  • Não considere um lock de alinhamento completo porque um revisor o aprovou. O agente do projeto deve mesclar o resultado e limpar perguntas bloqueadoras.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

Habilidades Relacionadas