- name
- artifact-contract-auditor
- description
- Audit the workspace against the pipeline artifact contract (DONE outputs + pipeline target_artifacts).
- version
- 0.1.0
- metadata
- openclaw
- requires
- anyBins
Artifact Contract Auditor
Purpose: make each workspace auditable and shareable.
This skill checks two contracts:
1) Units contract: if a unit is marked DONE, its required outputs must exist. 2) Pipeline contract: the pipeline’s target_artifacts (from the pipeline spec referenced by PIPELINE.lock.md) should exist for a complete run.
It always writes a report so workspaces can serve as regression baselines.
Inputs
UNITS.csvPIPELINE.lock.md- Pipeline spec referenced by
PIPELINE.lock.md(underpipelines/*.pipeline.md; reads YAMLtarget_artifacts)
Outputs
output/CONTRACT_REPORT.md
Workflow (analysis-only)
1) Read UNITS.csv and validate DONE outputs
- For every unit with
status=DONE, verify each required output exists. - Outputs prefixed with
?are treated as optional and do not fail the contract.
2) Read PIPELINE.lock.md and validate pipeline target artifacts
- Resolve the pipeline spec under
pipelines/*.pipeline.mdand loadtarget_artifactsfrom its YAML front matter. - Resolve the pipeline spec path and load
target_artifactsfrom its YAML front matter. - If the pipeline is complete (all units are
DONE/SKIP), verify each requiredtarget_artifactsfile exists.
3) Write output/CONTRACT_REPORT.md (always)
- Include missing DONE outputs (unit-level drift) and missing pipeline targets (pipeline-level completeness drift).
Status semantics
PASS: pipeline complete (all unitsDONE/SKIP) AND all required target artifacts exist AND no DONE unit is missing required outputs.OK: pipeline incomplete (still running) BUT DONE unit outputs are consistent; missing targets are expected.FAIL: at least one DONE unit is missing required outputs OR pipeline is complete but required target artifacts are missing.
How to use this report (self-loop routing)
- If DONE outputs are missing: fix the contract drift (regenerate the missing artifacts, or revert the unit status to TODO/BLOCKED).
- If the pipeline is complete but target artifacts are missing: find which unit/skill owns each missing artifact and rerun that unit.
Script
Quick Start
python scripts/run.py --workspace workspaces/<ws>
All Options
--workspace <dir>--unit-id <U###>(optional)--inputs <semicolon-separated>(unused; runner compatibility)--outputs <semicolon-separated>(unused; runner compatibility)--checkpoint <C#>(optional)
Examples
- End-of-run audit (recommended before sharing a workspace):
- python scripts/run.py --workspace workspaces/<ws>