VA

validate-delivery

Ensures code is ready for production by validating tests, builds, and requirements.

Install

mkdir -p .claude/skills/validate-delivery && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3240" && unzip -o skill.zip -d .claude/skills/validate-delivery && rm skill.zip

Installs to .claude/skills/validate-delivery

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when user asks to \"validate delivery\", \"check readiness\", or \"verify completion\". Runs tests, build, and requirement checks with pass/fail instructions.
162 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Run test suites
  • Execute build processes
  • Verify requirement implementation
  • Detect regressions
  • Generate fix instructions

How it works

The skill autonomously runs configured test and build commands, compares requirements against changes, and outputs a structured JSON report with fix instructions.

Inputs & outputs

You give it
Task description and changed files
You get back
Pass/fail JSON report

When to use validate-delivery

  • Pre-deployment validation
  • Check requirement compliance
  • Run full test and build suite
  • Verify release readiness

About this skill

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

When not to use it

  • Tasks unrelated to delivery validation
  • Environments without test or build scripts

Prerequisites

package.json, pytest.ini, Cargo.toml, or go.mod

Limitations

  • Requires standard project configuration files
  • Limited to the defined validation checks

How it compares

It provides a fully autonomous, structured validation report instead of manual verification steps.

Compared to similar skills

validate-delivery side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
validate-delivery (this skill)15moReviewBeginner
agent-production-validator36moReviewAdvanced
release-testing11moReviewAdvanced
documenso-ci-integration127dReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

agent-production-validator

ruvnet

Agent skill for production-validator - invoke with $agent-production-validator

328

release-testing

mono

Run integration tests to verify SkiaSharp NuGet packages work correctly before publishing. Use when user asks to: - Test/verify packages before release - Run integration tests - Test on specific device (iPad, iPhone, Android emulator, Mac, Windows) - Verify SkiaSharp rendering works - Check if packages are ready for publishing - Run smoke/console/blazor/maui tests - Continue with release - Test version X Triggers: "test the release", "verify packages", "run tests on iPad", "check ios tests", "test mac catalyst", "run android tests", "continue", "test 3.119.2-preview.2".

14

documenso-ci-integration

jeremylongshore

Configure CI/CD pipelines for Documenso integrations. Use when setting up automated testing, deployment pipelines, or continuous integration for Documenso projects. Trigger with phrases like "documenso CI", "documenso GitHub Actions", "documenso pipeline", "documenso automated testing".

10

smoke-check

hoatv2211

Run core path smoke validation before QA handoff or merge.

00

aidlc-build

aws-samples

Final integration build and test verification. Validates that implemented code compiles, passes all test suites, and meets quality gates before deployment.

00

release-bump

himatts

Prepare versioned release updates for Lime Pipeline. Use when user-visible behavior changes require bumping `bl_info["version"]`, updating `CHANGELOG.md`, and producing release-ready QA notes.

00

Search skills

Search the agent skills registry