CommunityImagemgithub.com

grahama1970/ask

Use quando o usuário solicitar consulta à memória do projeto, consultar um oráculo, usar revisores com suporte a navegador, executar workflows de mesa redonda/handler único do Tau, consultar subagentes nativos do Pi, executar workflows de persona/revisão profunda, gerar prompts de imagem, verificar a saúde do SO/projeto por meio de habilidades compostas ou executar um DAG do ask. Esta habilidade é o runtime executável /ask; não a substitua por um subagente informal, pesquisa web simples ou revisão escrita manualmente; dentro do Pi, alvos explícitos de subagentes nativos do Pi são roteados através da ferramenta pi-subagents como um tipo de alvo Ask.

O que é ask?

Esta é a skill 'ask' para Pi Agent, um runtime versátil projetado para orquestrar consultas e revisões complexas. Ela atua como um ponto de entrada centralizado para uma ampla gama de tarefas, incluindo consultas à memória do projeto, execução de oráculos, execução de workflows de revisão com suporte a navegador (como webgpt, webclaude), organização de discussões em mesa redonda entre múltiplos modelos de IA, e delegação de tarefas para subagentes nativos do Pi. A skill garante que todas as operações sigam caminhos de execução padronizados e rastreáveis, em vez de depender de chamadas de modelo ad-hoc ou pesquisas web simples. O coração da skill é um runtime robusto que gerencia a criação, execução e registro de DAGs (Directed Acyclic Graphs) de tarefas, suportando topologias de execução concorrente (mesa redonda, one-shot) e sequencial (criador-revisor). Ela é projetada para ser a única interface autorizada para operações do 'ask', proibindo explicitamente o uso de alternativas como spawn_agent ou resumos manuais. A skill mantém artefatos detalhados de cada execução (logs de eventos, arquivos de requisição/status) e um log centralizado de chamadas para depuração e seleção de handlers, garantindo reprodutibilidade e rastreabilidade. Ela também oferece roteamento inteligente, validando IDs de modelo contra um catálogo SciLLM e sinalizando assentos de navegador com falhas consecutivas para evitar despachos ruins.

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

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

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

Documentação

O que ask faz?

Pare Primeiro

Se o usuário mencionar $ask, /ask, um modo ask, oráculo, revisão profunda, revisão paralela, mesa redonda, debate, revisão de lacunas CAE ou DAG ask, leia este arquivo inteiro antes de agir. Em seguida, use o ponto de entrada real do runtime, a menos que o usuário peça explicitamente um fallback ou o runtime esteja indisponível e esse fallback seja relatado.

Não substitua spawn_agent, uma chamada de modelo simples, uma pesquisa web simples, um resumo manual ou uma revisão inventada por $ask.

Ponto de Entrada do Runtime

Execute comandos a partir deste diretório. A sintaxe de skill-comando do Pi, como /skill:ask webgpt Quanto é 2 + 2?, é um atalho de primeira classe: o manipulador de navegador principal (webgpt, webclaude, webkimi, webgemini ou webgrok) roteia para um DAG de manipulador de navegador single-call do Tau com --execute --json. As referências inline de skill do Pi, como $ask webgpt Quanto é 2 + 2? e a grafia em linguagem natural com espaços $ask web gpt Quanto é 2 + 2? devem ser tratadas da mesma forma (web gpt normaliza para webgpt). Este é apenas um atalho de compatibilidade para usuários Pi; não deve usar o caminho removido do oráculo direto WebGPT.

./run.sh tau-dag "<requisicao>" mapeia para o subcomando tau-dag run do Typer internamente. ./run.sh team-plan "<requisicao>" --team <predefinido> renderiza um plano multiagente baseado em papéis e uma prévia do DAG Tau congelado; a execução requer --execute --live explícito (veja README "Team Orchestration").

cd skills/ask
./run.sh --help
./run.sh webgpt Quanto é 2 + 2?
./run.sh webgpt --compile-only Quanto é 2 + 2?
./run.sh ask --help
./run.sh tau-dag run --help

Toda execução não trivial deve preservar os artefatos do runtime. O conjunto de artefatos padrão é:

  • <ask_id>.request.json
  • <ask_id>.status.json
  • <ask_id>.events.jsonl
  • saídas específicas do modo, como review.md, review.json, manifestos DAG ou evidências do navegador

Os artefatos do runtime são padronizados para .ask_artifacts/runs/<ask_id> ou o --run-output-root fornecido. Para execuções longas, ativas ou geradas, prefira uma raiz com suporte a armazenamento como /mnt/storage12tb/skills/ask/outputs/.... Não commit artefatos ask gerados.

Toda chamada de manipulador executada (sucesso ou falha) é registrada na coleção ask_call_log em $memory no ponto de verificação de execução, com manipulador, status, failure_code e controlled_tab_id/URL da conversa quando presente, mais o método comprovado da última chamada bem-sucedida (seleção de raciocínio, vinculação de aba, modo de ciclo de vida, comando de despacho com segredos ocultos). Os IDs de modelo são validados em relação ao catálogo SciLLM ativo em tempo de compilação (invalid_scillm_model_id BLOQUEADO com alternativas válidas mais próximas); um assento de navegador com 3+ falhas consecutivas registradas é sinalizado como conhecidamente ruim antes do despacho com seus códigos de falha. Verifique um assento antes de confiar nele: python3 skills/ask/scripts/ask_call_history.py --handler webgemini imprime a última chamada bem-sucedida e falhas recentes; adicione --recommend para o método comprovado exato a ser reutilizado. Um manipulador sem sucesso registrado é um palpite cego — compile apenas ou teste primeiro de forma barata. Execuções históricas podem ser retroalimentadas: python3 skills/ask/scripts/backfill_call_log.py [diretorio-raiz-das-saidas] ingere todos os recibos de nó em disco de forma idempotente (chave _key determinística por execução+nó). O JSON de resultado de toda execução EXECUTADA (e execution-status.json) também carrega handler_last_success: por assento, o último método bem-sucedido da memória (URL da conversa, aba, ciclo de vida/layout), falhas consecutivas atuais e códigos de falha a serem evitados — retornados no contexto para que o agente do projeto nunca precise de uma consulta de histórico separada após consumir uma execução.

Referências Aprofundadas (leia sob demanda)

Antes de fazer issoLeia
team-plan com um arquivo de plano; status --run --projectionreferences/plans-and-status.md
Alvo explícito de subagente nativo do Pireferences/pi-subagents.md
Transformar saída ask (one-shot/mesa redonda/competir/sala limpa) em pistas de subagentereferences/lane-handoff.md
herdr list/who/send para o painel de outro agentereferences/herdr.md
Escolher entre one-shot vs mesa redonda vs competir; seletores de modelo/esforçoreferences/modes.md
Auditorias de painel, lista de assentos, assentos com limite de taxa, política webclaudereferences/seats-and-audits.md
Executar/supervisionar qualquer execução ativa (monitoramento, janelas, matriz de payload, desbloqueio, deriva)references/operations.md
Qualquer falha de execuçãoreferences/diagnosis.md
Compilar/executar qualquer DAG multi-assento (mesa redonda/competir/criador-revisor)references/workflows.md
Qualquer execução de manipulador de navegadorreferences/browser.md

Quatro Tipos de Alvo

/ask aborda quatro tipos de alvo pares. Eles diferem no transporte, não na importância:

AlvoExemploProprietário do transporte
Sessão Herdr — um agente ativo em um painelmemory, w11:p13$monitor-herdr via herdr pane run
Chamada de modelo — manipulador de API/modelogpt-5.5-high, Codex-opus-5-high, deepseek-ai/DeepSeek-V3.2-TEE$tau (SciLLM é interno ao Tau)
Modelo web — revisor com suporte a navegador (aba de chat, NÃO o modelo agêntico; veja o aviso webclaude abaixo)webgpt, webclaude, webkimi$surf + $browser-oracle
Subagente nativo do Pi — consultor/trabalhador filho local do Pipi reviewer, subagent general-purpose, local coderpi-subagents ferramenta nativa subagent

Um agente de projeto não deve se importar qual lado é navegador, modelo, sessão Herdr ou subagente nativo do Pi, além de nomear o alvo.

Guia Rápido para Agentes de Projeto

Comece aqui quando o usuário solicitar uma única chamada de modelo, mesa redonda, competição ou loop criador-revisor. Use uma destas formas; não invente um caminho de orquestração personalizado.

Intenção do usuárioForma do comando
Um manipulador responde./run.sh tau-dag "<tarefa>" --repo <repo> --target <target> --immutable-goal "<meta>" --handler <handler-ou-modelo> --execute --json
Mesa redonda./run.sh tau-dag "<tarefa compartilhada>" --repo <repo> --target <target> --immutable-goal "<meta>" --dag-template roundtable --handler <a> --handler <b> --topology concurrent --execute --json
Competição./run.sh compete "<tarefa isolada>" --repo <repo> --target <target> --immutable-goal "<meta>" --handler <a> --handler <b> --criterion <criterio> --execute --json
One-shot (respostas por assento, sem consenso)./run.sh one-shot "<pergunta>" --handler <a> --handler <b> --handler <c> — N pistas independentes de chamada única são executadas concorrentemente; cada uma retorna sua própria resposta vinculada a nonce ou um bloqueador nomeado. Respostas parciais são DEGRADADO-mas-utilizável (exit 0 em ou acima de --min-answered); a recusa de quorum de uma mesa redonda nunca se aplica aqui.
Subagente nativo do Pi de dentro do Pisubagent({ action: "list" }), depois subagent({ agent: "<agente>", task: "<tarefa>" }) ou um desdobramento workflowScript. Isso é apenas para alvos explícitos pi/subagent/local reviewer; não é um substituto para manipuladores Tau/navegador.
Criador depois revisor./run.sh tau-dag "<tarefa do criador e depois veredito do revisor>" --repo <repo> --target <target> --immutable-goal "<meta>" --dag-template creator-reviewer --handler <criador> --handler <revisor> --topology sequential --execute --json
Diagnosticar/consertar/fechar issues do GitHub./run.sh fix-issues --repo <dono/nome> --issue <N> [--issue <M>] [--handler gpt-5.5] [--execute] — coleta cada issue via gh, diagnostica através de um manipulador one-shot ativo em JSON estruturado de causa/correção com a portão da escada do depurador (needs_debugger recomenda $debugger apenas quando a transição com falha é o estado do runtime em processo que nenhum artefato explica), e é fail-closed: dry-run por padrão; --execute fecha um issue SOMENTE após seu comando de verificação nomeado (tipicamente um fixture $agentic-evals) realmente passar. Sem verificação → blocked; verificação falhada → verify-failed, issue permanece aberto. Recibos por issue em outputs/fix-issues/. Portão: fixtures/fix_issues.json.

Manipuladores são pares mesmo quando seus transportes diferem. Manipuladores de navegador (webgpt, webclaude, webkimi, webgemini, webgrok) são executados através de $surf e $browser-oracle. Manipuladores de API/modelo como gpt-5.5-high, gpt-5.5-xhigh, Codex-opus-5-high ou chutes deepseek-ai/DeepSeek-V3.2-TEE são roteados pelo Tau. Agentes de projeto não devem se importar qual lado é navegador ou API, além de nomear o manipulador.

Manipuladores são pares, sejam suportados por navegador (webgpt, webclaude, webkimi, webgemini, webgrok via $surf/$browser-oracle) ou suportados por API (gpt-5.5-high, claude-opus-5-high, chutes <provedor/modelo> via Tau). Antes de executar qualquer DAG multi-assento: compile primeiro (omitir --execute), mostre ao humano o gráfico ASCII impresso e execute apenas após confirmação. Exemplos completos de modo e regras de seletor: references/modes.md. Protocolos completos e tabelas fail-closed: references/workflows.md.

Itens Inegociáveis para Toda Execução

  • Uma meta imutável explícita (--immutable-goal ou uma linha Immutable goal: rotulada) é necessária para mesa redonda, criador-revisor e competir; meta ausente falha na verificação prévia com NEEDS_INTERVIEW antes que qualquer manipulador seja contatado.
  • Mesas redondas são SEMPRE --topology concurrent com um pacote idêntico para cada assento. Candidatos em competição são isolados e nunca se veem.
  • DAGs executados devem ser monitorados até um veredito terminal através dos artefatos de stream JSON da execução (events.jsonl, dag-progress.json, recibos de nó, execution-status.json); não inicie e abandone.
  • PASS é evidência de revisor/modelo apenas; o fechamento local requer prova local determinística. DEGRADED/NEEDS_ATTENTION/limites de taxa são específicos da pista: mantenha assentos utilizáveis, siga o pacote de recuperação da pista com falha.
  • Completions de API não streaming devem passar na admissão tipada com finish_reason=stop antes que seu texto possa contar como evidência. Completions truncados, filtrados, sem finish_reason ou malformados emitem scillm_response_incomplete; retenha bytes brutos e erros de validação de response.meta.json. Não repare texto de veredito parcial ou tente novamente automaticamente. Casos retidos: completion-admission-rejects-truncation (replay capturado) e completion-admission-live-positive (leitura real do provedor).
  • Falhas não são silenciosas: cada pista com falha expõe failure_code, um pacote de recuperação e instrução next_command/ticket. Em caso de falha, leia references/diagnosis.md e despache no recibo proprietário antes de teorizar.
  • Roteamento direto do oráculo WebGPT ($ask chatgpt, --oracle-backend webgpt, --webgpt-*) falha fechado; manipuladores de navegador Tau permanecem suportados.
  • Continuidade de acompanhamento: o recibo de nó / response.meta.json de cada pista de navegador deve carregar controlled_tab_id e a URL da conversa; um tab id nulo é uma entrega com falha. Quando o humano puder fazer perguntas esclarecedoras ou de acompanhamento, execute com --browser-tab-lifecycle fresh-keep (ou reuse-bound) — o padrão auto/fresh-temporary FECHA a janela após a execução, matando a conversa. Após a execução, relate o tab id + URL da conversa e vincule-os (skills/browser-oracle/run.sh bind <projeto> --backend <b> --tab-id <id> --url <url> --manual) para que o acompanhamento tenha como alvo a mesma sessão.
  • Portão de visibilidade da aba (observado em 2026-09-15, webgemini): alguns provedores (Gemini confirmado) adiam o envio do composer enquanto a aba é um documento oculto — em uma janela compartilhada, apenas uma aba pode estar em primeiro plano, então N-1 de N pistas concorrentes estão sempre ocultas e travam como prompt_too_large_or_stalled ("O prompt permaneceu no composer após o envio"). Pistas de navegador concorrentes, portanto, padrão para janelas isoladas (uma janela por assento, colocada na área de trabalho do revisor) para que toda aba de pista seja um documento visível; --window-layout shared é opt-in. Um composer já digitado e travado é recuperável: skills/surf/run.sh tab.switch <id> torna a aba visível e o envio na fila é despachado. Verifique document.visibilityState antes de reduzir prompts para esta classe de falha. O método de trabalho verificado por assento é armazenado em $memory (chave ask_call_log ask:method:webgemini; veja ask_call_history.py --handler webgemini --recommend).
  • webclaude é uma aba de chat do claude.ai, apenas para teste — NÃO é Claude agêntico. Prefira claude-fable-low, depois claude-opus-4-8-high (veja references/seats-and-audits.md).

Roteador de Modo

Use o modo mais restrito que corresponda à solicitação do usuário.

SolicitaçãoPadrão de runtimeDetalhes necessários
Pergunta com suporte de memória./run.sh ask "<pergunta>" --jsonInclua o escopo quando relevante.
Resposta de oráculo./run.sh ask "<pergunta>" --oracle ... --jsonEscolha backend/modelo/persona explicitamente quando solicitado.
Atalho de manipulador de navegador Pi./run.sh webgpt Quanto é 2 + 2? de /skill:ask webgpt Quanto é 2 + 2?Reescreve para Tau single-call com --handler webgpt --execute --json; use --compile-only para emitir o DAG sem transporte de navegador ativo.
Único manipulador nomeado./run.sh tau-dag "<requisicao>" --handler <handler-ou-modelo> --jsonManipuladores de navegador usam $surf; manipuladores não navegador são nomes de modelo $scillm roteados pelo Tau. Adicione --execute para transporte ativo.
Alvo de subagente nativo do PiFerramenta subagent nativa do Pi, após subagent({ action: "list" })Apenas quando executando dentro do Pi e o usuário nomeia explicitamente pi, subagent, pi-subagent, local reviewer ou local coder. Solicitações de navegador/modelo/Tau Ask não usam esta rota.
Mesa redonda multi-manipulador./run.sh tau-dag "<requisicao>" --handler webclaude --handler gpt-5.5 ... --topology concurrent --execute --jsonMesa redonda é prompt-para-Tau-DAG. Manipuladores de navegador recebem uma janela nova de propriedade do Ask por padrão. Preserve browser-tab-lifecycle.json, dag.json, especificações de comando, recibos de manipulador e recibos de junção.
Competir / bakeoff./run.sh compete "<tarefa>" --handler webgpt --handler webclaude --handler gpt-5.5-high --criterion deterministic-proof --execute --jsonCandidatos isolados, mais scorecard de competição e solicitação de continuação do vencedor. Manipuladores de navegador/API são pares. O agente do projeto deve verificar localmente os recursos antes da promoção.
Loop criador-revisor`./run.sh t

...

[truncado para tradução]

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/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

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/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