Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Specification authority and embedded decisions

Platform spec feature

Specification authority and embedded decisions

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki
  1. Language law — User-visible semantics (syntax, types, evaluation, contracts, memory, and cross-cutting language rules) must be defined only under the Language meta domain, except where another domain page explicitly declares a cross-domain exception and links to the owning language-meta chapter.
  2. Implementation law — The Compiler, Execution, Core library, and Tooling domains specify how the reference platform realizes language-meta. They must not redefine semantics already owned by language-meta; they must defer with relatedTopics (for example defers-to, implements) instead of duplicating normative key tables.
  3. Spec leads code — Implementation changes that alter observable language or platform behavior must be preceded or accompanied by normative spec updates. The spec is the authority; tests and crates are verification anchors, not a substitute for missing contract text.
  4. Architecture decision records (ADRs) — Each Standard feature must publish closed choices under adr/ as one file per decision (specLevel: adr, stable adrId). The feature reader exposes an ADRs tab with expandable Context / Decision / Consequences detail. Legacy decisions-record.mdx articles and hub ## Decisions summaries remain valid during migration but new work must use adr/. Cross-cutting inception decisions live under Project inception.
ConcernOwning surfaceRealization surfaces
What programs mean (types, control flow, contracts)language-metacompiler phases, execution runtime
Author-facing manifests and CLItooling (authoring)compiler resolution (graph, cycles)
Standard library API shapecore-libraryexecution syscalls, compiler lowering
Diagnostics users seelanguage-meta + compiler registrytooling/LSP presentation

When adding a feature, classify the topic before writing: if a reader asking “what does valid Beskid code mean?” would need the answer, it belongs in language-meta first; pipeline, crate, or host details belong in implementation domains with links back.

statusMeaningRequirements
ProposedIncomplete, unstable, or under active designMay omit full verification anchors; must not be cited as enforceable language law in conformance arguments
StandardEnforceable platform contractMust include normative MUST/SHOULD/MAY prose, verification anchors (tests, crates, or explicit registry links), and ## Decisions on the feature hub (or a linked decisions-record article)

Any Standard page that fails content gates (circular “canonical chapter” stubs, placeholder-only article bundles, missing decisions) must be downgraded to Proposed until restored.

Each ADR file at platform-spec/<domain>/<area>/<feature>/adr/<slug>.mdx must use:

FieldRule
specLeveladr
adrIdStable identifier (for example D-INC-0001, D-CORE-CONC-0003)
adrStatusAccepted, Superseded, or Proposed
adrDateISO date when the decision closed (inception ADRs should reflect historical dates)
Body## Context, ## Decision, ## Consequences; ## Verification anchors when testable

Superseded ADRs must set supersedesAdr or link the replacement adrId in Consequences and note the Git revision (not a URL version segment).

A Standard feature hub must include ## Decisions that either lists open items or states no open decisions and links the adr/ set (reader ADRs tab). Hub bullets must not duplicate full ADR prose—summarize and link by adrId.

No open decisions. Closed maintenance ADRs under adr/D-COMM-AUTH-0001 through D-COMM-AUTH-0005 (reader ADRs tab).