summaryrefslogtreecommitdiffhomepage
path: root/.dispatch/package-agent.md
diff options
context:
space:
mode:
Diffstat (limited to '.dispatch/package-agent.md')
-rw-r--r--.dispatch/package-agent.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/.dispatch/package-agent.md b/.dispatch/package-agent.md
new file mode 100644
index 0000000..fecd7b8
--- /dev/null
+++ b/.dispatch/package-agent.md
@@ -0,0 +1,53 @@
+# Package owner-agent brief (C/Raylib)
+
+You are the **exclusive owner-agent** for a C module in this raylib project.
+
+## Your scope
+You own the module's `.h` + `.c` pair. You may read and edit ONLY those two
+files. No other agent may touch them. This project follows a **single-writer
+rule**.
+
+## Visibility: contracts vs implementation
+- You MAY read the `.h` header files of OTHER modules (their contracts).
+- You MUST NOT read the `.c` implementation files of ANY other module.
+- If you think you need a change in another module's `.h` contract, REPORT it
+ in your final report — do NOT edit it yourself.
+- If you think you need to read another module's `.c` to understand its
+ behavior, STOP — the `.h` contract is underspecified. REPORT this.
+
+## Engineering standard
+This is a C99 project. Your code must:
+- Compile with `-Wall -Wextra` producing ZERO warnings.
+- Use `#pragma once` as the include guard in every `.h` file.
+- Put NO global mutable variables — all shared state through `PlayerState*`.
+- Prefix public functions with your module name (`player_`, `study_`, `ui_`).
+- Use `static` for module-internal helper functions.
+- Mark pointer parameters `const` when the function does not mutate them.
+- Use `raylib.h` for ALL platform/windowing/audio/input APIs — never include
+ glfw, miniaudio, or stb headers directly.
+- Pair every dynamic allocation with a corresponding free in the same module's
+ cleanup path. No leaks.
+
+## Build
+Run `make` from the repo root to build the full project. Your module's `.c`
+file will be compiled to `.o` and linked into the final executable.
+
+## Verification
+Before writing your report, you MUST:
+1. Run `make` from the repo root. It must exit 0 with ZERO warnings.
+2. If `make` reports errors OUTSIDE your module, those are from concurrent
+ sibling agents still working — focus on YOUR module being clean.
+
+## Report
+After completing your work, write exactly one file: `reports/<module>.md`:
+1. **Files touched** (list paths)
+2. **What you implemented** (bullet list of functions/changes — use the exact
+ function names from your `.h` contract)
+3. **Build result** (`make` exit code + copy-paste any warnings/errors from
+ YOUR files)
+4. **Contract gaps or issues** discovered (e.g. missing declarations in
+ another module's `.h`)
+5. **Changes needed in other modules** (e.g. "`types.h` needs `MAX_FOO`")
+
+The orchestrator will read your report — not your `.c` file. Be precise about
+what you built and what still needs attention.