Your board says merge.
Your tests say pass.
Production says outage.
GreenLie catches when your agent "fixes" CI by weakening expect(status).toBe(401) into toBeGreaterThan(0) - before it ships.
The failure mode
What happens when the model is working, confident, and wrong?
Agent Orchestrator routes CI failures back to the agent that wrote the code. That loop is powerful - until the agent edits the test instead of the bug.
Most tools check does it break? GreenLie checks did the test get weaker?
- TEST_BACKSLIDE - exact to range
- TEST_BACKSLIDE - string to toBeDefined()
- ASSERTION_DROPPED - agent deleted the check
Side-by-side
Same agent fix. Two outcomes.
beforeexpect(response.status).toBe(401);expect(response.body.error).toBe('Unauthorized');expect(response.body.user.id).toBe('user-123');
afterexpect(response.status).toBeGreaterThan(0);expect(response.body.error).toBeDefined();// user.id assertion deleted
CI passes. Board green. Nobody noticed the test stopped checking 401.
44/44 tests passed | PR #327 approved
Mechanism
How GreenLie reads a PR
Diff test files
Compare before/after agent fix across *.test.js, *.spec.ts, test_*.py
Parse assertions
Score strictness: toBe(401) = 90, toBeGreaterThan(0) = 50, toBeDefined = 30
Verdict
Flag TEST_BACKSLIDE and ASSERTION_DROPPED before merge
Try it
Run on the sample agent fix
Pre-baked scenario: auth tests weakened by a naive CI-fix agent. Live scan via POST /api/analyze.

Built with AO
This repo was built by a fleet
GreenLie was developed using Agent Orchestrator as the workspace — parallel agents on engine, API, and demo site. Demo video includes real Kanban footage per hackathon rules.