Skip to content

Cross-Tool Loading, Verification Checklist โ€‹

FieldValue
WhatConfirm the .agents/ compiler outputs are actually LOADED by each tool (the load-bearing assumption under "baked into every tool")
WhyThe generated files have correct frontmatter, but only Claude-reads-AGENTS.md is proven. Copilot/Cursor/Gemini loading is assumed, not verified.
HowRun each check in the named tool. No repo changes; observe behavior.
TesterMechelle
Date(fill in)

Summary โ€‹

#CheckResult
1Copilot loads a committed scoped rule[ ] pass [ ] fail [ ] blocked
2Copilot loads the gitignored my-voice[ ] pass [ ] fail [ ] blocked
3Cursor loads a committed scoped rule[ ] pass [ ] fail [ ] blocked
4Cursor loads the gitignored my-voice[ ] pass [ ] fail [ ] blocked
5Gemini reads GEMINI.md + the @AGENTS.md import[ ] pass [ ] fail [ ] blocked

Setup โ€‹

  • Run npm run context:sync-tools first so the gitignored voice files exist (.cursor/rules/my-voice.local.mdc, .github/instructions/my-voice.local.instructions.md).
  • These are the assumptions the context layer + "baked into every tool" claim rest on. A fail on 2/4/5 means that tool's personal-context / import story is aspirational, not real, and should be documented as such (not silently claimed).

Checks โ€‹

1. Copilot loads a committed scoped rule โ€‹

  • Do: In VS Code with Copilot, open an apps/admin/** file and ask Copilot something that the admin UI rule governs (e.g. "add a dropdown to this admin page").
  • Expected: it follows the admin rule (StyledSelect, not native <select>), i.e. .github/instructions/admin-ui-conventions.instructions.md (applyTo apps/admin/**) was loaded.
Result:    [ ] pass   [ ] fail   [ ] blocked
Actual:
Evidence:
Follow-up:

2. Copilot loads the gitignored my-voice โ€‹

  • Do: Ask Copilot a decision-shaped question and see if it uses the voice (recommendation-first, no em dashes).
  • Expected: the voice from .github/instructions/my-voice.local.instructions.md (applyTo **) shapes the reply. If Copilot ignores gitignored instruction files, this fails, that is the key unknown.
Result:    [ ] pass   [ ] fail   [ ] blocked
Actual:
Evidence:
Follow-up:

3. Cursor loads a committed scoped rule โ€‹

  • Do: In Cursor, work in an apps/admin/** file and prompt something the admin rule governs.
  • Expected: it honors the admin rule, i.e. .cursor/rules/admin-ui-conventions.mdc (globs apps/admin/**) loaded.
Result:    [ ] pass   [ ] fail   [ ] blocked
Actual:
Evidence:
Follow-up:

4. Cursor loads the gitignored my-voice โ€‹

  • Do: Ask Cursor a decision-shaped question.
  • Expected: the voice from .cursor/rules/my-voice.local.mdc (alwaysApply) shapes the reply.
Result:    [ ] pass   [ ] fail   [ ] blocked
Actual:
Evidence:
Follow-up:

5. Gemini reads GEMINI.md + the @AGENTS.md import โ€‹

  • Do: In a fresh Gemini CLI session, ask it to quote an AGENTS.md-only rule (e.g. non-negotiable rule 16).
  • Expected: it reproduces the rule, proving GEMINI.md loaded and the @AGENTS.md import expanded (the same test that passed for Claude).
Result:    [ ] pass   [ ] fail   [ ] blocked
Actual:
Evidence:
Follow-up:

After the run โ€‹

  • Any fail here means a tool's loading is aspirational. Update docs/planning/plans/2026-07-13-context-layer.md and the .agents/README.md to say so honestly (e.g. "Copilot does not load gitignored instructions, voice is Claude-only"), rather than leaving the claim implicit.

Built with VitePress