private-forklisted
Install: claude install-skill hsb3/dotfiles-agents
# Private Fork — setup and operation
Doctrine for maintaining a **private, deliberately-divergent fork** of an actively
developed upstream OSS project: keep the ability to pull upstream forever, keep your
divergence small and fully recorded, and keep every merge routine.
The enemy is **merge tax** — every divergence makes every future upstream merge more
expensive. Almost every rule below exists to minimize it or to make paying it deliberate.
## Reference files
| File | Read when |
|---|---|
| `references/setup.md` | Creating a new private fork, or retrofitting governance onto an existing one |
| `references/divergence-rubric.md` | Deciding what to delete/disable/hide, making any deliberate change to upstream code, neutralizing telemetry/phone-home |
| `references/upstream-sync.md` | Reviewing upstream changes, merging upstream in, resolving conflicts, the post-merge checklist |
Templates to copy into the fork are in `assets/templates/` (divergence ledger, full-tier
registry, review log, digest script, CI reminder workflow). Fill placeholders marked
`{{LIKE_THIS}}`.
## Invariants (every fork, every tier)
1. **Private mirror, not a GitHub fork.** GitHub forks of public repos can't be private.
Create an empty private repo, push the full upstream history to it as `origin`, keep
`upstream` as a fetch-only remote.
2. **Block accidental upstream pushes, day one:**
`git remote set-url --push upstream DISABLED`.
3. **Merge upstream in; never rebase the published trunk