Loading...
Loading...
Use when committing code - ensures atomic, descriptive commits that leave the codebase in a merge-ready state at every point
npx skill4agent add troykelly/codex-skills clean-commits[type](scope): Short description (max 72 chars)
[Optional body - what and why, not how]
[Optional footer - issue references, breaking changes]
Refs: #[ISSUE_NUMBER]| Type | Use For |
|---|---|
| New feature |
| Bug fix |
| Documentation only |
| Formatting, no code change |
| Code restructuring |
| Adding/fixing tests |
| Maintenance, dependencies |
feat(auth): Add user registration endpoint
Implement POST /api/users/register with email validation,
password hashing, and duplicate detection.
- Validates email format and uniqueness
- Hashes password with bcrypt
- Returns user object without password
Refs: #123fix(auth): Prevent redirect loop on expired session
Session expiry was triggering redirect to login, which
checked session, found expired, and redirected again.
Now clears session cookie before redirecting.
Refs: #456test(auth): Add integration tests for registration
Cover success case, duplicate email, invalid format,
and weak password scenarios.
Refs: #123| Atomic | Not Atomic |
|---|---|
| One logical change | Multiple unrelated changes |
| Passes all tests | Breaks tests |
| Complete feature slice | Half-implemented feature |
| Can be reverted cleanly | Reverts would break things |
# Stage specific files
git add src/auth/register.ts
git add src/auth/register.test.ts
git commit -m "feat(auth): Add registration endpoint"
# Stage next logical unit
git add src/auth/login.ts
git add src/auth/login.test.ts
git commit -m "feat(auth): Add login endpoint"# Run tests
pnpm test
# Check build
pnpm build
# Check types
pnpm typecheck
# Check lint
pnpm lint| Too Infrequent | Just Right |
|---|---|
| "Implement entire feature" | "Add user model" |
| "Fix all bugs" | "Fix session expiry redirect" |
| "Update everything" | "Update auth dependencies" |
# Review what changed
git diff
# Stage specific files
git add [specific files]
# Or stage interactively
git add -p# See what will be committed
git diff --staged# Short message (if simple)
git commit -m "fix(auth): Handle null user in session check"
# Long message (if complex)
git commit
# Opens editor for full message# Check commit looks right
git show --stat
# Verify tests still pass
pnpm testrefactor(api): Extract validation middleware
Validation logic was duplicated across 12 endpoints.
Extracted to reusable middleware that can be composed.
Alternative considered: validation library.
Rejected because our rules are domain-specific.fix(data): Use optimistic locking for updates
Race condition was causing lost updates when two users
edited the same record simultaneously.
BREAKING CHANGE: Update operations now require
version field in request body.# In commit message
Refs: #123
# Or if commit closes the issue
Closes: #123# Amend last commit (before push only!)
git add forgotten-file.ts
git commit --amend# Create a new commit that undoes the change
git revert [commit-sha]
# DON'T rewrite history on shared branches
# DON'T force push to fix mistakesissue-driven-developmentpr-creation