GITHUB-ISSUES-2026-03-22-untrack-operator-files.md
GITHUB-ISSUES-2026-03-22-untrack-operator-files.md
Section titled “GITHUB-ISSUES-2026-03-22-untrack-operator-files.md”Created: 2026-03-22 Purpose: Close incomplete PR #324, create replacement issue for corrected fix
Rules for Harley
Section titled “Rules for Harley”- Run
gh label listbefore creating any issues — never create a label that already exists - Run operations one at a time in the order listed
- Confirm each result (URL or success message) before moving to the next
- Do not modify operation content
- Report any failures to operator immediately
- Stop after all operations are complete — no other work
Operations
Section titled “Operations”Operation 1 — Close PR #324 with explanation
Section titled “Operation 1 — Close PR #324 with explanation”gh pr close 324 --comment "Closing — the gitignore-only approach is incomplete. Gitignore only protects untracked files. Since dev and staging still track the 4 operator root files, switching to those branches restores tracked versions and switching back deletes the local copies.
Replacement: a fix branch from dev that adds the gitignore rules AND runs git rm --cached on the same branch. Normal release flow (dev → staging → main) ensures all three branches get the untrack commit. See replacement issue."Operation 2 — Create replacement issue
Section titled “Operation 2 — Create replacement issue”gh issue create --title "fix: untrack operator custom root files across all branches" --label "bug" --body "## Problem
PR #324 attempted to gitignore the 4 operator custom root files (CLAUDE.md, STANDARDS.md, PROJECT-INSTRUCTIONS.md, RELEASE-CHECKLIST.md) via a hotfix to main. Testing revealed this is incomplete:
- \`.gitignore\` only protects **untracked** files- dev and staging still track these files- Switching to dev restores tracked generic versions; switching back to main (untracked) deletes local copies- Test result: operator custom files were destroyed during branch switch
Closes PR #324 (incomplete approach).
## Root cause
The files are tracked on all three long-lived branches (main, staging, dev). Adding them to \`.gitignore\` on one branch doesn't remove them from tracking — it only hides them from \`git status\` once they're already untracked.
## Correct fix
1. Branch \`fix/untrack-operator-root-files\` from dev2. Update \`.gitignore\` to ignore the 4 files (same rules as PR #324)3. \`git rm --cached CLAUDE.md STANDARDS.md PROJECT-INSTRUCTIONS.md RELEASE-CHECKLIST.md\`4. Commit both changes together5. Normal release flow: fix → dev (PR) → staging (PR) → main (PR)
This ensures all three branches get the untrack commit through the normal merge flow. Once all branches have it, the files become truly untracked everywhere and \`.gitignore\` protects them.
## Acceptance criteria
- [ ] All 4 files removed from git tracking on dev, staging, and main- [ ] \`.gitignore\` includes all 4 files with explanatory comments- [ ] Branch switches between main, staging, and dev do not touch operator custom root files- [ ] \`git add -f\` still works for engine-root swap (force-staging gitignored files)- [ ] Operator custom files survive full round-trip: main → dev → staging → main
## Notes
- This fix rolls into the v0.11.0 release (not a standalone hotfix)- The .gitignore changes from PR #324 are correct — they just need to be paired with git rm --cached- Engine-root swap instructions in CLAUDE.md already reference \`git add -f\` — no update needed"