Skip to content
Back to skills

Orbit Pre Commit

ASecurity

Install or troubleshoot the Orbit pre-commit hook in a WordPress plugin repo. Hook runs PHP lint on staged files, JSON validity check, scratch-pattern detector (var_dump/console.log/debugger), and a block.json apiVersion warning — all under 10 seconds. Use when the user says "install pre-commit", "block bad commits", "git hook for QA", or wants commit-time gating without slowing down their loop.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
testingphpbashnodegitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add adityaarsharma/orbit --skill orbit-pre-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orbit Pre Commit?

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

Security grade badge for Orbit Pre Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adityaarsharma-orbit-pre-commit/badge)](https://www.skillsdirectory.com/skills/adityaarsharma-orbit-pre-commit)

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: orbit-pre-commit
description: Install or troubleshoot the Orbit pre-commit hook in a WordPress plugin repo. Hook runs PHP lint on staged files, JSON validity check, scratch-pattern detector (var_dump/console.log/debugger), and a block.json apiVersion warning — all under 10 seconds. Use when the user says "install pre-commit", "block bad commits", "git hook for QA", or wants commit-time gating without slowing down their loop.
---

# 🪐 orbit-pre-commit — Catch obvious bugs before push

Install a fast, focused git pre-commit hook that runs in **<10 seconds** on every commit. Catches the things every WP dev forgets to remove: `var_dump`, debug `console.log`, `debugger`, dirty JSON, syntax errors, stale block.json apiVersion.

---

## What the hook checks

| Check | Time | Blocks commit? |
|---|---|---|
| `php -l` on every staged `.php` | ~2s | Yes (fatal errors) |
| JSON validity on every staged `.json` | <1s | Yes |
| `console.log('DEBUG`, `var_dump`, `debugger`, `dd(` | <1s | Yes |
| `block.json` apiVersion < 3 (WP 6.5+) | <1s | Warn only |
| Forbidden function calls (`error_reporting`, `phpinfo`) | <1s | Yes |

Everything else (PHPCS, PHPStan, tests) runs on `/orbit-gauntlet --mode quick` — not pre-commit. Pre-commit must stay fast.

---

## Install

```bash
cd ~/plugins/my-plugin     # any WP plugin repo
bash ~/Claude/orbit/scripts/install-pre-commit-hook.sh
```

Output:
```
✓ Installed .git/hooks/pre-commit
  Runs on every `git commit`. Bypass with --no-verify (only for WIP).
```

---

## Verify

Stage a deliberately broken file and try to commit:

```bash
echo '<?php var_dump($x);' >> test.php
git add test.php
git commit -m "test"
# → BLOCKED: var_dump in test.php:1
git reset HEAD test.php && rm test.php
```

---

## Common patterns the hook catches

```php
// BLOCKED — debug leftovers
var_dump($foo);              // remove before commit
print_r($bar, true);          // wrap in error_log() if you need it
error_log(print_r($baz, 1)); // OK — explicit

// BLOCKED — forbidden in production
error_reporting(E_ALL);
phpinfo();
ini_set('display_errors', 1);
```

```js
// BLOCKED
console.log('DEBUG', state);
debugger;

// OK
console.error('Real error', err);
```

```json
// WARNS — WP 6.5 expects apiVersion 3
{ "apiVersion": 2, "name": "my/block" }
```

---

## Bypass (use sparingly)

```bash
git commit --no-verify -m "wip: half-finished feature"
```

Acceptable for: work-in-progress branches the user will rebase later.
**Not acceptable for:** main / release branches. The hook is the last line of defence before a bad commit lands.

---

## Uninstall

```bash
rm .git/hooks/pre-commit
```

Or to disable temporarily:
```bash
chmod -x .git/hooks/pre-commit
```

---

## Troubleshooting

| Symptom | Fix |
|---|---|
| Hook doesn't run | `chmod +x .git/hooks/pre-commit` |
| `php: command not found` | Hook needs PHP CLI — install via Homebrew |
| Hook runs forever | Some staged files are huge — exclude vendor/, node_modules/ via `.gitattributes` |
| False positive on `var_dump` in a fixture | Add `# allow-dump` comment on the line |

---

## Pair with /orbit-gauntlet

Pre-commit catches cheap things in <10 sec. After commit, run the full gauntlet on a clean state:

```bash
git commit -m "feat: add mega menu"
bash scripts/gauntlet.sh --plugin . --mode quick
```

Pre-commit and gauntlet are complementary — never replace one with the other.

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.