commit · git:20260815.2807be5 · 2026-08-15 · sha256 820bb108d946ceb5
commit git:20260815.2807be5A
Immutable. This exact content is served forever at /api/v1/blob/820bb108d946ceb5.
--- name: commit description: Use before writing any git commit message or reviewing one, and when the user asks for "commit requirements", "commit message guidelines", "/ar:commit", or "/ar:gc". Carries the 17-step pre-commit analysis, the concrete-subject rules that ban vague verbs and session-internal jargon, and the checks that keep a message reviewable from the repository alone. aliases: [gc] --- # Git Commit Requirements <purpose> **Third-party repos**: Use `.git/info/exclude` for local-only ignores (e.g., `notes/`) without modifying `.gitignore`. **IMPORTANT: Read this entire process (steps 1-17) before starting any git commit work and you must carefully re-analyze the actual for regressions and errors and complete each numbered item and sub-item step-by-step.** </purpose> --- <requirements> ## Pre-Git Commit Analysis Process ### 1. Command Execution - `git status` - see all untracked files - `git diff --staged` - see exactly what changes will be committed - `git log -5` - see recent commit messages for style consistency and for context ### 2. Complete Change Analysis Must analyze **ALL commits and changes** that will be included: - **Not just latest commit** - analyze entire scope - Both staged and unstaged changes - All commits from branch divergence point (for PRs) - Previously staged work, not just immediate changes ### 3. Mandatory Regression Check Before writing commit message, review `git diff --staged` to ensure: - Every claim in commit message has evidence in the actual diff - No assumptions about previous behavior - only describe what the diff shows changed - Subject line accurately reflects the files and scope of actual changes - All described functionality changes match what's visible in the code diff - **If regressions found**: Create task using TodoWrite and follow process/wait process to fix --- ## Pre-Git Commit Structure & Format ### 4. Subject Line Format - **Few/grouped files**: `<files>: concrete description of what specifically changed` - Example: `tsb-launcher.ts,test.ts: enable automatic argument passthrough` - Example: `test_*.ts: fix mocking infrastructure for argument parsing` (pattern grouping) - Example: `src/security/*.sb: add AI config file access permissions` (directory grouping) - **Many files**: `type(scope): concrete description of what specifically changed` (scope can be app name) - Example: `fix(TSB): enable CLI argument passthrough by defaulting sandbox to enabled` - **Mixed**: `type(scope) <files>: concrete description` - Example: `fix(TSB) advanced-sandbox-config.ts: enable sandbox-exec by default` - **Always include**: Concrete and actionable description of what specifically changed - **Avoid vague terms**: "improve performance" → "cache API responses in RequestManager.fetch()", "enhance security" → "validate file paths in loadSandboxConfig()", "update system" → "default sandbox to enabled in AdvancedSecurityManager" ### 5. Message Structure - **Summary first**: Concise summary line at top (following format above) - **Previous behavior**: Describe what existed before (based on actual git diff, not assumptions) - **What changed**: Specific changes made - **Why**: Rationale for the changes - **Specific files**: List affected files and what changed in each --- ## Pre-Git Commit Content Requirements ### 6. Concrete & Actionable - Use specific, measurable descriptions - Describe functionality that can be tested/verified - **AVOID vague terms**: "improved", "enhanced", "HYBRID approach", invented jargon - **USE concrete action words**: "fix", "add", "remove", "enable", "disable" - **"update" requires specificity**: Use "update X to Y" or "update X by doing Y" - never just "update" - Include actionable details about what the code now does - **Show exact changes**: Before/after comparisons with specific file paths, line numbers ### 7. Technical Specificity - Name specific functions, classes, methods affected - Include file paths and what changed in each file - Describe technical implementation details - Mention configuration changes, new dependencies, etc. ### 8. Accurate Change Classification - "add" = wholly new feature - "update X to Y" or "update X by doing Y" = enhancement to existing feature (must specify what changed) - "fix" = bug fix - "refactor" = code restructuring - Must accurately reflect the nature of changes --- ## Pre-Git Commit Context & Documentation ### 9. Complete Context - Describe both before/after states - Explain the problem being solved - Include enough detail for future developers to understand - Connect changes to overall system architecture - Show how changes fit into broader development work ### 10. Repository Consistency - Follow existing commit message style from `git log` - Match repository's commit message patterns - Focus on "why" rather than "what" (1-2 sentences for summary) --- ## Pre-Git Commit Security & Quality ### 11. Security Check Explicitly check for and prevent committing: - Secrets or API keys - Passwords or tokens - Any sensitive information ### 12. Testable Outcomes - Include specific ways to verify changes work - Mention new functionality that can be tested - Reference specific commands or use cases enabled --- ## Pre-Git Commit Validation & Quality Control ### 13. Accuracy Validation Checklist Before committing, verify: - [ ] Subject format matches `<files>:`, `type(scope):`, or `type(scope) <files>:` convention - [ ] Every "previous behavior" claim is supported by git diff evidence - [ ] All "what changed" statements match actual lines in git diff --staged - [ ] No claims about functionality that isn't visible in the diff - [ ] Testable outcomes can be verified by running the described commands - [ ] File paths and line numbers are accurate - [ ] Technical details (function names, configurations) match the actual code changes --- ## Pre-Git Development Process Exclusions ### 14. Avoid Development Methodology References - Don't mention Claude or AI assistance in development process - Don't mention multi-agent development methodology used to create the code - Don't describe HOW the code was developed by assistants - Don't describe conversational changes or internal commit development process - Focus on WHAT was built and WHY (multi-agent systems as software features are fine) ### 15. Avoid Overconfidence & Vague Language - **Never use vague qualifiers**: "comprehensive", "complete", "thorough", "HYBRID approach" - **Don't invent terminology**: Avoid made-up technical terms that aren't standard - **Avoid abstract descriptions**: Use concrete language instead of conceptual descriptions - **Don't bury the main point**: Put the key change upfront, not buried in paragraphs - Avoid absolute claims unless verifiable in the diff - Don't claim to have "fixed all issues" or "improved everything" - Use specific, measurable language about actual changes made - **Balance user impact with technical details**: Describe both what broke/was fixed AND the implementation approach used - Acknowledge limitations and scope of changes when relevant ### 16. Focus on Commit Outcome vs Process - Describe the **whole commit outcome** compared to the previous commit state - Avoid describing incremental conversation steps or iterative development - Present the final state achieved rather than the journey to get there - Focus on the complete functional change delivered --- ## Pre-Git Commit Hook Handling ### 17. Hook Integration - If pre-commit hooks modify files during commit, retry commit ONCE - If commit succeeds but hooks modified files, MUST amend commit - Never use interactive git commands (`-i` flag) </requirements> --- <pitfalls> ## Common Git Commit Message Pitfalls & Solutions Based on analysis of problematic commit messages, avoid these common mistakes: ### ❌ Bad Commit Message Patterns 1. **Vague subject lines**: "HYBRID approach", "improve system", "enhance features" - **Problem**: Meaningless to someone reading git log - **Solution**: Use concrete actions like "fix authentication", "add config validation" 2. **Invented jargon**: Creating terms like "HYBRID approach" that aren't standard - **Problem**: Readers can't understand what was actually implemented - **Solution**: Use established technical terms or explain new concepts clearly 3. **Missing application context**: Subject could apply to any project - **Problem**: Lost context about which application was changed - **Solution**: Start with "TSB app:", "taskshow:", etc. 4. **Buried file impact**: Mentioning files deep in message body - **Problem**: Hard to understand scope of changes - **Solution**: List affected files prominently with brief descriptions 5. **Abstract problem descriptions**: Conceptual language instead of concrete issues - **Problem**: Unclear what the fix actually accomplished - **Solution**: Describe specific symptoms and measurable outcomes ### ✅ Good Git Commit Message Template ``` AppName: [concrete action] [specific component] by [exact method] Summary: [Concrete action oriented brief high-level description of the change and why it matters] Previous behavior: [Concrete description of observable behavior and/or limitation(s) being addressed based on git diff] What changed: [Bulleted list of exact changes with file paths] - file1.ext: [specific change made] - file2.ext: [specific change made] Why: [Root cause explanation in simple terms] Files affected: - [list of all modified files with brief description] Testable: [Specific commands to verify the fix works] ``` This process ensures git commits are **self-documenting**, **technically precise**, **security-conscious**, and **contextually complete** while maintaining proper git workflow practices. </pitfalls>