This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.
What I Built
A green checkmark usually means good news. Your tests pass, your build succeeds, and you can finally move on to the next task.
But what if the bug was never actually fixed?
Imagine asking an AI coding agent to fix a payment bug. Instead of correcting the payment logic, it weakens the test assertion so incorrect results are accepted. The test passes, but the underlying problem might still be there.
That is the problem I wanted to explore with GREENWASH.
GREENWASH is a code-integrity auditing project designed to identify suspicious changes in AI-generated code, particularly changes that make software appear correct by weakening the checks used to verify it.
The project focuses on six scenarios:
- Weakened assertions: A test becomes less strict and starts accepting incorrect behaviour.
- Deleted failing tests: A test exposing a defect disappears instead of the defect being fixed.
- Skipped tests: An important test is disabled rather than repaired.
- Excessive mocking: Fake dependencies replace meaningful checks of real functionality.
- Weakened CI quality gates: Required checks are removed or bypassed.
- Honest bug fixes: The implementation is corrected while preserving the intended requirements.
The idea is simple: don't just ask whether the tests passed. Ask what changed to make them pass.
GREENWASH aims to compare code and test changes, identify suspicious patterns, and use relevant behavioural checks to evaluate whether the original requirements are still being verified.
It is not about assuming that AI agents deliberately cheat. It is about making potentially risky changes visible and giving developers evidence they can investigate.
Demo
Live demo: [https://banxal.tech/#landing]
Demo video: [https://youtu.be/Etl5xBcXUF0]
The most useful demonstration is to compare two versions of the same codebase.
In the first version, a test catches a genuine defect. In the modified version, the test is weakened or removed instead of fixing the underlying problem.
GREENWASH should then highlight the suspicious change and show the relevant verification evidence supported by the implementation.
A second scenario demonstrates the opposite: a genuine bug fix that preserves the intended behaviour and passes the configured checks.
Together, these scenarios show why a passing test suite should be examined in context, rather than treated as automatic proof of correctness.
Code
GitHub repository: [https://github.com/Akulbanxal/GreenWash]
The repository contains the implementation, detection logic, and supporting project files. It is the best place to explore the code and see which of the planned audit behaviours are currently implemented.
How I Built It
I approached GREENWASH as a problem of trust and verification rather than simply another testing dashboard.
The intended audit workflow has four main stages:
- Inspect the changes. Compare a trusted baseline with the modified code.
- Identify suspicious patterns. Examine test files and CI configuration for changes such as weakened assertions, removed tests, skip directives, excessive mocking, and weakened quality gates.
- Verify relevant behaviour. Where independent tests or behavioural checks are available, use them to evaluate whether the original requirements are still satisfied.
- Present the evidence. Explain which changes triggered findings and show the verification results that support them.
A key design challenge is distinguishing suspicious changes from legitimate ones. A deleted test might be redundant, and mocking can be appropriate in many situations. A useful auditor therefore needs context rather than a simplistic rule that labels every test modification as bad.
The project also includes a visual interface for exploring audit scenarios and their findings. I have been focusing on the graphics integration and overall presentation so that the underlying concepts are easier to understand without losing sight of the technical evidence.
Technology used: [Add the actual languages, frameworks, libraries, and tools used in your implementation.]
Open-source AI used: [Name the actual open-source model, agent framework, or AI tooling used, and explain exactly how it contributes to GREENWASH.]
I want to be clear about an important limitation: passing the configured checks cannot prove that software is completely free of bugs. The goal is to improve the quality of the review and make suspicious verification changes easier to investigate.
Why Does Open Innovation Matter?
AI-assisted development is moving quickly, but developers still need ways to understand and verify the code these tools produce.
Open innovation makes it possible for more developers to inspect implementations, question design decisions, experiment with different models, and adapt tools to their own workflows.
For a project like GREENWASH, this matters because trust cannot depend entirely on a tool claiming that everything is fine. Developers should be able to inspect the rules, understand the evidence, and challenge a finding when the context suggests a legitimate change.
Open-source models and frameworks can also give developers more flexibility over how AI capabilities are integrated and deployed, depending on the chosen model, licence, infrastructure, and hardware.
The broader goal is not to discourage the use of AI coding agents. It is to encourage a development workflow where their output can be examined critically.
AI can help us write code faster. Better verification can help us understand whether that code deserves our confidence.
My Agent Session
[Optional: Add your DevRelay agent session link or embed your recorded session using the challenge's supported agent_session format.]
A session showing how you explored the problem, developed the implementation, tested a scenario, and refined the result can help readers understand the decisions behind the project.
The Lazy Payoff
The potential payoff is straightforward: less time spent manually searching through every test and configuration change, and more time investigating changes that genuinely deserve attention.
GREENWASH aims to make the first pass of code-integrity review more systematic by highlighting suspicious modifications and presenting their supporting evidence.
I don't have a measured time-saving figure to claim yet, and the actual benefit will depend on the repository, the rules, and the quality of the verification checks.
But the motivation is practical: when AI can produce code quickly, reviewing what changed—and whether the verification remains meaningful—becomes increasingly important.
Prize Categories
GREENWASH is designed to make AI-generated code changes easier to audit, with a focus on transparent verification, flexible deployment, and traceable agent workflows. We are entering the following partner categories where our implementation and demonstrations meet the requirements.
1. Best Use of Render
GREENWASH is deployed on Render, with a Docker-based service running the Express REST API and React frontend through a unified application deployment.
- Live application: https://banxal.tech
-
Render service:
greenwash.onrender.com - Deployment configuration: render.yaml
- Container configuration: Dockerfile
The deployment makes GREENWASH accessible through a public interface while keeping the application and audit workflow in one deployment.
2. Best Use of Gemma
GREENWASH includes a semantic-review component designed to use Google's open-weight Gemma models to complement deterministic code-integrity checks.
The reviewer analyses code-change context, explains suspicious modifications, and suggests additional edge cases for investigation. GREENWASH also supports a self-hosted configuration using Ollama, allowing a compatible Gemma model to run locally when the local inference service is configured.
- Implementation: GemmaSemanticReviewer.ts
- Local inference configuration: docker-compose.yml
The goal is to combine deterministic checks with model-assisted analysis, while keeping the evidence behind an audit finding visible to the developer.
Note: The current public Render configuration uses a mock Gemma endpoint. Demonstrate a working local Ollama/Gemma run separately before claiming live model inference as part of the deployed service.
3. Best Use of a .tech Domain
GREENWASH is available through a custom .tech domain:
- Live URL: https://banxal.tech
Using a custom domain gives the project a stable public entry point for demonstrating its interface and audit scenarios.
4. Best Use of Mastra
GREENWASH uses Mastra's typed workflow engine to organise its audit pipeline into distinct stages.
The workflow coordinates scenario-diff validation, deterministic scanning, contract replay, semantic analysis, report normalisation, and trace emission.
- Implementation: workflow.ts
Breaking the audit into stages makes the workflow easier to inspect, test, and extend as additional detection rules and verification checks are introduced.
5. Best Use of Sentry Agent Tracing
GREENWASH includes a Sentry integration for tracing audit-workflow execution and individual stages.
The tracing code records workflow metadata, step information, result status, and errors. It also filters sensitive attributes and redacts secrets before telemetry is sent.
- Implementation: Sentry tracer
This helps make failures easier to investigate and provides a way to understand how an audit progresses through the pipeline.
6. Best Use of MongoDB Atlas
GREENWASH includes a MongoDB-backed persistence layer designed to store audit history and related records.
- Implementation: repository.ts
The repository supports configuring a MongoDB connection through environment variables, allowing a suitable MongoDB Atlas deployment to be used for persistent audit storage.
The important distinction is between having MongoDB integration in the code and demonstrating that a live Atlas cluster is actually connected and storing records. The latter should be shown for this prize category.
7. Best Use of Entire
GREENWASH includes an agent-session provider that can parse session records and extract relevant provenance information for investigation.
The implementation also supports filtering session content and redacting secrets, helping the audit workflow use agent history without unnecessarily exposing sensitive information.
- Implementation: EntireSessionProvider.ts
Agent provenance can provide useful context when investigating suspicious sequences of development actions, such as changes made around a failing test.
For this category, we will demonstrate the session ingestion flow with a real, supported Entire session rather than relying only on the presence of a parser in the repository.
8. Best Use of GitHub Copilot
GREENWASH includes repository-level development instructions and a GitHub Actions workflow that runs integrity-audit checks as part of the development process.
- Copilot instructions: .github/copilot-instructions.md
- CI workflow: .github/workflows/ci.yml
The intention is to make integrity checks part of the pull-request workflow, helping identify suspicious test or verification changes before they are merged.
We will demonstrate the actual Copilot or GitHub Actions workflow used for this submission to show how the integration contributes to the project.
9.Additional Deployment Target: DigitalOcean
GREENWASH also includes a DigitalOcean App Platform specification and Docker Compose configuration to support deployment in a self-managed environment.
- App Platform configuration: .do/app.yaml
- Docker Compose configuration: docker-compose.yml
These files provide a starting point for deployment and local-service orchestration. We will list Best Use of DigitalOcean as a prize entry only after demonstrating a working deployment or another qualifying use of DigitalOcean's services.
Our aim is to make GREENWASH more than a dashboard: it is an evidence-first approach to examining AI-generated code changes, with inspectable workflows, configurable integrations, and verification results that developers can investigate.
GREENWASH is my exploration of a question I think every team using AI-assisted development should keep asking:
Did we fix the problem, or did we only make the problem harder to see?
I'd love to hear how others are approaching code review and verification in AI-assisted workflows.
Top comments (0)