Registry taxonomy.
Design model
Platform spec article
Design model
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).
Purpose and scope
Section titled “Purpose and scope”Normative beskid.package.v1 extensions and artifact layout for template packages.
package.json fields
Section titled “package.json fields”| Key | Required | Meaning |
|---|---|---|
schema | yes | beskid.package.v1 |
id | yes | Registry package name |
version | yes | Artifact version string |
packageKind | yes for template profile | template |
template | recommended | Summary: shortName, identity, tags.type copied from .beskid/template.json at pack time |
documentation | — | Must not include apiJson pointer for packageKind: template |
Default packageKind when omitted remains library for backward compatibility.
Reserved kinds
Section titled “Reserved kinds”packageKind | Status |
|---|---|
library | Current default; requires api.json when server policy RequireStructuredApiDoc is true |
template | This feature |
tool | Reserved; normative contract deferred to Package kinds |
.bpk required entries (template profile)
Section titled “.bpk required entries (template profile)”| Entry | Required |
|---|---|
package.json with packageKind: template | yes |
Project.proj | yes (authoring manifest; may be type: Template) |
checksums.sha256 | yes |
.beskid/template.json | yes |
src/** or template content roots | yes — at least one scaffold file |
.beskid/docs/api.json | no |
pckg package page (template mode)
Section titled “pckg package page (template mode)”When packageKind === template, the server and dashboard must:
- Hide API documentation tabs, symbol browser, and
api.jsondownload. - Show template metadata card:
shortName,tags.type,classifications,description. - Show install snippet:
beskid new install <id>andbeskid new <shortName>. - Show readme / root markdown when present.
- Show version list with yank badges (same as libraries).
Category field on PackageEntity may mirror tags.type for filtering (Template, Console, etc.) but packageKind is authoritative for routing.
Workspace publish
Section titled “Workspace publish”Workspace bundles may include template member packages. Each member .bpk must declare its own packageKind. Mixed workspaces (libraries + templates) are allowed.
Diagram
Section titled “Diagram”flowchart LR PACK[beskid pckg pack] BPK[.bpk artifact] VAL[PackageArtifactValidator] REG[pckg registry] UI[Template package page] NEW[beskid new install] PACK --> BPK --> VAL --> REG --> UI REG --> NEWCode anchors
Section titled “Code anchors”pckg/src/Server/Services/PackageArtifactValidator.cspckg/src/Server/Components/Pages/package detail viewscompiler/crates/beskid_pckgpack command (plannedpackageKindemission)