Skip to main content

SoyaPack v0 manifest

soyapack.yaml is the single source of truth for a SoyaOS bundle. v0 freezes the small set of fields below; future versions add fields, never remove them.

Top-level fields

FieldTypeRequiredDescription
apiVersionstringyesMust be soyaos.ai/v0.
kindenumyesOne of Agent, Tool, Skill, Model.
namestringyesDNS-label-safe; unique within an owner.
versionstringyesSemVer 2.0.0 (pre-release allowed, e.g. 0.1.0-alpha.0).
virtual_model_idstringfor Agent kindThe soya:* id this Agent claims (e.g. soya:compo).
descriptionstringyesOne-sentence summary.
ownerstringyesGitHub handle or org.
licensestringyesSPDX identifier (MIT, Apache-2.0, …).
capabilitiesobjectyesCapability allowlist — egress hosts, filesystem paths, determinism tier. See below.
inputsobjectyesJSON Schema fragment describing the input contract.
outputsobjectyesMap of artifact name → schema id (e.g. guide.v1).
promptsobjectfor Agent kindMap of stage name → relative path to a prompt file.
toolsobjectoptionalMap of tool name → declaration (built-in or external).
templatesobjectoptionalMap of template name → html/template file path. Used by artifact renderers.
examplesobjectoptionalMap of example name → fixture file. Picked up by soyaos pack lint.

capabilities

capabilities:
egress:
- host: api.openai.com
port: 443
protocol: https
fs:
read:
- /workdir
write:
- /workdir/out
determinism_tier: read-only # one of: read-only | side-effect | unrestricted
  • egress: explicit allowlist. There is no implicit 0.0.0.0/0.
  • fs.read / fs.write: absolute paths inside the Comet sandbox.
  • determinism_tier: declares how reproducible this Agent's runs are. Comet uses it to decide cache eligibility.

Validation

soyaos pack validate .

The validator is the same code Comet runs at admission time. CI for soyaos/skills calls it on every PR.