Community写作与编辑github.com

frederico-kluser/surf-agent-skill

npm i -g surf-skill — multi-provider (Tavily + Parallel AI) web skill for AI coding agents. CLI + Node library, auto-fallback, multi-key rotation, cross-OS, batch search.

surf-agent-skill 是什么?

surf-agent-skill is a Claude Code agent skill that npm i -g surf-skill — multi-provider (Tavily + Parallel AI) web skill for AI coding agents. CLI + Node library, auto-fallback, multi-key rotation, cross-OS, batch search.

兼容平台Claude Code~Codex CLI~Cursor
npx skills add frederico-kluser/surf-agent-skill

Installed? Explore more 写作与编辑 skills: steipete/notion, affaan-m/seo, affaan-m/brand-voice · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

<![CDATA[

IDDúvida (pergunta fechada)RotaOrigemPor que importaStatusConfiançaRajada
D1O pgvector suporta índice HNSW nativo desde qual versão?WEBINICIALDecide se cabe a coluna "HNSW" na tabelaRESPONDIDAAlta1
D2Qual versão de Postgres este projeto roda?PROJECTINICIALSem isso, D1 não tem resposta útilRESPONDIDAAlta0
D7O limite de 2000 dimensões vale para HNSW ou só para ivfflat?WEBD1Muda a recomendação para embeddings de 3072 dimABERTA2
D9Por que o HNSW usa grafos hierárquicos?D7DESCARTADA: não muda o entregável2
D11Qual o p99 do Qdrant nessa VPS com 800k vetores?WEBD3Decide o veredito da tabela de latênciaRESPONDIDA-FRACABaixa2
D12Que CVEs de pgvector foram publicados em 2026?WEBD4Muda a seção "risco"BLOQUEADA: CLI falhou 2 disparos2
]]>

As duas últimas linhas são os estados que mais somem quando o registro é escrito de memória. Elas têm de estar no arquivo, com a coluna Confiança preenchida: Baixa é o que impede RESPONDIDA (I4), e BLOQUEADA é o que tem letra própria na contagem (I5).

Toda dúvida que já existiu permanece no registro para sempre, inclusive as DESCARTADAS e as DUPLICATAS. Deduplicar apenas contra as respondidas faz a dúvida rejeitada reaparecer a cada rajada, e o loop nunca fecha. Toda dúvida tem "por que importa" preenchido com a parte concreta do entregável que ela muda. Dúvida sem isso é curiosidade, e curiosidade não vira sub-agente. A coluna Origem é a cadeia de proveniência — a dúvida cuja resposta criou esta, ou INICIAL. Ela nunca guarda COMO a resposta foi obtida. É essa cadeia que G4 percorre para detectar deriva: D1→D7→D14→D22 que já não fala da pergunta original. CONFIANÇA BAIXA NÃO FECHA DÚVIDA. Antes de escrever o status, leia a coluna Confiança do handoff — o campo **Confidence:** do T3. Se ela diz Baixa / Low, a dúvida NÃO pode ser marcada RESPONDIDA: o status é RESPONDIDA-FRACA. Não há julgamento aqui, é a leitura de uma palavra; se a palavra é Low e o status é RESPONDIDA, o registro está errado. Uma RESPONDIDA-FRACA: (a) NUNCA entra no CONTEXTO ESTABELECIDO de outro sub-agente; (b) em rajada-contínua é re-admitida na rajada seguinte, reformulada mais estreita, SEM passar pelo portão — o portão julga dúvida nova, ele não reabre dúvida malfeita; (c) em rajada-única entra OBRIGATORIAMENTE em "Questões em aberto", com o motivo "respondida com confiança baixa" e a evidência que faltou; (d) toda afirmação da resposta final que dependa dela carrega ressalva escrita, como uma SOLITÁRIA. Chegando assim na entrega, ela conta em H — nunca em C. A CONTAGEM FECHA — nenhuma dúvida evapora. Todo status terminal cai em EXATAMENTE uma letra, e esta identidade vale sempre:

**A = B + C + G + E + I + H + F**

| Letra | Conta | Status terminal no registro |
|---|---|---|
| A | todas as dúvidas que já existiram | total de linhas da tabela |
| B | fechadas pelo contexto | RESPONDIDA com Rota CALLER ou PROJECT |
| C | fechadas por busca | RESPONDIDA com Rota WEB |
| G | fechadas por você, sem sub-agente | RESPONDIDA-INFERIDA |
| E | recusadas no portão | DESCARTADA: <motivo> e DUPLICATA-DE-Dn |
| I | bloqueadas | BLOQUEADA |
| H | respondidas fraco | RESPONDIDA-FRACA |
| F | abertas na entrega | ABERTA |

EM-VOO não é terminal e não tem letra: na entrega ele tem de ser ZERO.
Se a identidade não fechar, o REGISTRO está errado — conserte o registro,
nunca o número. `D` (admitidas em rajadas posteriores) é métrica de fluxo:
vai na tabela de rajadas e NÃO entra na identidade, senão a dúvida admitida
na rajada 2 e respondida na rajada 2 é contada duas vezes.
A tabela "Questões em aberto" do relatório tem exatamente **F + I + H**
linhas — uma por dúvida que chega ao fim sem resposta usável. Nenhuma das
três letras tem permissão de sumir num contador.</invariant>

Formato em references/burst-templates.md, template T8. Ele é a prestação de contas da rajada: quantas dúvidas nasceram, quantas o contexto matou sem gastar busca, quantas foram descartadas no portão e por quê, e o que ficou em aberto. Sem esses números, "pesquisa concluída" não significa nada. A conta tem de FECHAR: A = B + C + G + E + I + H + F (I5), e a tabela "Questões em aberto" tem exatamente F + I + H linhas. Relatório cuja identidade não fecha é relatório com dúvida evaporada — e uma dúvida que evapora é exatamente a resposta entregue com furo que ninguém declarou.


Referências — leia sob demanda, nenhuma consome contexto antes disso

ArquivoQuando ler
references/burst-templates.mdAntes da primeira rajada. Templates T1–T8 com o contrato de 5 campos.
references/failure-modes.mdQuando um caso de degradation disparar.
references/surf-ai-cli.mdAo escrever prompts de delegação: flags, saída JSON, códigos de saída.
references/brave-api.mdQuando importar o que o Brave devolve, o que ele não devolve, ou por que uma flag não teve efeito.
references/COSTS.mdQuando o orçamento de busca importar (o teto real é o plano Brave, não o dinheiro).

相关技能

steipete/notion

Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.

community

affaan-m/seo

Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.

community

affaan-m/brand-voice

Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.

community

affaan-m/crosspost

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

community

affaan-m/x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

community

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

community