Your agents keep making the same mistake. Prove the fix actually works.
FleetManifest captures the corrections your engineers make to Claude Code, Cursor, and Copilot, compiles the recurring ones into versioned rules, and measures whether each rule actually reduces the defect it targets — not just whether it shipped.
THE PROBLEM
AI agents make the same mistakes, repeatedly
Every organisation independently rediscovers the same 20–50 failure patterns specific to their stack. The correction lives in one of three places — and none of them work.
It lives in reviewers' heads
The senior engineer who knows the ORM call that deadlocks, the auth helper that gets bypassed, the migration convention agents ignore — that knowledge doesn’t scale, and it leaves when they do.
It bloats an unmeasured CLAUDE.md
Hand-written instruction files are written once and never pruned. They grow monotonically, and because every line sits in the context window on every call, an unmaintained instruction file actively degrades agent performance over time.
It evaporates in the chat session
Tools that capture corrections and propose rule updates exist — but none of them measure whether the mistake stops happening. Without measurement, there’s no way to know which rules earn their context cost, so instruction files bloat and effectiveness decays.
THE PLATFORM
Three layers. One measurable loop.
FleetManifest runs analysis on your own AI subscription, locally. Only abstracted, redacted summaries ever leave the machine — never your source code, prompts, or transcripts.
CAPTURE
Every correction, captured without slowing anyone down
Denied tool permissions, failed edits, agent giveups, and skill invocations are captured on the developer machine in under 50ms. Git forensics — reverts, human commits over agent branches, force-pushes — cover every agent, even ones with no hook surface at all.
- PermissionDenied, PostToolUseFailure and StopFailure at <50ms p95
- Git forensics fallback for Cursor, Codex CLI and Copilot
- InstructionsLoaded gives ground-truth context inventory, not a disk scan
- Hooks never call the network or an LLM — capture failure never breaks a session
PROMOTION LADDER
Rules earn their place — or get demoted
Recurring defects start as prose. Once evidence shows a rule matters, it promotes to a skill, then to a deterministic check — each step trading context cost for enforcement strength and, critically, for observability. A rule that never fires and whose defect class has gone quiet gets demoted or retired automatically, as a proposal.
- Promote prose → skill after 3+ occurrences, 30+ days distributed
- Promote skill → check once a rule is deterministically checkable
- Demote or retire on zero fires and zero recurrence
- Flag as ineffective — never auto-act — when a rule fires but the defect keeps recurring
- Context cost
- Always loaded
- Enforcement
- Advisory
- Firing observable?
- No
- Context cost
- Metadata only
- Enforcement
- Advisory, scoped
- Firing observable?
- Yes — tool call
- Context cost
- Zero
- Enforcement
- Deterministic — blocks
- Firing observable?
- Yes — fires or not
MEASUREMENT
The one metric no competitor reports
Every yield chart shows the rate, the time series, the distribution marker and the sample size — never a claimed dollar figure or causal headline. Metrics roll up to repo, team, defect class or rule. Never to a named individual.
- Recurrence rate — normalised by agent PR volume, never raw counts
- Rule yield — recurrence before vs. after distribution, with a sample-size warning below 20 PRs
- Unattended merge rate — the north-star metric, tracked over time
- Confounder disclosure on every chart: model changes, team size, repo churn
HOW IT WORKS
From correction to measured rule
Analysis runs on your own AI, locally. Only its abstracted output — never source code, transcripts, or prompts — is ever transmitted.
Capture
Run fmanifest init in your repository. It installs the Claude Code plugin, scaffolds a CI workflow, and starts buffering high-precision signals locally: denied tool calls, failed edits, reverted commits, and findings from tools you already pay for.
Analyse & propose
On a schedule — not a chore someone has to remember — the analyser runs on your own AI subscription over the buffered signals and produces a proposal: new rules, promotions, demotions, retirements. Every change carries evidence with at least one occurrence id, or it never reaches the PR.
Distribute & measure
Merge the proposal PR and rules compile straight to CLAUDE.md, AGENTS.md, SKILL.md files, or hook checks. From there, recurrence is tracked per defect class, and the promotion ladder does its job automatically — proposed, never auto-applied.
A hard data boundary, not a guideline
A single redact() boundary validates every outbound payload against a strict allowlist. Unknown keys are a hard error. fmanifest sync --dry-run prints the exact JSON before anything transmits — and local-only mode sends nothing at all.
- ✓Defect class ids, labels, descriptions
- ✓Rule tier, version, checksum
- ✓Event type, outcome, counts, durations
- ✓File extension, path depth, language
- ✕Source code, diffs, file contents
- ✕Session transcripts, prompts, messages
- ✕Raw CI logs, stack traces, error text
- ✕Full file paths, branch names, commit messages
SOURCES & AGENTS
High-quality defect signal you already pay for
A large share of the best signal already exists in tools your team runs. Ingesting it costs nothing extra and gives labelled, structured defects from day one.
AI Coding Agents — capture depth varies, distribution is universal
Code hosting — SCM webhooks and attribution
Defect signal sources — findings you already generate
THE PROMOTION LADDER
Rules aren't a flat list of prose
Every rule sits at one of three tiers, and moves between them on measured evidence — never automatically applied, always a reviewable proposal.
- Context cost
- Always loaded
- Enforcement
- Advisory
- Firing observable?
- No
- Context cost
- Metadata only
- Enforcement
- Advisory, scoped
- Firing observable?
- Yes — tool call
- Context cost
- Zero
- Enforcement
- Deterministic — blocks
- Firing observable?
- Yes — fires or not
A live rule registry, not a doc
Never construct SQL with string concatenation — use the query builder.
Every query against a tenant-scoped table must apply the tenant filter.
Blocks edits that reintroduce a direct call around the shared auth helper.
Use the fixture factory instead of sleep-based waits in integration tests.
PRICING
Flat pricing. Hard caps. No per-seat billing.
Every account starts with a 14-day trial of Team — no credit card — and converts into whichever tier fits, Solo included. Every self-serve tier is one flat price with a clear cap, so there's no usage meter and nothing to reconcile. Trial expiry and payment failure both degrade to local-only mode — they never break your CI.
The entry tier. One flat annual price — cheap, but paid: there is no free plan.
- 1 member, 3 repositories
- Full dashboard — Inventory, Rules, Outcomes
- All source integrations
- Annual billing only
Flat rate for the whole team, whatever it does. The tier your 14-day trial runs on.
- Up to 10 members
- Unlimited repositories
- Full dashboard — Inventory, Rules, Outcomes
- All source integrations
Same flat shape, a larger cap. No per-seat billing and nothing to reconcile.
- Up to 40 members
- Unlimited repositories
- Everything in Team
- Priority source-adapter support
Defined by size, not by feature. Above 40 members the conversation is a sales one.
- Unlimited members and repositories
- Self-hosted docker-compose bundle
- SAML 2.0 + OIDC SSO
- Audit log export
- Manual invoicing
Common questions
Your agents are already writing code.
Prove your corrections are working.
Join engineering leaders who capture every correction, compile the recurring ones into versioned rules, and measure whether each one actually reduces the mistake it targets.