1.0 KiB
1.0 KiB
Packaging Contracts
cross_packager.py is not just an export helper. It defines and validates platform contracts.
Current Targets
openaiclaudegeneric
Contract Shape
Each target contract defines:
- required output fields
- required output files
- field mapping from the neutral source metadata
- portable execution metadata
- trust-boundary metadata
- degradation strategy metadata
Failure Handling
When --expectations is provided:
- missing required files cause exit code
2 - missing required fields cause exit code
2 - validation failures are emitted in the JSON report
Source Of Truth
The neutral source remains:
SKILL.mdagents/interface.yaml
Target-specific metadata is generated at packaging time.
Portability Model
The packaging layer now preserves four portable semantics from the neutral source:
- activation
- execution
- trust
- degradation
This means portability is not just "can it export a file?" but also "does the exported target preserve the source package's activation and safety assumptions?"