Semantic Commit
Create clean, semantic git commits following strict commit discipline.
Commit Format
code
<type>(<scope>): <description> [optional body] [optional footer(s)]
Types
| Type | When to Use |
|---|---|
feat | New feature or functionality |
fix | Bug fix |
docs | Documentation changes only |
style | Formatting, whitespace (no code logic change) |
refactor | Code restructuring without behavior change |
test | Adding or updating tests |
chore | Maintenance, configs, dependencies |
Scopes (Project-Specific)
Common scopes for agentconfig.org:
- •
file-tree- FileTree component/visualization - •
cards- PrimitiveCards component - •
comparison- ProviderComparison component - •
hero- Hero section - •
navigation- Navigation component - •
theme- ThemeProvider, ThemeToggle, dark/light mode - •
data- Data files in site/src/data/ - •
e2e- Playwright tests - •
skills- Skill files in .github/skills/
Rules
1. Atomic Commits
Each commit must represent ONE logical change. If you're tempted to use "and" in your description, split it into multiple commits.
code
# Bad feat(ui): add file tree component and update navigation # Good - Two separate commits feat(file-tree): add collapsible tree node component fix(navigation): update scroll offset for new header
2. Minimize Files
Prefer multiple small commits over one large commit. Ask: "Can this be split further?"
3. Clear Descriptions
The description should complete: "This commit will..."
- •Use imperative mood: "add", "fix", "update" (not "added", "fixes")
- •Be specific but concise
- •No period at the end
4. Pre-Commit Verification
Before committing, verify:
- •
bun run lintpasses - •
bun run typecheckpasses - •
bun run testpasses - •Only intended files are staged
- •No debug code or console.logs (unless intentional)
Workflow
When asked to commit:
- •Review changes with
git statusandgit diff --staged - •Assess scope - Determine if this should be one or multiple commits
- •Unstage if needed - If changes span multiple features, commit separately
- •Write message following the format
- •Verify - Run lint, typecheck, and tests
- •Commit only after verification passes
Good Examples
code
feat(file-tree): add TreeNode component with expand/collapse chore(deps): add @radix-ui/react-collapsible test(navigation): verify smooth scroll to sections fix(theme): use correct tan background in light mode refactor(hooks): extract theme logic to useTheme hook docs(readme): add development setup instructions
Bad Examples
code
update stuff # Too vague feat: add everything # Too broad WIP # Incomplete work fix(ui): fixed the bug # Past tense, vague feat(tree): Add tree. And cards. # Multiple changes, period
Multi-File Commits
When changes span multiple areas:
- •Can this be split into separate commits?
- •If not, use the most significant scope
- •List additional changes in the commit body
code
feat(file-tree): add expand/collapse functionality Also updates: - TreeNode component styling - FileTree section layout