commitguard-env / .agent /coding_conventions.md
Nitishkumar-ai's picture
Deployment Build (Final): Professional Structure + Blog
95cbc5b
## Coding conventions (enforced under deadline pressure)
This repo is optimized for: **correctness, reproducibility, and not leaking labels**. Read `architecture.md` first.
## Python style (hard rules)
- **Typed dataclasses everywhere** for public API shapes (actions/observations/state).
- Use `@dataclass(frozen=True, slots=True)` by default.
- Public functions must be type-annotated end-to-end.
- **No untyped dicts in public APIs.** Dicts are allowed only internally (e.g., during XML parse), and must be converted to dataclasses at the boundary.
- Keep functions small. Prefer pure functions (`reward.py`) with no hidden state.
## Import ordering
1. stdlib
2. third-party
3. local modules
Within a section: alphabetical. One import per line if it improves diff clarity.
## Docstrings and naming
- Docstrings: short, imperative, include constraints (e.g., must not leak ground truth).
- Names: explicit over clever (`compute_reward`, `parse_action_xml`, `EpisodeState`).
## Error handling patterns
- **Never crash on model output.** Malformed actions must be handled gracefully.
- Raise exceptions only for programmer errors; user/model errors return structured error fields.
- Every boundary (HTTP handlers, XML parser) must be defensive:
- validate inputs
- clamp budgets
- return safe defaults
## Forbidden patterns (do not do these)
- **No LLM-as-judge in reward.** Reward must be verifiable (dataset truth + keyword checks). See `architecture.md`.
- **No label leakage**: do not log, return, or print ground truth in observations, HTTP responses, or debug endpoints.
- **No hardcoded local paths** (e.g., `C:\\Users\\...`, `/home/...`). Use repo-relative paths + `pathlib`.
- **No committing data files > 5MB** without explicit team sign-off. (If necessary, use HF Datasets or remote storage.)
- **No localStorage in any UI.** If you add UI later (unlikely), store state server-side or in-memory only.
- **No adding endpoints/features after scope freeze** (midnight Saturday).
## Repo hygiene
- Prefer CLI-driven ops so teammates can reproduce quickly:
- HF: `huggingface-cli`, `hf` (where available), `git lfs` if needed
- GCP: `gcloud`
- Keep logs minimal. Under hackathon pressure, noisy logs hide real bugs.
- Dont vendor big artifacts in git. Link them (video, wandb, Space) from README.
## Scope creep rule (non-negotiable)
If youre tempted to add a feature that isnt required for the locked deliverables:
- Append one bullet to `FUTURE_WORK.md` (with 1-line rationale).
- Return to your current task.
## Cross-reference
- Architecture contract: `architecture.md`
- Scope and fallbacks: `project_context.md`
- Locked decisions: `decision_log.md`