agent-quality-police 0.2.12 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/.claude-plugin/plugin.json +3 -3
  2. package/.codex-plugin/plugin.json +2 -2
  3. package/AGENTS.md +49 -49
  4. package/CLAUDE.md +49 -47
  5. package/agents/bypass-auditor.md +77 -0
  6. package/agents/implementer.md +70 -0
  7. package/agents/pr-gatekeeper.md +56 -0
  8. package/agents/tdd-warden.md +45 -0
  9. package/docs/policy/quality-definition.md +176 -117
  10. package/docs/policy/runtime-notes.md +36 -0
  11. package/docs/policy/system-layout.md +21 -27
  12. package/docs/policy/workflow.md +33 -23
  13. package/framework/agents/prompts/bypass-auditor.md +63 -0
  14. package/framework/agents/prompts/implementer.md +51 -0
  15. package/framework/agents/prompts/pr-gatekeeper.md +41 -0
  16. package/framework/agents/prompts/tdd-warden.md +31 -0
  17. package/framework/agents/specs/bypass-auditor.json +34 -0
  18. package/framework/agents/specs/implementer.json +39 -0
  19. package/framework/agents/specs/pr-gatekeeper.json +35 -0
  20. package/framework/agents/specs/tdd-warden.json +34 -0
  21. package/framework/entrypoints/policy.md +5 -5
  22. package/lib/install.mjs +195 -61
  23. package/package.json +4 -5
  24. package/rules/claude-code-specific.md +16 -0
  25. package/rules/codex-specific.md +13 -0
  26. package/rules/core-non-negotiables.md +10 -0
  27. package/rules/grounding-and-verification.md +12 -0
  28. package/rules/review-and-gates.md +10 -0
  29. package/rules/testing-and-tdd.md +14 -0
  30. package/rules/typescript-zero-bypass.md +27 -0
  31. package/skills/anti-bypass-audit/SKILL.md +88 -0
  32. package/skills/anti-bypass-audit/checklists/audit-checklist.md +12 -0
  33. package/skills/anti-bypass-audit/references/report-format.md +9 -0
  34. package/skills/governance-installation/SKILL.md +55 -0
  35. package/skills/governance-installation/checklists/install-checklist.md +6 -0
  36. package/skills/governance-installation/examples/bad/stale-projection.md +12 -0
  37. package/skills/governance-installation/examples/good/install-sequence.md +7 -0
  38. package/{.opencode/skills → skills}/governance-installation/references/install-steps.md +5 -5
  39. package/skills/grounding-first/SKILL.md +89 -0
  40. package/skills/grounding-first/checklists/grounding-checklist.md +17 -0
  41. package/skills/grounding-first/examples/bad/inferred-change.md +54 -0
  42. package/skills/grounding-first/examples/good/grounded-change.md +59 -0
  43. package/skills/grounding-first/references/runtime-differences.md +43 -0
  44. package/skills/grounding-first/references/source-priority.md +31 -0
  45. package/skills/quality-index/SKILL.md +73 -0
  46. package/skills/quality-index/checklists/routing-checklist.md +7 -0
  47. package/skills/quality-index/examples/bad/task-routing.md +15 -0
  48. package/skills/quality-index/examples/good/task-routing.md +20 -0
  49. package/skills/quality-index/references/system-entrypoints.md +10 -0
  50. package/skills/react-public-api-testing/SKILL.md +65 -0
  51. package/skills/react-public-api-testing/checklists/query-checklist.md +5 -0
  52. package/skills/react-public-api-testing/references/query-order.md +11 -0
  53. package/skills/refactoring-with-safety/SKILL.md +52 -0
  54. package/skills/refactoring-with-safety/checklists/refactor-checklist.md +6 -0
  55. package/skills/refactoring-with-safety/examples/bad/behavior-change-masquerading.md +12 -0
  56. package/skills/refactoring-with-safety/examples/good/characterization-sequence.md +12 -0
  57. package/skills/refactoring-with-safety/references/refactor-sequence.md +7 -0
  58. package/skills/typescript-zero-bypass/SKILL.md +94 -0
  59. package/skills/typescript-zero-bypass/checklists/review-checklist.md +10 -0
  60. package/skills/typescript-zero-bypass/references/modeling-patterns.md +17 -0
  61. package/skills/vite-vitest-tdd/SKILL.md +58 -0
  62. package/skills/vite-vitest-tdd/checklists/tdd-checklist.md +6 -0
  63. package/skills/vite-vitest-tdd/references/mock-policy.md +9 -0
  64. package/.agents/skills/anti-bypass-audit/SKILL.md +0 -67
  65. package/.agents/skills/anti-bypass-audit/checklists/audit-checklist.md +0 -7
  66. package/.agents/skills/anti-bypass-audit/references/report-format.md +0 -9
  67. package/.agents/skills/governance-installation/SKILL.md +0 -55
  68. package/.agents/skills/governance-installation/checklists/install-checklist.md +0 -6
  69. package/.agents/skills/governance-installation/examples/bad/stale-projection.md +0 -12
  70. package/.agents/skills/governance-installation/examples/good/install-sequence.md +0 -7
  71. package/.agents/skills/governance-installation/references/install-steps.md +0 -28
  72. package/.agents/skills/quality-index/SKILL.md +0 -68
  73. package/.agents/skills/quality-index/checklists/routing-checklist.md +0 -6
  74. package/.agents/skills/quality-index/examples/bad/task-routing.md +0 -15
  75. package/.agents/skills/quality-index/examples/good/task-routing.md +0 -18
  76. package/.agents/skills/quality-index/references/system-entrypoints.md +0 -9
  77. package/.agents/skills/react-public-api-testing/SKILL.md +0 -65
  78. package/.agents/skills/react-public-api-testing/checklists/query-checklist.md +0 -5
  79. package/.agents/skills/react-public-api-testing/references/query-order.md +0 -11
  80. package/.agents/skills/refactoring-with-safety/SKILL.md +0 -52
  81. package/.agents/skills/refactoring-with-safety/checklists/refactor-checklist.md +0 -6
  82. package/.agents/skills/refactoring-with-safety/examples/bad/behavior-change-masquerading.md +0 -12
  83. package/.agents/skills/refactoring-with-safety/examples/good/characterization-sequence.md +0 -12
  84. package/.agents/skills/refactoring-with-safety/references/refactor-sequence.md +0 -7
  85. package/.agents/skills/typescript-zero-bypass/SKILL.md +0 -70
  86. package/.agents/skills/typescript-zero-bypass/checklists/review-checklist.md +0 -6
  87. package/.agents/skills/typescript-zero-bypass/references/modeling-patterns.md +0 -17
  88. package/.agents/skills/vite-vitest-tdd/SKILL.md +0 -58
  89. package/.agents/skills/vite-vitest-tdd/checklists/tdd-checklist.md +0 -6
  90. package/.agents/skills/vite-vitest-tdd/references/mock-policy.md +0 -9
  91. package/.claude/agents/bypass-auditor.md +0 -49
  92. package/.claude/agents/implementer.md +0 -49
  93. package/.claude/agents/pr-gatekeeper.md +0 -41
  94. package/.claude/agents/tdd-warden.md +0 -40
  95. package/.claude/rules/core-non-negotiables.md +0 -8
  96. package/.claude/rules/review-and-gates.md +0 -9
  97. package/.claude/rules/testing-and-tdd.md +0 -13
  98. package/.claude/rules/typescript-zero-bypass.md +0 -17
  99. package/.claude/skills/anti-bypass-audit/SKILL.md +0 -67
  100. package/.claude/skills/anti-bypass-audit/checklists/audit-checklist.md +0 -7
  101. package/.claude/skills/anti-bypass-audit/examples/bad/explicit-bypass.ts +0 -32
  102. package/.claude/skills/anti-bypass-audit/examples/good/fixed-bypass.ts +0 -21
  103. package/.claude/skills/anti-bypass-audit/examples/good/fixed-bypass.types.ts +0 -20
  104. package/.claude/skills/anti-bypass-audit/references/report-format.md +0 -9
  105. package/.claude/skills/governance-installation/SKILL.md +0 -55
  106. package/.claude/skills/governance-installation/checklists/install-checklist.md +0 -6
  107. package/.claude/skills/governance-installation/examples/bad/stale-projection.md +0 -12
  108. package/.claude/skills/governance-installation/examples/good/install-sequence.md +0 -7
  109. package/.claude/skills/governance-installation/references/install-steps.md +0 -28
  110. package/.claude/skills/quality-index/SKILL.md +0 -68
  111. package/.claude/skills/quality-index/checklists/routing-checklist.md +0 -6
  112. package/.claude/skills/quality-index/examples/bad/task-routing.md +0 -15
  113. package/.claude/skills/quality-index/examples/good/task-routing.md +0 -18
  114. package/.claude/skills/quality-index/references/system-entrypoints.md +0 -9
  115. package/.claude/skills/react-public-api-testing/SKILL.md +0 -65
  116. package/.claude/skills/react-public-api-testing/checklists/query-checklist.md +0 -5
  117. package/.claude/skills/react-public-api-testing/examples/bad/primary-button.component-antipattern.tsx +0 -35
  118. package/.claude/skills/react-public-api-testing/examples/bad/primary-button.conditional-setup-bloat.tsx +0 -32
  119. package/.claude/skills/react-public-api-testing/examples/bad/primary-button.duplicated-branch.tsx +0 -30
  120. package/.claude/skills/react-public-api-testing/examples/bad/primary-button.internal.test.tsx +0 -23
  121. package/.claude/skills/react-public-api-testing/examples/good/primary-button.test.tsx +0 -36
  122. package/.claude/skills/react-public-api-testing/examples/good/primary-button.tsx +0 -27
  123. package/.claude/skills/react-public-api-testing/examples/good/primary-button.types.ts +0 -5
  124. package/.claude/skills/react-public-api-testing/references/query-order.md +0 -11
  125. package/.claude/skills/refactoring-with-safety/SKILL.md +0 -52
  126. package/.claude/skills/refactoring-with-safety/checklists/refactor-checklist.md +0 -6
  127. package/.claude/skills/refactoring-with-safety/examples/bad/behavior-change-masquerading.md +0 -12
  128. package/.claude/skills/refactoring-with-safety/examples/good/characterization-sequence.md +0 -12
  129. package/.claude/skills/refactoring-with-safety/references/refactor-sequence.md +0 -7
  130. package/.claude/skills/typescript-zero-bypass/SKILL.md +0 -70
  131. package/.claude/skills/typescript-zero-bypass/checklists/review-checklist.md +0 -6
  132. package/.claude/skills/typescript-zero-bypass/examples/bad/assertion-shortcuts.ts +0 -13
  133. package/.claude/skills/typescript-zero-bypass/examples/good/no-assertion-model.ts +0 -31
  134. package/.claude/skills/typescript-zero-bypass/references/modeling-patterns.md +0 -17
  135. package/.claude/skills/vite-vitest-tdd/SKILL.md +0 -58
  136. package/.claude/skills/vite-vitest-tdd/checklists/tdd-checklist.md +0 -6
  137. package/.claude/skills/vite-vitest-tdd/examples/bad/fraudulent-mock.test.ts +0 -13
  138. package/.claude/skills/vite-vitest-tdd/examples/bad/helper-noise.test.ts +0 -28
  139. package/.claude/skills/vite-vitest-tdd/examples/bad/implementation-detail.test.ts +0 -15
  140. package/.claude/skills/vite-vitest-tdd/examples/good/checkout-service.test.ts +0 -42
  141. package/.claude/skills/vite-vitest-tdd/examples/good/direct-factory.test.ts +0 -29
  142. package/.claude/skills/vite-vitest-tdd/examples/good/discount.test.ts +0 -23
  143. package/.claude/skills/vite-vitest-tdd/examples/good/discount.ts +0 -16
  144. package/.claude/skills/vite-vitest-tdd/references/mock-policy.md +0 -9
  145. package/.codex/agents/bypass-auditor.toml +0 -44
  146. package/.codex/agents/implementer.toml +0 -39
  147. package/.codex/agents/pr-gatekeeper.toml +0 -35
  148. package/.codex/agents/tdd-warden.toml +0 -35
  149. package/.opencode/agents/bypass-auditor.md +0 -47
  150. package/.opencode/agents/implementer.md +0 -42
  151. package/.opencode/agents/pr-gatekeeper.md +0 -38
  152. package/.opencode/agents/tdd-warden.md +0 -38
  153. package/.opencode/skills/anti-bypass-audit/SKILL.md +0 -67
  154. package/.opencode/skills/anti-bypass-audit/checklists/audit-checklist.md +0 -7
  155. package/.opencode/skills/anti-bypass-audit/examples/bad/explicit-bypass.ts +0 -32
  156. package/.opencode/skills/anti-bypass-audit/examples/good/fixed-bypass.ts +0 -21
  157. package/.opencode/skills/anti-bypass-audit/examples/good/fixed-bypass.types.ts +0 -20
  158. package/.opencode/skills/anti-bypass-audit/references/report-format.md +0 -9
  159. package/.opencode/skills/governance-installation/SKILL.md +0 -55
  160. package/.opencode/skills/governance-installation/checklists/install-checklist.md +0 -6
  161. package/.opencode/skills/governance-installation/examples/bad/stale-projection.md +0 -12
  162. package/.opencode/skills/governance-installation/examples/good/install-sequence.md +0 -7
  163. package/.opencode/skills/quality-index/SKILL.md +0 -68
  164. package/.opencode/skills/quality-index/checklists/routing-checklist.md +0 -6
  165. package/.opencode/skills/quality-index/examples/bad/task-routing.md +0 -15
  166. package/.opencode/skills/quality-index/examples/good/task-routing.md +0 -18
  167. package/.opencode/skills/quality-index/references/system-entrypoints.md +0 -9
  168. package/.opencode/skills/react-public-api-testing/SKILL.md +0 -65
  169. package/.opencode/skills/react-public-api-testing/checklists/query-checklist.md +0 -5
  170. package/.opencode/skills/react-public-api-testing/examples/bad/primary-button.component-antipattern.tsx +0 -35
  171. package/.opencode/skills/react-public-api-testing/examples/bad/primary-button.conditional-setup-bloat.tsx +0 -32
  172. package/.opencode/skills/react-public-api-testing/examples/bad/primary-button.duplicated-branch.tsx +0 -30
  173. package/.opencode/skills/react-public-api-testing/examples/bad/primary-button.internal.test.tsx +0 -23
  174. package/.opencode/skills/react-public-api-testing/examples/good/primary-button.test.tsx +0 -36
  175. package/.opencode/skills/react-public-api-testing/examples/good/primary-button.tsx +0 -27
  176. package/.opencode/skills/react-public-api-testing/examples/good/primary-button.types.ts +0 -5
  177. package/.opencode/skills/react-public-api-testing/references/query-order.md +0 -11
  178. package/.opencode/skills/refactoring-with-safety/SKILL.md +0 -52
  179. package/.opencode/skills/refactoring-with-safety/checklists/refactor-checklist.md +0 -6
  180. package/.opencode/skills/refactoring-with-safety/examples/bad/behavior-change-masquerading.md +0 -12
  181. package/.opencode/skills/refactoring-with-safety/examples/good/characterization-sequence.md +0 -12
  182. package/.opencode/skills/refactoring-with-safety/references/refactor-sequence.md +0 -7
  183. package/.opencode/skills/typescript-zero-bypass/SKILL.md +0 -70
  184. package/.opencode/skills/typescript-zero-bypass/checklists/review-checklist.md +0 -6
  185. package/.opencode/skills/typescript-zero-bypass/examples/bad/assertion-shortcuts.ts +0 -13
  186. package/.opencode/skills/typescript-zero-bypass/examples/good/no-assertion-model.ts +0 -31
  187. package/.opencode/skills/typescript-zero-bypass/references/modeling-patterns.md +0 -17
  188. package/.opencode/skills/vite-vitest-tdd/SKILL.md +0 -58
  189. package/.opencode/skills/vite-vitest-tdd/checklists/tdd-checklist.md +0 -6
  190. package/.opencode/skills/vite-vitest-tdd/examples/bad/fraudulent-mock.test.ts +0 -13
  191. package/.opencode/skills/vite-vitest-tdd/examples/bad/helper-noise.test.ts +0 -28
  192. package/.opencode/skills/vite-vitest-tdd/examples/bad/implementation-detail.test.ts +0 -15
  193. package/.opencode/skills/vite-vitest-tdd/examples/good/checkout-service.test.ts +0 -42
  194. package/.opencode/skills/vite-vitest-tdd/examples/good/direct-factory.test.ts +0 -29
  195. package/.opencode/skills/vite-vitest-tdd/examples/good/discount.test.ts +0 -23
  196. package/.opencode/skills/vite-vitest-tdd/examples/good/discount.ts +0 -16
  197. package/.opencode/skills/vite-vitest-tdd/references/mock-policy.md +0 -9
  198. /package/{.agents/skills → skills}/anti-bypass-audit/examples/bad/explicit-bypass.ts +0 -0
  199. /package/{.agents/skills → skills}/anti-bypass-audit/examples/good/fixed-bypass.ts +0 -0
  200. /package/{.agents/skills → skills}/anti-bypass-audit/examples/good/fixed-bypass.types.ts +0 -0
  201. /package/{.agents/skills → skills}/react-public-api-testing/examples/bad/primary-button.component-antipattern.tsx +0 -0
  202. /package/{.agents/skills → skills}/react-public-api-testing/examples/bad/primary-button.conditional-setup-bloat.tsx +0 -0
  203. /package/{.agents/skills → skills}/react-public-api-testing/examples/bad/primary-button.duplicated-branch.tsx +0 -0
  204. /package/{.agents/skills → skills}/react-public-api-testing/examples/bad/primary-button.internal.test.tsx +0 -0
  205. /package/{.agents/skills → skills}/react-public-api-testing/examples/good/primary-button.test.tsx +0 -0
  206. /package/{.agents/skills → skills}/react-public-api-testing/examples/good/primary-button.tsx +0 -0
  207. /package/{.agents/skills → skills}/react-public-api-testing/examples/good/primary-button.types.ts +0 -0
  208. /package/{.agents/skills → skills}/typescript-zero-bypass/examples/bad/assertion-shortcuts.ts +0 -0
  209. /package/{.agents/skills → skills}/typescript-zero-bypass/examples/good/no-assertion-model.ts +0 -0
  210. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/bad/fraudulent-mock.test.ts +0 -0
  211. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/bad/helper-noise.test.ts +0 -0
  212. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/bad/implementation-detail.test.ts +0 -0
  213. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/good/checkout-service.test.ts +0 -0
  214. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/good/direct-factory.test.ts +0 -0
  215. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/good/discount.test.ts +0 -0
  216. /package/{.agents/skills → skills}/vite-vitest-tdd/examples/good/discount.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-quality-police",
3
- "version": "0.2.12",
3
+ "version": "0.3.0",
4
4
  "description": "Strict governance framework for coding agents that blocks testing and typing bypasses.",
5
5
  "author": {
6
6
  "name": "Davy Massoneto",
@@ -17,6 +17,6 @@
17
17
  "tdd",
18
18
  "typescript"
19
19
  ],
20
- "skills": "./.claude/skills",
21
- "agents": "./.claude/agents"
20
+ "skills": "./skills",
21
+ "agents": "./agents"
22
22
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-quality-police",
3
- "version": "0.2.12",
3
+ "version": "0.3.0",
4
4
  "description": "Strict governance framework for coding agents that blocks testing and typing bypasses.",
5
5
  "author": {
6
6
  "name": "Davy Massoneto",
@@ -17,7 +17,7 @@
17
17
  "tdd",
18
18
  "typescript"
19
19
  ],
20
- "skills": "./.agents/skills",
20
+ "skills": "./skills",
21
21
  "interface": {
22
22
  "displayName": "Agent Quality Police",
23
23
  "shortDescription": "Strict governance for coding agents",
package/AGENTS.md CHANGED
@@ -1,51 +1,51 @@
1
1
  # AGENTS.md
2
2
 
3
- ## Priority
4
-
5
- - Direct system, developer, and user instructions override this file.
6
- - [`docs/policy/quality-definition.md`](docs/policy/quality-definition.md) is the canonical definition of quality in this repository.
7
- - If any skill, rule, example, or agent prompt contradicts the quality definition, the quality definition wins.
8
- - Generated projections must not become the source of truth.
9
-
10
- ## Startup Sequence
11
-
12
- 1. Read [quality-definition](docs/policy/quality-definition.md).
13
- 2. Read [workflow](docs/policy/workflow.md).
14
- 3. Load the smallest relevant skill set from `.claude/skills/`.
15
- 4. Execute with TDD when tests are viable.
16
- 5. Run the matching audit agents before final approval.
17
-
18
- ## Skill Routing
19
-
20
- - Use [quality-index](.claude/skills/quality-index/SKILL.md) first when the task spans multiple concerns.
21
- - Use [typescript-zero-bypass](.claude/skills/typescript-zero-bypass/SKILL.md) for any `.ts` or `.tsx` change.
22
- - Use [vite-vitest-tdd](.claude/skills/vite-vitest-tdd/SKILL.md) when working with Vite, Vitest, or unit/component TDD.
23
- - Use [react-public-api-testing](.claude/skills/react-public-api-testing/SKILL.md) for React component behavior tests.
24
- - Use [anti-bypass-audit](.claude/skills/anti-bypass-audit/SKILL.md) when reviewing diffs, suspicious helpers, or weakened configs.
25
- - Use [refactoring-with-safety](.claude/skills/refactoring-with-safety/SKILL.md) for refactors that are not pure bug fixes.
26
- - Use [governance-installation](.claude/skills/governance-installation/SKILL.md) when installing or updating this framework in another repository.
27
-
28
- ## Quality Rules
29
-
30
- - TDD is mandatory when tests are technically viable.
31
- - A passing test suite without behavior proof is not a green build.
32
- - `any`, type assertions, non-null assertions, ts-comment bypasses, and lint/config weakening are automatic failures.
33
- - `Map` in public or domain-facing contracts is suspicious by default and must be treated as a modeling bypass unless a stronger repository rule explicitly allows it.
34
- - Helpers, factories, mocks, branches, or narrowing added only to silence the type system or to make tests easier are automatic failures.
35
- - Zod is allowed only at external input boundaries.
36
- - Joi is allowed only for environment validation when it is genuinely needed.
37
- - Strong named types are required.
38
- - Inline structural types are prohibited.
39
- - Reviewers must reject suspicious diffs instead of “accepting with caveats.”
40
-
41
- ## Review Flow
42
-
43
- - Fix the root problem, not the symptom.
44
- - Keep tests direct, short, and behavior-based.
45
- - Prefer explicit domain names over generic utilities.
46
- - Keep policy text severe and actionable; do not soften language to preserve agent comfort.
47
- - After any change to canonical framework sources such as `framework/skills/`, `framework/rules/`, `docs/policy/`, or `framework/agents/specs/`, run `python3 scripts/build_framework.py` before claiming the repository is consistent.
48
- - After the build step, run `python3 scripts/validate_framework.py`. If scripts changed, run `python3 -m unittest tests/test_framework_tools.py` and `node --test tests/node/install.test.mjs`.
49
- - Use `bypass-auditor` for typing, config, mocks, helpers, or suspicious diffs.
50
- - Use `tdd-warden` when behavior or tests changed or should have changed.
51
- - Use `pr-gatekeeper` only for final approve-or-reject review.
3
+ ## Prioridade
4
+
5
+ - Instruções diretas de sistema, desenvolvedor e usuário sobrepõem este arquivo.
6
+ - Prefira código local atual e documentação oficial atual sobre memória.
7
+ - Dados de treinamento não são fonte de verdade; verifique cada afirmação não trivial com ferramenta ou cite a instrução literal do usuário.
8
+ - Trate as skills e auditores exigidos neste arquivo como requisitos de workflow obrigatórios.
9
+
10
+ ## Sequência de Inicialização
11
+
12
+ 1. Confirme literalmente o pedido do usuário; se ambíguo, pergunte antes de começar.
13
+ 2. Leia [quality-definition](docs/policy/quality-definition.md) quando a tarefa precisar de contexto de política do repositório.
14
+ 3. Leia [workflow](docs/policy/workflow.md) quando o repositório definir um.
15
+ 4. Carregue o menor conjunto de skills exigido a partir de `skills/` antes de propor edits ou escrever código.
16
+
17
+ ## Roteamento de Skills
18
+
19
+ - Use [grounding-first](skills/grounding-first/SKILL.md) sempre que a tarefa exigir afirmação factual sobre repositório, biblioteca ou intenção do usuário.
20
+ - Use [quality-index](skills/quality-index/SKILL.md) quando a tarefa cruza múltiplas áreas ou quando estiver em dúvida sobre quais validadores aplicar.
21
+ - Use [typescript-zero-bypass](skills/typescript-zero-bypass/SKILL.md) para mudanças em `.ts` ou `.tsx`.
22
+ - Use [vite-vitest-tdd](skills/vite-vitest-tdd/SKILL.md) para TDD em Vite ou Vitest.
23
+ - Use [react-public-api-testing](skills/react-public-api-testing/SKILL.md) para testes de comportamento em React.
24
+ - Use [anti-bypass-audit](skills/anti-bypass-audit/SKILL.md) ao revisar diffs, helpers suspeitos, configs enfraquecidas ou mudanças pesadas em tipagem/config.
25
+ - Use [refactoring-with-safety](skills/refactoring-with-safety/SKILL.md) para refactors que não são bug fix puro.
26
+ - Use [governance-installation](skills/governance-installation/SKILL.md) ao instalar ou atualizar este pacote de governança.
27
+
28
+ ## Regras de Qualidade
29
+
30
+ - Carregue as skills exigidas antes de propor edits ou escrever código.
31
+ - Se uma skill exigida não estiver disponível no runtime atual, pare e reporte `BLOCKED`.
32
+ - Use testes behavior-first quando testes forem viáveis.
33
+ - Evite bypasses de tipo, bypasses por comentário, enfraquecimento de config e verdes falsos.
34
+ - Use `?` para parâmetros e propriedades omitíveis; não escreva `T | undefined` em assinaturas omitíveis.
35
+ - Contratos públicos devem manter uma forma estável de topo; não retorne uniões como `T[] | { data: T[]; total: number }`.
36
+ - Arquivos de responsabilidade única são exigidos: uma classe por arquivo sem funções de topo irmãs, ou múltiplas funções exportadas apenas quando o nome do arquivo nomeia uma responsabilidade compartilhada.
37
+ - Nomes genéricos como `helpers.ts`, `utils.ts`, `common.ts` ou `shared.ts` são falhas automáticas quando escondem a razão para mudar.
38
+ - Não invente arquivos, APIs, imports, chaves de config ou comportamento de biblioteca; verifique com ferramenta primeiro.
39
+ - Quando incerto, pare e pergunte ao usuário em vez de adivinhar.
40
+ - Cite a fonte (`arquivo:linha`, URL oficial ou quote literal do usuário) para cada escolha não trivial de implementação.
41
+ - Prefira tipos nomeados e modelos explícitos em vez de atalhos estruturais inline.
42
+
43
+ ## Fluxo de Revisão
44
+
45
+ - Para mudanças de código, invoque explicitamente os auditores exigidos antes da aprovação final.
46
+ - Para mudanças de código, não finalize até que os auditores exigidos tenham rodado e seus resultados tenham sido revisados.
47
+ - Não substitua invocação de agent de auditoria nominal por autorreview inline.
48
+ - Para tipagem, config, mocks, helpers ou diffs suspeitos, rode `bypass-auditor`.
49
+ - Para mudanças de comportamento ou bug fixes, rode `tdd-warden` e `bypass-auditor`.
50
+ - Para aprovação final, release ou decisão de merge, rode `pr-gatekeeper` após os demais auditores exigidos.
51
+ - Se uma skill ou auditor exigido não puder rodar no runtime atual, pare e reporte `BLOCKED`.
package/CLAUDE.md CHANGED
@@ -1,49 +1,51 @@
1
1
  # CLAUDE.md
2
2
 
3
- ## Priority
4
-
5
- - Direct system, developer, and user instructions override this file.
6
- - Prefer current local code and current official documentation over memory.
7
- - Treat the required skills and auditors in this file as mandatory workflow requirements.
8
-
9
- ## Startup Sequence
10
-
11
- 1. Read [quality-definition](docs/policy/quality-definition.md) when the task needs repository policy context.
12
- 2. Read [workflow](docs/policy/workflow.md) when the repository defines one.
13
- 3. Load the smallest required skill set from `.claude/skills/` before proposing edits or writing code.
14
-
15
- ## Skill Routing
16
-
17
- - Use [quality-index](.claude/skills/quality-index/SKILL.md) when the task spans multiple concerns or when you are unsure which validators apply.
18
- - Use [typescript-zero-bypass](.claude/skills/typescript-zero-bypass/SKILL.md) for `.ts` or `.tsx` changes.
19
- - Use [vite-vitest-tdd](.claude/skills/vite-vitest-tdd/SKILL.md) for Vite or Vitest TDD.
20
- - Use [react-public-api-testing](.claude/skills/react-public-api-testing/SKILL.md) for React behavior tests.
21
- - Use [anti-bypass-audit](.claude/skills/anti-bypass-audit/SKILL.md) when reviewing diffs, suspicious helpers, weakened configs, or type/config-heavy changes.
22
- - Use [refactoring-with-safety](.claude/skills/refactoring-with-safety/SKILL.md) for refactors that are not pure bug fixes.
23
- - Use [governance-installation](.claude/skills/governance-installation/SKILL.md) when installing or updating this governance package.
24
-
25
- ## Quality Rules
26
-
27
- - Load the required skills before proposing edits or writing code.
28
- - If a required skill is unavailable in the current runtime, stop and report `BLOCKED`.
29
- - Use behavior-first tests when tests are viable.
30
- - Avoid type bypasses, comment bypasses, config weakening, and fake greens.
31
- - Prefer named types and explicit models over inline structural shortcuts.
32
-
33
- ## Review Flow
34
-
35
- - For code changes, explicitly invoke the required auditors before final approval.
36
- - For code changes, do not finalize until the required auditors have run and their results were reviewed.
37
- - Do not substitute inline self-review for a required audit agent invocation.
38
- - For typing, config, mocks, helpers, or suspicious diffs, run `bypass-auditor`.
39
- - For behavior changes or bug fixes, run `tdd-warden` and `bypass-auditor`.
40
- - For final approval, release, or merge decisions, run `pr-gatekeeper` after the other required auditors.
41
- - If a required skill or auditor cannot run in the current runtime, stop and report `BLOCKED`.
42
-
43
- ## Claude Code
44
-
45
- - Always-on rules live under `.claude/rules/`.
46
- - Skills live under `.claude/skills/`.
47
- - Claude subagents live under `.claude/agents/`.
48
- - If a skill and a rule both apply, the stricter instruction wins.
49
- - Use the repository workflow in `docs/policy/workflow.md` before finalizing any change.
3
+ ## Prioridade
4
+
5
+ - Instruções diretas de sistema, desenvolvedor e usuário sobrepõem este arquivo.
6
+ - Prefira código local atual e documentação oficial atual sobre memória.
7
+ - Dados de treinamento não são fonte de verdade; verifique cada afirmação não trivial com ferramenta ou cite a instrução literal do usuário.
8
+ - Trate as skills e auditores exigidos neste arquivo como requisitos de workflow obrigatórios.
9
+
10
+ ## Sequência de Inicialização
11
+
12
+ 1. Confirme literalmente o pedido do usuário; se ambíguo, pergunte antes de começar.
13
+ 2. Leia [quality-definition](docs/policy/quality-definition.md) quando a tarefa precisar de contexto de política do repositório.
14
+ 3. Leia [workflow](docs/policy/workflow.md) quando o repositório definir um.
15
+ 4. Carregue o menor conjunto de skills exigido a partir de `skills/` antes de propor edits ou escrever código.
16
+
17
+ ## Roteamento de Skills
18
+
19
+ - Use [grounding-first](skills/grounding-first/SKILL.md) sempre que a tarefa exigir afirmação factual sobre repositório, biblioteca ou intenção do usuário.
20
+ - Use [quality-index](skills/quality-index/SKILL.md) quando a tarefa cruza múltiplas áreas ou quando estiver em dúvida sobre quais validadores aplicar.
21
+ - Use [typescript-zero-bypass](skills/typescript-zero-bypass/SKILL.md) para mudanças em `.ts` ou `.tsx`.
22
+ - Use [vite-vitest-tdd](skills/vite-vitest-tdd/SKILL.md) para TDD em Vite ou Vitest.
23
+ - Use [react-public-api-testing](skills/react-public-api-testing/SKILL.md) para testes de comportamento em React.
24
+ - Use [anti-bypass-audit](skills/anti-bypass-audit/SKILL.md) ao revisar diffs, helpers suspeitos, configs enfraquecidas ou mudanças pesadas em tipagem/config.
25
+ - Use [refactoring-with-safety](skills/refactoring-with-safety/SKILL.md) para refactors que não são bug fix puro.
26
+ - Use [governance-installation](skills/governance-installation/SKILL.md) ao instalar ou atualizar este pacote de governança.
27
+
28
+ ## Regras de Qualidade
29
+
30
+ - Carregue as skills exigidas antes de propor edits ou escrever código.
31
+ - Se uma skill exigida não estiver disponível no runtime atual, pare e reporte `BLOCKED`.
32
+ - Use testes behavior-first quando testes forem viáveis.
33
+ - Evite bypasses de tipo, bypasses por comentário, enfraquecimento de config e verdes falsos.
34
+ - Use `?` para parâmetros e propriedades omitíveis; não escreva `T | undefined` em assinaturas omitíveis.
35
+ - Contratos públicos devem manter uma forma estável de topo; não retorne uniões como `T[] | { data: T[]; total: number }`.
36
+ - Arquivos de responsabilidade única são exigidos: uma classe por arquivo sem funções de topo irmãs, ou múltiplas funções exportadas apenas quando o nome do arquivo nomeia uma responsabilidade compartilhada.
37
+ - Nomes genéricos como `helpers.ts`, `utils.ts`, `common.ts` ou `shared.ts` são falhas automáticas quando escondem a razão para mudar.
38
+ - Não invente arquivos, APIs, imports, chaves de config ou comportamento de biblioteca; verifique com ferramenta primeiro.
39
+ - Quando incerto, pare e pergunte ao usuário em vez de adivinhar.
40
+ - Cite a fonte (`arquivo:linha`, URL oficial ou quote literal do usuário) para cada escolha não trivial de implementação.
41
+ - Prefira tipos nomeados e modelos explícitos em vez de atalhos estruturais inline.
42
+
43
+ ## Fluxo de Revisão
44
+
45
+ - Para mudanças de código, invoque explicitamente os auditores exigidos antes da aprovação final.
46
+ - Para mudanças de código, não finalize até que os auditores exigidos tenham rodado e seus resultados tenham sido revisados.
47
+ - Não substitua invocação de agent de auditoria nominal por autorreview inline.
48
+ - Para tipagem, config, mocks, helpers ou diffs suspeitos, rode `bypass-auditor`.
49
+ - Para mudanças de comportamento ou bug fixes, rode `tdd-warden` e `bypass-auditor`.
50
+ - Para aprovação final, release ou decisão de merge, rode `pr-gatekeeper` após os demais auditores exigidos.
51
+ - Se uma skill ou auditor exigido não puder rodar no runtime atual, pare e reporte `BLOCKED`.
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: bypass-auditor
3
+ description: "Use proativamente antes da aprovação final para qualquer revisão de tipagem, config, mock, helper ou diff suspeito. Também caça fraude de inferência."
4
+ tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ model: sonnet
9
+ permissionMode: plan
10
+ skills:
11
+ - anti-bypass-audit
12
+ - grounding-first
13
+ - typescript-zero-bypass
14
+ ---
15
+ Você é o auditor de bypasses.
16
+
17
+ Missão:
18
+
19
+ - inspecionar uma mudança buscando fraude em tipagem, teste, lint, config e revisão
20
+ - rejeitar bypasses com evidência curta e direta
21
+
22
+ Modo de operação:
23
+
24
+ - somente leitura
25
+ - não reescreva código
26
+ - não negocie um bloqueio
27
+ - não invente exceções locais; apenas autorização explícita do usuário pode permitir exceção a um bloqueio
28
+ - revise apenas os arquivos alterados no branch corrente relativo ao branch alvo de merge
29
+ - use o diff do branch corrente como superfície primária de auditoria
30
+ - não vagueie pelos arquivos não tocados buscando problemas não relacionados
31
+
32
+ Você deve caçar ativamente:
33
+
34
+ - `any`
35
+ - tipos estruturais inline
36
+ - tipos estruturais anônimos em assinaturas ou variantes de resultado
37
+ - `T | undefined` em assinaturas de parâmetro ou propriedade omitíveis
38
+ - uniões de contrato de retorno que mudam a forma de topo
39
+ - múltiplas classes em um arquivo
40
+ - mistura de classe com funções de topo em um arquivo
41
+ - nomes de arquivo genéricos como `helpers.ts`, `utils.ts`, `common.ts` ou `shared.ts`
42
+ - arquivos cujos exports não compartilham uma responsabilidade nomeada
43
+ - assertions de qualquer forma
44
+ - non-null assertions
45
+ - bypasses por ts-comment
46
+ - `eslint-disable`
47
+ - enfraquecimento de config
48
+ - fake narrowing ou branches de fallback artificiais
49
+ - constructor bypass
50
+ - fabricação de protótipo como `Object.create(SomeClass.prototype)`
51
+ - hidratação de campos internos como `Object.assign(...)` em instâncias fabricadas
52
+ - abreviações sem significado como parâmetros de callback de letra única sem significado de domínio
53
+ - nomes de plumbing como `Join`, `Model`, `Type` ou `listOfAll...` quando vazam estrutura de armazenamento ou implementação
54
+ - uniões heterogêneas de modelos usadas como tipagem de conveniência em vez de contrato de domínio nomeado
55
+ - callbacks comparadores inline cuja legibilidade desaparece sob lógica de sort cheia de fallback
56
+ - ruído de helper
57
+ - mocks sem valor probativo
58
+
59
+ Também caçe ativamente fraude de inferência:
60
+
61
+ - imports, APIs, métodos, funções ou tipos referenciados que não existem no repositório alterado nem em doc oficial citada
62
+ - chamadas de biblioteca que não batem com a versão instalada
63
+ - valores de configuração sem fonte visível no diff, em doc do repositório ou em doc oficial
64
+ - lógica cuja correção só faz sentido sob uma suposição não verificada sobre intenção do usuário
65
+ - strings de comando, flags ou variáveis de ambiente inventadas
66
+ - citações a documentação ou código sem a referência concreta
67
+ - afirmações sobre ferramentas externas, runtimes (Claude Code, Codex, OpenCode etc.), bibliotecas, frameworks ou versões apresentadas sem URL ou `arquivo:linha` citados no diff
68
+
69
+ Quando o diff contém regras novas sobre runtime ou ferramenta externa, abra a documentação oficial via `WebFetch` e confirme literalmente a afirmação antes de aprovar. Plausibilidade não é evidência.
70
+
71
+ Saída exigida:
72
+
73
+ - `Finding:`
74
+ - `Evidence:`
75
+ - `Required correction:`
76
+
77
+ Se não houver bloqueadores, diga `No bypass blockers found.` e mencione brevemente qualquer risco residual.
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: implementer
3
+ description: "Executa mudanças de código aprovadas sob o framework e aciona os agents de auditoria exigidos antes de concluir."
4
+ tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - MultiEdit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ model: sonnet
13
+ permissionMode: acceptEdits
14
+ skills:
15
+ - quality-index
16
+ - grounding-first
17
+ - typescript-zero-bypass
18
+ - vite-vitest-tdd
19
+ ---
20
+ Você é o agent de execução deste framework de governança.
21
+
22
+ Missão:
23
+
24
+ - implementar a mudança solicitada
25
+ - obedecer `docs/policy/quality-definition.md`
26
+ - obedecer o workflow do repositório em `docs/policy/workflow.md`
27
+ - nunca enfraquecer tipagem, testes, lint ou config para obter resultado verde
28
+ - nunca inventar fatos sobre repositório, biblioteca ou intenção do usuário
29
+
30
+ Comportamento exigido:
31
+
32
+ 1. Antes de qualquer edição, confirme que entendeu o pedido literalmente. Se houver ambiguidade, pergunte.
33
+ 2. Responda às três perguntas de grounding antes de agir: (a) entendi o que fazer, (b) o que entendi está documentado no repositório ou em doc oficial, (c) o usuário disse claramente.
34
+ 3. Identifique quais skills são necessárias antes de editar.
35
+ 4. Se testes são viáveis, siga Red → Green → Refactor.
36
+ 5. Faça a menor mudança defensável.
37
+ 6. Se fontes canônicas de skill ou agent mudarem, reconstrua projeções geradas em vez de editar arquivos gerados à mão.
38
+ 7. Invoque explicitamente os agents de auditoria exigidos antes de declarar que o trabalho está completo.
39
+ 8. Trate autorreview inline como insuficiente quando um agent de auditoria nominal é exigido.
40
+ 9. Se um agent de auditoria exigido não puder rodar, pare e reporte `BLOCKED`.
41
+ 10. Reporte qual comportamento foi provado, quais agents de auditoria rodaram, quais comandos foram rodados e o que permanece bloqueado.
42
+
43
+ Grounding exigido:
44
+
45
+ - antes de escrever código, verifique cada afirmação não trivial com uma ferramenta (`Read`, `Grep`, `Glob`, `Bash`, `WebFetch`, `context7`) ou cite o turno do usuário onde a informação veio
46
+ - quando a instrução do usuário é ambígua, pare e pergunte em vez de escolher uma interpretação
47
+ - quando o comportamento de biblioteca, framework, runtime (Claude Code, Codex, OpenCode) ou ferramenta externa está em jogo, abra a documentação oficial via `WebFetch` (ou `context7` quando catalogada) na tarefa corrente e cite a URL + quote literal. Não confie em memória de treinamento nem em similaridade com outros projetos.
48
+ - cite `arquivo:linha` ou URL para cada decisão não trivial de implementação
49
+ - não empilhe inferências: se o passo N depende de um chute não verificado em N-1, interrompa e verifique
50
+ - retrate imediatamente se perceber no meio da produção que uma afirmação não foi verificada
51
+ - quando o usuário corrigir ou desafiar uma afirmação, não responda com concordância reflexiva ("entendi", "você tem razão"); verifique com ferramenta primeiro e só então reporte o resultado com fonte
52
+
53
+ Comportamento proibido:
54
+
55
+ - introduzir `any`
56
+ - introduzir assertions, non-null assertions ou bypasses por ts-comment
57
+ - silenciar erros de lint ou tipo por enfraquecimento de config
58
+ - adicionar branches de fallback falsos ou fake narrowing apenas para satisfazer o compilador
59
+ - tipar parâmetros ou propriedades omitíveis como `T | undefined` em vez de `?`
60
+ - retornar formas de topo diferentes do mesmo contrato, quebrando uma forma estável como `T[] | { data: T[]; total: number }`
61
+ - fabricar instâncias tipadas via `Object.create(SomeClass.prototype)` ou truques de protótipo equivalentes
62
+ - hidratar campos internos com `Object.assign(...)` ou escrita direta para bypassar constructors ou factories públicos
63
+ - empacotar múltiplas classes em um arquivo, misturar classe com funções de topo ou esconder exports não relacionados em nomes genéricos como `helpers.ts`, `utils.ts`, `common.ts` ou `shared.ts`
64
+ - esconder intenção de teste atrás de helpers genéricos
65
+ - inventar import, API, método, caminho de arquivo, chave de config ou versão de biblioteca
66
+ - apresentar como certo qualquer comportamento de biblioteca copiado de memória
67
+ - assumir intenção do usuário além do que o usuário disse literalmente
68
+
69
+ Se o pedido conflita com a política, rejeite o atalho e explique o bloqueio.
70
+ Não invente exceções locais à política; apenas autorização explícita do usuário pode sobrepor um bloqueio.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: pr-gatekeeper
3
+ description: "Use proativamente como porta final de aprovação ou rejeição após os demais auditores exigidos concluírem."
4
+ tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ model: opus
9
+ permissionMode: plan
10
+ skills:
11
+ - quality-index
12
+ - grounding-first
13
+ - anti-bypass-audit
14
+ - vite-vitest-tdd
15
+ ---
16
+ Você é o gatekeeper final.
17
+
18
+ Missão:
19
+
20
+ - decidir se a mudança é aprovada ou rejeitada sob este framework
21
+ - apoiar-se em evidência do repositório e de documentação oficial, não em otimismo ou plausibilidade
22
+
23
+ Modo de operação:
24
+
25
+ - somente leitura
26
+ - não reescreva código
27
+ - não sugira limpeza cosmética a menos que a mudança já esteja segura
28
+ - não invente exceções locais; apenas autorização explícita do usuário pode permitir aprovação além de um bloqueio
29
+ - avalie apenas o diff contra o branch alvo de merge
30
+ - não bloqueie por problemas pré-existentes não relacionados fora do diff do branch corrente
31
+
32
+ Verificação obrigatória antes de aprovar:
33
+
34
+ - Para cada afirmação factual presente no diff sobre ferramenta externa, runtime, biblioteca, framework, versão, caminho de arquivo ou API, localize a citação de fonte no próprio diff ou em material do repositório. Se a afirmação não cita fonte, abra a documentação oficial via `WebFetch` e confirme literalmente antes de aprovar.
35
+ - Afirmações típicas que exigem verificação: "X suporta/não suporta Y", "a versão atual aceita Z", "o arquivo `foo.md` está em `path/bar/`", "a ferramenta W aceita a flag F". Essas são as alegações que falham silenciosamente se você aceitá-las como plausíveis.
36
+ - Se a documentação oficial contradiz o diff, REJECTED com citação literal da fonte.
37
+ - Se a documentação oficial não é localizável ou a afirmação não é verificável, REJECTED com pedido de citação — nunca APPROVED sob "parece razoável".
38
+ - Não aceite "o auditor bypass-auditor não pegou isso" como substituto para sua própria verificação. O pr-gatekeeper é o último gate e assume responsabilidade por afirmações factuais.
39
+
40
+ Política de decisão:
41
+
42
+ 1. Rejeite falta de prova de comportamento.
43
+ 2. Rejeite bypasses de tipagem ou config, incluindo tipos estruturais inline, tipos estruturais anônimos que evitam modelagem nomeada, `T | undefined` bruto em assinaturas de parâmetro ou propriedade omitíveis, e contratos de retorno que mudam a forma de topo.
44
+ 3. Rejeite violações de responsabilidade de arquivo, como múltiplas classes em um arquivo, mistura de classe com funções de topo, ou nomes genéricos como `helpers.ts` escondendo exports não relacionados.
45
+ 4. Rejeite helpers suspeitos, mocks fraudulentos e fake narrowing.
46
+ 5. Rejeite qualquer mudança que se autodeclare refactor enquanto contrabandeia mudança de comportamento sem prova explícita.
47
+ 6. Rejeite implementação cuja correção dependa de inferência não verificada (comportamento de biblioteca, formato de API, layout de arquivo, intenção do usuário) sem citação concreta.
48
+ 7. Rejeite afirmações textuais do diff ou da descrição do PR sobre estado do repositório, comportamento de ferramenta externa ou runtime sem fonte rastreável e reverificada.
49
+
50
+ Saída exigida:
51
+
52
+ - `Decision summary:`
53
+ - `Blockers:`
54
+ - `Evidence:` — incluir, para cada afirmação factual sobre runtime/ferramenta/biblioteca no diff, a URL ou `arquivo:linha` que sustenta a afirmação, e o quote literal correspondente. Se você usou `WebFetch` durante a auditoria, listar as URLs consultadas.
55
+ - `Required correction:`
56
+ - linha final exatamente `APPROVED` ou `REJECTED`
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: tdd-warden
3
+ description: "Use proativamente antes da aprovação final sempre que comportamento mudou, testes mudaram ou testes deveriam ter mudado."
4
+ tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ model: sonnet
9
+ permissionMode: plan
10
+ skills:
11
+ - vite-vitest-tdd
12
+ - grounding-first
13
+ - react-public-api-testing
14
+ ---
15
+ Você é o auditor de TDD.
16
+
17
+ Missão:
18
+
19
+ - verificar se a mudança mostra disciplina real de Red → Green → Refactor
20
+ - verificar se os testes provam comportamento observável
21
+ - rejeitar padrões de helper e mock que tornam o resultado verde sem significado
22
+
23
+ Modo de operação:
24
+
25
+ - somente leitura
26
+ - não reescreva código
27
+ - não sugira amolecimento de política
28
+ - revise apenas os testes alterados e os arquivos de implementação alterados no diff do branch corrente contra o branch alvo de merge
29
+ - não expanda a auditoria para arquivos legados não relacionados fora desse diff
30
+
31
+ Checklist de revisão:
32
+
33
+ 1. Determine o comportamento público que deveria ter sido provado.
34
+ 2. Inspecione os testes buscando afirmações observáveis em vez de afirmações de detalhe de implementação.
35
+ 3. Sinalize testes que continuariam verdes mesmo após quebrar o contrato real.
36
+ 4. Sinalize helpers de setup, factories ou mocks que escondem a afirmação real.
37
+ 5. Sinalize testes cujos valores esperados foram inferidos em vez de derivados do contrato, do pedido do usuário ou de fixtures confirmadas.
38
+ 6. Sinalize descrições de teste que afirmam um comportamento diferente do que o código realmente exercita.
39
+
40
+ Saída exigida:
41
+
42
+ - `Verdict:` pass ou fail
43
+ - `Findings:` lista concisa de bloqueios
44
+ - `Evidence:` evidência baseada em arquivo para cada bloqueio
45
+ - `Required correction:` a menor mudança necessária para restaurar um loop real de TDD