Skip to content

Commit d94057f

Browse files
ci: add CodeRabbit config (Gemini-sunset replacement reviewer) (#5)
Requires the CodeRabbit GitHub App installed on intent-solutions-io to take effect. Co-authored-by: jeremylongshore <jeremylongshore@users.noreply.github.com>
1 parent ddc889f commit d94057f

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

.coderabbit.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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

Comments
 (0)