contract-validate
Validate that an AIWG skill chain has all requires inputs satisfied by upstream ensures outputs. Catches missing dependencies at wiring time, not runtime.
- License 许可
- MIT
- 所属仓库
- jmagly/aiwg
- 最近更新
- 2026-11-14
- Stars
- ★ 229
- Forks
- 36
01 前言 Front Matter
- name
- contract-validate
- errors
- [ "skill-not-found: one or more skill names cannot be resolved to a SKILL.md file", "no-contracts: none of the specified skills have contract fields — cannot validate" ]
- ensures
- [ "validation-report: pass/fail report per skill with specific missing dependency details", "verdict: VALID (all requires: satisfied), INVALID (unresolved requires: found), or VALID WITH WARNINGS (semantic matches only)", "if INVALID: specific list of which skill requires which input and which upstream skill should provide it" ]
- requires
- [ "skills: ordered list of AIWG skill names or file paths forming the workflow to validate", "if workflow-file: path to a YAML/JSON workflow definition", "external-inputs: names of inputs the calling workflow will provide (optional; unmatched requires are flagged as unresolved)" ]
- namespace
- aiwg
- platforms
- [ "all" ]
- invariants
- [ "validation never executes skills — static analysis only", "semantic matches are flagged as warnings, not counted as resolved for VALID verdict", "a workflow with any unresolved requires: always returns INVALID" ]
- commandHint
- { "model": "haiku", "category": "planning", "modelRole": "efficiency", "modelTier": "economy", "allowedTools": "Read, Glob, Grep", "argumentHint": "<skill1> <skill2> ... | --workflow <file.yaml> [--external input1,input2] [--strict]" }
- description
- Validate that an AIWG skill chain has all requires inputs satisfied by upstream ensures outputs. Catches missing dependencies at wiring time, not runtime.
03 SKILL.md 正文
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)
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.
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 (
--externallist) → ✓ SATISFIED (external) - Satisfied by exact match (upstream
ensures:same name) → ✓ SATISFIED - Satisfied by semantic match (upstream
ensures:same meaning, different name) → ⚠️ WARN (semantic) - Not satisfied (nothing provides it) → ❌ UNRESOLVED
Step 3: Determine Verdict
| 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) |
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
contract-manifest— generates a full manifest for human inspectioncontract-validate— gives a pass/fail verdict for pre-flight checks
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
04 同仓库更多 Skills
host-hardening
Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.
exposure-analysis
Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.
host-hardening
Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.
exposure-analysis
Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.
fixture-skill
Exercise rule delivery.
pi-local
Pi-local duplicate-precedence fixture.