Pack manifest reference Stable
The tenkacloud-pack.json manifest is the only entrypoint of a problem pack. The
fields below are normative reference generated from the PackManifestSchema
zod schema in @tenkacloud/problem-sdk. The schema is .strict(), so any unknown
top-level field is rejected.
Fields
| Field | Type | Presence | Constraint |
|---|---|---|---|
schemaVersion | 1 (literal) | Required | Must equal the current pack schema version (1). |
id | string | Required | Reverse-DNS style, lowercase, two or more dot-separated segments. |
version | string | Required | Exact SemVer (major.minor.patch with optional pre-release / build). |
core | string | Required | SemVer range the pack requires of the platform core. |
title | string | Required | Non-empty display title. |
description | string | Required | Non-empty pack description. |
license | string | Required | Non-empty license identifier. |
problemsRoot | string | Required | Relative path without '..' traversal; not an absolute root. |
requiredRuntimes | ProviderEngine[] | Required | Each entry is { provider, engine }; provider ∈ { aws, gcp, azure, sakura }. |
dependencies | Dependency[] | Optional | Optional. Each { id (reverse-DNS), range (SemVer range) }; ids must be unique. |
The manifest is intentionally inert: v1 carries no author credentials, remote URLs, scripts, or executable hooks. See the security and provenance model.
Example
The example below is illustrative, not normative — the field rules above are the source of truth.
{
"schemaVersion": 1,
"id": "com.example.starter",
"version": "1.0.0",
"core": ">=1.0.0",
"title": "Starter pack",
"description": "A minimal validator-passing pack.",
"license": "Apache-2.0",
"problemsRoot": "problems",
"requiredRuntimes": [{ "provider": "aws", "engine": "cloudformation" }]
}
Related: problem metadata reference and the CLI reference.