plan-validate

plan-validate is a skill for Claude Code from closedloop-ai/claude-plugins. It costs 89 tokens per session (1,054 once invoked), scanned A, original, Apache-2.0.

A validation tool for plan.json implementation plans. It checks JSON syntax, required sections, task formatting, consistency between the readable plan and structured fields, and some unanswered-question updates; semantic conflicts still need an agent review.

In plain words
What is it for?
Use it to validate and optionally update plan.json, including checking task checkboxes, required sections, synchronized fields, and question answers.
Why use it?
It catches many structural mistakes automatically before a plan is used or handed to another agent. This avoids relying on a slower general review for basic file and schema errors.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions subagents.

Part of the code plugin — 15 skills, 7 commands, 23 agents, 7 hooks shipped together

Good fit Use it to validate and optionally update plan.json, including checking task checkboxes, required sections, synchronized fields, and question answers.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/closedloop-ai/claude-plugins/plan-validate
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add closedloop-ai/claude-plugins --skill plan-validate
Clone the repo
git clone --depth 1 https://github.com/closedloop-ai/claude-plugins

Made for: Claude Code.

Or install code, the plugin that ships this one along with the rest of its 15 skills, 7 commands, 23 agents, 7 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for plan-validate

README.md
[![agentmods](https://agentmods.dev/badge/skills/closedloop-ai/claude-plugins/plan-validate.svg)](https://agentmods.dev/skills/closedloop-ai/claude-plugins/plan-validate)
Your own site
<a href="https://agentmods.dev/skills/closedloop-ai/claude-plugins/plan-validate"><img src="https://agentmods.dev/badge/skills/closedloop-ai/claude-plugins/plan-validate.svg" alt="Measured on agentmods" height="20"></a>
Per session 89 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,054 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00089 $0.01054
Opus 5 $0.00044 $0.00527
Sonnet 5 $0.00018 $0.00211
Haiku 4.5 $0.00009 $0.00105

Measured yesterday against content hash a9de0f4923c1, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

plan-validate scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 4 executable files (scripts/conftest.py, scripts/test_auto_sync_answers.py, scripts/test_validate_plan.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/code/skills/plan-validate/SKILL.md · 102 lines

How it starts

The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Plan Validate

Deterministic plan.json validation that replaces the plan-validator Sonnet agent for all structural checks. The semantic consistency check (storage/query alignment, task/architecture contradictions) still requires the LLM agent and should be run separately when needed.

When to Use

Activate this skill instead of launching @code:plan-validator at every plan validation site. The orchestrator should only launch the full plan-validator agent for semantic-only checks after plan creation or modification phases.

Usage

Run the validation script:

python3 ${CLAUDE_SKILL_DIR}/scripts/validate_plan.py <WORKDIR> --auto-sync

The --auto-sync flag detects questions answered in the markdown content that are still in the openQuestions JSON array, extracts the answer text, and moves them to answeredQuestions before validation — writing the updated plan.json back to disk.

Three answer formats are supported:

  1. Inline with prefix**Answer: text**, *Answer: text*, or plain Answer: text on the question line.
  2. A-### keyed answer — a separate A-001: answer text line corresponding to Q-001.
  3. Inline comment — extra text appended after the known question text on the question line, without any Answer: prefix. Metadata markers like (BLOCKING T-X.Y) and [Recommended: ...] are stripped.

The question checkbox does not need to be checked for any format. When a question is migrated from an unchecked [ ] line, the script checks it automatically.

If none of these yield answer text, falls back to the recommendedAnswer field from the JSON entry. Questions with no extractable answer are left in openQuestions.

Always pass --auto-sync so that users can answer questions by editing the markdown directly.

Interpreting Output

The script prints JSON to stdout matching the exact plan-validator output format.

Plan Valid (PLAN_VALID)

{
  "status": "VALID",
  "issues": [],
  "has_unanswered_questions": false,
  "unanswered_questions": [],
  "has_answered_questions": false,
  "answered_questions": [],
  "has_addressed_gaps": false,
  "addressed_gaps": [],
  "pending_tasks": [{"id": "T-1.1", "description": "...", "acceptanceCriteria": ["AC-001"]}],
  "completed_tasks": [],
  "manual_tasks": [],
  "decision_table_path": ".closedloop-ai/decision-tables/pln-001.md",
  "decision_table_status": "pending"
}

Read the full file on GitHub · 102 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 102 lines · 89 tokens per session scan A a9de0f4923c1

Subscribe to this mod's changes

plan-validate is a skill published in the GitHub repository closedloop-ai/claude-plugins (103 stars, last pushed yesterday), licensed Apache-2.0. It adds 89 tokens to every session and 1,054 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-07.

Related

Other skills, from other repositories

pr-reviewer

Reviews a diff or security scope read-only using evidence-tiered findings, structural and context-error rubrics, and repository review policy. Use when asked to "review my changes", "structural review", "review for AI patterns", or "security audit". For applying fixes use tidy; for UI defects use ui-design.

mblode/agent-skills · 68 tokens

autoship

Runs a changesets npm release through the version PR, CI publish, and registry verification. Use when asked to "release this package", "autoship", "merge Version Packages", or diagnose a release that did not publish. For feature PRs use pr-creator or pr-babysitter.

mblode/agent-skills · 63 tokens

scaffold-cli

Scaffolds a TypeScript CLI and npm package with the house toolchain, dual tsdown outputs, CLI contracts, changesets, and publishing templates. Use when asked to "scaffold a CLI" or "start an npm package". For an existing package release use autoship; for existing API ergonomics use dx-audit.

mblode/agent-skills · 71 tokens

claw-mux

Control cmux terminal topology and I/O — send commands to panes, read output, split layouts, monitor logs, orchestrate multi-pane workflows. Requires cmux environment.

LeeJuOh/claude-code-zero · 39 tokens

report-manager

Manage and refine vision-powers reports: list, open, delete, search, and refine sections. Use when asked to list, open, delete, search, or update generated HTML reports.

LeeJuOh/claude-code-zero · 41 tokens

fetch-sitemap

Extract URLs from an XML sitemap with optional regex filtering.

LeeJuOh/claude-code-zero · 14 tokens