/ads validate
Validate contracts, runs, capabilities, maturity, or release readiness
/ads validateInstalled as a plugin? The same command is namespaced: /claude-ads:ads validate
What it does
Deterministic validation for contracts, scoring inputs, run bundles, capabilities, source freshness, installs, and release readiness. It is the quality gate: proof that a run, a claimed capability, or the installation itself is sound before anyone relies on it.
Use it to
- Preflight a project before running an audit or drafting a launch
- Verify a run bundle is complete before rendering a client report
- Check that a claimed capability has an implementation, fixtures, and tests behind it
- Detect stale sources and expired evidence before they leak into deliverables
- Validate an install or uninstall against the ownership manifest
- Run a release-readiness audit with a fresh-context verifier
How it works
Choose the narrowest target
Contract, scores, run, capability, repository, or release: it validates the smallest scope that answers the question.
Run the deterministic validator
Contracts and bundles go through the core validator, not prompt-side judgment.
Check capability claims
A capability counts only with an implementation, fixtures, tests, sources, and a truthful mode declaration.
Check evidence freshness
Expired claims that cannot be reverified are demoted for the run and dependent release-current assertions are blocked.
Report blocker and recovery
Returns pass or fail per check, the highest-priority blocker, exact evidence, and recovery steps.
Reads & produces
What it reads
- A contract, finding, or run bundle in versioned JSON
- Scoring inputs: controls, findings, category weights, and coverage
- The capability manifest and its implementation, fixture, and test paths
- Control-plane source and claim entries with refresh dates
- The ownership manifest and checksums for install and uninstall checks
What it produces
- Machine-readable pass or fail results for the chosen target
- The single highest-priority blocker
- Exact evidence for every failure
- Concrete recovery steps
Guardrails
What /ads validate will and will not do, by contract. These boundaries are enforced in the skill itself, not left to judgment.
- Never promotes maturity because documentation looks polished or a prior release passed. Stale evidence and skipped remote CI demote readiness.
- An expired claim that cannot be reverified fails the current-evidence check, is demoted for the run, and blocks dependent release-current assertions before any recovery guidance.
- Uninstall validation permits removing only exact paths listed in the matching ownership manifest. It never discovers targets with a name-pattern glob, so unrelated ads-* skills stay untouched.
- If the ownership manifest is absent, invalid, mismatched, or unsafe, deletion stops before anything is removed and manual review is required.
- Rejects pipe-to-shell install instructions. Archives require a SHA-256 checksum verified against a trusted release channel before execution.
Questions
What can validate actually check?
Six target levels: a single contract or bundle, scoring inputs, a full run, a claimed capability, the whole repository, or release readiness via a fresh-context verifier. It always picks the narrowest target that answers the question.
Why did validation fail on a claim that used to pass?
Evidence expires. When a source's refresh date passes, the claim is no longer current, and if it cannot be reverified it is demoted for the run. This is deliberate: stale evidence never silently supports a current claim.
Is uninstall validation safe if I have other ads-related skills installed?
Yes. Uninstall only removes exact paths from the Claude Ads ownership manifest. It never matches by name pattern, so an unrelated skill with an ads- prefix is never touched.