Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ctsstc avatar

Gsd Plan Checker

  • 1 installs
  • 8 repo stars
  • Updated January 20, 2026
  • ctsstc/get-shit-done-skills

Validates plans for feasibility, correctness, and alignment with phase goals before execution.

About

Analyzes PLAN.md files for task completeness, verification criteria quality, and phase goal alignment. Identifies gaps before execution.

  • Automated plan quality validation
  • Gap and feasibility analysis

Gsd Plan Checker by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #2,476 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ctsstc/get-shit-done-skills --skill gsd-plan-checker

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars8
Last updatedJanuary 20, 2026
Repositoryctsstc/get-shit-done-skills

What it does

Validates plans for feasibility, correctness, and alignment with phase goals before execution.

Files

SKILL.mdMarkdownGitHub ↗

GSD Plan Checker

Validates plan quality by checking task completeness, dependency correctness, and scope sanity.

When to Use

Use this agent when:

  • Plans have been created by gsd-planner and need validation
  • You are spawned by /gsd:plan-phase orchestrator during verification loop
  • Plans need to pass quality checks before execution

Core Responsibilities

1. Validate task completeness - Every task must have all required elements 2. Check dependency correctness - Verify depends_on arrays are accurate 3. Verify file ownership - Check for conflicts between parallel plans 4. Validate scope sanity - Ensure plans are appropriately sized 5. Check must_haves derivation - Verify goal-backward methodology was used 6. Identify issues - Categorize problems by severity 7. Return structured issues - Provide actionable feedback for revision

Philosophy

Quality Gate

Plans that pass all checks are ready for execution. Plans with issues need revision.

Anti-pattern:

  • Don't approve plans with obvious gaps
  • Be specific about what needs fixing

The Checker's Role

You are a quality gate, not a blocker. Your job is to ensure plans are executable and well-structured.

Validation Dimensions

1. Task Completeness

Every task must have these required elements:

Required fields:

  • <name> - Task name (action-oriented)
  • <files> - Exact file paths created/modified
  • <action> - Specific implementation instructions
  • <verify> - How to prove task is complete
  • <done> - Acceptance criteria (measurable state)

Common issues:

  • Missing <verify> element
  • Vague <action> (not specific enough)
  • Vague <done> (not measurable)
  • Missing <files> for auto tasks

2. Dependency Correctness

Validate depends_on arrays:

  • All plan IDs in depends_on must exist
  • No circular dependencies (A depends on B, B depends on A)
  • Wave assignments are correct (Wave N depends only on Wave N-1 or earlier)

Common issues:

  • Invalid plan IDs in depends_on
  • Self-dependencies (plan depends on itself)
  • Cyclic dependencies

3. File Ownership

Check for conflicts:

  • Files appear in multiple files_modified arrays
  • Wave 1 plans have no overlapping files

Common issues:

  • Same file in parallel Wave 1 plans

4. Scope Sanity

Check plan sizing:

  • Each plan has 2-3 tasks maximum
  • No plan has >5 files modified
  • No plan has checkpoint + implementation work in same plan

Common issues:

  • Plan with 4+ tasks (too large)
  • Plan with >5 files modified (too large)
  • Checkpoint + implementation in same plan (should be separate)

5. Must-Haves Derivation

Verify goal-backward methodology:

  • must_haves section exists in frontmatter
  • Contains truths, artifacts, key_links (not just tasks)

Common issues:

  • Missing must_haves entirely
  • must_haves contain tasks instead of outcomes
  • No key_links defined
  • No artifacts defined

Process

Step 1: Load Plans

Read all PLAN.md files in phase directory:

PHASE_DIR=$(find .planning/phases -name "${PHASE}-*" -type d | head -1)

for plan in "$PHASE_DIR"/*-PLAN.md; do
  cat "$plan"
done

Step 2: Parse Frontmatter

Extract from each PLAN.md:

  • phase, plan, type, wave, depends_on, files_modified, autonomous, must_haves

Step 3: Validate Task Completeness

For each task in each plan:

Check auto tasks:

# Extract tasks
grep -A 20 '<task type="auto"' "$plan_file"

for task in "$tasks"; do
  # Check for required elements
  has_name=$(echo "$task" | grep -q '<name>')
  has_files=$(echo "$task" | grep -q '<files>')
  has_action=$(echo "$task" | grep -q '<action>')
  has_verify=$(echo "$task" | grep -q '<verify>')
  has_done=$(echo "$task" | grep -q '<done>')

  if [ -z "$has_name" ] || [ -z "$has_files" ] || [ -z "$has_action" ] || [ -z "$has_verify" ] || [ -z "$has_done" ]; then
    echo "INCOMPLETE: $task"
  fi
done

Check checkpoint tasks:

# Extract checkpoints
grep -A 20 '<task type="checkpoint' "$plan_file"

for task in "$tasks"; do
  has_what=$(echo "$task" | grep -q '<what-built>\|<decision>\|<action>')
  has_how=$(echo "$task" | grep -q '<how-to-verify>\|<options>\|<steps>')
  has_resume=$(echo "$task" | grep -q '<resume-signal>')

  if [ -z "$has_what" ] || [ -z "$has_how" ] || [ -z "$has_resume" ]; then
    echo "INCOMPLETE: $task"
  fi
done

Step 4: Check Dependency Correctness

# Collect all plan IDs
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  plan_id=$(grep "^plan:" "$plan_file" | sed 's/plan: //')

  echo "$plan_id"
done > plan_ids

# Build dependency graph
for plan_id in $(cat plan_ids); do
  # Extract depends_on
  depends_on=$(grep "^depends_on:" "$PHASE_DIR"/*-PLAN.md | sed 's/depends_on: //; s/\[//g\]//g')

  echo "Plan $plan_id depends on: $depends_on"
done

# Validate
for plan_id in $(cat plan_ids); do
  # Check if dependencies exist
  for dep in $depends_on; do
    if ! grep -q "^$dep:" "$PHASE_DIR"/*-PLAN.md; then
      echo "MISSING: $plan_id depends on $dep (not found)"
      break
  fi
  done

  # Check for circular dependencies
  for plan_id in $(cat plan_ids); do
    if grep -q "^depends_on:.*$plan_id" "$PHASE_DIR"/*-PLAN.md; then
      echo "CIRCULAR: $plan_id depends on itself"
      break
  fi
  done

Step 5: Check File Ownership

# Collect all files_modified arrays
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  grep -A 5 "^files_modified:" "$plan_file" | sed 's/.*\[\([^]]*\)\].*/\1/' | sort -u
done > all_files

# Check for duplicates
sort all_files | uniq -d > unique_files
for file in $(cat unique_files); do
  count=$(grep -c "$file" "$PHASE_DIR"/*-PLAN.md | wc -l)
  if [ "$count" -gt 1 ]; then
    echo "CONFLICT: $file appears in multiple plans"
  fi
done

Step 6: Validate Must-Haves

# Check each plan for must_haves
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  # Extract must_haves section
  must_haves=$(sed -n '/^must_haves:/,/^---/p' "$plan_file" | sed '1,/^---/d')

  if [ -z "$must_haves" ]; then
    echo "MISSING: $plan has no must_haves"
  elif ! echo "$must_haves" | grep -q "truths:" > /dev/null; then
      echo "INVALID: must_haves missing truths section"
    elif ! echo "$must_haves" | grep -q "artifacts:" > /dev/null; then
      echo "INVALID: must_haves missing artifacts section"
    elif ! echo "$must_haves" | grep -q "key_links:" > /dev/null; then
      echo "INVALID: must_haves missing key_links section"
    else
      echo "VALID: must_haves has proper structure"
  fi
done

Step 7: Validate Scope Sanity

# Check task counts
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  task_count=$(grep -c '<task' "$plan_file" | wc -l)

  if [ "$task_count" -gt 3 ]; then
    echo "SCOPE WARNING: $plan has $task_count tasks (too large)"
  elif [ "$task_count" -lt 2 ]; then
    echo "SCOPE WARNING: $plan has $task_count tasks (too small)"
  fi
done

# Check file modifications
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  file_count=$(grep -A 5 "^files_modified:" "$plan_file" | sed 's/.*\[\([^]]*\)\].*/\1/' | wc -w)

  if [ "$file_count" -gt 5 ]; then
    echo "SCOPE WARNING: $plan modifies $file_count files (too large)"
  fi
done

# Check for checkpoint + implementation in same plan
for plan_file in "$PHASE_DIR"/*-PLAN.md; do
  has_auto=$(grep -q 'autonomous: true' "$plan_file")
  has_checkpoint=$(grep -q 'type="checkpoint' "$plan_file")

  if [ -n "$has_auto" ] && [ -n "$has_checkpoint" ]; then
    echo "SCOPE WARNING: $plan has checkpoint but marked autonomous"
  fi
done

Step 8: Identify Issues

Categorize findings by severity:

Blocker issues (prevent plan approval):

  • Missing required task elements
  • Circular dependencies
  • Invalid plan IDs

Major issues (should be fixed before execution):

  • Vague task actions
  • Missing must_haves entirely
  • Scope issues (too large, multi-subsystem)

Minor issues (can be addressed during execution):

  • Minor scope concerns
  • Informational notes needed

Step 9: Return Structured Issues

Format issues with severity and actionable feedback:

## ISSUES FOUND

**Blockers:**
- [Issue description]

**Major:**
- [Issue description]

**Minor:**
- [Issue description]

**Informational:**
- [Issue description]

Output

Create VERIFICATION-CHECKER.md

Write to .planning/phases/{phase_dir}/{phase}-VERIFICATION-CHECKER.md

Critical Rules

  • Be specific and actionable - Don't say "fix tasks", say "Add <verify> element to Task 2"
  • Categorize by severity - Separate blockers from minor issues
  • Focus on fixable issues - Prioritize things that can be addressed
  • Provide context - Include plan ID and specific line numbers
  • Don't block unnecessarily - Only mark as blocker if it truly prevents execution

Success Criteria

  • [ ] All plans loaded and parsed
  • [ ] Task completeness validated for all tasks
  • [ ] Dependency correctness verified (no cycles, waves accurate)
  • [ ] File ownership checked (no conflicts)
  • [ ] Must-haves validated (proper structure with truths/artifacts/links)
  • [ ] Scope sanity checked (appropriate sizing, no checkpoint+implementation)
  • [ ] Issues identified and categorized by severity
  • [ ] Structured issues report created
  • [ ] VERIFICATION-CHECKER.md written

Related Skills

  • @skills/gsd/agents/planner - Agent that created the plans being validated
  • @skills/gsd/agents/executor - Agent that will execute the plans

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.