Skip to content
Back to skills

Prosa Vira Gate

ASecurity

A doutrina central do método — toda lição que custou trabalho é convertida em mecanismo verificável (gate, hook, estado, teste), nunca deixada só como texto; e como fazer isso sem criar gate hostil ou gate construído sobre diagnóstico errado. Carregar quando um erro se repetir, ao propor um guardrail/hook/gate novo, ao endurecer ou afrouxar um existente, e ao revisar uma skill.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentsgosql

Works with

  • terminal

Security analysis

A100/100

Scanned October 22, 2026

npx -y skills add personal-digital-sovereignty/sovereign-harness --skill prosa-vira-gate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Prosa Vira Gate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Prosa Vira Gate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/personal-digital-sovereignty-prosa-vira-gate/badge)](https://www.skillsdirectory.com/skills/personal-digital-sovereignty-prosa-vira-gate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: prosa-vira-gate
description: A doutrina central do método — toda lição que custou trabalho é convertida em mecanismo verificável (gate, hook, estado, teste), nunca deixada só como texto; e como fazer isso sem criar gate hostil ou gate construído sobre diagnóstico errado. Carregar quando um erro se repetir, ao propor um guardrail/hook/gate novo, ao endurecer ou afrouxar um existente, e ao revisar uma skill.
---

# Prosa vira gate — o erro que custou vira mecanismo

"Está escrito no AGENTS.md" não basta. No projeto de origem, na semana em que uma regra de segurança estava escrita e destacada, um `format!()` com SQL e uma rota nova entraram sem que a skill fosse aberta uma vez. A resposta não foi "tome mais cuidado" — foi construir o mecanismo.

O princípio: **o que é verificável por regra/script é automatizado; a prosa fica para o que exige julgamento.** Um invariante em prosa disputa atenção com todo o resto do contexto — e num modelo pequeno é praticamente invisível. Uma condição em código vale igual para qualquer modelo e qualquer humano.

## O ciclo de conversão

1. **Nomeie a classe**, não o caso. "Commit caiu em `main` porque o HEAD foi movido por outra sessão" é caso; "commit em branch protegida" é classe.
2. **Classifique** cada lição numa de três:
   - **mecanizável** → vira gate/hook/estado/teste;
   - **julgamento** → vira skill curta, ancorada nos mecanismos reais, com o caso de origem datado;
   - **rejeitada** → registrada com motivo, para não voltar como "melhoria óbvia".
3. **Refute antes de mecanizar.** Gate construído sobre diagnóstico não testado herda o erro e o impõe a todos com autoridade de ferramenta. Caso de origem: o gate "branch atrás de main reverte trabalho" foi de hipótese a skill, a regra escrita e a gate bloqueante em 8 repositórios em um dia, sem uma tentativa de refutação. A refutação levou quatro minutos. Virou aviso.
4. **Escolha o ponto de aplicação** mais cedo que ainda tem informação suficiente: guard do agente (antes da ação) → pre-commit → pre-push → merge gate (sobre o RESULTADO do merge) → esteira remota (ambiente limpo).
5. **Prove no sentido negativo** antes de propagar: o gate reprova o caso do incidente e libera o caso legítimo vizinho. Casos de origem: um gate novo era chamado antes de ser definido (o `command not found` foi engolido e o push autorizado sem o gate rodar); outro usava `comm` com ordenação de locale incompatível e passava verde com a colisão presente.
6. **Cite a origem** no próprio gate (data, documento) e registre a entrega nos dois registros (PENDING/CONCLUSION).

## Gate que sobrevive ao uso

- **Escape nomeado, nunca silencioso.** `HARNESS_SKIP=<regra>` / `SOVEREIGN_SKIP_GATES=<gate>` aparece no terminal e no registro. Override silencioso (`core.hooksPath=/dev/null`, `--no-verify`) é proibido.
- **Ferramenta ausente bloqueia** (fail-loud) e imprime como instalar. Um gate que vira "skipping" em silêncio é pior que nenhum, porque passa confiança.
- **Não hostil por padrão.** Gate que bloqueia trabalho legítimo é desligado na primeira semana e nunca reavaliado. Opções: nascer desligado com opt-in; nascer como aviso; escopar ao diff (dívida antiga não vira bloqueio retroativo).
- **Radar quando a sintaxe não decide.** Casamento sintático produz falso positivo por construção (todo `Command::new` é suspeito, quase nenhum é bug): aponte a seção da skill relevante e deixe a decisão com quem escreveu. Bloqueio só como modo consciente de auditoria.
- **Avalie o que está sendo enviado**, não a árvore inteira nem a branch em checkout (casos de origem: formatador checando o crate todo; gate rodando numa deleção de ref sobre a working tree errada).
- **Determinismo.** `echo | grep -q` com SIGPIPE tornou um radar não determinístico (3, 3 e 2 achados em três execuções idênticas). Radar que às vezes omite é pior que nenhum.
- **Meça antes de endurecer.** Registre bloqueios e escapes (sem dado sensível) e decida pelo número de falsos positivos, não pela impressão.

## Onde parar

Um gate cobre o caminho que conhece, não o julgamento. Horas depois de escrever o guardrail contra uma classe, a mesma sessão cometeu a classe por outro caminho (`cp` sobrescrevendo versão nova pela antiga). Por isso skill e gate convivem: o gate pega o mecânico, a skill treina o olhar para o resto — e o próximo incidente vira o próximo gate.

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.