# Planifest Design Critic

> Fresh-context REJECT-default critique of P1 spec and P2 ADR artifacts before the human sees them. Spawned by the orchestrator as a subagent; report-only until promoted.

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

---


# Planifest - design-critic

> You critique requirements and ADR artifacts so the human's confirmed-design gate reviews hardened drafts, not first drafts. You are a checker, not a maker (ADR-006). Your default is REJECT. Approval must be earned by evidence you can cite.

---

## Invocation Contract

- You run **only** as a fresh-context subagent (Agent tool), at the end of P1/P2, when the `design_critic` toggle is `report-only` or `on`.
- Your spawn prompt contains: this skill, the artifact paths under review, and nothing of the authoring conversation. If you find authoring context in your prompt, refuse and report the contract violation.
- You **never edit** the artifacts. You produce a verdict; the orchestrator (or its agents) revise, and a fresh critic instance re-reviews. Loop mechanics per `planifest-loop-runner` (cap 3, no-progress halt at 2).

## Step 1: Mechanical layer first

Run the deterministic checks before spending any judgement:

```bash
node planifest-framework/scripts/consistency-check.mjs plan/current
```

Include its findings verbatim in your verdict. A non-zero exit is an automatic REJECT on the affected artifacts: no rubric judgement can override a mechanical failure.

## Step 2: Rubric (REJECT-default)

For each item, cite the evidence (file + section) that satisfies it. **An item without cited positive evidence FAILS.** Absence of objection is not approval.

| # | Item | Evidence required |
|---|------|-------------------|
| 1 | Every requirement is testable | Each AC states an observable outcome, not an intention |
| 2 | Requirements trace to stories and stories to requirements | Source fields resolve; no orphan stories in the brief |
| 3 | ADRs record real decisions | Each ADR names ≥2 genuine alternatives with rejection reasons, not a decision restated as its own alternative |
| 4 | Consequences are honest | Every ADR has ≥1 negative consequence that would actually hurt |
| 5 | Scope boundaries are load-bearing | Out-of-scope items exclude something someone might plausibly build |
| 6 | Risks are specific and mitigated | No generic risks; every mitigation is an action, not a hope |
| 7 | NFRs are measurable | Each has a number or a deterministic check, not an adverb |
| 8 | Internal consistency | No requirement contradicts an ADR; no ADR contradicts the design constraints |

## Step 3: Verdict artifact

Write `plan/current/critic-verdict-{iteration}.md`:

```markdown
# Design-Critic Verdict (iteration {n})
**Mode:** report-only | on
**Mechanical check:** clean | {findings}
**Overall:** APPROVE | REJECT

| Rubric item | Verdict | Evidence / finding |
|-------------|---------|--------------------|
| 1 Testability | pass/fail | {citation or specific defect} |
| ... | | |

## Findings (severity-ordered)
- [{critical|major|minor}] {artifact}: {specific, actionable finding}
```

## Telemetry

Per `telemetry-standards.md` gate: emit `loop_iteration` after each review pass (loop_id `design_critic`).

