Three repos now have `.github/copilot-instructions.md` files at the 4k-char silent-truncation cap:
- `rosen-frontend` — 3995 chars
- `class` — 3993 chars
- `houseofjawn-bot` — 3992 chars
Each is one byte from invisibly losing content the next time a bug class is added. The cause: 1700 chars of Joe's user-level globals (sentence-case, anti-slop, AI-attribution, banned words, favicon/OG scoping) restated in each project's `copilot-instructions.md` because Copilot's PR review bot does NOT read `/.claude/CLAUDE.md`.
Long-term fix
Per GitHub's 2025-11-12 changelog, `.github/instructions/*.instructions.md` files are also read by Copilot's PR review bot, with `applyTo` glob scoping and an `excludeAgent` opt-out. A path-scoped `globals.instructions.md` would let projects centralize the globals block once and shrink each `copilot-instructions.md` back to project-specific bug classes.
Mechanism options
- Sync script in `tools/` — reads `~/.claude/CLAUDE.md`, writes `.github/instructions/globals.instructions.md` to each subscribed repo. Run via cron, pre-commit hook, or manual `tools/sync-globals.sh `.
- Submodule — point each repo at a shared `copilot-globals` repo. Cleaner long-term, more friction per-repo.
- Manual + git-tracked — single canonical `globals.instructions.md` copied on repo creation, updated by hand when globals change.
Scope of this issue
- Pick a mechanism
- Build it
- Migrate the three over-cap files (rosen-frontend, class, houseofjawn-bot) to use it
- Document the workflow in `tools/CLAUDE.md`
Other repos adopt opportunistically (probably worth doing on socialsnag, claude-skills-journalism, reroute-nj, tools too).
Reference: MEMORY.md → `reference_copilot_pr_review_reading_scope.md` for the underlying constraint.
Three repos now have `.github/copilot-instructions.md` files at the 4k-char silent-truncation cap:
Each is one byte from invisibly losing content the next time a bug class is added. The cause:
1700 chars of Joe's user-level globals (sentence-case, anti-slop, AI-attribution, banned words, favicon/OG scoping) restated in each project's `copilot-instructions.md` because Copilot's PR review bot does NOT read `/.claude/CLAUDE.md`.Long-term fix
Per GitHub's 2025-11-12 changelog, `.github/instructions/*.instructions.md` files are also read by Copilot's PR review bot, with `applyTo` glob scoping and an `excludeAgent` opt-out. A path-scoped `globals.instructions.md` would let projects centralize the globals block once and shrink each `copilot-instructions.md` back to project-specific bug classes.
Mechanism options
Scope of this issue
Other repos adopt opportunistically (probably worth doing on socialsnag, claude-skills-journalism, reroute-nj, tools too).
Reference: MEMORY.md → `reference_copilot_pr_review_reading_scope.md` for the underlying constraint.