agentsclimarketplace

Organize docs

Skill rfl-designer/rfl-laravel-skills/skills/docs/organize-docs

Claude Code plugin orchestrating the Laravel 12 + Livewire 4 + Tailwind + Alpine + Flux UI development cycle: grill-with-docs, to-prd, to-issues, tdd (Pest), open-pr, simplify, review-branch, organize-docs, update-roadmap.

Install
npx -y skills add rfl-designer/rfl-laravel-skills --skill organize-docs

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Keep the project's docs/ tree clean after merged PRs — propose ADRs for hard-to-reverse decisions, surface new domain terms missing from CONTEXT.md, archive delivered PRDs, fix dead links. Always interactive — never writes without confirmation. Use when user says "organize docs", "limpar docs", "atualizar documentação", or after a batch of PRs merge.

SKILL.md

6.4 KB, as published. Nobody here has run it

Organize Docs

Skill de manutenção da documentação do projeto consumidor. Roda periodicamente (semanal/quinzenal, ou após batch de PRs mergeadas) e mantém a árvore docs/ em ordem sem deixar entropia se acumular.

Sempre interativa. Nunca aplica mudanças sem o usuário ler e aprovar cada uma.

Layout esperado no projeto Laravel

docs/
├── adr/                      # decisões arquiteturais (formato grill-with-docs)
│   ├── 0001-event-sourced-orders.md
│   └── 0002-postgres-write-model.md
├── prd/                      # PRDs gerados por /to-prd
│   ├── active/               # em andamento
│   └── done/                 # entregues, arquivados por ano
│       └── 2026/
├── roadmap/                  # gerado por /update-roadmap
│   └── index.html
└── runbooks/                 # operacional (deploy, restore, oncall)
CONTEXT.md

Se a árvore não existe, oferecer criá-la na primeira execução.

Pré-requisitos

  • git funcionando, repo com histórico
  • gh CLI autenticado (para correlacionar PRs com issues)

Processo

1. Determinar a janela de análise

LAST_RUN=$(test -f .claude/last-organize-docs && cat .claude/last-organize-docs || echo "30 days ago")
git log --since="$LAST_RUN" --merges --pretty="%H %s"

Se nunca rodou, usar últimos 30 dias como default. Janela é configurável.

2. Coletar PRs mergeadas no período

gh pr list --state merged --search "merged:>$LAST_RUN_ISO" --json number,title,body,closedAt,mergedAt,labels,files

Para cada PR, coletar:

  • Issues fechadas (Closes #N no body)
  • Arquivos tocados
  • ADRs ou PRDs referenciados no body

3. Cinco verificações em paralelo

A. ADRs candidatos

Procurar nos PRs sinais de decisão hard-to-reverse:

  • Mudou composer.json (dependência nova ou major version bump) → candidato
  • Adicionou tabela ou mudou schema crítico → candidato
  • PR body menciona "decidi", "optamos", "escolhi", "em vez de", "trade-off" → candidato
  • Mudou config (config/database.php, config/queue.php, config/auth.php) → candidato

Para cada candidato, aplicar os 3 critérios do grill-with-docs:

  1. Hard to reverse?
  2. Surpreendente sem contexto?
  3. Resultado de trade-off real?

Se 3/3 → propor ADR. Se 2/3 → mencionar como "consideração". Se ≤1 → ignorar.

Output:

📋 ADRs sugeridos:

1. PR #142 "Switch sessions from cookie to Redis-backed"
   3 critérios atendidos. Sugestão: docs/adr/0008-redis-sessions.md
   Conteúdo proposto:
   ─────────────────
   # Sessions backed by Redis instead of cookies
   ...
   ─────────────────
   [a]ceitar / [e]ditar / [p]ular

B. Termos novos para CONTEXT.md

git diff "$LAST_RUN_REF..HEAD" -- 'app/**/*.php' | grep -E '^\+(class|enum|interface|trait) ' | sort -u

Para cada classe/enum/interface novo:

  • Existe no CONTEXT.md?
  • É um termo de domínio (não framework)? Heurística: NÃO é Controller, Request, Resource, ServiceProvider, Listener.
  • Se domínio E ausente → propor adicionar.
📚 Termos novos detectados:

- Proposal (app/Models/Proposal.php) — não está em CONTEXT.md
- ProposalStatus (app/Enums/ProposalStatus.php) — não está em CONTEXT.md
- ProposalSent (app/Events/ProposalSent.php) — provavelmente domínio, propor adicionar?

Sugestão para CONTEXT.md:

**Proposal**:
Documento comercial enviado a um cliente potencial, contendo módulos e features cotados.
_Avoid_: orçamento, cotação

[a]ceitar / [e]ditar / [p]ular

C. PRDs a arquivar

Para cada arquivo em docs/prd/active/:

  • Issue PRD (referenciada no início do arquivo) está fechada?
  • Todas as issues-slice filhas estão fechadas?

Se sim → propor mover para docs/prd/done/<ano>/.

📦 PRDs a arquivar:

- docs/prd/active/comment-thread.md
  Issue PRD #42: closed
  3 slices filhas (#43, #44, #45): todas closed
  Propor mover para docs/prd/done/2026/comment-thread.md
  [a]ceitar / [p]ular

D. Links quebrados

Escanear todo arquivo .md em docs/, CONTEXT.md, README.md por:

  • Links relativos (./foo.md, ../bar.md) que apontam para arquivos inexistentes
  • Wikilinks [[name]] sem arquivo correspondente em memory ou docs
  • Issues mencionadas (#N) que retornam 404 no gh issue view
🔗 Links quebrados:

- docs/adr/0003-foo.md:12 → ./bar.md (não existe)
- README.md:45 → #999 (issue não encontrada — talvez referência errada?)

NÃO autocorrigir. Apenas reportar — o usuário decide se renomeia, cria o destino, ou remove o link.

E. ADRs com status estale

Para cada ADR:

  • Status proposed há mais de 60 dias → sugerir transicionar para accepted ou superseded
  • Status superseded mas sem superseded by ADR-NNNN no frontmatter → sugerir adicionar
📜 ADRs com status estale:

- docs/adr/0003-event-sourcing.md — status: proposed (há 87 dias)
  Sugerir: alguém implementou? Atualizar para accepted ou marcar como rejected?

4. Apresentar tudo num batch

Mostrar todas as 5 categorias numeradas. Usuário pode:

  • Aceitar tudo (a)
  • Aceitar item específico (1, 2, etc.)
  • Pular tudo (p)
  • Editar antes de aceitar (e <numero>)

5. Aplicar e marcar

Após aplicar:

  • Atualizar .claude/last-organize-docs com timestamp atual
  • Sugerir commit com mensagem docs: organize-docs sweep <data>
  • Sugerir rodar /update-roadmap se PRDs foram arquivados ou issues mudaram de status

Configuração opcional

.claude/organize-docs-config.json:

{
  "window_days": 30,
  "skip_adr_suggestions": false,
  "skip_term_suggestions": false,
  "auto_archive_prds": false,
  "context_md_path": "CONTEXT.md",
  "domain_class_paths": ["app/Models", "app/Enums", "app/Events", "app/Actions"]
}

auto_archive_prds: true move PRDs done sem perguntar (ainda mostra o que moveu).

Quando NÃO rodar

  • Durante uma slice ativa de /tdd — espera o PR mergear
  • Em repo sem docs/ — primeiro pergunta se quer criar a estrutura

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.