Add repository storage guardrails

This commit is contained in:
2026-05-14 09:47:49 -07:00
parent b3907d58d5
commit 455cefb933
4 changed files with 121 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Repository Storage Policy
Agrarian should stay on free GitHub/LFS limits as long as practical. GitHub is
the source-control system, not the long-term asset warehouse.
## GitHub Is For
- Source code.
- Config files.
- Scripts and build wrappers.
- Design docs, roadmap docs, and small metadata files.
- Curated Unreal assets needed to open and build the current project.
- Small data assets and test fixtures.
- LFS-tracked `.uasset`, `.umap`, small media, and other binary files that are
intentionally part of the working game project.
## GitHub Is Not For
- Packaged builds.
- Raw DEM, lidar, bathymetry, satellite, or large GIS source datasets.
- Generated terrain tile packages beyond curated MVP samples.
- Derived Data Cache.
- Unreal `Intermediate/`, `Saved/`, and generated build products.
- Large marketplace/source-art libraries that are not actively used by the
current build.
- Full-resolution marketing captures, raw videos, or archival exports.
- Long-term Earth-scale tile cache data.
## Large Data Homes
- DevBox project storage is the first local home for large working data.
- Future object storage should hold generated tile packages, source terrain
datasets, build artifacts, and public download assets.
- Git should store manifests, checksums, provenance, import scripts, and small
curated samples that let us reproduce large artifacts from source storage.
## Budget Targets
- Keep Git repository history small enough that clone/fetch remains practical.
- Treat Git LFS free storage and bandwidth as a scarce resource.
- Investigate before adding any single LFS object over `100 MB`.
- Avoid committing generated binary assets that change frequently.
- Never store full packaged builds in Git or Git LFS.
## Required Checks
Run this before adding large content or after any major asset import:
```bash
Scripts/audit_repo_storage.sh
```
If the audit shows large or frequently changing LFS files, decide whether they
belong in GitHub, DevBox artifact storage, or future object storage before
pushing.