Engine-root file swap for PRs
Engine-root file swap for PRs
Section titled “Engine-root file swap for PRs”Date: 2026-03-22 Status: accepted
Problem
Section titled “Problem”The scaffolder repo root has files that serve dual purposes: CLAUDE.md, STANDARDS.md, PROJECT-INSTRUCTIONS.md, RELEASE-CHECKLIST.md. The operator customizes these locally (personal AI names, operator notes, project-specific rules). But the repo on GitHub needs the generic/product versions — not the operator’s personal config.
Decision
Section titled “Decision”templates/engine-root/ holds the generic product versions of these files.
It is gitignored — it’s a local staging area, not part of the shipped product.
Before any PR, Harley runs a swap:
- Back up operator’s custom root files to
.engine-root-backup/ - Copy
templates/engine-root/*to repo root (overwrite) - Commit the generic versions
- Push / create PR
- Restore operator’s custom files from
.engine-root-backup/ - Delete
.engine-root-backup/
The repo on GitHub always has clean generic files. The operator always has their custom versions locally. The swap is transparent and automatic.
What’s in templates/engine-root/
Section titled “What’s in templates/engine-root/”CLAUDE.md— generic standing instructions (Claude Chat / Claude Code)STANDARDS.md— development standards with generic namesPROJECT-INSTRUCTIONS.md— template for Claude.ai with example custom sectionRELEASE-CHECKLIST.md— release checklist with generic names
What’s gitignored
Section titled “What’s gitignored”templates/engine-root/— the generic templates (local staging).engine-root-backup/— temporary backup during swap
What’s tracked in git
Section titled “What’s tracked in git”- Root-level CLAUDE.md, STANDARDS.md, PROJECT-INSTRUCTIONS.md, RELEASE-CHECKLIST.md (these are the generic versions after swap — the product files)
Custom instruction
Section titled “Custom instruction”The scaffolder project’s CLAUDE.md includes a permanent instruction for Harley:
“Before any PR, run the engine-root swap.” This is project-specific — it only
applies to the scaffolder development repo, not to projects created with sc create.