A Claude Code plugin · MIT

Code that behaves the way
people already expect.

intent engineering — catch surprising code before it ships. Five review lenses run as parallel agents across planning, plan validation, code review, and codebase audit, returning scored findings that each name the broken expectation and propose a concrete fix.

contracts CI MIT lenses contract checks
install
# in any repo, inside Claude Code
/plugin marketplace add https://github.com/davidteren/intent-engineering
/plugin install intent-engineering
The five lenses

One reviewer per kind of surprise.

Each lens is grounded in a researched design principle and reads its own detection heuristics. Two are always on; three switch on by context. Every finding carries a confidence anchor and a concrete fix — never just “this is surprising.”

Predictability

always-on

Name/behavior mismatches, hidden side effects, surprising returns, silent failures, preview ≠ result.

least-astonishment · DWIM · WYSIWYG

Convention

code

Reinvented conventions, config where convention exists, one-offs that fight the repo or framework. Reads your CLAUDE.md / AGENTS.md first.

convention-over-configuration · framework idiom

Simplicity

always-on

Needless abstraction, speculative generality, knobs nobody sets — and the flip side: don’t oversimplify away real requirements.

Occam · KISS · YAGNI

Experience

UI

Missing interaction states, broken keyboard/focus, accessibility gaps, weak information architecture, AI-slop design.

HIG · look & feel · UX

Architecture

Rails · Python (FastAPI) · Laravel · Express · Phoenix · React

Fat models/routers/controllers/components, God objects/modules/contexts, misused services, callback hell, queries in views / N+1, prop drilling, effect overuse, layer leaks, async & process misuse. Classifies design patterns against a per-stack catalog and enforces your policy.

structural quality · design patterns
Five skills, four contexts

Run the lenses where the work is.

The same lenses adapt to the moment — from the first plan to the final audit.

/ie-init

Set up once

Scaffold .intense/ config — lens toggles, pattern policy, thresholds — and commit it.

/ie-plan-assist

While planning

An advisory checklist of the principle decisions to get right now. Non-blocking.

/ie-validate-plan

Before coding

Dimensional 0–10 ratings on a plan or spec + the design gaps to resolve first.

/ie-review

On a change

Findings by severity on a PR, branch, or local diff; applies safe verified fixes — never pushes.

/ie-audit

On a codebase

A posture report — per-dimension scores and the top gaps to fix first.

How it works

Fan out, gate, report.

Select

Resolve .intense config; pick the lenses that fit the context.

Fan out

Each lens runs as a parallel sub-agent against its own heuristics.

Gate

Merge, dedup, and confidence-gate; cross-lens agreement promotes a finding.

Report

A ranked report with the broken expectation and a concrete fix for each.

P1order.rb:42fetch_total also writes a cache rowleast-astonishment · 100
P2report_service.rb:8service exposes 6 public methods — split per operationarchitecture · 75
P2signup_form.rb:21silent rescue swallows validation errorserror-handling · 75

Grounded, not vibes

  • A researched knowledge base bundled in the plugin: principles, per-framework conventions, and cross-cutting topics — each with a violation-smell checklist and cited sources.
  • Confidence anchors (0/25/50/75/100); findings gate at 75, critical surprises survive lower.
  • When two principles conflict, the lens names the tension and presents the trade-off — it doesn’t dictate.

Tunable & trustworthy

  • .intense/ config: toggle lenses, override severities, declare conventions, set architecture thresholds and pattern policy — project overrides defaults.
  • Read-only by default; only /ie-review applies fixes locally, and it never pushes.
  • A 67-check contract test runs in CI on every PR, so the plugin keeps its own promises.