Skip to content

[P0][cursor-rules][ADR-0080] Endurecer TODAS as regras de push/PR/merge — matar linguagem advisory que deixa 'suspeitar' que o gate local é opcional #1153

Description

@FabioLeitao

Auditoria das .cursor/rules/ contra o ADR-0080 (issue #1152). Achado sistêmico: várias regras usam linguagem ADVISORY pro gate local — foi essa frouxidão que deixou o executor rodar só testes targeted (2 passed in 2.39s) e pushar. Corrigir cada uma pra MANDATÓRIA e inequívoca.

Achados + fixes (por regra)

  1. check-all-gate.mdc () — linha 9: "Prefer existing scripts... when it saves tokens or time" = advisory + condicional. É O BURACO. Um agente 'suspeita' que dá pra pular pra economizar tempo. → Adicionar no TOPO um mandato incondicional: "check-all.sh --enforced DEVE passar ALL-GREEN antes de QUALQUER push/PR. Não é condicional a tokens/tempo/complexidade. Pular/reduzir = violação do ADR-0080." A linha --skip-pre-commit (Quick iterations) é só pra iteração local, NUNCA pra push/PR — deixar explícito.
  2. never-weaken-security-gates.mdc — forte (MUST NOT bypass, --no-verify proibido), MAS enumera os gates como PII/secrets/history/CODEOWNERS/signed-commit e NÃO lista o gate de check-all/pre-push local. → Adicionar explicitamente o gate de validação LOCAL (check-all/pre-push) à lista de gates protegidos.
  3. pre-commit-ruff.mdc — linha 33: "Recommend pre-commit before push" = advisory; e cobre só o bundle leve (Ruff+guards), não os 1653+scans. → "Recommend""MUST"; deixar claro que pre-commit é o piso, o gate completo é o check-all.
  4. git-pr-sync-before-advice.mdc — linha 32: "run check-all (or agreed subset)"matar o "or agreed subset" pra push/PR de código (subset só pra docs-only via lint-only).
  5. agent-autonomous-merge-and-lab-ops.mdc — chaveia em "CI green, mergeable" → reforça CI-reliance. → merge-autônomo DEVE também exigir que o check-all local rodou verde ANTES do push que abriu a PR, não só CI-green.
  6. execution-priority-and-pr-batching.mdc — linha 43 (check-all OU lint-only pra docs) OK pra docs-only; garantir que não vaza pra push de código.

Regra transversal (adicionar/referenciar em todas as acima)

  • ADR-0080 é supremo. Gate local disparado/pulado = STOP + escalar ao operador (paridade com never-weaken-security-gates).
  • Mudar/remover qualquer gate = trailer Gate-Change-Approved-By: <operador>.

AC

  • Editar as 6 regras acima com linguagem MANDATÓRIA (MUST/NEVER, sem 'prefer/recommend/when-saves-time/or-subset' pro gate de push/PR).
  • Cross-link todas ao ADR-0080 e ao #1151 (pre-push versionado).
  • Claude (auditor RO) vai verificar cada push/PR contra isto — non-compliance é flag imediato.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions