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.
In the tables below, Exists only in .github repo marks a file scaffolding
deletes when it creates a derived repo. In Overridden in template repo:
✅ marks a file scaffolding actively rewrites or retargets for the new
repo (settings.yml, always; LICENSE, only when private; CONTRIBUTING.md,
SECURITY.md, SUPPORT.md and the issue forms, whose owner/repo links get
retargeted); ➕ marks a file each layer extends without disturbing what
came before — a new block, a new key, or a whole new file; a blank cell means
the file is inherited unchanged, free to customize by hand if you want to.
| 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 | ✅ (private) | |
| 📄SECURITY.md | ✅ | Links to GitHub repo | |
| 📄SUPPORT.md | ✅ | Links to other files |
| Template | Exists only in .github repo |
Overridden in template repo |
Description |
|---|---|---|---|
| 📁.github/ | |||
| ├─📁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 |
| ├─📄gitversion.yml | N/A | How the version is calculated | |
| ├─📄pull_request_template.md | GitHub Pull Request template | ||
| └─📄settings.yml | N/A | ✅ | Repo configuration |
Shared composite actions live in the separate
TaffarelJr/.actions repo, not under .github/ here — each
workflow below marked via is a thin trigger that calls one.
| Workflow | Description |
|---|---|
| 📁.github/ | |
| └─📁workflows/ | |
| ├─📄Draft Release | Entry point for cutting a release, via TaffarelJr/.actions |
| ├─📄Template Sync | Brings changes from a template repo, via TaffarelJr/.actions |
| ├─📄Test Scripts | Runs the scaffolding scripts' tests on both platforms |
| └─📄Validate Codecov | Checks codecov.yml against Codecov's validator, via TaffarelJr/.actions |
| File | Description |
|---|---|
| 📁.claude/ | AI agents and skills |
| └─📄CLAUDE.md | Imports AGENTS.md for Claude Code |
| 📁.github/agents/ | Copilot mirrors of those agents |
| 📁.vscode/ | Contains VSCode settings |
| 📁docs/ | Contains documentation |
| 📁scripts/ | Repo scaffolding scripts, and their tests |
| 📄.editorconfig | Styleguide rule definitions |
| 📄.gitattributes | Built using scaffolding |
| 📄.gitignore | Built using scaffolding |
| 📄.gitmessage | Commit message template |
| 📄AGENTS.md | AI agent instructions |