* chore: refresh coding agent setup Remove the unused Squad configuration and align Copilot instructions with the current generated architecture. Add deterministic Windows cloud-agent dependency setup. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b6c52095-fe7c-4482-8789-f490af2ffad3 * docs: update generated surface checklist Replace obsolete hand-written MCP wiring steps in the pull request template with the current generator and parity checks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b6c52095-fe7c-4482-8789-f490af2ffad3 --------- Copilot-Session: b6c52095-fe7c-4482-8789-f490af2ffad3
5.7 KiB
applyTo, excludeAgent
| applyTo | excludeAgent |
|---|---|
| README.md,FEATURES.md,CHANGELOG.md,SECURITY.md,PRIVACY.md,docs/**/*.md,specs/**/*.md,src/**/README.md,skills/**/*.md,gh-pages/docs/**/*.md | code-review |
Documentation Structure & Standards
Clear hierarchy prevents temporary doc accumulation
📁 Documentation Hierarchy
Root Level - Essential User-Facing Only
- ✅
README.md- GitHub acquisition page and quick start - ✅
FEATURES.md- Feature navigation hub and tool-selection guide - ✅
CHANGELOG.md- Generated release history - ✅
SECURITY.md- Security policy (GitHub standard) - ✅
PRIVACY.md- Privacy policy - ✅
LICENSE- License file - ❌ NO temporary files (SUMMARY, FIX, BUG, TESTS, DOCS, etc.)
docs/ - Canonical Documentation
Purpose: Feature references, user guides, architecture, and development processes
Categories:
- Feature References:
features/*.md - User Guides:
INSTALLATION*.md,USE-CASES.md,CONTRIBUTING.md - Architecture:
ARCHITECTURE.md,ADR-*.md - Developer Guides:
DEVELOPMENT.md,PRE-COMMIT-SETUP.md - Process Docs:
RELEASE-STRATEGY.md,MCP_REGISTRY_PUBLISHING.md,NUGET-GUIDE.md - Infrastructure:
infrastructure/azure/README.md - Standards:
TEST-NAMING-STANDARD.md
Naming Convention:
- ✅
TOPIC-NAME.md(ALL CAPS for discoverability) - ✅
ADR-NNN-DECISION-NAME.md(Architecture Decision Records) - ❌ NO
SUMMARY.md,FIX.md,TESTS.md(temporary naming)
specs/ - Feature Specifications
Purpose: What should be built (requirements, design, before implementation)
Naming Convention:
- ✅
FEATURE-NAME-SPEC.md - ✅
COMPONENT-API-SPECIFICATION.md
src/[Component]/ - Component Documentation
Purpose: Component-specific overview and usage
Files:
- ✅
README.md- Component overview, quick start
Temporary Documentation Rules
❌ Forbidden at Root Level
FIX-*.md- Document fixes in PRs, not filesBUG-*.md- Track bugs in GitHub IssuesTESTS-*.md- Test info belongs in test filesDOCS-*.md- Update actual docs, don't create meta-docsSUMMARY-*.md- Summarize in PR descriptions
✅ Where to Put Content Instead
- Bug investigation → GitHub Issue comments
- Fix summary → PR description
- Architecture decisions →
docs/ADR-NNN-DECISION-NAME.md - Temporary notes → Branch commit messages (deleted after merge)
Document Lifecycle
Before Creating a Doc
- Canonical source first: Update canonical repository docs before Pages wrappers.
- Preserve information: Map substantive content before shortening or relocating a document.
- Wrappers stay thin:
gh-pages/docs/adds presentation and SEO, not a second source of truth. - Is this permanent? → YES: Use proper location above.
- Is this temporary? → Put in PR/Issue/commit message instead.
- Does equivalent doc exist? → Update existing, don't duplicate.
During PR Review
- ❌ Root-level temporary docs → Move to proper location or delete
- ✅ Permanent docs → Must follow naming conventions above
After PR Merge
- Delete temporary docs if any slipped through
- Verify permanent docs in correct location
Canonical sources published to the website
gh-pages/hooks.py transforms canonical repo docs into gh-pages/docs/_generated/
(git-ignored) and thin wrappers include them with --8<--. Anything listed below
is authored once, in the repo, and published automatically:
| Canonical source | Site route |
|---|---|
README.md, FEATURES.md, CHANGELOG.md, SECURITY.md, PRIVACY.md |
home, /features/, /changelog/, /security/, /privacy/ |
docs/features/*.md |
/features/<slug>/ |
docs/guides/*.md |
/guides/<slug>/ |
docs/INSTALLATION*.md, docs/ARCHITECTURE.md, docs/USE-CASES.md, docs/CONTRIBUTING.md |
matching routes |
src/ExcelMcp.McpServer/README.md, src/ExcelMcp.CLI/README.md, skills/README.md |
/mcp-server/, /cli/, /skills/ |
skills/shared/*.md |
/reference/<slug>/ |
When adding a new canonical doc that should appear on the site:
- Write it under
docs/(orskills/shared/for agent reference material). - Add it to the matching source map in
gh-pages/hooks.pyand toSITE_PAGE_MAPso cross-references resolve on-site instead of linking to GitHub. - Add a thin wrapper under
gh-pages/docs/owning onlytitle,description,keywords, the H1, and the--8<--include. - Add a nav entry in
gh-pages/mkdocs.yml. - Build with
python -m mkdocs build --strictfromgh-pages/.
The build also derives /llms.txt, /llms-full.txt, /tools.json, and a
Markdown mirror for every page from the same content — no separate maintenance.
Naming Standards
✅ Good Names (Discoverable)
DEVELOPMENT.mdADR-001-NO-UNIT-TESTS.mdRANGE-API-SPECIFICATION.mdPRE-COMMIT-SETUP.md
❌ Bad Names (Temporary/Vague)
notes.mdtemp.mdSUMMARY.mdFIX-123.mdNEW-FEATURE.md
File Organization Rules
- Root level = Permanent, essential, user-facing only
- docs/ = Permanent implementation/process documentation
- specs/ = Permanent feature specifications
- src/Component/ = Permanent component-specific docs
- Nowhere = Temporary documentation (use PRs/Issues instead)
Quick Checklist
Before committing a .md file, verify:
- File is permanent (not temporary investigation/fix notes)
- File location matches hierarchy above
- File name follows naming conventions (ALL CAPS or kebab-case)
- No duplicate documentation exists
- Content is complete (not placeholder)
- Removed content has a verified canonical destination
- GitHub Pages wrappers contain no duplicated operational reference