name: git-majo description: | Git workflow standards for Mark's projects. Trigger when user mentions: "commit", "committing", "git commit", "git history", "branches", "branching", "push to remote", "create a pull request", "PR", "merge conflict", or when performing any git operation. Covers commit message format, auto-commit policy, and push behavior. license: Unlicense OR 0BSD metadata: author: Mark Joshwel mark@joshwel.co version: "2026.2.2"
Git Workflow Standards (Mark)
Goal
Enable consistent, traceable git history that tracks LLM prompt count per feature/bug fix while following conventional commits format.
When to Use This Skill
Use when:
- User asks to commit changes
- Creating or managing branches
- Working with git history
- Setting up pull requests
- Any git operation mentioned in prompt
Do NOT use when:
- User explicitly says "do not commit"
- Working in a non-git directory (no .git folder)
Process
- Check status: Run
git statusandgit diffto see changes - Review conventions: Check
git log --oneline -10for existing commit style - Stage changes:
git add <files> - Commit: Use conventional format with original prompt in description
- Stop: Do not push unless explicitly told to
Constraints
- ALWAYS commit after every prompt (unless user says "do not commit")
- One commit per prompt (unless prompt asks for multiple)
- NEVER auto-push - wait for explicit push instruction
- Include simplified prompts leading up to the commit in the commit description (shortened if lengthy)
- Match existing style from repository history
Auto-Commit Policy
ALWAYS commit after every prompt unless explicitly told NOT to
This allows tracking how many LLM prompts a feature or bug fix required.
Commit Workflow
After completing work on a prompt:
# 1. Check what changed
git status
git diff
# 2. Stage changes
git add <files>
# 3. Commit with descriptive message (see format below)
git commit -m "type(component): description"
# 4. DO NOT push (unless explicitly told to)
Commit Message Format
Use conventional commits format:
<type>[(<component>)]: <description>
Types
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code style/formatting (no logic change)refactor- Code refactoringperf- Performance improvementstest- Adding or fixing testschore- Maintenance tasks, dependenciesci- CI/CD changesmeta- Repository/meta changes (init, config, etc.)
Examples
# Simple changes
git commit -m "meta: init files"
git commit -m "feat(cli): add verbose flag"
git commit -m "fix(parser): handle empty input"
# With component
git commit -m "ci(lint): add basedpyright check"
git commit -m "docs(readme): update installation steps"
git commit -m "refactor(utils): extract helper functions"
Including Prompts Leading Up to the Commit
Commit description should include the simplified prompts leading up to the commit (shortened/redacted if lengthy):
# For short prompts
git commit -m "feat(api): add user authentication endpoint" -m "Prompts: add login with jwt tokens; wire refresh token flow"
# For longer prompts (redact verbose parts)
git commit -m "fix(parser): handle edge case in csv parsing" -m "Prompts: fix issue where empty lines cause crash [diagnostic output redacted]; add regression test"
Redaction guidelines:
- Keep the core request/intent
- Remove large pasted diagnostic output
- Remove excessive context dumps
- Keep it readable in one line
Push Policy
NEVER auto-push unless explicitly told TO do so
Default behavior: commit locally only.
When told to push:
# Push current branch
git push
# Push specific branch
git push origin <branch-name>
Commit Frequency
One commit per prompt (unless the prompt specifically asks for multiple commits):
User: "Add user authentication"
→ Do work
→ git commit -m "feat(auth): add user authentication" -m "Prompt: Add user authentication"
User: "Now add password reset"
→ Do work
→ git commit -m "feat(auth): add password reset" -m "Prompt: add password reset"
Branch Naming
If creating branches:
feature/<name>- New featuresfix/<name>- Bug fixesdocs/<name>- Documentationrefactor/<name>- Refactoring
Checking Past Commits
To understand commit style from history:
# View recent commits
git log --oneline -20
# View commit with message
git log -1
Match the style of existing commits in the repository.
Testing Skills
After creating or updating this skill:
- Check the description triggers properly when git operations are mentioned
- Verify commit format examples render correctly
- Test that Constraints section is easily scannable
- Confirm all existing content is preserved
Integration
This skill extends dev-standards-majo. Always ensure dev-standards-majo is loaded for:
- AGENTS.md maintenance
- Universal code principles
- Documentation policies
Works alongside:
python-majo— For Python-specific development and commitsjs-bun-majo— For JavaScript/Bun development and commitsshell-majo— For shell scripting and commitswriting-docs-majo— For documentation commitstask-planning-majo— For complex multi-step workrunning-windows-commands-majo— For git operations on Windows