Keep local scratch notes out of the publication tree
All checks were successful
CI / naming (push) Successful in 3s
CI / frontend (push) Successful in 13s
CI / migrations-mysql (push) Successful in 42s
CI / backend (push) Successful in 4m23s

The export rsyncs the WORKING TREE, so .gitignore does not apply to it:
anything ignored-but-present reaches the publication repo unless it is
named as an exclude. devnotes/ is declared never-committed and holds
review writeups and chat handoffs, and it went straight through.

The scrub gate stopped it, which is what that gate is for, and nothing
was committed or bundled. But a gate failure is a stop, not a filter,
and the fix a hurried person reaches for is deleting their notes to get
a bundle out.

Same shape as the stray .env.bak that reached this tree once before, so
the rsync now carries a note saying why excludes live there rather than
in .gitignore.

Scope: product
This commit is contained in:
cproudlock
2026-08-31 07:14:12 -04:00
parent d64b7122ab
commit f1136d920d

View File

@@ -121,6 +121,12 @@ done
fi
)
# NOTE ON EXCLUDES: this walks the WORKING TREE, so .gitignore does not apply.
# Anything ignored-but-present has to be named here or it reaches publication -
# how a stray .env.bak once did, and how devnotes/ (local review writeups, chat
# handoffs) did. The scrub gate catches such things, which is the point, but a
# gate failure is a stop, not a filter: add the exclude rather than deleting
# your notes to get a bundle out.
rsync -a --delete \
--exclude '.git' \
--exclude '.gitea' \
@@ -129,6 +135,7 @@ rsync -a --delete \
--exclude '/docs/*' \
--exclude '/tools' \
--exclude '/mcp' \
--exclude '/devnotes' \
--exclude 'start-api.sh' \
--exclude 'start-ui.sh' \
--exclude 'CLAUDE.md' \