File Naming & Path Standards
<metadata>- Load if: Git operations, PR workflows, new project setup
- Prerequisites: @smith-principles/SKILL.md
CRITICAL: Naming Separators (Primacy Zone)
<required>Underscore (_): Multi-word phrases as single concept
user_authentication,query_processor,semantic_search- Think: "What kind of X?" → underscore
Hyphen (-): Hierarchical/parallel relationships
auth-login(login is part of auth)api-restvsapi-graphql(variants)- Dates:
2025-01-15 - Tickets:
JIRA-1234
File Patterns
Test files: test_[module]_[function]_[type].py
JSON test data: [module]_[function]_cases.json
Documentation: [topic].md (hyphen for hierarchy, underscore for phrases)
Config: .env, pyproject.toml, AGENTS.md
Path References
<required>Use code blocks, not Markdown links:
**Core Principles**: @smith-principles/SKILL.md - Description
**Related Skill**: @skill-name/SKILL.md - Description
Variables: $WORKSPACE_ROOT, $REPO_ROOT, $HOME
Conventional Commits
<required>Format: type: description or type(scope): description
Types: feat, fix, docs, refactor, style, test, chore, perf, build, ci
Length limits (50/72 rule):
- Subject: 50 chars target, 72 max
- Body: 72 chars per line
feat(auth): add token refresh
fix: resolve CORS issues
docs: update deployment guide
</examples>
<forbidden>
- Subject over 72 characters
- Multiple unrelated changes ("add X and fix Y")
- Using
docswhen also changing code
Special prefixes (outside conventional commits):
#WIP— Work-in-progress checkpoint, not a conventional commit (used by auto-commit rules)
Branch Names
<required>Pattern: type/descriptive_name
Examples:
feat/user_authentication(underscore: single concept)feat/auth-login(hyphen: login is part of auth)fix/JIRA-1234-query_processor
Branch type MUST match commit type
</required> <forbidden>feat/user-authentication(should be underscore)feat/auth_login(should be hyphen)
@smith-git/SKILL.md- Branch and commit workflows- @smith-principles/SKILL.md - Core principles (DRY, KISS, YAGNI)
ACTION (Recency Zone)
<required>Before naming:
- Is it a single concept? → underscore
- Is it a part/variant? → hyphen
- Is it a date/ticket? → hyphen
Before committing:
- Subject ≤72 chars?
- Single atomic change?
- Type matches branch?