1.6 KiB
1.6 KiB
Patch Policy
Default stance
Avoid patching repository code unless reproduction is blocked and the change is both conservative and auditable.
Allowed-first changes
Prefer these classes first:
- environment variables
- filesystem path fixes
- dependency pin adjustments
requirements.txtorenvironment.ymlcorrections- command-line argument fixes that preserve documented intent
Allowed-with-caution changes
- small compatibility fixes for modern Python or library versions
- explicit path joins or file existence guards
- OS portability fixes when the documented command remains semantically the same
These still need justification and verification.
Default disallowed changes
- architecture changes
- dataset label changes
- loss or metric definition changes
- training loop rewrites
- inference output logic rewrites
- silent behavior changes that make the command "pass" but alter experiment meaning
Branching and commits
Before the first repo file edit, create:
repro/YYYY-MM-DD-short-task
Commit only after a verified group of changes.
Preferred commit message:
repro: <scope> for documented <command>
Keep verified patch commits sparse:
- ideal:
0-2 - upper practical bound for this workflow: about
3
Reporting
Every patch must be reflected in PATCHES.md with:
- branch
- highest risk
- commit hash
- changed files
- rationale
- verification
- README fidelity impact
If no repository files were modified:
- do not create
PATCHES.md - keep
patches_appliedfalse instatus.json - keep the explanation in
SUMMARY.mdorLOG.mdfocused on the run and blocker, not on hypothetical patches