|
| 1 | +# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json |
| 2 | +# |
| 3 | +# CodeRabbit — Intent Eval Platform. The workhorse code reviewer, replacing Gemini |
| 4 | +# Code Assist (consumer Gemini review ceases 2026-07-17). CodeQL still owns security |
| 5 | +# scanning (security-extended) — non-overlapping. The IEP review priorities live in |
| 6 | +# path_instructions below: the failure classes the corrective ISEDC (DR-085) and the |
| 7 | +# qualified-reviewer glance proved deterministic CI structurally cannot catch. |
| 8 | +# NOTE: requires the CodeRabbit GitHub App installed on the account/org. _generated/ |
| 9 | +# is intentionally NOT filtered out — three-way schema drift hides there. |
| 10 | +language: en-US |
| 11 | +reviews: |
| 12 | + profile: assertive |
| 13 | + request_changes_workflow: false |
| 14 | + high_level_summary: true |
| 15 | + poem: false |
| 16 | + review_status: true |
| 17 | + collapse_walkthrough: false |
| 18 | + auto_review: |
| 19 | + enabled: true |
| 20 | + drafts: false |
| 21 | + base_branches: |
| 22 | + - main |
| 23 | + path_filters: |
| 24 | + - "!**/dist/**" |
| 25 | + - "!**/node_modules/**" |
| 26 | + - "!**/coverage/**" |
| 27 | + - "!**/*.snap" |
| 28 | + - "!pnpm-lock.yaml" |
| 29 | + - "!**/*.lock" |
| 30 | + path_instructions: |
| 31 | + - path: "**/{schemas,src,python}/**" |
| 32 | + instructions: >- |
| 33 | + Intent Eval Platform kernel review. These artifacts ship in signed |
| 34 | + @intentsolutions/core entries that reach a transparency log — a wrong shape is |
| 35 | + a one-way door whose cheap-fix window closes at the next git tag. Flag, by |
| 36 | + priority: (1) three-way drift between a JSON Schema, its hand-written Zod |
| 37 | + validator, and its Pydantic model — required/optional/nullable posture must |
| 38 | + match EXACTLY in BOTH directions (optional-not-nullable AND required-but-nullable; |
| 39 | + datamodel-code-generator renders a required-nullable field as `T | None = None`, |
| 40 | + which wrongly makes the key omittable in Python while AJV/Zod require it). Verify |
| 41 | + against the schema `required` array, not the generated default. (2) Cross-artifact |
| 42 | + semantic drift — same-named fields with divergent type or meaning across two |
| 43 | + schemas (sha256:-prefixed vs bare hex between a reference and its referent; |
| 44 | + pre-edit vs post-edit), UNLESS it is a documented layer convention (entities use |
| 45 | + bare sha256, in-toto predicates use sha256:-prefixed). (3) A cross-field invariant |
| 46 | + stated in prose/$comment/Decision-Record but NOT enforced at all three layers |
| 47 | + (JSON-Schema if/then + Zod superRefine + Pydantic model_validator) — an unenforced |
| 48 | + invariant on a signed row is a falsified attestation waiting to be notarized. |
| 49 | + (4) Lineage that claims tamper-evidence but rests on a reassignable UUID instead |
| 50 | + of a content-hash chain. (5) A docblock claiming enforcement the code does not |
| 51 | + implement. (6) A non-additive change to a published shape (removed/retyped field, |
| 52 | + loosened constraint, widened closed enum) — those need a /v2 + Class-1 ISEDC. |
| 53 | + Never edit _generated/* to fix Python parity — use a models.py wrapper subclass. |
| 54 | + - path: "**/*.{sh,yml,yaml}" |
| 55 | + instructions: >- |
| 56 | + Flag detection/CI scripts that silently no-op — e.g. a regex with a leading |
| 57 | + slash that never matches root-relative `git diff --name-only` paths, or an |
| 58 | + advisory gate that can never fire. Flag unsafe bash array expansion under |
| 59 | + `set -u` (use `${ARR[@]+"${ARR[@]}"}`, not `"${ARR[@]:-}"`). |
| 60 | +chat: |
| 61 | + auto_reply: true |
0 commit comments