- This is an owner-original repository. Never stack pull requests.
- Start every work branch from the latest
origin/main. - Keep human-authored pull request diffs near 250 lines. Isolate generated lockfiles in a dedicated pull request.
- Merge one pull request before starting the next dependent branch.
- After merge, resolve or mark every review thread outdated. Turn remaining defects into a
bug-labelled issue.
- Keep
flake.nix,flake.lock,pyproject.toml, anduv.lockcurrent. - Never mix interpreters, package environments, datasets, or benchmark hosts in one result set.
- Record dataset hashes, package versions, writer settings, hardware, seed, and failure reasons.
- Separate fair storage comparison, format-native claims, and prompt/token comparison.
- Rank only
FULL_COMPARABLEentries within the same benchmark lane. - Add the lifecycle contract comment beside implementation state transitions:
DISCOVERED -> ENCODED -> ROUNDTRIP_VERIFIED -> BENCHMARKED -> REPORTED. - Failure states are
UNSUPPORTEDandFAILED; neither is rankable. - Prefer primary sources and pin source commits for experimental implementations.
- Keep modules focused, interfaces small, and terminology consistent with
CONTEXT.md. - Do not commit benchmark artifacts, vendor checkouts, API tokens, or machine-specific absolute paths.
- Use
ask-mattwhen the appropriate engineering flow is unclear.
Work is tracked in GitHub Issues for Anionix/data-format-lab. See docs/agents/issue-tracker.md.
Use the canonical triage roles. See docs/agents/triage-labels.md.
Use the single-context CONTEXT.md and root docs/adr/ layout. See docs/agents/domain.md.