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.
What this skill does
# 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: ```bash /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. ```bash /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: 1. **Satisfied by external input** (`--external` list) → ✓ SATISFIED (external) 2. **Satisfied by exact match** (upstream `ensures:` same name) → ✓ SATISFIED 3. **Satisfied by semantic match** (upstream `ensures:` same meaning, different name) → ⚠️ WARN (semantic) 4. **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 ```markdown ## 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: ```bash /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 inspection - **`contract-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
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.