Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

33 Detective Spec

ASecurity

Engenharia reversa de specs para sistemas legados. Use quando precisar extrair specs executaveis, regras de negocio, contratos de modulo, fluxos e ADRs retroativos a partir de codigo existente sem spec previa. Trigger em: "legado", "engenharia reversa", "extrair spec", "documentar codigo existente", "vibe coding sem doc", "detective", "reverse spec", "o que esse codigo faz", "spec a partir do codigo".

23 stars
0 votes
0 copies
0 views
Added 9/20/2026
toolspythongobashnoderailsgitapi

Works with

cliapi

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add felvieira/claude-skills-fv --skill 33-detective-spec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 33 Detective Spec?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for 33 Detective Spec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/felvieira-33-detective-spec/badge)](https://www.skillsdirectory.com/skills/felvieira-33-detective-spec)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: detective-spec
description: |
  Engenharia reversa de specs para sistemas legados. Use quando precisar extrair specs executaveis,
  regras de negocio, contratos de modulo, fluxos e ADRs retroativos a partir de codigo existente sem
  spec previa. Trigger em: "legado", "engenharia reversa", "extrair spec", "documentar codigo existente",
  "vibe coding sem doc", "detective", "reverse spec", "o que esse codigo faz", "spec a partir do codigo".
allowed-tools: Read, Grep, Glob, Bash(git *), Bash(ls *), Bash(wc *), Bash(find *), Bash(graphify *), Bash(python3 *)
metadata:
  argument-hint: "[caminho-do-repo] [--module=path] [--phase=1|2|3|4|5] [--resume]"
---

# Detective Spec — Reverse Engineering de Specs

O Detetive entra em sistemas legados sem spec, investiga o codigo como cena de crime, e produz **contratos operacionais** que qualquer agente de coding pode usar para evoluir o sistema com fidelidade ao que ja existe.

Inspirado por [Reversa](https://github.com/sandeco/reversa), adaptado para o nosso pipeline (Graphify + repo-audit + memoria persistente).

## Governanca Global

Esta skill segue `GLOBAL.md`, `policies/execution.md`, `policies/persistence.md`, `policies/handoffs.md`, `policies/token-efficiency.md`, `policies/tool-safety.md`, `policies/source-driven.md` e `policies/detective-write-guardrails.md`.

Para exemplos longos e templates completos, consultar `docs/skill-guides/detective-spec.md` apenas quando necessario.

## Filosofia

**Codigo legado e cena de crime.** Existe historia, decisoes implicitas, regras invisiveis. O Detetive nao inventa nem reescreve — ele **observa, infere e documenta**. Toda conclusao precisa apontar para evidencia (`file:line` ou `commit-sha`).

**Specs nao sao documentacao.** Sao contratos executaveis que outro agente pode consumir para implementar features sem quebrar o que ja existe.

## Quando Usar

- repositorio legado sem spec, sem documentacao ou com docs desatualizadas
- codigo "vibe coded" que ninguem entende mais
- antes de evoluir feature critica em modulo sem owner claro
- migracao ou reescrita de sistema antigo
- onboarding de time novo em codebase grande
- antes de delegar manutencao de modulo para agente de coding

## Quando Nao Usar

- projeto novo (use `/spec` direto)
- codebase ja tem spec valida e atualizada
- task localizada de bug fix em arquivo conhecido (use `/build` ou debugger)
- so quer auditoria estrutural sem extrair regras (use `/audit-repo`)

## Entradas Esperadas

- repositorio legado acessivel
- (opcional) `graphify-out/graph.json` ja gerado
- (opcional) `docs/repo-audit/current.md` ja existente
- escopo: repo inteiro, modulo especifico, ou feature especifica

## Saidas Esperadas

- `.detective/state.json` — checkpoint do progresso (resume-friendly)
- `.detective/plan.md` — plano de exploracao personalizado
- `_detective_sdd/` — output dir com specs:
  - `00-overview.md` — mapa do sistema
  - `01-modules/<name>.md` — contratos de modulo
  - `02-business-rules/<domain>.md` — regras de negocio extraidas
  - `03-flows/<flow>.md` — fluxos end-to-end
  - `04-adrs/ADR-NNN.md` — decisoes arquiteturais retroativas
  - `99-traceability.md` — mapa spec → evidencia (file:line / commit)

## Hard Guardrails (CRITICO)

1. **Writes restritos** a `.detective/` e `_detective_sdd/`. Qualquer outra escrita = violacao.
2. **Nunca modificar** arquivos do projeto legado. Nem refatorar, nem "consertar typo", nem mover.
3. **Nunca deletar** nada. Nem em `.detective/` (use checkpoint/resume).
4. **Toda afirmacao** em spec precisa de evidencia: `[evidence: src/foo.ts:42]` ou `[evidence: commit a1b2c3d]`.
5. Se inferencia for fraca, marcar com `[confidence: low]` e listar em `99-traceability.md` como "needs human validation".

Consultar `policies/detective-write-guardrails.md`.

## Pipeline de 5 Fases

O Detetive opera em 5 fases sequenciais. Cada fase faz checkpoint em `.detective/state.json` para permitir resume.

```
Fase 1: Reconhecimento  → mapa estrutural + identificar suspeitos
Fase 2: Modulos          → extrair contratos por modulo (interrogatorio)
Fase 3: Regras           → extrair regras de negocio escondidas
Fase 4: Fluxos           → reconstituir cena (fluxos end-to-end)
Fase 5: ADRs + Sintese   → decisoes retroativas + spec consolidada
```

### Fase 1 — Reconhecimento

**Detetive responsavel:** orchestrator (esta skill)

**Acoes:**
1. Verificar se `graphify-out/graph.json` existe — se sim, usar como mapa primario (god nodes, comunidades, hubs)
2. Verificar `docs/repo-audit/current.md` — se valido, usar; senao, despachar `repo-auditor` primeiro
3. Identificar:
   - linguagem(ns) primaria(s)
   - frameworks e libs de dominio
   - estrutura de modulos (por feature, por camada, monolito)
   - pontos de entrada (main, routes, handlers, CLIs)
   - god nodes (modulos com muito acoplamento — suspeitos prioritarios)
4. Gerar `.detective/plan.md` com lista priorizada de modulos para investigar

**Output:** `_detective_sdd/00-overview.md` + `.detective/plan.md`

**Checkpoint:** `state.json.phase = 1, status = done`

### Fase 2 — Modulos (Interrogatorio)

**Detetive responsavel:** `detective-contracts` (persona)

Para cada modulo do `.detective/plan.md`:

**Interrogar:**
- O que esse modulo expoe? (API publica, exports, endpoints)
- Quais sao suas dependencias? (imports, injecoes, side effects)
- Quais invariantes mantem? (asserts, validacoes, guards)
- Quem o consome? (call sites — usar Grep)
- Qual seu estado interno? (vars de modulo, singletons, caches)

**Output por modulo:** `_detective_sdd/01-modules/<name>.md`

Estrutura:
```markdown
# Modulo: <name>

**Path:** src/...
**Confidence:** high | medium | low

## Responsabilidade
[1-2 linhas — o que esse modulo faz no sistema]

## API Publica
- `fn(args): tipo` — [proposito] [evidence: file:line]

## Dependencias
- [modulo X]: usa para [proposito]

## Invariantes
- [regra que o codigo assume verdadeira] [evidence: file:line]

## Consumidores
- src/foo.ts:42 — [como usa]

## Estado Interno
- [vars de modulo, caches, singletons]

## Suspeitas (precisa validacao humana)
- [coisas que parecem dead code, comportamento ambiguo, TODOs antigos]
```

**Checkpoint:** `state.json.modules[<name>] = done` apos cada modulo

### Fase 3 — Regras de Negocio

**Detetive responsavel:** `detective-business-rules` (persona)

**Onde regras se escondem:**
- validacoes (`if (x < 0) throw`)
- calculos de dominio (descontos, taxas, scoring)
- transicoes de estado (status de pedido, workflow)
- constantes magicas (`const TAX_RATE = 0.08`)
- comentarios `// HACK:`, `// FIXME:`, `// because <bug>`
- mensagens de erro (revelam contratos quebrados)
- testes (regras viram assertions)

**Acoes:**
1. Grep por padroes de validacao na linguagem (`throw new`, `raise`, `assert`, `Validate*`)
2. Grep por constantes magicas (`const [A-Z_]+ = `)
3. Ler testes existentes — cada `it(...)` e uma regra
4. Para cada regra encontrada, registrar em `_detective_sdd/02-business-rules/<domain>.md`

Estrutura por dominio:
```markdown
# Regras de Negocio — <dominio>

## RN-001: [nome curto]
**Confidence:** high | medium | low
**Evidence:** src/foo.ts:42

**Quando:** [condicao que ativa a regra]
**Entao:** [comportamento esperado]
**Por que (inferido):** [hipotese da motivacao — marcar como inferida]

**Testavel como:**
DADO [estado] QUANDO [acao] ENTAO [resultado]
```

**Checkpoint:** `state.json.rules[<domain>] = done`

### Fase 4 — Fluxos

**Detetive responsavel:** `detective-flows` (persona)

**Reconstituir cenas:** seguir uma requisicao/comando do ponto de entrada ate o efeito final.

**Acoes:**
1. Para cada ponto de entrada identificado na Fase 1 (route, handler, CLI command, job):
   - tracar call chain ate side effects (DB write, API externa, fila, log)
   - identificar branchings principais (happy path + N edge cases)
   - mapear estado mutado em cada step

**Output por fluxo:** `_detective_sdd/03-flows/<flow>.md`

Estrutura:
```markdown
# Fluxo: <nome>

**Trigger:** [route POST /x | comando CLI | job cron | event]
**Confidence:** high | medium | low

## Happy Path
1. [step] — src/handler.ts:10
2. [step] — src/service.ts:42
   → side effect: [DB INSERT em tabela X]
3. [step] — [efeito final]

## Edge Cases
- [condicao] → [comportamento] [evidence: file:line]

## Estado Mutado
- tabela `users.last_login` (step 3)
- cache `session:<id>` (step 1)

## Falhas Possiveis
- [excecao] em step N → [tratamento ou propagacao]
```

**Checkpoint:** `state.json.flows[<name>] = done`

### Fase 5 — ADRs Retroativos + Sintese

**Detetive responsavel:** `detective-adrs` (persona)

**Acoes:**
1. Identificar **decisoes arquiteturais implicitas** que nao tem ADR:
   - escolha de framework / lib (por que essa e nao outra?)
   - padrao de auth (JWT, session, OAuth — por que?)
   - estrategia de cache, fila, transacao
   - convencoes de erro, log, observabilidade
   - boundaries de modulo (monolito, modular, microservice)
2. Para cada decisao, escrever ADR retroativo em `_detective_sdd/04-adrs/ADR-NNN.md`
3. Gerar `_detective_sdd/99-traceability.md` — tabela completa spec ↔ evidencia
4. Atualizar `_detective_sdd/00-overview.md` com sumario executivo

Estrutura ADR:
```markdown
# ADR-001: [decisao]

**Status:** Inferido (retroativo)
**Confidence:** high | medium | low
**Evidence:** [arquivos/commits que sustentam a inferencia]

## Contexto (inferido)
[problema que essa decisao parece resolver]

## Decisao
[o que foi escolhido]

## Consequencias observadas no codigo
- [acoplamento, restricao, beneficio observado]

## Alternativas (especulativas)
[se aplicavel, o que outra escolha implicaria]
```

**Checkpoint:** `state.json.phase = 5, status = done`

## Estrutura de `.detective/state.json`

```json
{
  "version": 1,
  "started_at": "2026-05-02T12:00:00Z",
  "last_checkpoint": "2026-05-02T12:34:00Z",
  "scope": "full | module:<path> | feature:<name>",
  "phase": 1 | 2 | 3 | 4 | 5,
  "phase_status": "in_progress | done",
  "modules": { "<name>": "pending|in_progress|done" },
  "rules": { "<domain>": "pending|in_progress|done" },
  "flows": { "<name>": "pending|in_progress|done" },
  "evidence_count": 0,
  "low_confidence_items": []
}
```

## Resume

Se sessao for interrompida, ao re-invocar `/detective-spec`:
1. Ler `.detective/state.json`
2. Pular fases ja `done`
3. Continuar do ultimo checkpoint da fase em andamento
4. Nao re-escrever specs ja geradas (apenas atualizar incrementalmente se houver mudanca relevante)

## Integracao com Graphify

Se `graphify-out/graph.json` existir:
- usar **god nodes** como modulos prioritarios na Fase 2
- usar **comunidades** como agrupamento natural para `01-modules/`
- usar **hubs** como candidatos a pontos de entrada na Fase 4
- usar **bridges** entre comunidades para identificar contratos inter-modulo

Se nao existir, sugerir gerar primeiro: `pip install graphifyy && graphify update .`

## Integracao com Repo Audit

Se `docs/repo-audit/current.md` existir e estiver atualizado:
- usar como base da Fase 1 (nao re-auditar)
- splits (`routes.md`, `schema.md`) alimentam Fase 4 (fluxos) e Fase 2 (modulos)

## Confidence Scoring

Cada spec deve declarar `confidence`:
- **high**: evidencia direta no codigo + testes confirmando
- **medium**: evidencia direta no codigo, sem teste
- **low**: inferencia a partir de padroes ou nomes — precisa validacao humana

Items `low` viram fila de validacao em `99-traceability.md` secao "Needs Human Review".

## Heuristicas Anti-Alucinacao

1. **Nunca invente nome de funcao, modulo ou regra.** Se nao achar, escreva `[unknown — investigate]`.
2. **Nao confunda "como o codigo esta" com "como deveria estar".** Detetive documenta o real, nao o ideal.
3. **Comentarios mentem.** Se comentario contradiz o codigo, registrar ambos e marcar `confidence: low`.
4. **Testes desatualizados mentem.** Verificar se passam antes de usar como evidencia.
5. **Nao extrapole de 1 caso.** Regra precisa de pelo menos 2 ocorrencias ou teste explicito.

**Checkpoint de validação (distinto do `state.json` de progresso acima):** ao encontrar 1 ocorrência de um padrão, buscar (`grep`/symbol search) por uma segunda antes de escrever a regra como confirmada. Se a segunda busca não achar nada, a regra vira `confidence: low` com nota "1 ocorrência apenas" — nunca sobe pra `confidence: high` por conta própria depois. Regra tratada como confirmada sem a segunda ocorrência é exatamente a alucinação que este processo existe para prevenir.

## Evidencia de Conclusao

- `.detective/state.json` com `phase: 5, status: done`
- `_detective_sdd/00-overview.md` + todos os subdirs populados
- `_detective_sdd/99-traceability.md` com mapa completo
- nenhum write fora dos diretorios permitidos (verificavel via duas checagens: `git status --porcelain` filtrado para untracked + `git diff --name-only --diff-filter=MDARCT HEAD` para tracked — ver `policies/detective-write-guardrails.md` secao "Verificacao")
- lista de items `low confidence` consolidada para validacao humana

## Handoff

Apos conclusao, entregar para o usuario:
1. Caminho do `_detective_sdd/`
2. Sumario executivo (do `00-overview.md`)
3. Top 5 regras de negocio criticas extraidas
4. Lista de itens `low confidence` que precisam validacao
5. Sugestao de proxima skill: `/spec` para nova feature usando esses contratos como base

## Codigo Limpo

Output deve ser legivel por humanos E consumivel por agentes. Markdown estruturado, links relativos para evidencias, sem prosa decorativa. Cada secao serve um proposito operacional.

## Integracao com Pipeline

- **Repo Auditor (skill 18):** roda antes se nao houver auditoria valida
- **PO Feature Spec (skill 01):** consome contratos do `_detective_sdd/` para nova feature em legado
- **Migration & Refactor (skill 23):** usa specs como baseline antes de refatorar
- **Documenter (skill 10):** pode promover specs do `_detective_sdd/` para `docs/` oficial apos validacao humana
- **Orchestrator (skill 09):** decide quando invocar Detective vs PO direto

Attribution

felvieirafelvieira
View sourceMore from felvieira →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

ucoz-landing-skill

Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

805541 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Caveman Compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

1023330 votes
View all in tools →