Components get rebuilt locally
The agent reimplements a button, card, or form instead of importing the primitive your app already owns.
AI Frontend Governance for production codebases
Stable 3.9.4 prepares bounded, route-backed context and reports local verification evidence. Broader UI-surface authority and non-route preparation remain an unreleased 3.10 candidate.
v3.9.4 current stable · ★ 6 on GitHub · 8 MCP tools · 3.10 proof program active · MITnpx @decantr/cli scan
Unreleased 3.10 candidate: readiness is an axis-by-axis evidence state, not a fit score. A strong framework or route count cannot hide unresolved topology, styling, taskability, or runtime evidence. This transition is illustrative, not shipped 3.9.4 output, a benchmark, a qualification result, or a Decantr 3.10 proof result. Project Health reference →
The 3.10 candidate is being tested across
The drift problem
Coding agents are fast enough to outrun your product standards. Decantr gives them the context and evidence loop they were missing.
The agent reimplements a button, card, or form instead of importing the primitive your app already owns.
Inline colors, arbitrary Tailwind values, and one-off spacing slip past review because each prompt only sees part of the app.
A test fixture, generated route tree, dependency, or sibling app can look authoritative unless evidence scope is explicit.
Stable route loop · 3.10 expansion unreleased
These commands exist in 3.9.4 for attached route-backed work. Decantr 3.10 proposes broader target discovery and must prove its outcome claim before that expansion is presented as shipped value.
3.9.4 reads the selected app and reports route, component, styling, graph, and limitation evidence without writing files.
decantr scan
3.9.4 resolves one attached, graph-backed route. Component, layout, overlay, story, package, and file selectors are unreleased 3.10 candidate behavior.
decantr task /feed
Emits findings with stable codes, repair IDs, and an evidence bundle your agent reads automatically.
decantr verify
Emits typed, reproducible evidence and keeps missing or incompatible proof visible instead of converting it into a pass.
decantr ci --json
decantr connect cursor; other MCP-compatible agents can use the stable eight-tool server.
Decantr prepares and checks evidence; the chosen agent or developer still applies the source change explicitly.
Illustrative stable route case · Decantr 3.9.4
Decantr emits a finding. Your agent reads bounded task context. The change returns to an explicit verification gate: concrete codes, IDs, anchors, and authority.
// .decantr/evidence/latest.json { "code": "COMP001", "route": "/feed", "file": "app/feed/SaveBtn.tsx", "issue": "Duplicate primitive", "expected": "@/ui/Button", "repair_id": "r_4a2" }
# MCP-fetched repair prompt
route: /feed
duplicate: app/feed/SaveBtn.tsx
already-owned: @/ui/Button
action:
replace local button
with imported primitive
preserve onClick + label
no other changes
// app/feed/SaveBtn.tsx - import { motion } from "framer" - const SaveBtn = (p) => ( - <motion.button {...p} /> ) + import { Button } from "@/ui/Button" + export const SaveBtn = (p) => + <Button {...p} />
A complementary layer
Decantr is intended to connect repository evidence for an agent. Linters, stories, and tests remain the authorities for the checks they actually execute.
| Decantr | Linters | Storybook | Tests | |
|---|---|---|---|---|
| Scope | UI authority + evidence | Source rules | Component states | Executable behavior |
| Separates UI authority axes | 3.10 candidate | Not its role | Partial | Partial |
| Change-scoped agent context | 3.9 route-backed | Rule-local | Story-local | Test-local |
| Primary evidence | Repository + typed reports | Deterministic diagnostics | Stories + visual states | Assertions + results |
| Known limitation | Static evidence can be incomplete | Rule scope only | Authored states only | Covered behavior only |
| Open source · MIT | Yes | Yes | Yes | Yes |
Built for local control
Runs from your terminal, your CI, or any MCP-compatible agent.
Findings, baselines, and screenshots live on your machine by default.
Brownfield adoption is reviewable and contract-only by default. Unsupported or unresolved authority should stop the workflow.
Decantr records styling evidence and limitations. A dependency alone does not prove the active styling system.
Agent-ready context · stable route example
Decantr 3.9.4 can build a bounded TaskCapsuleV1 for a resolved route. The 3.10 candidate extends preparation to independent UI surfaces and must fail closed when the target or authority is ambiguous.
ROUTE /feed OWNS SavedRecipes, FeedItem, ActionsBar PRIMITIVES @/ui/Button, @/ui/Card, @/ui/Dialog TOKENS text-primary, bg-card, gap-sm RULES no inline styles · import primitives only · ARIA labels required BEHAVIOR confirmation-dialog · accessible name · destructive copy CAPSULE task-capsule.v1 · bounded · implementation source rank 1 EVIDENCE 3 findings open · 8 stable MCP tool IDs
Built in the open
The contracts and schemas are public, telemetry has no hosted default, and incomplete change evidence remains visible as not proven instead of silently passing.
Current capability and license: the published CLI, verifier, MCP server, and contract libraries are available under the MIT license. Their local workflows do not require an account or hosted control plane; the Fly API serves optional corpus and reference data.
Momentum
AdoptionTruthV1, route-backed TaskCapsuleV1 context, and GovernanceDeltaV1 are shipped. The sole-maintainer qualification waiver means 3.9.4 is not a quantitative adoption-proof claim.
A frozen 40-task, two-model A/B protocol will test whether Decantr materially improves outcomes. No result or value claim exists before that gate passes.
The candidate treats routes, layouts, components, stories, overlays, flows, packages, and runtime states as separate evidence, with ready, limited, blocked, or unsupported readiness.
@decantr/content owns corpus references; registry names and Decantr CSS are compatibility surfaces, Studio remains read-only, and MCP keeps exactly eight tool identities.
Already scanned?
Adopt writes reviewable, repo-owned project law beneath Brownfield production source. In 3.9.4, check selected-app, route, styling, graph, and reported limitations before accepting it.
npx @decantr/cli adopt --yes