Registry taxonomy.
Template packages
Platform spec feature
Template packages
Spec standingStandard
-
Explicit packageKind
Context
Decision
Explicit packageKind on beskid.package.v1.
Consequences
pckg validators.
Verification anchors
Validator tests.
-
Template UI mode
Context
Registry taxonomy.
Decision
Template pages hide API docs.
Consequences
pckg validators.
Verification anchors
Validator tests.
-
No api.json
Context
Registry taxonomy.
Decision
template kind must not require api.json.
Consequences
pckg validators.
Verification anchors
Validator tests.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
What this feature specifies
Template packages — packageKind: template on beskid.package.v1, .bpk validation without api.json, and pckg registry UI that hides API documentation.
Implementation anchors
pckg/src/Server/Services/PackageArtifactValidator.cspckgpackage detail components (template page mode)beskid pckg pack— emitpackageKindand.beskid/template.json
Contract statement
A template package is a published .bpk artifact whose root package.json declares packageKind: template. Template packages distribute .beskid/template.json and scaffold sources. They use the same versioning, yank, checksum, and registry-assigned publish semver as library packages, but different validation and pckg UI.
Inputs and outputs
| Field | Rule |
|---|---|
schema | beskid.package.v1 (unchanged) |
id | Package id; first-party beskid.templates.* |
packageKind | template (required for this profile) |
version | Present in artifact; registry may assign publish version independently |
| Output | Downloaded .bpk → extracted template root for beskid new install |
State model
Template packages must not be required to expose structured API documentation on the registry. The package detail route must use template page mode: readme, template metadata (shortName, tags.type, classifications), install command, and version history—no api.json viewer, no docs tree tabs for API reference.
Algorithms and flow
Pack: beskid pckg pack on a type: Template project must set packageKind: template in generated package.json and include .beskid/template.json plus template sources roots.
Publish: Same POST /api/packages/<id>/publish and workspace publish flows; server selects validator profile by packageKind.
Consume: beskid new install <id> downloads version, verifies kind, registers cache entry.
Edge cases and errors
- Library package accidentally packed without
api.json— existing rule; template profile must not requireapi.json. - Template package missing
.beskid/template.json— reject at publish with HTTP 400. packageKind: librarywith template manifest present — reject or require repack astemplate.
Compatibility and versioning
Identical to library packages: immutable versions, yank semantics, registry-assigned bumps on upload.
Decisions
No open decisions. ADRs D-TOOL-SCAFF-0001 … 0003 (explicit packageKind, template registry UI, no api.json) under adr/; use the ADRs tab.
Verification and traceability
pckg/src/Server/Services/PackageArtifactValidator.cs— template profile branchpckgBlazor package detail routing bypackageKind- Server tests: template
.bpkpublish withoutapi.json