Drift risk.
Contracts and edge cases
Platform spec article
Contracts and edge cases
Spec standingStandard
-
Hub authority
Context
Decision
Hub owns MUST/SHOULD.
Consequences
Articles defer.
Verification anchors
trudoc.
-
Shared pipeline
Context
CLI/LSP divergence.
Decision
Use beskid_analysis aligned with LSP.
Consequences
Parity.
Verification anchors
pipeline tests.
- Contracts and edge cases Strict guarantees and failure modes for build, analyze, and run CLI behavior.
- Design model Conceptual model for `Build, analyze, and run contract` and its subsystem boundaries.
- Examples Concrete CLI invocations for build, analyze, and run workflows.
- FAQ and troubleshooting Common questions and fixes for build, analyze, and run CLI behavior.
- Flow and algorithm Lifecycle and execution flow for `Build, analyze, and run contract`.
- Verification and traceability Tests and traceability for the build, analyze, and run CLI contract.
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).
Normative contracts
Section titled “Normative contracts”- Single analysis entry — Project-scoped commands must not fork ad-hoc parsers that skip
CompilationContextwhen aProject.projis in scope. - Corelib always on — Host projects must resolve implicit
Std/ corelib; manifests must not opt out (noCorelib,useCorelib: falseare parse errors inbeskid_analysisprojects/parser.rs). - Exit codes — Semantic errors on
analyzemust yield non-zero process exit;build/runmust propagate linker/JIT failures without masking as warnings. - Pipeline truthfulness — Reported phase IDs must correspond to real
beskid_pipelinestages; silent no-ops are forbidden for declared progress events. - Mod parity — Capability denial and generator round exhaustion must match LSP diagnostics (same codes, same severity).
Edge cases
Section titled “Edge cases”| Situation | Expected behavior |
|---|---|
Input is a .bd file outside any project root | File-scoped commands work; project commands error with manifest discovery diagnostics |
Missing Project.lock under strict policy | build/run fail with lock policy message before lowering |
Mod artifact cache miss | build triggers AOT compile or reports cache policy failure; no partial host compile |
| Multiple workspace members | --project / focused member selection must match LSP BESKID_WORKSPACE_MEMBER_FOR_META_DEFAULT semantics when set |
--entrypoint on non-app target | Rejected with stable CLI error (no silent default to main) |
| Corelib root only via env | BESKID_CORELIB_ROOT and install layout fallbacks in resolver.rs apply before graph build |
Foreign libraries and link metadata
Section titled “Foreign libraries and link metadata”FFI link lines come from project.link on host manifests (see Project link libraries). build must pass resolved native libraries to the AOT linker when present; missing symbols fail at link time, not at runtime silently.