September 12–30, 2026 · recorded project activity · repo
FaultLab
Fault injection and evidence gates for tool-using agents
A team-built, AI-assisted lab that tests agents in isolated synthetic shop worlds and keeps incomplete evidence from becoming an accepted recovery policy.
Test the tool failure, then test the repair
An upgrade request can succeed while its response disappears. Retrying may duplicate an effect; reporting success may invent evidence. FaultLab exposes that ambiguity in a synthetic shop, with no real orders or customers involved.
An Actor performs the task, an Explorer chooses faults and a Mechanic proposes bounded recovery hooks. The Referee grades effects and reports with . It is fixed code, so the proposing model cannot talk itself into a passing grade.
Preserve the whole evidence chain
Each world has its own SQLite database. Clock changes and effects are serialized in transactions, while receipt and event histories are protected from rewriting. Fresh reproduction, reduction, controlled diagnosis, source validation, adversarial challenge and promotion are separate stages. A missing verdict, lab error or fault that never fired remains visible.
The React dashboard keeps opening saved evidence separate from executing a new trial. Importing a regression ZIP saves historical source evidence without a provider request or policy activation. A fresh rerun displays its task, target and spending bound, then binds the manifest and target configuration to a saved request ID. A timeout keeps that ID unresolved, so retrying the same request recovers its existing execution rather than starting another.
What the historical trace count means
The September 14, 2026 campaign read back by exact trace ID and matched them to local records. This verifies that campaign's trace evidence. It does not validate later source code, prove a repair effective or describe a production agent. Its candidate validation batches disagreed, and an adversarial counterexample blocked promotion.
Where the continuation stands
Through the September 30, 2026 record, some native-agent candidates passed source
validation and ran challenges with no failed checks. A scheduled fault still
did not fire, so those challenges remained inconclusive. Generated accepted
policies: ; the recorded baseline policy-v0
remained active. Full product acceptance and accepted-repair transfer are unproven.
The diagnosis repair now records validation attempts and distinguishes a valid model request from a code default. An additional diagnosis guide was built, but it is not offered in normal Learn runs. The first request-only probe did not meet its declared acceptance rule; the second was incomplete after provider payment-required responses. Those probes do not establish improved end-to-end repair effectiveness, and provider availability was not rechecked for this page.
The evidence comes from the public repository's historical README, and the local dated continuation records cited by the résumé corpus. This local page update does not publish or push those continuation records.
How it was built
- Time:
- Original September hackathon, followed by recorded product continuation through September 30, 2026.
- Tools:
- Claude, Cursor Agent
- Mine:
- Co-developed with Aryan Bhusari as Team Gatekeeper at CoreWeave Hacks. The capabilities here belong to the team project; sole authorship of each later component is not established.
- How "not broken" was decided:
- Recorded offline software checks, saved evidence integrity and fixed experiment gates. Passing software tests does not establish a generated accepted repair or transfer to another agent.