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

Validate Delivery

  • 2 installs
  • 931 repo stars
  • Updated July 26, 2026
  • avifenesh/awesome-slash

validate-delivery is a Claude Code skill that autonomously validates a task is complete and ready to ship by running tests, build and requirement checks.

About

validate-delivery checks whether a coding task is complete and ready to ship. It runs the project's tests and build, verifies extracted requirements are implemented, and compares test counts before and after to detect regressions. A developer or agent runs it before shipping to get a pass or fail decision. It outputs structured JSON with specific fix instructions when checks fail.

  • Runs tests, build, requirement checks and regression detection in one pass
  • Detects the test runner (npm, pytest, cargo, go) automatically
  • Returns approved true/false JSON with fix instructions for an orchestrator

Validate Delivery by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #1,685 of 2,153 Testing & QA skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

validate-delivery capabilities & compatibility

Capabilities
testing · code review
Use cases
testing · code review
From the docs

What validate-delivery says it does

Autonomously validate that a task is complete and ready to ship.
SKILL.md
NO human intervention - fully autonomous
SKILL.md
npx skills add https://github.com/avifenesh/awesome-slash --skill validate-delivery

Add your badge

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

Listed on Skillselion
Installs2
repo stars931
Last updatedJuly 26, 2026
Repositoryavifenesh/awesome-slash

What it does

Autonomously verify a task passes tests, build, requirements and regression checks before it is shipped.

Who is it for?

Gating whether a task passes tests, build and requirements before shipping

When should I use this skill?

When you need to validate delivery, check readiness, or verify completion before shipping

What you get

A pass/fail decision as structured JSON with fix instructions for any failed check

By the numbers

  • 5 validation checks (review, tests, build, requirements, regressions)
  • extracts up to 10 requirements from the task description

Files

SKILL.mdMarkdownGitHub ↗

validate-delivery

Autonomously validate that a task is complete and ready to ship.

Validation Checks

Check 1: Review Status

function checkReviewStatus(reviewResults) {
  if (!reviewResults) return { passed: false, reason: 'No review results' };
  if (reviewResults.approved) return { passed: true };
  if (reviewResults.override) return { passed: true, override: true };
  return { passed: false, reason: 'Review not approved' };
}

Check 2: Tests Pass

# Detect test runner and run
if grep -q '"test"' package.json; then
  npm test; TEST_EXIT_CODE=$?
elif [ -f "pytest.ini" ]; then
  pytest; TEST_EXIT_CODE=$?
elif [ -f "Cargo.toml" ]; then
  cargo test; TEST_EXIT_CODE=$?
elif [ -f "go.mod" ]; then
  go test ./...; TEST_EXIT_CODE=$?
else
  TEST_EXIT_CODE=0  # No tests
fi

Check 3: Build Passes

if grep -q '"build"' package.json; then
  npm run build; BUILD_EXIT_CODE=$?
elif [ -f "Cargo.toml" ]; then
  cargo build --release; BUILD_EXIT_CODE=$?
elif [ -f "go.mod" ]; then
  go build ./...; BUILD_EXIT_CODE=$?
else
  BUILD_EXIT_CODE=0  # No build step
fi

Check 4: Requirements Met

async function checkRequirementsMet(task, changedFiles) {
  const requirements = extractRequirements(task.description);
  const results = [];

  for (const req of requirements) {
    const implemented = await verifyRequirement(req, changedFiles);
    results.push({ requirement: req, implemented });
  }

  return {
    passed: results.every(r => r.implemented),
    requirements: results
  };
}

function extractRequirements(description) {
  const reqs = [];
  // Extract bullet points: - Item
  const bullets = description.match(/^[-*]\s+(.+)$/gm);
  if (bullets) reqs.push(...bullets.map(m => m.replace(/^[-*]\s+/, '')));
  // Extract numbered items: 1. Item
  const numbered = description.match(/^\d+\.\s+(.+)$/gm);
  if (numbered) reqs.push(...numbered.map(m => m.replace(/^\d+\.\s+/, '')));
  return [...new Set(reqs)].slice(0, 10);
}

Check 5: No Regressions

# Compare test counts before/after changes
git stash
BEFORE=$(npm test 2>&1 | grep -oE '[0-9]+ passing' | grep -oE '[0-9]+')
git stash pop
AFTER=$(npm test 2>&1 | grep -oE '[0-9]+ passing' | grep -oE '[0-9]+')
[ "$AFTER" -lt "$BEFORE" ] && REGRESSION=true || REGRESSION=false

Aggregate Results

const checks = {
  reviewClean: checkReviewStatus(reviewResults),
  testsPassing: { passed: TEST_EXIT_CODE === 0 },
  buildPassing: { passed: BUILD_EXIT_CODE === 0 },
  requirementsMet: await checkRequirementsMet(task, changedFiles),
  noRegressions: { passed: !REGRESSION }
};

const allPassed = Object.values(checks).every(c => c.passed);
const failedChecks = Object.entries(checks)
  .filter(([_, v]) => !v.passed)
  .map(([k]) => k);

Decision and Output

If All Pass

workflowState.completePhase({
  approved: true,
  checks,
  summary: 'All validation checks passed'
});

return { approved: true, checks };

If Any Fail

const fixInstructions = generateFixInstructions(checks, failedChecks);

workflowState.failPhase('Validation failed', {
  approved: false,
  failedChecks,
  fixInstructions
});

return { approved: false, failedChecks, fixInstructions };

Fix Instructions Generator

function generateFixInstructions(checks, failedChecks) {
  const instructions = [];

  if (failedChecks.includes('testsPassing')) {
    instructions.push({ action: 'Fix failing tests', command: 'npm test' });
  }
  if (failedChecks.includes('buildPassing')) {
    instructions.push({ action: 'Fix build errors', command: 'npm run build' });
  }
  if (failedChecks.includes('requirementsMet')) {
    const unmet = checks.requirementsMet.requirements
      .filter(r => !r.implemented)
      .map(r => r.requirement);
    instructions.push({ action: 'Implement missing', details: unmet.join(', ') });
  }

  return instructions;
}

Output Format

{
  "approved": true|false,
  "checks": {
    "reviewClean": { "passed": true },
    "testsPassing": { "passed": true },
    "buildPassing": { "passed": true },
    "requirementsMet": { "passed": true },
    "noRegressions": { "passed": true }
  },
  "failedChecks": [],
  "fixInstructions": []
}

Constraints

  • NO human intervention - fully autonomous
  • Returns structured JSON for orchestrator
  • Generates specific fix instructions on failure
  • Workflow retries automatically after fixes

Related skills

FAQ

What checks does validate-delivery run?

Review status, tests passing, build passing, requirements met, and no regressions, then aggregates them into an approved decision.

Is it interactive?

No, its constraints state there is no human intervention; it runs fully autonomously and returns structured JSON for an orchestrator.

Testing & QAtestingdevops

This week in AI coding

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

unsubscribe anytime.