Automated summary
Runs a full feature investigation: internal archaeology (code, git, schema) followed by verified external web research, delivered as a document in the investigations registry with no implementation.
Strengths
- Explicit three-tier triage (lookup, comparison, broad theme) with a declared budget before any expensive call.
- Forces internal archaeology and a re-read of prior investigations before going to the web, so already-refuted findings aren't researched twice.
- Requires fetched sources and adversarial verification even for a quick lookup.
- Stops at the investigation and status update; never writes code.
Limitations
- Tightly bound to a specific repo layout (docs/features, docs/investigacoes, INDEX.md, bun run features commands).
- Written in Portuguese and tuned to the Brazilian betting-regulation context.
- Depends on Claude Code specifics (subagents, Skill tool, AskUserQuestion).
Use it when you need evidence on whether a feature already exists, how the market handles it, or to scope a broad topic before committing.
Skip it when the answer is already known or you need code now — the skill deliberately produces no implementation.
Security analysis
CautionThe skill is a research/investigation workflow. It uses powerful tooling — bash, git, subagents, web fetches, and writing docs/scripts — but strictly for legitimate feature archaeology and external research, with an explicit read-only constraint on archaeology subagents. No destructive, exfiltrating, or obfuscated behavior is present, so it warrants caution rather than safe, and is clearly not risky.
- •Instructs the agent to write files into the repo (docs/features, docs/arquitetura, wishlist) and to create disposable bun scripts ('Code-as-action') that execute code — legitimate but mutation-capable.
- •Fans out to multiple sonnet subagents and performs web fetches via a 'deep-research' harness, so network access is expected.
- •Runs git commands (git log, git log -S, grep across docs) and codebase search tools — read-only but repository-wide in scope.
- •No evidence of secret exfiltration, curl|sh piping, rm -rf, base64-obfuscated payloads, or instructions to disable safety/guardrails.
Examples
/rs FID-012/rs verificação de identidade por CPF — quais libs aceitam CPF e como o mercado de apostas resolve isso?Investiga pra mim: já temos limite de aposta por usuário no código? E como o mercado faz?name: rs description: Investigação completa de uma feature — arqueologia interna (código + git + schema) + pesquisa externa verificada → docs/investigacoes + status investigado. Use quando o usuário pedir pra investigar/pesquisar uma feature ou tema, perguntar "isso existe? como o mercado faz?", ou disser "/rs <ID|tema>". argument-hint: <ID da feature ou tema> [foco opcional]
Faça uma investigação completa da feature: $ARGUMENTS
O entregável é a investigação — não implemente nada. Regra de altitude: não re-decida o que docs/arquitetura/ já cravou; investigação nova complementa ou contesta COM evidência, nunca ignora. Para fan-out web pesado, a skill deep-research (Skill tool) é o harness de referência (buscas em leque → fetch → verificação adversarial → síntese citada); esta skill orquestra a arqueologia interna + a entrega no registro de features.
0. Triagem + brief (antes de gastar qualquer token caro)
Classifique e declare o tier + orçamento na primeira resposta — esforço se decide aqui, não no meio:
| Tier | Sinal | Orçamento | Entregável | |---|---|---|---| | Lookup | 1 fato verificável ("qual o limite X?", "lib Y suporta Z?") | você mesmo, 3-10 buscas/fetches | resposta direta com fonte — SEM doc completo | | Comparação | 2-5 opções nomeáveis (libs, providers, abordagens) | 2-4 subagentes sonnet, 10-15 calls cada | doc completo | | Tema amplo | mercado + código + schema + regulatório | 5-10+ subagentes sonnet por frente | doc completo |
- Pedido ambíguo em algo que muda o rumo → 1 pergunta de cada vez, multiple choice (AskUserQuestion), antes do fan-out — nunca no meio.
- Comprima num brief de 3-6 linhas: escopo, perguntas a responder, o que conta como "respondido". Todo search e o TL;DR final são julgados contra ele. Inclua os requisitos implícitos que o pedido não falou mas o repo exige: regulação BR de apostas (Lei 14.790/2023, +18, jogo responsável, sem promessa de ganho), dinheiro em centavos, fuso
America/Sao_Paulo, separação quant/LLM e o princípio "todo pick mostra o porquê + fontes" (requisito implícito ignorado é ~metade das falhas de research agents). - Tier comparação/amplo: emita o plano como checklist visível (frentes, perguntas, arqueologia × web) ANTES do fan-out — o dono pode podar a fase cara. Gate: o doc final só é escrito depois dos §§1-5.
- Pressão por atalho ("só me responde rápido, pula a web") rebaixa o TIER, nunca remove a verificação — lookup também cita fonte fetchada.
1. Resolver a feature + memória do que já foi investigado
- ID existente (ex:
FID-001): leiadocs/features/<modulo>/<ID>-*.md+ TODOS osdocs:vinculados. - Tema sem feature: crie o arquivo a partir de
docs/features/_template.mdno módulo certo (próximo número do prefixo — confira nodocs/features/INDEX.md),status: ideia, ANTES de investigar. Número livre no INDEX não basta: um ID pode estar reservado só em prosa (uma feature prometendoXXX-010a um trabalho futuro numa seção "Fora de escopo"), e aí o número nasce significando duas coisas. Confira comgrep -rn "<PREFIXO>-0NN" docs/antes de cravar; se tomar um número reservado, reponte a reserva no doc que a fez. Idem praW-NNNnovo na wishlist: o próximo livre sai degrep -o "^### W-[0-9]*" docs/wishlist.md | sed 's/.*W-//' | sort -n | tail -1, não de olhar o topo do arquivo (que é ordenado por desejo, não por número). bun run features impact <ID>+ índice de âncoras do INDEX.md → em quem ela encosta; features afetadas são leitura obrigatória.- Investigações prévias são leitura obrigatória, não opcional: índice doc→features do INDEX.md +
Grepdo tema emdocs/investigacoes/+ memórias recuperadas. Achado já REFUTADO em investigação anterior entra no diário como REFUTED — proibido re-pesquisar sem evidência nova. O mesmo vale pra decisões já cravadas do dono (vetos, "tooling = protótipo comparativo").
2. Arqueologia interna (antes da web — o repo sabe mais do que parece)
- Código real (SocratiCode obrigatório, regras do CLAUDE.md):
codebase_searché a entrada padrão pra perguntas conceituais;codebase_symbolsquando o termo é nomeável →codebase_graph_query→Readdirecionado. Separe real × mock × fantasma — toggle que não faz nada é achado, não detalhe. - Busca larga → delegue: varrer o repo, descobrir onde vive a feature, mapear como X liga a Y, achar convenções de nome alternativas → lance agentes
socraticode:codebase-explorer(model sonnet), em paralelo, um por frente (ex: api · web/features · schema Drizzle · pipeline de ingest · prompts de IA). Sem teto de quantidade — lance quantos a investigação pedir; os orçamentos do §0 limitam pesquisa externa, não arqueologia interna. Eles combinam semantic search + grafo + context artifacts e devolvem só a conclusão. Nunca faça cadeia manual deGrep/Glob/findexploratória.Grep/Globdireto só pra confirmar string exata em ficheiro já identificado, ou varrer o que o índice não cobre (scratchpad, repos de terceiros). - Schema/contratos:
codebase_context_search(schema do banco, specs de API, infra) pra confirmar colunas e shapes em vez de deduzir do código — o schema atual já suporta o tema ou implica migração? Gaps comarquivo:linha/campo. - Git como fonte de decisão:
git log --grep "\[<IDs vizinhos>\]" --oneline;git log --follow --oneline -- <arquivo central>;git log -S "<termo>"pra saber quando/por que algo entrou ou saiu. - Code-as-action: levantamento de dados multi-step (contar ocorrências, cruzar tabelas, agregar rows) → escreva 1 script bun descartável em vez de N tool calls granulares. Subagentes de arqueologia são read-only — nunca mutam o repo.
- Citação interna obrigatória (mesmo regime das URLs — achado sem âncora é inauditável):
- Código: todo achado (real, mock, fantasma, gap) carrega
caminho/desde-a-raiz.ts:linhana primeira menção; repetições podem encurtar (arquivo.ts:linha). Linha vem de Read/search desta sessão — nunca de doc/memória antiga (line-drift gera citação errada). - Git: decisão/data minerada do histórico cita o hash curto (
abc1234) + 1 frase do que o commit prova. Sem hash = inferência, rotule como tal. - Schema/banco: cite
tabela.coluna(+ arquivo do schema Drizzle ou migração quando o shape importa). Fato sobre DADOS leva a query + data — dado de dev gira no re-seed. - Tabela real×mock×fantasma sem âncora por linha = doc reprovado.
- Código: todo achado (real, mock, fantasma, gap) carrega
3. Pesquisa externa — fan-out, persistência e fontes
- Fan-out por perspectiva (tier comparação/amplo): as frentes saem das personas do domínio — apostador (casual e sharp), tipster, concorrentes (plataformas de tips, agregadores de odds, sites de stats/xG e quem o tema pedir), engenharia/modelo de dados (ingestão, dossiê do jogo, calibração quant/LLM), compliance/regulação (Lei 14.790, jogo responsável). Cada perspectiva gera as próprias perguntas; as que renderem viram seções do doc. Default: ~4 sub-perguntas por frente × até 2 níveis de follow-up.
- Spec de subagente em 4 campos (delegação vaga = subagentes duplicando ângulo): objetivo · formato exato do output · fontes/tools permitidos · fronteiras DO-NOT-COVER. Todo subagente desta skill roda em
sonnet(model: sonnetno Agent tool) — opus não compensa pra buscar, ler e destilar; o raciocínio caro é a síntese, e a síntese é sua. Subagentes devolvem notas destiladas + lista de fontes — NUNCA prosa de relatório (seções escritas em paralelo saem desconexas; a síntese é sua, em um passe). - Broad-then-narrow: queries curtas e amplas primeiro, avalie o terreno, depois estreite. Busque em pt-BR E inglês.
- Persistência com estratégia: 2 formulações falharam → MUDE a estratégia (termos, idioma,
site:, docs × fóruns × issues), não conclua "não existe". E "nenhuma fonte confiável encontrada" é resposta válida — registrada na seção de lacunas, melhor que citar fraco. - Reflexão entre batches (obrigatória, escrita no diário): "respondido: X · falta: Y · próxima query: Z". Sub-pergunta nova entra na FRENTE da fila; a pergunta-mãe só fecha quando a fila à frente drena.
- Escada de fontes (content farm de "palpite/tips" domina o nicho de apostas BR — escada é defesa, não burocracia): docs oficiais/changelog (de APIs de stats/odds) > blog de engenharia/whitepaper do vendor > acadêmico/relatório setorial (Secretaria de Prêmios e Apostas do MF, IBIA, papers de modelagem esportiva/xG) > trade press séria > listicle SEO e canal de tip (banidos como evidência única). Estatística ou odd em agregador → rastreie até a primeira fonte primária e cite ELA.
- Lib/serviço candidato: docs atuais via context7 (
resolve-library-id→query-docs); issues/discussions abertas (maturidade, pegadinhas); licença e manutenção. Regra do dono: decisão de tooling = protótipo comparativo — a investigação recomenda finalistas, não fecha sozinha. - Classifique cada capacidade de mercado: paridade (todo mundo tem, faltar dói) × diferencial defensável (conversa com a tese do mrtip: transparência radical + IA explicável quant/LLM + histórico auditável dos dois lados).
Antipadrões desta skill: premature-editing (concluir após 1-2 buscas — a maior fatia das falhas) · grep-silencio-como-prova (1 busca vazia ≠ "não existe"; ausência exige ≥2 buscas com parâmetros distintos) · citacao-de-memoria (parte das URLs citadas por agentes é fabricada) · single-origin-disfarcado (20 blogs recitando o mesmo press release ≠ 20 fontes) · vaporware-as-evidence (landing page ≠ feature existente) · feature-parity-trap/cargo-cult ("concorrente tem X" sem dor própria) · grafico-tesla (matriz extensa sem decisão que ela muda) · lost-in-the-codebase (ler arquivo após arquivo É o mecanismo do context rot).
4. Verificação (onde research agents morrem — 6-22% das citações erram até no estado da arte)
- Fetch, não snippet: claim que sustenta a recomendação (preço, limite, capacidade de API, deprecação) exige WebFetch da página real — snippet de busca fabricado/desatualizado é failure mode documentado.
- URL só de tool result DESTA sessão — zero URLs de memória (3-13% das URLs citadas por agentes são fabricadas).
- Veredito por claim atômico: SUPPORTED (URL + data as-of) · REFUTED (vai pra seção Refutado — vale tanto quanto confirmado) · NEI/não-achei (vai pra Perguntas Abertas, nunca pro TL;DR). "X é grátis até 100k req/mês" é átomo verificável; "X é o melhor" é opinião — atribui, não vereda.
- Triangulação com independência real: claim de mercado/número exige ≥2 fontes de proveniência distinta — 20 blogs recitando o mesmo press release = 1 fonte (marque "single-origin").
- Rigor extra nas PRIMEIRAS fontes de cada frente — erro de fonte no início ancora e cascateia pelo resto (>57% dos erros nascem aí).
- Frescor: pricing/limites/status de API com >12 meses → re-verificar na página viva; paisagem de mercado >24 meses → suspeita. Conflito entre fontes: a primária mais nova vence, conflito anotado.
- Label de confiança por achado:
verificado-fetch/snippet/inferência/não-verificado+ data as-of. Achados internos usamlido-no-código(Read/search desta sessão, compath:linha) vsinferência(deduzido de doc/memória, sem âncora fresca). - Orçamento esgotado → modo conclusão: escreva com o que está verificado; o que ficou NEI vai pra Perguntas Abertas — proibido estourar o orçamento buscando "só mais uma".
5. Counter-review (antes de escrever, em recomendação que carrega decisão)
Tier comparação/amplo: 1 subagente sonnet role-locked pra REFUTAR a recomendação preliminar, com buscas frescas próprias (não recebe seu raciocínio, só a recomendação + brief). Quota: ≥3 problemas reais ou você re-examina por conta. Escolha contestada (qual PSP/lib/abordagem) → 2-3 subagentes sonnet na MESMA pergunta por ângulos diferentes; só entra na matriz o que 2+ confirmam. O que sobreviver vira força da recomendação; o que não, vira risco declarado.
6. Entregar
- Escrita one-shot: você escreve
docs/investigacoes/<slug>.mdinteiro de uma vez, a partir do brief + notas destiladas — nunca colagem de outputs de subagente. Espinha:- TL;DR + recomendação cravada (1 parágrafo no topo; só claims SUPPORTED)
- Contexto e problema (+ brief e requisitos implícitos assumidos)
- Estado real no código (real×mock×fantasma com
path:linhapor achado, hash de commit pra arqueologia git,tabela.colunapra schema — gaps idem) - Estado da arte / mercado — claims atômicos com URL inline + label de confiança + as-of
- Opções com matriz de trade-offs (síntese ENTRE fontes, não fato-por-fonte) → recomendação com o porquê + o que o counter-review levantou
- Modelo de dados proposto
- Plano por faceta (dados → api → ia → ui)
- Riscos e gotchas
- Refutado (com a evidência que matou) e Perguntas Abertas / lacunas (decisões do dono + NEI + buscas que voltaram vazias — vazio se declara, não se omite)
- Auditoria de citações (passe separado, depois do draft) — citação é etapa própria, não efeito colateral da escrita:
Item falhou → conserte antes de salvar; poucas citações verificadas > link-stuffing.[ ] Toda URL veio de tool result desta sessão? [ ] Spot-check: reabri 3-5 claims numéricos/nominais contra a fonte? [ ] Load-bearing veio de fetch, não de snippet? [ ] Reli o pedido original — não ampliei/estreitei o escopo em silêncio? [ ] O que recuperei e NÃO usei — justifiquei ou descartei de propósito? [ ] Refutado + buscas vazias preenchidas (mesmo que "nenhuma")? [ ] Todo achado interno tem âncora (`path:linha` / hash / `tabela.coluna`) na primeira menção — vinda de leitura DESTA sessão? [ ] Spot-check interno: reabri 2-3 `path:linha` citados e a linha ainda mostra o que o doc afirma? [ ] `node scripts/verify-citations.mjs docs/investigacoes/<slug>.md --repo .` saiu com exit 0? (checker mecânico: path:linha existe, trecho verbatim casa, URL resolve — auto-conferência não substitui o oráculo) [ ] O doc responde cada pergunta do brief do §0? - Atualize o frontmatter da feature:
status: investigado,docs:+= o novo doc, refineancoras/depende_de/impacta/facetas,atualizado:= hoje. As 3-8 fontes decisivas entram na seção Evidências da feature com 1 linha do que cada uma prova. bun run features check && bun run features build.- Responda com: TL;DR da recomendação, o que mudou no grafo (dependências/impactos novos), perguntas em aberto, e o próximo passo natural —
/pl <ID>(gap trivial de 1 frase pode ir direto pro/i <ID>).
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/complete-feature-investigation-msh3us93/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/complete-feature-investigation-msh3us93' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/complete-feature-investigation-msh3us93/download' --output '.skill-downloads/complete-feature-investigation-msh3us93/SKILL.md.part' && mv '.skill-downloads/complete-feature-investigation-msh3us93/SKILL.md.part' '.skill-downloads/complete-feature-investigation-msh3us93/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/complete-feature-investigation-msh3us93/SKILL.md' && test -s '.skill-downloads/complete-feature-investigation-msh3us93/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/rs' && cp -R '.skill-downloads/complete-feature-investigation-msh3us93' '.claude/skills/rs'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/complete-feature-investigation-msh3us93'openskills read 'complete-feature-investigation-msh3us93'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/complete-feature-investigation-msh3us93/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Supabase Docs Authoring
Documentation
Write, edit, and review Supabase documentation content including guides, tutorials, reference docs, and partials. Follow style guides and MDX/TOML validation rules.
Create Architecture Decision Record
Documentation
Create a new Architecture Decision Record with sequential numbering, register it in the AgentDB graph, and link related ADRs.
Plan update with deep research
Documentation
Updates a plan document by launching parallel subagents to analyze a topic across all compiler passes, then consolidates findings into the plan doc.