diff --git a/docs/00-meta/SUBMODULE_HYGIENE.md b/docs/00-meta/SUBMODULE_HYGIENE.md index 57c52d6..7b8d338 100644 --- a/docs/00-meta/SUBMODULE_HYGIENE.md +++ b/docs/00-meta/SUBMODULE_HYGIENE.md @@ -29,6 +29,13 @@ bash scripts/verify/submodules-clean.sh Stricter than `git status -sb` (fails on any porcelain output). Use after large merges or before release tagging. +### Surgical artifact cleanup (generated files only) + +Some submodules historically tracked **build output** (TypeScript `.js` next to `.ts` under `packages/*/src`, or Foundry `artifacts/`). That noise is removed with **gitignore + `git rm --cached`**, not by discarding real source edits. + +- Repeatable helper (idempotent): `bash scripts/maintenance/surgical-clean-submodule-artifacts.sh [--dry-run]` +- After it reports changes, **commit inside the submodule**, then bump the **parent** submodule pointer. + --- ## explorer-monorepo: Gitea primary, GitHub optional mirror diff --git a/scripts/maintenance/surgical-clean-submodule-artifacts.sh b/scripts/maintenance/surgical-clean-submodule-artifacts.sh index 3c0eced..dc32404 100755 --- a/scripts/maintenance/surgical-clean-submodule-artifacts.sh +++ b/scripts/maintenance/surgical-clean-submodule-artifacts.sh @@ -35,7 +35,7 @@ clean_the_order() { return 0 fi # Rules are committed in submodule; re-apply only if file missing patterns - if ! grep -q 'packages/\*\*/src/\*\*/\*\.js$' "$sub/.gitignore" 2>/dev/null; then + if ! grep -q 'packages/\*\*/src/\*\*' "$sub/.gitignore" 2>/dev/null; then log " WARN: the-order/.gitignore missing expected emit rules — merge from main or run prior hygiene commit" fi local cnt