Skip to content

chore: remove committed lavish validation scratch files and ignore the folder - #92

Merged
MrGTV-love merged 1 commit into
mainfrom
fm/fm-remove-tracked-lavish-scratch
Oct 10, 2026
Merged

MrGTV-love merged 1 commit into
mainfrom
fm/fm-remove-tracked-lavish-scratch

Conversation

@MrGTV-love

Copy link
Copy Markdown
Owner

Intent

Remove the scratch files that fork PR #63 (commit 726a1ba) committed by mistake under .live-lavish-validation/ on this public repository, and stop that folder from being committed again.
Context: a comparison of this fork with upstream found 9 tracked files there (claims/lavish-10e0fb1e81b6d2c0.claim, deck-template.html, guards.html, lavish-state/server.log, lavish-state/state.json, ordinary.html, reverse.html, suppress.html, unbound.html). They hold local home-directory paths and session tokens for a local test Lavish server that no longer runs. They are test leftovers, not product files.

What Changed

  • Deletes the 9 test files left under .live-lavish-validation/ by mistake: claims/lavish-10e0fb1e81b6d2c0.claim, deck-template.html, guards.html, lavish-state/server.log, lavish-state/state.json, ordinary.html, reverse.html, suppress.html, and unbound.html. These files held local home-directory paths and session tokens for a local Lavish test server.
  • Adds .live-lavish-validation/ to .gitignore so git does not track this folder again.

Risk Assessment

✅ Low: The change only deletes 9 untracked-in-product scratch files that nothing in the repo references, and adds one .gitignore line that git check-ignore confirms matches the folder; it fully matches the stated intent.

Testing

I drove git, the real consumer of .gitignore, in throwaway repos built from the base and target trees. All five scenarios passed. Scenario 1: the target has none of the 9 scratch files. Scenario 2: re-creating the same files leaves git status clean, and git add -A stages nothing. Scenario 3: an explicit git add is refused, and a nested copy of the folder is ignored too. Scenario 4: without the new rule, all 9 files come back as untracked, so the rule is what stops them. Scenario 5: the diff touches only .gitignore and the 9 files. The transcript is in the evidence directory. I deleted the temp repos, and the worktree is clean. This change has no UI, so there are no screenshots. Note: the files are still in old git history (commit 726a1ba). The intent did not ask for a history rewrite.

  • Live validation: ✅ go - 5 of 5 scenarios driven live against the product
Scenario Result Live Evidence
Fresh checkout of the target commit contains none of the 9 scratch files ✅ pass live gitignore-scratch-transcript.txt S1: git ls-files .live-lavish-validation | wc -l → 0; folder absent on disk
A later Lavish run writes the same 9 files again; git status stays clean and git add -A stages nothing ✅ pass live gitignore-scratch-transcript.txt S2: empty porcelain status, empty staged list, git check-ignore -v attributes every file to .gitignore:20
Adversarial: someone explicitly runs git add on a scratch file, or the folder appears at a nested depth ✅ pass live gitignore-scratch-transcript.txt S3: git add .live-lavish-validation/lavish-state/state.json refused with exit 1 and nothing staged; sub/.live-lavish-validation/a.html ignored by .gitignore:20
Regression proof: deleting the files without the ignore rule lets them leak back as untracked ✅ pass live gitignore-scratch-transcript.txt S4: base d69b2c5 plus git rm -r only → all 9 files shown as ??
The change touches only .gitignore and the 9 scratch files, and no product code used the folder ✅ pass live gitignore-scratch-transcript.txt S5: git diff --name-status shows M .gitignore + 9 D entries; git grep finds only the new .gitignore line, and the base tree has no other references
Evidence: git ignore scenario transcript (S1-S5)

Source: git ignore scenario transcript (S1-S5)

\### S1: fresh checkout of target 8add77d9 tracks no scratch files
$ git ls-files .live-lavish-validation | wc -l
       0
$ ls .live-lavish-validation
ls: $W/target/.live-lavish-validation: No such file or directory

\### S2: the 9 scratch files are written again (byte-identical to the removed ones); git ignores them
files on disk:
.live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
.live-lavish-validation/deck-template.html
.live-lavish-validation/guards.html
.live-lavish-validation/lavish-state/server.log
.live-lavish-validation/lavish-state/state.json
.live-lavish-validation/ordinary.html
.live-lavish-validation/reverse.html
.live-lavish-validation/suppress.html
.live-lavish-validation/unbound.html
$ git status --porcelain --untracked-files=all
(end status)
$ git add -A && git diff --cached --name-only
(end staged list)
$ git check-ignore -v <each file>
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/deck-template.html
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/guards.html
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/lavish-state/server.log
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/lavish-state/state.json
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/ordinary.html
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/reverse.html
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/suppress.html
.gitignore:20:.live-lavish-validation/	.live-lavish-validation/unbound.html

\### S3 (adversarial): explicit git add of a scratch file is refused without -f; nested copy also ignored
The following paths are ignored by one of your .gitignore files:
.live-lavish-validation
hint: Use -f if you really want to add them.
hint: Disable this message with "git config set advice.addIgnoredFile false"
exit=1
(end staged list)
.gitignore:20:.live-lavish-validation/	sub/.live-lavish-validation/a.html
(end status)

\### S4 (regression proof): base d69b2c5a with only the deletion and no ignore rule -> files leak back as untracked
$ git status --porcelain --untracked-files=all
?? .live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
?? .live-lavish-validation/deck-template.html
?? .live-lavish-validation/guards.html
?? .live-lavish-validation/lavish-state/server.log
?? .live-lavish-validation/lavish-state/state.json
?? .live-lavish-validation/ordinary.html
?? .live-lavish-validation/reverse.html
?? .live-lavish-validation/suppress.html
?? .live-lavish-validation/unbound.html

\### S5: change touches only .gitignore and the 9 scratch files
M	.gitignore
D	.live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
D	.live-lavish-validation/deck-template.html
D	.live-lavish-validation/guards.html
D	.live-lavish-validation/lavish-state/server.log
D	.live-lavish-validation/lavish-state/state.json
D	.live-lavish-validation/ordinary.html
D	.live-lavish-validation/reverse.html
D	.live-lavish-validation/suppress.html
D	.live-lavish-validation/unbound.html
remaining refs to live-lavish-validation in target tree:
8add77d9:.gitignore:20:.live-lavish-validation/
Evidence: Re-created scratch files are ignored by the new rule
$ git status --porcelain --untracked-files=all
(end status)
$ git check-ignore -v ...
.gitignore:20:.live-lavish-validation/ .live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
.gitignore:20:.live-lavish-validation/ .live-lavish-validation/lavish-state/state.json
... (all 9 files matched)
$ git add .live-lavish-validation/lavish-state/state.json
The following paths are ignored by one of your .gitignore files:
.live-lavish-validation
exit=1
Evidence: Without the rule (base + deletion only) the files leak back
?? .live-lavish-validation/claims/lavish-10e0fb1e81b6d2c0.claim
?? .live-lavish-validation/deck-template.html
?? .live-lavish-validation/guards.html
?? .live-lavish-validation/lavish-state/server.log
?? .live-lavish-validation/lavish-state/state.json
?? .live-lavish-validation/ordinary.html
?? .live-lavish-validation/reverse.html
?? .live-lavish-validation/suppress.html
?? .live-lavish-validation/unbound.html

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

⚠️ **Review** - 1 info
  • ℹ️ .live-lavish-validation/lavish-state/state.json:1 - The deleted files still exist in git history (commit 726a1ba and later). Example: state.json holds artifact_load_token and handoff_token values, and the .claim file holds local home-directory paths. The intent covers only removal from the tree and an ignore rule. The tokens belong to a local 127.0.0.1 Lavish server that no longer runs. No action is needed for this change. A history rewrite would be a separate human decision.
✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 5 of 5 scenarios driven live against the product
Scenario Result Live Evidence
Fresh checkout of the target commit contains none of the 9 scratch files ✅ pass live gitignore-scratch-transcript.txt S1: git ls-files .live-lavish-validation | wc -l → 0; folder absent on disk
A later Lavish run writes the same 9 files again; git status stays clean and git add -A stages nothing ✅ pass live gitignore-scratch-transcript.txt S2: empty porcelain status, empty staged list, git check-ignore -v attributes every file to .gitignore:20
Adversarial: someone explicitly runs git add on a scratch file, or the folder appears at a nested depth ✅ pass live gitignore-scratch-transcript.txt S3: git add .live-lavish-validation/lavish-state/state.json refused with exit 1 and nothing staged; sub/.live-lavish-validation/a.html ignored by .gitignore:20
Regression proof: deleting the files without the ignore rule lets them leak back as untracked ✅ pass live gitignore-scratch-transcript.txt S4: base d69b2c5 plus git rm -r only → all 9 files shown as ??
The change touches only .gitignore and the 9 scratch files, and no product code used the folder ✅ pass live gitignore-scratch-transcript.txt S5: git diff --name-status shows M .gitignore + 9 D entries; git grep finds only the new .gitignore line, and the base tree has no other references
  • git diff --name-status d69b2c5a 8add77d9 (scope check: only .gitignore + the 9 scratch files)
  • git grep -n live-lavish-validation d69b2c5a -- &#39;:!.live-lavish-validation&#39; (no product code depended on the folder)
  • Disposable repo from git archive 8add77d9: git ls-files .live-lavish-validation → 0 files
  • Re-created the 9 removed files byte-for-byte from d69b2c5a in the target repo, then git status --porcelain --untracked-files=all, git add -A &amp;&amp; git diff --cached --name-only, git check-ignore -v &lt;each file&gt;
  • Adversarial: git add .live-lavish-validation/lavish-state/state.json (refused, exit 1) and nested sub/.live-lavish-validation/a.html checked with git check-ignore -v
  • Regression proof: disposable repo from git archive d69b2c5a, git rm -r .live-lavish-validation only (no ignore rule), re-created files → git status lists all 9 as untracked
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@MrGTV-love
MrGTV-love merged commit 9d6c0bc into main Oct 10, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant