GreenLie
CI PASS | 44/44 tests

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.

tests/auth.test.jsagent fix diff
before
expect(response.status).toBe(401);
expect(response.body.error).toBe('Unauthorized');
expect(response.body.user.id).toBe('user-123');
after
expect(response.status).toBeGreaterThan(0);
expect(response.body.error).toBeDefined();
// user.id assertion deleted
AO Kanban: Ready to merge

CI passes. Board green. Nobody noticed the test stopped checking 401.

44/44 tests passed | PR #327 approved

Mechanism

How GreenLie reads a PR

01

Diff test files

Compare before/after agent fix across *.test.js, *.spec.ts, test_*.py

02

Parse assertions

Score strictness: toBe(401) = 90, toBeGreaterThan(0) = 50, toBeDefined = 30

03

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.

Output appears here
Agent Orchestrator Kanban — GreenLie project

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.