You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copilot code review runs on our PRs against generic defaults rather than SwimBlocks standards
(ruff rule set, venv standard, fixture pseudonymization, PR sizing, design-doc workflow). We
want an org-wide baseline that every repo inherits, plus per-repo layering on top.
Constraints
Code review on github.com reads .github/copilot-instructions.md, .github/instructions/**/*.instructions.md (applyTo globs), and AGENTS.md (nearest in
tree wins). All applicable sets are combined, not exclusive.
Instructions are read from the head branch, so a PR that changes them is reviewed under them.
Copilot does not follow links out of an instruction file. Our current chain
(copilot-instructions.md → AGENTS.md → CONTRIBUTING.md → swimblocks/.github) breaks at
the cross-repo hop. Content must physically exist in each repo.
The .github repo's community-health inheritance does not cover Copilot instruction files.
Org-level instructions require Copilot Business/Enterprise. Org is on free with 0 seats and seat_management_setting: unconfigured — unavailable to us. Also ~4000 chars and not
version-controlled.
AGENTS.md is honored by code review on github.com only; copilot-instructions.md is honored
on all platforms including IDE review.
Current state
Repo
copilot-instructions.md
AGENTS.md
.github/instructions/
officials-admin
—
—
—
.github
—
yes
—
swim-club-tech-survey
yes
yes
—
rems-sync
yes
yes
—
deck-eval-gen
yes
yes
—
deck-eval-parser
yes
yes
—
rems-sync-apps-script
—
—
—
The four existing copilot-instructions.md files are thin pointers to AGENTS.md and carry no
content of their own.
Sync that block into .github/copilot-instructions.md in every org repo via the reconciler
(scripts/apply-settings.py, reconcile-repo-defaults.yml), inside begin/end fences so
per-repo content below the fence survives reconciliation. Depends on reconcile-repo-defaults workflow is disabled, so new repos miss org settings #34.
Backfill AGENTS.md + copilot-instructions.md in officials-admin and rems-sync-apps-script.
Add .github/instructions/*.instructions.md where a repo has genuinely path-scoped
conventions (parser fixtures, Apps Script, migrations).
Validate on a real PR.
Decisions
copilot-instructions.md holds review criteria; AGENTS.md stays authoring-focused. They
answer different questions, excludeAgent frontmatter exists for the split, and only copilot-instructions.md works for IDE review.
Not buying Copilot Business seats for org-level instructions. The file approach is
version-controlled and reviewable; the org settings box is neither.
Open
Does the reconciler own file content, or only settings? Expanding its remit likely warrants a
design doc under docs/design/.
Problem
Copilot code review runs on our PRs against generic defaults rather than SwimBlocks standards
(ruff rule set, venv standard, fixture pseudonymization, PR sizing, design-doc workflow). We
want an org-wide baseline that every repo inherits, plus per-repo layering on top.
Constraints
.github/copilot-instructions.md,.github/instructions/**/*.instructions.md(applyToglobs), andAGENTS.md(nearest intree wins). All applicable sets are combined, not exclusive.
(
copilot-instructions.md→AGENTS.md→CONTRIBUTING.md→swimblocks/.github) breaks atthe cross-repo hop. Content must physically exist in each repo.
.githubrepo's community-health inheritance does not cover Copilot instruction files.freewith 0 seats andseat_management_setting: unconfigured— unavailable to us. Also ~4000 chars and notversion-controlled.
AGENTS.mdis honored by code review on github.com only;copilot-instructions.mdis honoredon all platforms including IDE review.
Current state
copilot-instructions.mdAGENTS.md.github/instructions/The four existing
copilot-instructions.mdfiles are thin pointers toAGENTS.mdand carry nocontent of their own.
Plan
prose. Covers ruff rule set (Ruff selection is documented org-wide but enforced per-repo, inconsistently #38), venv standard, fixture pseudonymization (CONTRIBUTING: test fixtures must use synthetic names; document the multi-pattern PII scrub #17), PR sizing
(PR-sizing and progress-PR guidance in CONTRIBUTING.md and elsewhere is not sufficiently clear #7), design-doc workflow (Add design-doc workflow to org-wide CONTRIBUTING.md and AGENTS.md #23), squash-only / PR body conventions. Keep under ~2 pages.
.github/copilot-instructions.mdin every org repo via the reconciler(
scripts/apply-settings.py,reconcile-repo-defaults.yml), inside begin/end fences soper-repo content below the fence survives reconciliation. Depends on reconcile-repo-defaults workflow is disabled, so new repos miss org settings #34.
AGENTS.md+copilot-instructions.mdin officials-admin and rems-sync-apps-script..github/instructions/*.instructions.mdwhere a repo has genuinely path-scopedconventions (parser fixtures, Apps Script, migrations).
Decisions
copilot-instructions.mdholds review criteria;AGENTS.mdstays authoring-focused. Theyanswer different questions,
excludeAgentfrontmatter exists for the split, and onlycopilot-instructions.mdworks for IDE review.version-controlled and reviewable; the org settings box is neither.
Open
design doc under
docs/design/.References