This is a special base template repo that contains default community health files, templates, workflows, and other files to be shared with derived repositories. For more information on how this special repo works, see this article on freeCodeCamp.
---
title: Personal GitHub Repo Structure
---
flowchart TB
subgraph row1 [" "]
github(<b>.github</b>
repo)
githubNote[Contains core files
to be included in all repos.]
end
subgraph row2 [" "]
templateA(<b>.template-a</b>
repo)
repo1(repo-1)
templateB(<b>.template-b</b>
repo)
templateNote[Templates contain
additional default files
for specific project types.]
end
subgraph row3 [" "]
repo2(repo-2)
repo3(repo-3)
repo4(repo-4)
templateC(<b>.template-c</b>
repo)
end
subgraph row4 [" "]
repo5(repo-5)
end
classDef row opacity:0
class row1,row2,row3,row4 row
classDef current fill:#E68A39,color:#000000
class github current
classDef note fill:#FFFFDD,color:#000000
class githubNote,templateNote note
classDef repo fill:#34C3EB,color:#000000
class repo1,repo2,repo3,repo4,repo5 repo
github --> templateA
github --> repo1
github --> templateB
templateA --> repo2
templateA --> repo3
templateB --> repo4
templateB --> templateC
templateC --> repo5
For how a change travels between these repos, and who owns which file when a sync conflicts, see Template Chain.
GitHub allows some community health and GitHub configuration files to only reside in the .github repo and automatically appear in all other repos. However, we can't take full advantage of that feature because most files need repo-specific customization.
| File | Exists only in .github repo |
Overridden in template repo |
Notes |
|---|---|---|---|
| 📁.github/ | |||
| ├─📄CODEOWNERS | N/A | ✅ | |
| └─📄FUNDING.yml | ✅ | ||
| 📄CODE_OF_CONDUCT.md | ✅ | Linked to by other files | |
| 📄CONTRIBUTING.md | ✅ | Links to other files | |
| 📄GOVERNANCE.md | — | — | Not implemented |
| 📄LICENSE | N/A | ✅ | |
| 📄SECURITY.md | ✅ | Links to GitHub repo | |
| 📄SUPPORT.md | ✅ | Links to other files |
| Template | Exists only in .github repo |
Overridden in template repo |
Description |
|---|---|---|---|
| 📁.github/ | |||
| ├─📁actions/ | N/A | ✅ | Shared composite actions |
| ├─📁DISCUSSION_TEMPLATE/ | — | — | Not implemented |
| ├─📁instructions/ | N/A | ➕ | Path-scoped AI instructions |
| ├─📁ISSUE_TEMPLATE/ | ✅ | Contains GitHub Issue forms | |
| │ └─📄config.yml | ✅ | GitHub Issue template chooser | |
| ├─📄codecov.yml | N/A | ➕ | Coverage thresholds |
| ├─📄copilot-instructions.md | N/A | ✅ | Copilot configuration |
| ├─📄dependabot.yml | N/A | ✅ | Dependabot configuration |
| ├─📄pull_request_template.md | ✅ | GitHub Pull Request template | |
| └─📄settings.yml | N/A | ✅ | Repo configuration |
| Workflow | Description |
|---|---|
| 📁.github/ | |
| └─📁workflows/ | |
| ├─📄Create Release | Entry point for cutting a release. Replaced per layer |
| ├─📄Release | Drafts the release. Shared by every layer |
| ├─📄Template Sync | Synchronizes files from a template repo to a derived repo |
| └─📄Validate Codecov | Checks codecov.yml against Codecov's validator |
| File | Description |
|---|---|
| 📁.claude/ | AI agents and skills |
| 📁.github/agents/ | Copilot mirrors of those agents |
| 📁.vscode/ | Contains VSCode settings |
| 📁docs/ | Contains documentation |
| 📁scripts/ | Repo scaffolding scripts |
| 📄.editorconfig | Styleguide rule definitions |
| 📄.gitattributes | Built using scaffolding |
| 📄.gitignore | Built using scaffolding |
| 📄.gitmessage | Commit message template |
| 📄AGENTS.md | AI agent instructions |
| 📄CLAUDE.md | Imports AGENTS.md for Claude Code |
| 📄GitVersion.yml | How the version is calculated |