plugins/codex-sdlc/skills/contract-validate/SKILL.md
Validate that an AIWG skill chain has all requires inputs satisfied by upstream ensures outputs. Catches missing dependencies at wiring time, not runtime.
npx skillsauth add jmagly/aiwg contract-validateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Validate a skill chain before running it — check that every requires: input is satisfied by an upstream ensures: output or declared as an external input.
Ordered list of skill names to validate as a chain:
/contract-validate issue-planner address-issues
/contract-validate prose-detect prose-run
--workflow <file> (optional)Path to a YAML workflow definition listing the skill chain.
--external input1,input2 (optional)Comma-separated names of inputs that will be provided by the calling workflow or user. Any requires: that matches an external input is treated as satisfied.
/contract-validate issue-planner address-issues --external objective,tracker
--strict (optional)Treat semantic matches as failures (require exact name matches). Default: semantic matches pass with warnings.
Same as contract-manifest Step 1–2: resolve each skill, extract contract fields.
For each skill's requires: entry:
--external list) → ✓ SATISFIED (external)ensures: same name) → ✓ SATISFIEDensures: same meaning, different name) → ⚠️ WARN (semantic)| Condition | Verdict |
|-----------|---------|
| All requires: satisfied (exact or external) | VALID |
| All requires: satisfied but some are semantic matches | VALID WITH WARNINGS |
| Any requires: unresolved | INVALID |
| No contract fields found on any skill | NO CONTRACTS (cannot validate) |
## Contract Validation Report
**Workflow**: issue-planner → address-issues
**Verdict**: VALID WITH WARNINGS
### Skill: issue-planner
| Requires | Source | Status |
|----------|--------|--------|
| objective | external | ✓ satisfied (external) |
| tracker | external | ✓ satisfied (external) |
### Skill: address-issues
| Requires | Source | Status |
|----------|--------|--------|
| issues | issue-planner.issues-filed | ⚠️ semantic match (name differs — verify intent) |
| tracker | issue-planner.tracker | ✓ satisfied (exact match) |
### Warnings (1)
- `address-issues.requires.issues` satisfied by `issue-planner.ensures.issues-filed` via semantic match.
If these are not equivalent, rename one to match or add an explicit mapping.
### Errors (0)
None
### Recommendation
Workflow is likely correct. Confirm that `issue-planner.issues-filed` and `address-issues.issues` refer to the same thing. If so, rename one for an exact match to eliminate the warning.
Before running a multi-skill orchestration, validate the chain:
/contract-validate issue-planner address-issues --external objective tracker
# → VALID — safe to proceed
# → INVALID — check report before running
contract-manifest — generates a full manifest for human inspectioncontract-validate — gives a pass/fail verdict for pre-flight checksUse contract-manifest to understand a workflow; use contract-validate to gate its execution.
Runs on Sonnet — contract matching is structural analysis, not complex reasoning.
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.