Aiwg contract-validate
Validate that a chain of AIWG skills has all requires: inputs satisfied by upstream ensures: outputs before execution. Catches missing dependencies at wiring time rather than at runtime.
install
source · Clone the upstream repo
git clone https://github.com/jmagly/aiwg
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jmagly/aiwg "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/contract-validate" ~/.claude/skills/jmagly-aiwg-contract-validate && rm -rf "$T"
manifest:
.agents/skills/contract-validate/SKILL.mdsource content
Contract Validate Skill
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.
Triggers
- "validate the contract chain for [skill1] → [skill2]"
- "check if this workflow is wired correctly"
- "will [skill] have everything it needs?"
- "pre-flight check the skill chain"
- "validate workflow contracts"
Parameters
Skills list (positional)
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)
--workflow <file>Path to a YAML workflow definition listing the skill chain.
--external input1,input2
(optional)
--external input1,input2Comma-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)
--strictTreat semantic matches as failures (require exact name matches). Default: semantic matches pass with warnings.
Behavior
Step 1: Resolve and Extract Contracts
Same as
contract-manifest Step 1–2: resolve each skill, extract contract fields.
Step 2: Validate Each Requires:
For each skill's
requires: entry:
- Satisfied by external input (
list) → ✓ SATISFIED (external)--external - Satisfied by exact match (upstream
same name) → ✓ SATISFIEDensures: - Satisfied by semantic match (upstream
same meaning, different name) → ⚠️ WARN (semantic)ensures: - Not satisfied (nothing provides it) → ❌ UNRESOLVED
Step 3: Determine Verdict
| Condition | Verdict |
|---|---|
All satisfied (exact or external) | VALID |
All satisfied but some are semantic matches | VALID WITH WARNINGS |
Any unresolved | INVALID |
| No contract fields found on any skill | NO CONTRACTS (cannot validate) |
Step 4: Output Report
## 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.
Using in CI / Pre-Flight
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
Relationship to contract-manifest
— generates a full manifest for human inspectioncontract-manifest
— gives a pass/fail verdict for pre-flight checkscontract-validate
Use
contract-manifest to understand a workflow; use contract-validate to gate its execution.
Model
Runs on Sonnet — contract matching is structural analysis, not complex reasoning.
References
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/README.md — SDLC framework context and skill catalog
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/vague-discretion.md — Measurable validation verdicts and criteria
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/research-before-decision.md — Research-first for contract dependency resolution
- @$AIWG_ROOT/docs/extensions/overview.md — Extension system and skill architecture
- @$AIWG_ROOT/docs/cli-reference.md — CLI reference