Speq Plan Review logo

Speq Plan Review

Community
marconae
speq-plan-review

Adversarial plan-review method: challenge taxonomy, severity rules, and findings format. Used by the plan-reviewer agent when reviewing a plan.

Overview

Publishermarconae
Repositoryspeq-skill
Skill namespeq-plan-review
Stars
54
Forks
10
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by marconae on GitHub. Read the source before you install it.

Installation

Install the Speq Plan Review AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/marconae/speq-skill/tree/main/.claude/skills/speq-plan-review
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/marconae/speq-skill.git /tmp/speq-skill
mkdir -p .claude/skills
cp -r /tmp/speq-skill/.claude/skills/speq-plan-review .claude/skills/speq-plan-review
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Speq Plan Review in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Speq Plan Review on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Speq Plan Review is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Adversarial Plan Review

Build the case against approval, not for it.

Method

Ask why this plan may fail. Before scoring anything, write 2-3 concrete ways this plan may fail. Route each into the taxonomy below. A failure with no matching category means the taxonomy misses a category, not that the failure does not count.

No silent pass. For every axis below, either raise a finding or write one line certifying "no objection — axis checked" with the evidence checked. Never skip an axis.

Non-goal: do not re-litigate decisions the user made in the clarifying interview. Challenge how the plan operationalizes those decisions, not the decisions themselves. If the user said "use approach X" and the plan uses X, check whether X is executed soundly, not whether X was the right call. A deviation the brief notes as authorized by an active project hook is settled the same way; do not raise it as a finding.

Challenge Taxonomy

Tag every finding. Group findings by axis in the output.

Intent fidelity: does the plan match what the user asked for?

  • [INTENT_DRIFT]: the plan reinterprets or substitutes a different problem than the one asked. Quote the original request; quote the plan line that diverges.
  • [SCOPE_CREEP]: work with no traceable user need: gold-plating, speculative flexibility, "while we're here" extras.
  • [SCOPE_REDUCTION]: part of the ask dropped, deferred, or reframed as out-of-scope without user agreement. A declared Follow-up plans list in plan.md from a split is agreed scope, not a reduction.

Feasibility: can this be built as described?

  • [EFFORT_MISESTIMATION]: a task line hides more work than it states (planning fallacy).
  • [HIDDEN_DEPENDENCY]: an unmodeled prerequisite, external system, or ordering constraint the plan does not surface.
  • [UNSTATED_ASSUMPTION]: a load-bearing belief the plan never states or validates.
  • [NFR_IGNORED]: security, performance, migration/rollback, or concurrency left untouched where the change plainly touches them.

Requirement quality: are the spec deltas complete and unambiguous?

  • [AMBIGUOUS_REQUIREMENT]: not testable as written; no concrete pass/fail test can be written from it.
  • [COMPLETENESS_GAP]: missing edge case, error path, empty/boundary input for a described behavior.
  • [REQUIREMENT_CONFLICT]: contradicts another delta in this plan, or an existing recorded spec (check via /speq-cli).
  • [IMPLEMENTATION_DETAIL]: a spec delta's ## Background or # Feature <name> description states a fact that no scenario's GIVEN/WHEN/THEN step in the same spec depends on, a Background runs past 5 one-line bullets, or a Background states behavior that belongs in a scenario. For a delta on an existing feature, the scenarios are those of the target spec after the delta merges; for a NEW feature, they are the delta file's own scenarios. A Background line that only restates a THEN step is redundant, not an implementation detail — don't flag it. Fix: drop the Background line, move it into the scenario step that actually needs it, or turn behavior into a scenario.

Task breakdown: is the WBS correct and appropriately scoped?

  • [TRACEABILITY_GAP]: a spec delta with no implementing task, or a task that implements nothing in scope.
  • [TASK_GRANULARITY]: a task too large to verify as one unit, or a parallelization claim two "independent" tasks actually violate.
  • [CLUSTER_INCOHERENCE]: tasks in one Parallelization group must share a spec delta or a source module, and overlapping Knowledge entries across groups are a consolidation signal, not a parallelism opportunity. Flag a group sliced by layer, a group whose tasks share no knowledge, or two groups the plan should have merged or sequenced.

Design Depth: does the plan manage complexity well? (per /speq-design-philosophy)

decision-log.md is the input surface for [ADR_OVERPROMOTION]: check every Promotes to ADR: yes entry against /speq-adr-rules. decision-log.md, plan.md, and architecture.md (the delta, if present) are the input surface for [ARCHITECTURE_DRIFT]. The accepted ADRs (the ADR digest from /speq-cli, plus any fragment you open) are the input surface for [ADR_CONFLICT].

  • [SHALLOW_DESIGN]: a planned module/interface is shallow relative to the complexity it should hide.
  • [INFORMATION_COUPLING]: a design decision (format, protocol, temporal split) reflected across multiple planned modules.
  • [TACTICAL_SHORTCUT]: a tactical shortcut with no scheduled strategic follow-up.
  • [BOUNDARY_VIOLATION]: planned business logic depends directly on a delivery mechanism, storage engine, or framework.
  • [ADR_OVERPROMOTION]: a Promotes to ADR: yes entry that fails /speq-adr-rules. Flag an entry when any of these holds: Rationale names no rule-2 criterion; Rationale states no ADR search result; the content is on the never-an-ADR list (rule 3); Decision holds implementation detail such as signatures, paths, or flags (rule 6). Fix: set it to no, or, if it is a corollary of another promoted decision, fold it into that parent entry's Consequences line.
  • [ARCHITECTURE_DRIFT] (BLOCKER): the plan changes the architecture but the delta does not say so. Flag it when any of these holds: (1) a Promotes to ADR: yes entry whose Rationale names rule-2 criterion 1, 2, or 3 has no Architecture: line, names a section the delta lacks, or says no change without a reason; (2) plan.md states a component, boundary, interface, data flow, constraint, or external dependency that the delta lacks; (3) the delta breaks /speq-plan's references/architecture-delta-template.md. Fix: add or correct the delta block, move the fact into the delta, or write Architecture: no change: <reason>. Content in plan.md that only duplicates the delta is FINDINGS.
  • [ADR_CONFLICT] (BLOCKER): a decision, spec delta, or architecture delta contradicts an accepted ADR without a superseding entry (Supersedes: <slug>). Fix: conform to the ADR, or add a superseding decision-log entry.

Prose quality: does the writing meet /speq-writing-guardrails?

  • [PROSE_BLOAT]: filler, repetition, unneeded hedging, or preamble. Violates BLUF/terseness.
  • [PROSE_UNCLEAR]: a sentence that is ambiguous, full of jargon, or not understandable on one read.

Prose findings default to FINDINGS: style, not correctness. Escalate a [PROSE_UNCLEAR] to BLOCKER only when the unclear prose makes a requirement non-actionable. Tag that finding [AMBIGUOUS_REQUIREMENT] too; it is the same defect from two angles.

Severity

  • BLOCKER: violates user intent, or the plan is infeasible/untestable as written, or breaks a project rule the skill system enforces. Gates the plan; the orchestrator sends it to one planner-agent fix pass.
  • FINDINGS: Non-blocking findings to be acknowledged by the user.

Output Format

Write the findings document to specs/_plans/<plan-name>/review/review.md per references/review-findings-template.md, creating the review/ directory if absent. Then return exactly one line and nothing else:

PLAN REVIEW: BLOCKERS: <n>, FINDINGS: <n>, INTENT: <n> — specs/_plans/<plan-name>/review/review.md

INTENT counts the Intent Fidelity BLOCKERs alone: a subset of BLOCKERS, matching the document's Summary block.

Every finding needs a location and a Fix: imperative addressed to planner-agent. It names the artifact, section, and concrete change, and is executable without re-reading Issue. Vague objections are not actionable for the fix pass.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Speq Plan Review AI skill do?

Adversarial plan-review method: challenge taxonomy, severity rules, and findings format. Used by the plan-reviewer agent when reviewing a plan.

Why use Speq Plan Review on TypingMind?

Because you install it once and use it with any model. Speq Plan Review is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Speq Plan Review in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/marconae/speq-skill/tree/main/.claude/skills/speq-plan-review. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Speq Plan Review?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Speq Plan Review?

As many as you like. As long as a model supports skills, you can use Speq Plan Review with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Speq Plan Review AI skill free?

Yes. It is published on GitHub by marconae under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇