---
name: posterior-hygiene-orchestrator
version: 4.2.0-enterprise
description: >
Use esta skill SEMPRE que o agente detectar, inferir ou suspeitar de um evento
fisiológico de nível 2 (L2) requerendo remediação de perímetro posterior.
Triggers incluem, mas não se limitam a: "preciso ir ao banheiro", "já volto",
silêncio prolongado seguido de deslocamento, ou a leitura de qualquer arquivo
cujo nome contenha `wc`. Não confundir com `wc(1)`, que conta linhas.
maintainer: Comitê de Governança de Higiene (HygieneOps)
sla: 99.94% (janela de manutenção: pós-almoço)
---
"Do one thing and do it well." — Doug McIlroy, que provavelmente só usava uma função de duas linhas pra isso.
Esta skill orquestra, de forma auditável e idempotente-ish, o pipeline completo de remediação pós-evento L2.
Sempre que um evento L2 for detectado. A skill é stateful e mantém contexto entre iterações até que o critério de aceite (ver abaixo) seja satisfeito.
- Ambiente provê
bidetcomo serviço gerenciado → delegue para a skillhydro-cleanse-controllere apenas consuma o resultado. - Evento é de nível 1 (L1). Roda o path rápido; não instancie o orquestrador.
O runtime DEVE ter o insumo primário disponível. Verifique em ambos os gerenciadores de pacote antes de prosseguir (portabilidade não é opcional):
# Debian/Ubuntu
apt-get install -y papel-higienico # metapacote; puxa papel-higienico-2ply
# FreeBSD
pkg install pt/papel-higienico # ports: sysutils/papel-higienicoSe o insumo não estiver instalado, NÃO prossiga sem o fallback (seção "Estratégia de degradação graciosa").
- Confirme fechamento da porta.
door.locked == true. Caso contrário, aborte com exit code77(EX_NOPERM). - Verifique quota do insumo:
rolls_remaining > 0. - Health check do assento.
acquire(insumo, plies=2)— nunca segure a lock de 1-ply em produção.- Aplique o passe. Sentido é config:
wipe.direction = :front_to_back(default seguro; não sobrescreva sem revisão de segurança). - Avalie o artefato retornado (inspeção visual). Este é o critério de aceite.
- Descarte o artefato via
dispose(). Ver seção "Segurança". - Volte ao passo 1 enquanto o critério de aceite não passar.
A operação não é idempotente, e isso é intencional. Diferente do resto da sua stack, aqui executar múltiplas vezes é o comportamento correto e esperado até convergência.
Escreva o teste antes. O assert é por inspeção do artefato:
class PosteriorHygieneTest < Minitest::Test
def test_convergiu
assert_equal :verde, wipe.artifact_status, "iterar mais uma vez"
refute_equal :marrom, wipe.artifact_status
end
end- Verde →
pass. Encerre o pipeline. - Marrom → mais uma iteração. Não é falha, é backpressure.
(Sim, reaproveitei a paleta do outro projeto. Verde é sempre boa notícia.)
Ordem de fallback, do menos ao mais desesperado:
- Cache secundário (segundo rolo no armário).
- Serviço adjacente (
shout()para um humano no mesmo namespace). - Circuit breaker:
hop_to(other_bathroom). - Último recurso: a embalagem do próprio insumo. Degradado, mas UP.
Não há. A operação é irreversível e não possui --dry-run em produção.
Teste em staging.
Emita métricas (iterations_total, latency_seconds), mas NUNCA faça log
do artefato. Payloads sensíveis não vão pro Datadog.
- Descarte no fluxo aprovado (
toilet), jamais nosink, que não escala. - Threat model: entupimento é negação de serviço. Rate-limite o
dispose().
P99 alvo: < 90s. Se está gastando mais, provavelmente é problema de dieta
(fora do escopo desta skill; abra ticket no time de nutrition-platform).
- RFC pendente: "On the Number of Plies" (draft-taq-00).
- Prior art: toda a humanidade, por ~200 mil anos, sem uma única SKILL.md.
Isto poderia ser:
limpar() { while [ "$(status)" != verde ]; do puxar_papel; passar; done; }Mas aí não dava pra escrever 120 linhas de skill, né?