46 lines
2 KiB
Markdown
46 lines
2 KiB
Markdown
# 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.
|