Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Project manifest contract - Design model

Platform spec article

Project manifest contract - Design model

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

After structural parse (owned by tooling schema), the compiler materializes:

EntityRole
ProjectManifestTyped view of one Project.proj node
Workspace/project graph nodeMember in the resolved DAG with dependency edges
Mod package nodeCompiler-mod carrier; validated for topology, not re-documented key-by-key here
Template package nodeTemplate authoring root; excluded from host compile plans until scaffold output exists

Graph validation runs after parse: invalid Mod dependency cycles, incompatible capability requirements, and missing materialized roots must emit stable diagnostics in the mod/manifest band (E1801–E1899); see Diagnostic code registry.

All normative project, project.mod, project.template, type (Host, Mod, Template), readme, and project.link key definitions live in tooling / design model. This article intentionally omits duplicate key tables.

Template nodes must not be selected for beskid build / run on the authoring tree; the template engine consumes .beskid/template.json instead. Scaffold instantiation diagnostics use E1901–E1999 (see Project templates).

  • compiler/crates/beskid_analysis/src/projects/manifest_resolve.rs
  • compiler/crates/beskid_analysis/src/projects/graph/
  • compiler/crates/beskid_analysis/src/services.rs — session orchestration after graph is known