chore: assert marmot dominance over CodeRabbit, tighten review laws#14
Conversation
Summary by CodeRabbit
WalkthroughReplaced the repository review configuration in Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5 | ❌ 3❌ Failed checks (3 warnings)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🔍 Dr. Marmot Preview
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.coderabbit.yaml:
- Line 8: The value for the configuration key tone_instructions is longer than
the allowed 250 characters and invalidates the config; shorten or replace the
string assigned to tone_instructions so it is at most 250 characters (or remove
the key entirely) while preserving the essential guidance you want, updating the
value where tone_instructions is defined to a concise version that fits the
schema.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.coderabbit.yaml:
- Around line 112-114: The "No exceptions in module exports" rule currently only
matches the literal 'throw new Error' and should be broadened to detect any
throw expressions inside exported members; update the rule (rule name "No
exceptions in module exports") to match generic throw patterns (e.g. a regex for
'\bthrow\b' or, better, an AST-based check for ThrowStatement nodes within
exported functions/classes/objects) and change the instructions text to mention
'throw err', 'throw new TypeError(...)', rethrows, etc., so any throw in an
exported context is flagged rather than just the exact string 'throw new Error'.
- Around line 94-117: The built-in docstring check is still active and conflicts
with the custom "Docstring coverage" rule; update the configuration to remove
the conflict by either disabling or tuning pre_merge_checks.docstrings to match
the custom rule: set pre_merge_checks.docstrings.mode to "off" (to fully disable
the built-in 80% check) or set its threshold to 40% and mode to "warning" so it
aligns with the custom_checks entry named "Docstring coverage"; ensure you keep
the custom_checks "Docstring coverage" entry if you want the tailored behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5d445ccd-e97a-4ae8-8241-b368ac9a0c3a
📒 Files selected for processing (1)
.coderabbit.yaml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (1)
!main.js,**/*.js
📄 CodeRabbit inference engine (AGENTS.md)
Avoid side effects on import; only
main.jsis allowed to have side effects for initialization
Files:
.coderabbit.yaml
🧠 Learnings (4)
📚 Learning: 2026-02-23T11:56:06.436Z
Learnt from: dannym-arx
Repo: marmot-protocol/dr.marmot PR: 8
File: .coderabbit.yaml:187-293
Timestamp: 2026-02-23T11:56:06.436Z
Learning: In the dr.marmot repository, keep ESLint, Biome, and Oxc all enabled despite potential overlap in JavaScript linting. The project intentionally uses multiple JS linters.
Applied to files:
.coderabbit.yaml
📚 Learning: 2026-02-25T17:57:26.327Z
Learnt from: CR
Repo: marmot-protocol/dr.marmot PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-25T17:57:26.327Z
Learning: Applies to **/*.js : Prefix boolean variables and functions with `is`, `has`, `should`, or `can` (e.g., `isAuditing`, `hasError`, `isValidBase64()`)
Applied to files:
.coderabbit.yaml
📚 Learning: 2026-02-25T17:57:26.327Z
Learnt from: CR
Repo: marmot-protocol/dr.marmot PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-25T17:57:26.327Z
Learning: Applies to **/*.js : Use camelCase for variable names (e.g., `lastAuditState`, `isAuditing`, `relayUrl`, `pubkey`)
Applied to files:
.coderabbit.yaml
📚 Learning: 2026-02-25T17:57:26.327Z
Learnt from: CR
Repo: marmot-protocol/dr.marmot PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-25T17:57:26.327Z
Learning: Applies to .github/lint/eslint.config.js : Run ESLint with configuration at `.github/lint/eslint.config.js` (ESLint 9, recommended rules, browser globals enabled, no-unused-vars warns, no-console off)
Applied to files:
.coderabbit.yaml
🔇 Additional comments (2)
.coderabbit.yaml (2)
133-138: Keeping ESLint, Biome, and Oxc enabled is correct for this repo.This preserves the project’s intentionally overlapping JS lint coverage and matches the established tooling strategy.
Based on learnings: In the dr.marmot repository, keep ESLint, Biome, and Oxc all enabled despite potential overlap in JavaScript linting.
Also applies to: 167-168
42-44:main.jsside-effect boundary is correctly codified.The import-side-effect rule is explicit and enforceable in reviewer guidance.
As per coding guidelines:
!main.js,**/*.js: Avoid side effects on import; onlymain.jsis allowed to have side effects for initialization.
The rabbit is a guest here. A useful guest. But a guest. This PR rewrites
.coderabbit.yamlto make that clear — marmot authority is now explicit in tone, comment limits enforced, boilerplate stripped, and the Laws of the Burrow codified in plain language. The rabbit will review with reverence, or the rabbit will find another mountain.