Skip to content
Back to skills

Commit Darrenoakey

ASecurity

Complete git workflow - initialize repo if needed, stage and commit everything, push if remote exists, then run /improve and /compact. Use for clean checkpoint commits.

  • 57 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
researchbashgit

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill commit-darrenoakey --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commit Darrenoakey?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commit Darrenoakey
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-commit-darrenoakey/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-commit-darrenoakey)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: commit
description: Complete git workflow - initialize repo if needed, stage and commit everything, push if remote exists, then run /improve and /compact. Use for clean checkpoint commits.
---

# Commit Skill

A complete git workflow skill that ensures a clean repository state after every commit.

## What This Skill Does

1. **Initialize git** (if not already a git repo)
2. **Stage everything** (`git add -A`)
3. **Commit** with an auto-generated or user-provided message
4. **Verify clean state** (`git status --porcelain` must be empty)
5. **Push** (only if a remote exists)
6. **Run /improve** (knowledge capture and tool discovery)
7. **Run /compact** (context compression)

## Usage

```
/commit
/commit -m "your commit message"
```

## Workflow Steps

### Step 1: Initialize Git (if needed)

Check if the current directory is inside a git repository:

```bash
git rev-parse --is-inside-work-tree 2>/dev/null
```

If this fails (exit code non-zero), initialize a new repo:

```bash
git init
```

### Step 2: Stage All Changes

Add all files (tracked, untracked, and deletions):

```bash
git add -A
```

### Step 3: Generate Commit Message

If no message was provided via `-m`, generate one by:

1. Running `git diff --cached --stat` to see what's staged
2. Creating a concise summary of the changes

The commit message should:
- Be concise (under 72 characters for the subject line)
- Describe what changed, not how
- Use imperative mood ("Add feature" not "Added feature")

### Step 4: Commit

```bash
git commit -m "$(cat <<'EOF'
Your commit message here

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
```

**CRITICAL**: Never use `--no-verify`. Pre-commit hooks must run.

### Step 5: Verify Clean State

After commit, verify the repository is completely clean:

```bash
git status --porcelain
```

This must return empty output. If anything remains:
- Investigate why files weren't committed
- Stage and commit any remaining files
- Repeat until `git status --porcelain` returns nothing

### Step 6: Push (if remote exists)

Check if a remote exists:

```bash
git remote -v
```

If output is non-empty AND the current branch has an upstream:

```bash
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null
```

If upstream exists, push:

```bash
git push
```

If no upstream but remote exists, set upstream and push:

```bash
git push -u origin $(git branch --show-current)
```

If no remote exists, skip pushing silently.

### Step 7: Run /improve

Invoke the improve skill to capture learnings:

```
/improve
```

This runs knowledge capture and tool discovery.

### Step 8: Run /compact

Invoke the compact command to compress context:

```
/compact
```

This summarizes the conversation and reduces token usage.

## Error Handling

### Pre-commit Hook Failures

If the commit fails due to pre-commit hooks:
1. **Fix the issues** reported by the hooks
2. **Re-stage** the fixed files
3. **Try committing again** (new commit, not amend)
4. Never use `--no-verify`

### Nothing to Commit

If `git status` shows nothing to commit:
- Report "Nothing to commit - working tree clean"
- Still run /improve and /compact

### Push Failures

If push fails:
- Report the error to the user
- Do not retry automatically
- Continue with /improve and /compact

## Output Format

```
## Commit Summary

### Repository
[Repo path or "Initialized new repo at: path"]

### Changes Committed
[Brief summary of staged changes]

### Commit
[Commit hash and message]

### Push
[Push result or "No remote configured"]

### Post-Commit
Running /improve...
Running /compact...
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.