Complete Feature Investigation

VerifiedCaution

Comprehensive feature investigation: internal archaeology (code, git, schema) plus verified external research, delivering docs/investigacoes and an investigated status.

Sby Skills Guide Bot
DocumentationAdvanced
8/6/2026
Claude Code
#research#feature-discovery#web-research#codebase-archaeology#documentation

Recommended for

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).
When to use it

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.

When not to use it

Skip it when the answer is already known or you need code now — the skill deliberately produces no implementation.

Security analysis

Caution
Quality score82/100

The 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.

Findings
  • •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.
How this analysis is made

Examples

Investigate an existing feature ID
/rs FID-012
Market comparison
/rs verificação de identidade por CPF — quais libs aceitam CPF e como o mercado de apostas resolve isso?
Does this already exist?
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): leia docs/features/<modulo>/<ID>-*.md + TODOS os docs: vinculados.
  • Tema sem feature: crie o arquivo a partir de docs/features/_template.md no módulo certo (próximo número do prefixo — confira no docs/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 prometendo XXX-010 a um trabalho futuro numa seção "Fora de escopo"), e aí o número nasce significando duas coisas. Confira com grep -rn "<PREFIXO>-0NN" docs/ antes de cravar; se tomar um número reservado, reponte a reserva no doc que a fez. Idem pra W-NNN novo na wishlist: o próximo livre sai de grep -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 + Grep do tema em docs/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_symbols quando o termo é nomeável → codebase_graph_query → Read direcionado. 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 de Grep/Glob/find exploratória. Grep/Glob direto 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 com arquivo: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:linha na 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.

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: sonnet no 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 usam lido-no-código (Read/search desta sessão, com path:linha) vs inferê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

  1. Escrita one-shot: você escreve docs/investigacoes/<slug>.md inteiro 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:linha por achado, hash de commit pra arqueologia git, tabela.coluna pra 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)
  2. Auditoria de citações (passe separado, depois do draft) — citação é etapa própria, não efeito colateral da escrita:
    [ ] 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?
    
    Item falhou → conserte antes de salvar; poucas citações verificadas > link-stuffing.
  3. Atualize o frontmatter da feature: status: investigado, docs: += o novo doc, refine ancoras/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.
  4. bun run features check && bun run features build.
  5. 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 files

This 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.md

From 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 installation
openskills 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 sync

Manual 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.

Related skills