# CommitGuard - Project Context & Instructions This file provides the foundational context and operational mandates for the **CommitGuard** project, a Meta OpenEnv RL environment for commit-time vulnerability detection. ## Project Overview CommitGuard is a specialized RL environment designed to train LLM agents (primarily **Llama-3.2-3B-Instruct**) to identify exploitable vulnerabilities in single-file code commits. It uses **Reinforcement Learning from Verifiable Rewards (RLVR)**, where rewards are grounded in dataset truth (Devign) rather than LLM judgment. - **Goal:** Close the asymmetry between AI-paced code generation and human-paced security review. - **Core Framework:** Meta OpenEnv (v0.2.3+). - **Training Algorithm:** GRPO via TRL + Unsloth. - **Dataset:** Preprocessed Devign (C-based commits, <80 LOC). ## Building and Running ### Environment Server The server is built with FastAPI and can be run locally or via Docker. - **Install:** `pip install -e .` - **Run Local:** `server` (Runs on `http://localhost:8000`) - **Run Docker:** `docker build -t commitguard . && docker run -p 8000:8000 commitguard` - **Health Check:** `curl http://localhost:8000/health` ### Training & Evaluation - **Train (GRPO):** `python scripts/train_grpo.py` - **Baseline Curve:** `python scripts/run_and_plot_baseline.py --episodes 200` - **Test:** `pytest` (Standard Python testing) ## Development Conventions & Mandates ### 1. The "No-Leak" Rule (Critical) The agent must **NEVER** see ground truth labels (`is_vulnerable`, `cwe`, etc.). - **Constraint:** Observations and HTTP responses must never contain label fields. - **Verification:** `tests/test_no_leak.py` must remain green at all times. ### 2. Action Format (XML-Tagged) Models must emit actions in XML format to ensure robust parsing. - **Structure:** `......` - **Types:** `request_context`, `analyze`, `verdict`. ### 3. Systematic Documentation (`.agent/`) This project uses a structured `.agent/` directory for internal state and contracts. Always consult these before changes: - `.agent/project_context.md`: Single source of truth for project state. - `.agent/architecture.md`: Technical contracts and schemas. - `.agent/test_contracts.md`: Merge-blocking requirements. ### 4. Deadline Operations (Hackathon Mode) - **Scope Freeze:** Midnight Saturday IST. No new features after this point. - **Pivots:** If technical blockers arise (e.g., OOM, slow queues), immediately use the pre-approved fallbacks documented in `prd.md` and `.agent/project_context.md`. ## Directory Structure - `commitguard_env/`: Core environment logic, FastAPI server, and reward modeling. - `scripts/`: Training entrypoints, preprocessing scripts, and GCE runbooks. - `data/`: Dataset placeholders (`devign_filtered.jsonl`) and CWE mapping. - `plots/`: Generated reward curves and performance artifacts. - `tests/`: Smoke tests, reward validation, and leak detection. - `.agent/`: High-priority architectural and process documentation. ## Key Endpoints - `POST /reset`: Initialize episode, returns diff + available files. - `POST /step`: Submit XML action, returns `{observation, reward, done, info}`. - `GET /health`: Server status. - `GET /state`: Episode metadata (safe for agent logs).