# Squid Review

> Push the committed feature branch, create or update its PR, then run Product Architect acceptance and PR-Reviewer on it. Output: a clean PR with no blockers, or ONE rollup task. Trigger after a feature's tasks are implemented and committed.

- Skill: `iusztinpaul/squid-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add iusztinpaul/squid-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iusztinpaul/squid-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: iusztinpaul (https://skillmd.com/u/iusztinpaul)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iusztinpaul/squid-review

---


# Review — push, PA acceptance, PR review

Take the committed feature branch and turn it into a clean, pushed feature PR — or a rollup task describing what to fix. Both gates run on the **pushed PR**, sequentially: Product Architect (PA) acceptance first, then PR-Reviewer.

You are the **orchestrator** — a MANAGER. You push, launch the review agents, enforce the gates, and route failures back as rollup tasks. You do NOT review the diff, write code, or merge.

Read `AGENTS.md` first (tracker mode). Retry caps are below; the Severity Rule lives in the PR-Reviewer's role definition.

**Input:** a feature branch whose tasks are implemented and committed (the worktree when orchestrated by `/squid-implement-night`; the current branch when run standalone).
**Output:** a pushed feature PR with **NO blockers** (Nits appended to the PR description), OR **ONE rollup task**.

**Critical rules:**

- **Never rubber-stamp** an ACCEPT or NO BLOCKERS — spot-check the evidence; re-launch with feedback if it's thin.
- **One rollup task per failed gate**, never one ticket per issue.

---

## Step 1 — Push + create/update the PR

```
Agent(
  subagent_type="squid:software-engineer",
  prompt="""Push feature {title} and open/update its PR per your Push / open PR section. {Working directory: {path}.}
  The PR description summarizes the feature and lists each task by ID. Hand back the PR number."""
)
```

Capture the PR number for the gates below.

---

## Step 2 — PA acceptance (Any product issues?)

```
Agent(
  subagent_type="squid:product-architect",
  prompt="""Acceptance review for feature {title} on PR #{N}. Read AGENTS.md first. Follow your acceptance-review role.
  {Working directory: {path}.}
  Walk the feature from the user's perspective against the Tasks Plan's acceptance criteria. Verdict: ACCEPT or REJECT. On REJECT, write ONE rollup task capturing ALL product issues."""
)
```

- **ACCEPT (verified)** → Step 3.
- **REJECT** → the PA filed ONE rollup task. **Return it** (see Output).
- **Cap: PA REJECT max 3 per feature.** On the 4th would-be REJECT, stop and surface `USER ACTION REQUIRED`.

---

## Step 3 — PR-Reviewer (Any Blockers?)

```
Agent(
  subagent_type="squid:pr-reviewer",
  prompt="""Review PR #{N} (branch feat/{slug}). Read AGENTS.md first. Follow your role definition.
  {Working directory: {path}.}
  Walk every review dimension, including the Simplicity / anti-over-engineering pass. Produce ONE rollup task if there are Blockers; else report NO BLOCKERS and append the Nits to the PR description."""
)
```

- **NO BLOCKERS** → done. Nits are already on the PR description. Output: the clean pushed PR (#{N}).
- **Blockers** → the PR-Reviewer filed ONE rollup task (Blockers + Nits). **Return it** (see Output).
- **Cap: PR-Reviewer max 3 per feature.** On the 4th would-be Blockers verdict, stop and surface `USER ACTION REQUIRED`.

---

## Output

- **Pass** → "Feature PR #{N} clean (no blockers)." Hand to `/squid-review-ci` (or the human) for CI validation.
- **Fail** → ONE rollup task. The caller (`/squid-implement-night`) routes it back through `/squid-implement-task`, then re-invokes `/squid-review`.

