Agent skill

Plan Validate

by closedloop-ai in closedloop-ai/claude-plugins

Deterministic plan.json validation via Python script, replacing most plan-validator agent calls.

Apache-2.0Auto-check: notesFrontend & Design

Install Plan Validate

skills CLI
$ npx skills add closedloop-ai/claude-plugins --skill plan-validate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install closedloop-ai/claude-plugins plan-validate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/code/skills/plan-validate .claude/skills/plan-validate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
plan-validate
GitHub stars
122
Token cost
~1.2k tokens
SKILL.md length
437 words
Files
5 (incl. scripts)
Skills in repo
41
Repo updated
First seen
Licence
Apache-2.0

At a glance

Deterministic plan.json validation via Python script, replacing most plan-validator agent calls.

  • Works in 3 steps: Inline with prefix — Answer: text,… → A-### keyed answer — a separate A-001:… → Inline comment — extra text appended…
  • : plan validation
  • SKILL.md covers When to Use, Usage, Interpreting Output and What This Script Validates, plus 1 more section
  • Runs Python scripts from its folder; calls python3

What it does

Plan Validate is an agent skill from closedloop-ai/claude-plugins. Deterministic plan.json validation via Python script, replacing most plan-validator agent calls. Performs JSON parsing, schema validation, task checkbox regex, required section checks, sync validation, and data extraction. Only semantic consistency checks (storage/query alignment) require the LLM agent. Triggers on: plan validation, checking plan format, extracting plan data. Returns PLANVALID with extracted data or PLANFORMATISSUES with issues list.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `scripts/conftest.py`, `scripts/test_auto_sync_answers.py` and `scripts/test_validate_plan.py`).

It sits in Frontend & Design, covering Forms and validation. It works with Python. The repository describes itself as: Open-source Claude Code plugins for multi-agent software delivery. Plan-first SDLC workflow, code review, LLM quality judges, and self-learning — grounded in your codebase… The licence is Apache-2.0.

When your agent uses it

  • : plan validation
  • Checking plan format
  • Extracting plan data

Example prompts

  • “/plan-validate”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  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…

What it can do on your machine

Read from SKILL.md and the folder at commit 476b54c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Plan Validate loads about 1.2k tokens when it runs. Until then it costs about 118 tokens; SKILL.md has 437 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~118
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from closedloop-ai/claude-plugins at commit 476b54c, republished under its Apache-2.0 licence (© closedloop-ai). 437 words, ~1,157 tokens.

Download SKILL.mdSave it as .claude/skills/plan-validate/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
plan-validate
description
Deterministic plan.json validation via Python script, replacing most plan-validator agent calls. Performs JSON parsing, schema validation, task checkbox regex, required section checks, sync validation, and data extraction. Only semantic consistency checks (storage/query alignment) require the LLM agent. Triggers on: plan validation, checking plan format, extracting plan data. Returns PLAN_VALID with extracted data or PLAN_FORMAT_ISSUES with issues list.
allowed-tools
Bash
context
fork

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:

bash
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.

Show full SKILL.md (186 more words)Show less
Plan Valid (PLAN_VALID)
json
{
  "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"
}

Action: Parse the extracted data fields. Use pending_tasks, completed_tasks, etc. as if the plan-validator agent returned them. The decision_table_path and decision_table_status keys are always present — they are empty strings ("") when the plan does not yet reference a decision-table artifact.

Plan Format Issues (PLAN_FORMAT_ISSUES)
json
{
  "status": "FORMAT_ISSUES",
  "issues": ["Missing required field: openQuestions", "Task missing checkbox in content: '- **T-1.2**: ...'"],
  ...
}

Action: Handle the same way as plan-validator FORMAT_ISSUES — launch fix subagents as appropriate.

Other Statuses
  • EMPTY_FILE: plan.json doesn't exist or is empty
  • INVALID_JSON: plan.json contains malformed JSON

What This Script Validates

  1. JSON parsing — file exists, is valid JSON, root is an object
  2. Schema fields — required top-level fields present with correct types, ID pattern validation
  3. Task checkboxes — every **T-X.Y** line has - [ ] or - [x] prefix
  4. Required sections — all 10 required ## headers present in content
  5. Sync validation — pendingTasks/completedTasks/manualTasks/openQuestions/answeredQuestions arrays match markdown content lines

What Still Requires the LLM Agent

Semantic consistency validation (Step 6 in plan-validator):

  • Cross-referencing storage definitions with query operations
  • Verifying tasks don't contradict Architecture Decisions table
  • Checking data flow consistency

Only run the plan-validator agent with semantic-only focus after phases that modify the plan content (Phase 1 creation, Phase 2.6 critic merge, Phase 2.7 finalization).

© closedloop-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts) in plugins/code/skills/plan-validate of closedloop-ai/claude-plugins.

  • SKILL.md
  • scripts/conftest.py
  • scripts/test_auto_sync_answers.py
  • scripts/test_validate_plan.py
  • scripts/validate_plan.py

Open the folder on GitHubat commit 476b54c

Compare with similar skills

Plan Validate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Plan Validate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plan Validate this skillclosedloop-ai/claude-plugins122—~1.2kAutomated safety check: NotesApache-2.0
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Accessibility Fixeribelick/ui-skills9.5k4 repos~1.2kAutomated safety check: PassMIT
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT
Formik Form PatternsChrisWiles/claude-code-showcase6.1k3 repos~2.1kAutomated safety check: PassNone
Buefy Vue UI Componentsbuefy/buefy9.5k—~8.2kAutomated safety check: PassMIT

Similar skills

  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Accessibility Fixer

    ibelick/ui-skills

    Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.

    9.5k GitHub starsUsed in 4 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • Claude Desktop Chinese Localization

    javaht/claude-desktop-zh-cn

    Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.

    7.5k GitHub stars~1.6k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Formik Form Patterns

    ChrisWiles/claude-code-showcase

    Shows how to build forms with Formik and Yup validation, including conditional rules, field helpers, GraphQL submission, edit forms and multi-step flows.

    6.1k GitHub starsUsed in 3 repos~2.1k tokens
    Frontend & DesignAuto-check passed
  • Rules for writing Vue 3 templates with Buefy components on Bulma CSS: install options, prop conventions, b-field wrapping, tables, theming and dialogs.

    9.5k GitHub stars~8.2k tokensUpdated 29 days ago
    Frontend & DesignAuto-check passed
  • Formkit

    formkit/formkit

    A skill your agent uses when working with FormKit forms, validation, schema, or custom inputs in React, Vue, or Nuxt projects.

    4.8k GitHub stars~1.7k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed

More from closedloop-ai/claude-plugins

All 41 skills in this repo
  • Codex Review

    closedloop-ai/claude-plugins

    Run Codex to review a plan file and return structured feedback with a verdict.

    122 GitHub stars~1.4k tokensUpdated today
    Auto-check: notes
  • Critic Cache

    closedloop-ai/claude-plugins

    Check if critic reviews are still valid before re-running Phase 2.5 critics.

    122 GitHub stars~528 tokensUpdated today
    Auto-check: notes
  • Cross Repo Cache

    closedloop-ai/claude-plugins

    Check if cross-repo coordinator results can be reused, avoiding redundant Sonnet agent launches.

    122 GitHub stars~683 tokensUpdated today
    Auto-check: notes
  • Eval Cache

    closedloop-ai/claude-plugins

    Check for a cached plan-evaluation.json result before launching the plan-evaluator agent.

    122 GitHub stars~516 tokensUpdated today
    Auto-check: notes
  • Find Plugin File

    closedloop-ai/claude-plugins

    This skill should be used when needing to locate files within the Claude Code plugins cache directory (~/.claude/plugins/cache).

    122 GitHub stars~812 tokensUpdated today
    Auto-check passed
  • Gh Monitor PR

    closedloop-ai/claude-plugins

    Start a detached GitHub pull-request monitor that wakes the exact launching Codex Desktop or CLI root through the managed Codex App Server when review, CI, conflict, merge-queue, closure, readiness…

    122 GitHub stars~5.1k tokensUpdated today
    Auto-check passed

Works with

Questions about Plan Validate

What does Plan Validate do?

Deterministic plan.json validation via Python script, replacing most plan-validator agent calls. Plan Validate is an agent skill from closedloop-ai/claude-plugins.json validation via Python script, replacing most plan-validator agent calls.

When should I use Plan Validate?

Plan Validate fits situations like: : plan validation; checking plan format; extracting plan data.

How do I install Plan Validate in Claude Code?

Run `npx skills add closedloop-ai/claude-plugins --skill plan-validate -a claude-code`. Or copy the skill folder (plugins/code/skills/plan-validate in closedloop-ai/claude-plugins) into .claude/skills/plan-validate in your project. Claude Code loads it when a task matches its description.

How do I install Plan Validate in Codex?

Run `npx skills add closedloop-ai/claude-plugins --skill plan-validate -a codex`. Or copy the skill folder (plugins/code/skills/plan-validate in closedloop-ai/claude-plugins) into .agents/skills/plan-validate in your project. Codex loads it when a task matches its description.

Can I use Plan Validate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add closedloop-ai/claude-plugins --skill plan-validate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plan-validate, .gemini/skills/plan-validate, .github/skills/plan-validate and .opencode/skills/plan-validate in your project.

What does Plan Validate need to run?

Going by SKILL.md and its folder, Plan Validate needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash.

Does Plan Validate access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Plan Validate safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Plan Validate use?

Plan Validate is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Plan Validate use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Plan Validate?

Skills that share tags, products or a category with Plan Validate: MCP Development (coollabsio/coolify, 63k stars), Accessibility Fixer (ibelick/ui-skills, 9.5k stars), Claude Desktop Chinese Localization (javaht/claude-desktop-zh-cn, 7.5k stars) and Formik Form Patterns (ChrisWiles/claude-code-showcase, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plan Validate?

closedloop-ai (a GitHub organization) maintains it in closedloop-ai/claude-plugins, which has 122 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 7, 2026.

Source: closedloop-ai/claude-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.