49 lines
1.0 KiB
Markdown
49 lines
1.0 KiB
Markdown
# Packaging Contracts
|
|
|
|
`cross_packager.py` is not just an export helper. It defines and validates platform contracts.
|
|
|
|
## Current Targets
|
|
|
|
- `openai`
|
|
- `claude`
|
|
- `generic`
|
|
|
|
## 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.md`
|
|
- `agents/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?"
|