hanamizuki/solopreneur/greenlight
Claude Code and agent skill by hanamizuki/solopreneur
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Automated PR review loop that keeps running until the PR is clean. Triggers external reviewers (Codex bot, Codex CLI, and the Gemini bot when activity detection sees it on the repo), processes feedback, fixes issues, and re-triggers — repeating until no new suggestions remain. Supports `/greenlight external` to skip internal review and go straight to external reviewers, and `/greenlight external gemini` to specify a starting reviewer. Use when the user says "greenlight", "run reviews until clean", "get this PR approved", or wants automated review cycling on an open PR. Also auto-detects uncommitted mode: when on main branch with uncommitted changes and no PR, runs Codex CLI `--uncommitted` review loop only, fixes in-place without committing, until codex reports clean. Also supports post-commit mode (explicit `/greenlight post-commit <SHA>` or `<SHA1>..<SHA2>`): Phase 1 subagents + Codex CLI + agy (Gemini-family CLI) in parallel, fixes as new commits on top (no amend, no new PR), pushes after each round.
Install
npx vskill@latest install hanamizuki/solopreneur/greenlightSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Greenlight
Automated review loop. Three modes:
- PR mode (default, for open PRs on feature branches) — three phases:
`` Phase 1: Internal Review (subagents review in parallel, report-only) Phase 2: Consolidate + Fix (merge reports → fix via /receiving-code-review → commit + push) Phase 3: External Review Loop (Codex/Gemini/CodeRabbit cycle until clean) ``
- Uncommitted mode (auto-detected when on
main+ uncommitted changes + no PR):
Codex CLI --uncommitted loop only. Fixes in-place, does NOT commit.
- Post-commit mode (explicit
/greenlight post-commit <SHA>invocation only,
no auto-detect): Phase 1 subagents + Codex CLI --commit <SHA> + agy in parallel; merge findings; fix as new commits on top (no amend, no new PR). Skips PR-bound bots.
Host support
On Claude Code this skill is fully supported: every mode, every phase.
On Codex it is `degraded` — it runs on exec, TUI, and App with a documented smaller surface:
| On Codex | ||
|---|---|---|
| Modes | PR mode only. Phase 1 runs there with whichever reviewers exist: /specialist-review (row 4) is published on Codex, the other four rows are Claude-only or third-party plugins, so an M-size run reviews with one reviewer and continues into Phase 2 under the existing at-least-one rule. external still skips Phase 1 + 2 when that is the intent. Uncommitted and post-commit modes halt at pre-flight — they have no gate and never call resolve, so their clean signal would be codex review approving its own host's work | |
| Gate | claude-cli — the gate must be independent of the host's model family (see Host-family independence) | |
| Sizes | S and M only; an L-size run halts at pre-flight | |
| Invocation | the explicit $greenlight mention, plus the unattended token for any unattended caller — a one-shot exec session has nobody to answer a prompt |
Limitation reference: docs/spec/2026-08-10-codex-greenlight-port.md. The filtered Codex publication includes this degraded surface. Reviewed-head binding remains a shared Claude/Codex defect, not a Codex parity gate.
Phase 1 is verified on Codex exec only (docs/spec/2026-08-15-codex-greenlight-phase1.md). TUI and App run the same shared body with no surface gate, so Phase 1 is expected to work there and is simply unproven; if it does not, the all-reviewers-unavailable rule already carries those runs to Phase 3. Phase 3 itself is accepted on all three surfaces.
Arguments
| Argument | Description | Example | |||
|---|---|---|---|---|---|
external | Skip Phase 1 + 2 (internal review), jump to Phase 3 (PR mode only) | /greenlight external | |||
codex bot / codex cli / gemini | Specify starting reviewer (combinable with external, PR mode only) | /greenlight external gemini | |||
unattended | Never prompt — on reviewer exhaustion, log and exit non-zero (fail fast). Passed by unattended callers (todos-babysit auto mode, autopilot dispatch). | /greenlight external unattended | |||
| `size=s\ | m\ | l` | Advisory starting size for the S/M/L profile. Upward-only — greenlight recomputes size from the real diff and takes max, so this can raise but never lower review weight. Passed by autopilot from the plan's size field. | /greenlight size=m | |
select=<ids> | Comma-separated registry recipe_ids to run this round. Omit to use every reviewer that acts on this repo. | /greenlight select=coderabbit,codex-bot | |||
gate=<id> | The recipe_id whose clean pass ends the loop (see Reviewer selection). Omit to take the first available fallback_order entry. | /greenlight gate=codex-bot | |||
| `post-commit [<SHA>\ | <FROM>..<TO>]` | Force post-commit mode on a commit / range on main (pushed or local-only) | /greenlight post-commit c1e7e256 |
Parsing rules:
post-commitkeyword (case-insensitive): forces post-commit mode regardless of repo
state. Remainder is the SHA spec (single SHA, FROM..TO range, or empty to ask). Other args are ignored.
externalkeyword (case-insensitive): PR mode only. Remainder is the reviewer spec.unattendedkeyword (case-insensitive): fail-fast, no prompts. Stripped before
reviewer-spec parsing; combinable with any mode.
size=token (case-insensitive, values/m/l): advisory size for the
S/M/L profile, used in PR mode. Stripped before reviewer-spec parsing, like unattended; a malformed value is ignored. Not read in post-commit mode (it computes size from the resolved range) or uncommitted mode (unsized).
select=/gate=tokens (case-insensitive): PR mode only. Stripped before
reviewer-spec parsing on the same line as unattended and size= — a token left in the remainder becomes part of the reviewer spec, so gate=codex-bot would be looked up as a reviewer named gate=codex-bot and miss on every lookup thereafter. Unknown or since-marked ids degrade with a warning inside resolve; they never fail the run.
- No keyword: mode comes from auto-detection (see Step 1 table).
Arguments other than post-commit are ignored in Uncommitted mode and Post-commit mode — those modes have fixed flows.
Verification gate
An optional adversarial verification gate can run between consolidating review findings and dispatching a fix subagent: each consolidated finding is independently challenged by 3 skeptic subagents inside one Claude Code Workflow, and findings a majority of skeptics refute are dropped. Only survivors reach the fix subagent. Purpose: cut false-positive fix cycles — a wrongly "fixed" false positive costs a whole extra review round.
Availability check. The gate runs ONLY when BOTH conditions hold: the effective size is L (see Sizing — S and M skip the gate regardless of tooling), AND the Workflow tool is present in the current session (Claude Code v2.1.154+, paid plans). Before each gate, check both:
- Size L and `Workflow` present → run the gate. The script,
VERDICT_SCHEMA,
args contract, verdict rule, and result mapping are defined once in references/adversarial-verify.md.
- Size S or M, or `Workflow` absent → **skip the gate entirely; the flow is
exactly today's flow** — hand every consolidated finding straight to the fix subagent. The gate is never a hard dependency of greenlight.
The gate applies at exactly three points, each carrying a short callout below: PR-mode Phase 2a→2b, Post-commit Phase 1→Phase 2, and Post-commit Phase 3 Step 3→Step 4. It does NOT apply to Uncommitted mode or PR-mode Phase 3 (external review threads carry GitHub resolve/reply obligations and are already evaluated per-thread through receiving-code-review).
Rejected findings still count. Gate-rejected findings count as "items pushed back" in the final report, and their reasoning must be carried into later rounds' "prior push-backs" context so a repeat finding can push-back-exit.
Inner verify loop (objective verifier gate)
Every fix dispatch that ends in a commit is wrapped in an inner verify loop: after the fix subagent edits, it runs an objective verify command against the working tree before committing, and may commit + push only once that command passes. This is a different question from the reviewer-clean stopping criterion — keep the two roles separate:
- Verifier (objective, runs code) — gates whether a fix may push. It
executes the repo's own lint / typecheck / fast-unit command and observes real behavior (import errors, type errors, regressions).
- Reviewer-clean (subjective, reads diffs) — gates whether the outer loop may
stop. Codex / agy read the diff statically; they cannot run code, so they are not verifiers. Do not conflate the two, and never position codex/agy as the verifier.
Applies to the PR-mode Phase 2b, PR-mode Phase 3 (Step 3b), and both Post-commit fix dispatches (Phase 2 initial fix and Step 5). Uncommitted mode is exempt — it never commits, so there is nothing to gate; leave it as-is.
Resolving the verify command
The orchestrator resolves the command once, before the first fix dispatch of the run, and passes it into each fix subagent prompt. Source the config helpers in the same bash block — the marker block from Pre-flight Step 2, copied as-is — then:
- `VERIFY_CMD` empty (`NO_VERIFIER`) → skip the inner loop entirely; the fix
subagent commits exactly as it does today. Add one flag-style line to the final report: "no objective verifier configured for this loop" (see Flags below). Never invent a command.
- `VERIFY_CMD` set → pass it into every fix subagent this run, together with
the inner-loop instructions below.
Inner loop (inside the fix subagent)
The loop lives INSIDE the fix subagent's instructions — the subagent owns edit → verify → iterate and only commits on a green verify. When VERIFY_CMD is set, add this block to the fix subagent prompt (on top of that path's own commit-message and hard-constraint instructions):
Anti-gaming guard (before every commit)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/solopreneur/greenlight/SKILL.md
Popularity
- Repository stars
- 145
- Repository forks
- 9
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/hanamizuki/solopreneur/greenlight)