Sibling articles under this feature previously restated requirements in inconsistent forms.
Workspace and lock contracts
Platform spec feature
Workspace and lock contracts
Spec standingStandard
-
This feature hub owns normative MUST/SHOULD contract text for Workspace and lock contracts.
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/workspace-and-lock-contracts/index.mdxarticle bundle under the same feature directory.
-
Platform-spec text supersedes informal crate comments for Workspace and lock contracts.
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/resolve/mod.rscompiler/crates/beskid_cli/src/commands/compiler/crates/beskid_tests/src/projects/corelib/compile.rs
-
Floating registry versions broke reproducible compiles.
Context
Floating registry versions broke reproducible compiles.
Decision
Workspace resolution must honor lockfile pins from
beskid_analysis::resolvebefore applying CLI overrides.Consequences
Lock update commands are explicit; silent refresh is forbidden in CI modes.
Verification anchors
compiler/crates/beskid_analysis/src/resolve/mod.rscompiler/crates/beskid_cli/src/commands/.
- Workspace and lock contracts - Contracts and edge cases Compiler guarantees for lock-backed graphs and workspace layout invariants.
- Workspace and lock contracts - Design model Compiler entities for workspace roots and lock materialization (workspace key prose defers to tooling).
- Workspace and lock contracts - Examples Gives concrete newcomer-friendly scenarios mapped to real compiler paths.
- Workspace and lock contracts - FAQ and troubleshooting Answers common operator and contributor questions with practical next checks.
- Workspace and lock contracts - Flow and algorithm Compiler order of operations for workspace discovery, lock apply, and graph materialization.
- Workspace and lock contracts - 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).
Tooling owns Workspace.proj / lockfile schema, update commands, and author-facing reserved-key tables. This feature owns how the compiler materializes the dependency graph from locks, rejects inconsistent workspace layouts, and diagnoses resolution failures during analysis and CI builds.
Implementation anchors
compiler/crates/beskid_analysis/src/resolve/mod.rs— project and dependency resolutioncompiler/crates/beskid_cli/src/commands/— lock policy flags and update entrypointscompiler/crates/beskid_tests/src/projects/corelib/compile.rsandlayout.rs— lock-sensitive workspace fixturescompiler/crates/beskid_tests/src/analysis/pipeline/core.rs— workspace pipeline tests
Decisions
Section titled “Decisions”No open decisions. Closed choices are normative ADRs under adr/ (D-COMP-PROJ-0010 … D-COMP-PROJ-0012); use the reader ADRs tab for expandable detail.
Articles
Section titled “Articles”- Design model — materialized graph and lock roots (no duplicate workspace key tables)
- Flow and algorithm — resolve and lock application order
- Contracts and edge cases — graph/lock diagnostic contracts
- Examples
- Verification and traceability
- FAQ and troubleshooting