Skip to content

v0.2.0: rules that follow the file, and a filtered codebase map

Choose a tag to compare

@EliaAlberti EliaAlberti released this 18 Sep 11:00
· 15 commits to main since this release

Everything that 0.1.0 listed under "Later" is now built.

Added

  • File-triggered rules. Before Claude changes a file with Edit, Write, MultiEdit or NotebookEdit, Jev judges the file's path against the rules not yet given this turn. Only the project-relative path leaves the machine. Answers are cached per file for the session, a rule is never repeated within a turn, and JEV_RULES_EDITS=0 turns the check off.
  • Codebase map filtering. Documents in .claude/jev-map/, and Eigenwise codebase-mapper's .claude/.codebase-info/ when present, are judged in the same single call as the rules. Rules take the output budget first; a picked document that does not fit becomes a pointer to its file. JEV_RULES_MAP=0 turns it off.
  • Rule subfolders. .claude/jev-rules/frontend/react.md becomes the rule frontend/react.
  • Per-rule criteria. Optional applies and does_not_apply lines sharpen a description that keeps catching the wrong prompts.
  • One retry on rate limits (429 or 529), inside the same overall timeout.

Changed

  • When nothing applies, nothing is injected (0.1.0 injected an empty heading).
  • JEV_RULES_TIMEOUT_MS now covers the whole call, retry included.
  • Debug log lines gained event=, attempts=, file=, cached= and map: entries.
  • 88 offline tests, up from 30.

Verified

Real Claude Code sessions on v2.1.276: a checkout prompt got the payments rule (p=0.98) and the checkout map document (p=0.83) and nothing else. A deliberately vague prompt got nothing, then the edit to src/checkout/discount.ts brought the payments rule in (p=0.97) with the edit's result.

Upgrade

claude plugin marketplace update jev-rules
claude plugin update jev-rules@jev-rules

Restart Claude Code afterwards so the new PreToolUse hook is registered. No rule files need changing.

Full details in CHANGELOG.md.