Sibling articles under this feature previously restated requirements in inconsistent forms.
Project manifest contract - Design model
Platform spec article
Project manifest contract - Design model
Spec standingStandard
-
This feature hub owns normative MUST/SHOULD contract text for Project manifest contract.
Context
Decision
This feature hub owns normative MUST/SHOULD contract text. Sibling articles must not redefine hub requirements and should link here for authority.
Consequences
Contract changes start on the hub or in linked ADRs, then propagate to articles and implementation anchors.
Verification anchors
site/website/src/content/docs/platform-spec/compiler/resolution-and-projects/project-manifest-contract/index.mdxarticle bundle under the same feature directory.
-
Platform-spec text supersedes informal crate comments for Project manifest contract.
Context
Implementation crates accumulated informal notes that diverged from published contracts.
Decision
Normative platform-spec prose and ADRs under this feature supersede informal comments in implementation crates until explicitly migrated into spec text.
Consequences
Engineers file spec/ADR updates when behavior changes; crate comments are non-authoritative for conformance arguments.
Verification anchors
compiler/crates/beskid_analysis/src/projects/manifest_resolve.rscompiler/crates/beskid_analysis/src/projects/graph/compiler/crates/beskid_cli/src/commands/
-
Manifest key tables were duplicated between tooling and compiler specs.
Context
Manifest key tables were duplicated between tooling and compiler specs.
Decision
Author-facing
Project.projkey tables live only under tooling; this compiler feature documents resolution graph behavior and defers schema prose viarelatedTopics.Consequences
Compiler changes manifest parsing only when graph or diagnostic bands change; tooling spec leads schema edits.
Verification anchors
compiler/crates/beskid_analysis/src/projects/manifest_resolve.rstooling project-manifest-contract hub.
- Project manifest contract - Contracts and edge cases Compiler resolution guarantees, graph cycles, and manifest-band diagnostics.
- Project manifest contract - Design model Resolution graph entities for Project.proj ingestion (manifest key prose defers to tooling).
- Project manifest contract - Examples Gives concrete newcomer-friendly scenarios mapped to real compiler paths.
- Project manifest contract - FAQ and troubleshooting Answers common operator and contributor questions with practical next checks.
- Project manifest contract - Flow and algorithm Compiler order of operations for manifest parse, graph insertion, and Mod materialization.
- Project manifest contract - Verification and traceability Shows how the team proves this feature works and where evidence lives.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Resolution model (compiler)
Section titled “Resolution model (compiler)”After structural parse (owned by tooling schema), the compiler materializes:
| Entity | Role |
|---|---|
ProjectManifest | Typed view of one Project.proj node |
| Workspace/project graph node | Member in the resolved DAG with dependency edges |
Mod package node | Compiler-mod carrier; validated for topology, not re-documented key-by-key here |
Template package node | Template 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.
Schema authority
Section titled “Schema authority”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).
Code anchors
Section titled “Code anchors”compiler/crates/beskid_analysis/src/projects/manifest_resolve.rscompiler/crates/beskid_analysis/src/projects/graph/compiler/crates/beskid_analysis/src/services.rs— session orchestration after graph is known