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.zipInstalls 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.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
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
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| validate-delivery (this skill) | 1 | 5mo | Review | Beginner |
| agent-production-validator | 3 | 6mo | Review | Advanced |
| release-testing | 1 | 1mo | Review | Advanced |
| documenso-ci-integration | 1 | 27d | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by avifenesh
View all by avifenesh →You might also like
agent-production-validator
ruvnet
Agent skill for production-validator - invoke with $agent-production-validator
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".
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".
smoke-check
hoatv2211
Run core path smoke validation before QA handoff or merge.
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.
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.