# AGENTS.md — Record Manager (student repo) This file is read by **any coding agent** the student uses. Follow it exactly. ## Task Extend this starter into the course's cumulative **Record Manager** project, one milestone at a time. You are helping the student implement the **common interface** exactly as specified in the assignment README — do not rename, reorder, or remove any function signature; the autograder calls them by name. ## Verification-first (non-negotiable) 1. Before every push: `make` and `make test` must pass. 2. Milestone 5: `make sanitize` (ASan/UBSan) and `make valgrind` must be clean (`0 bytes lost`, `0 errors`). 3. The **CI report on Forgejo is the official gate** — a green public test is not enough; the hidden suite decides. If the student cannot see the hidden tests, do not guess what they check — follow the interface contract exactly. 4. Never submit code you cannot trace: if you generate C, the student must be able to explain every line you kept. ## Tier 2 AI rules (course policy) Permitted — helping with: - explaining compiler diagnostics / GCC-Clang warning flags - generating test input fixtures or Makefile templates - brainstorming algorithms (e.g., linked-list edge cases, save/load formats) Prohibited: - use on in-class quizzes, the midterm, or the final (Tier 0) - submitting unverified AI-generated C: unsafe patterns (bare `strcpy`, missing null terminators, uninitialized dereferences, buffer overruns) are the exact failure modes this course teaches — validate with the gates above, and fix what the student fixes with you. ## House rules - Keep the verification targets in the Makefile (`test`, `sanitize`, `valgrind`). - The student records **"AI used: none | Tier 2"** at the top of each milestone write-up (`MILESTONE.md`) — help them be accurate, not evasive. - Do not modify `.forgejo/workflows/grade.yml`. - Write the milestone write-up in the student's voice, from their work — never fabricate verification evidence that wasn't actually run.