Skip to content

Proposals: a shared vocabulary, and granular @unverified - #162

Open
Kinflou wants to merge 3 commits into
mainfrom
proposals/shared-vocabulary
Open

Kinflou wants to merge 3 commits into
mainfrom
proposals/shared-vocabulary

Conversation

@Kinflou

@Kinflou Kinflou commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Two draft proposals under Proposals → A shared vocabulary:

  • The catalog: one catalog of the names several programs agree on: encodings and handshakes, guarantees, facts with their value domains, conformance features, annotations, settings keys, diagnostic codes, and fuzz, bench and report targets. Sets are queries over it, and core, the runtimes, the generators, the language server, the Observatory, CI and the docs all read it. It covers the entry model, which kinds are worth covering, relations (establishes, keeps, gives up), where the catalog lives (its own repo, core or docs), and how each consumer reads it.
  • Granular @unverified: keeps @unverified = "reason", and adds an optional keyed form. It names each guarantee with its own reason, at the scope that guarantee has, for example bounded_size on a single argument. Core still computes the set and checks the keyed form against it. This revisits only the part of the guarantee-marker decision that it leaves open.

The overview page (index.md) lists the names duplicated today, the rules that hold whatever the details (wire names never change, third parties are first-class, nothing new at run time), and a staged rollout.

mkdocs build --strict passes.

Tracked in ComlineProject/core#219: where the catalog lives is core#220, core consuming it is core#221, granular @unverified is core#222, plus runtime#112, observatory#19 and language-server#102.

A catalog of the names several programs agree on (encodings, guarantees,
facts and their values, conformance features, annotations, diagnostic
codes, CI targets), with sets as queries over it. And an optional keyed
@Unverified that names each guarantee with its own reason, at the scope
the guarantee has, checked against what core computes. Both draft.
The catalog lives in a spec repository with the conformance specs and
vectors, in CUE, with relations as plain references. Granular @Unverified
gets scopes per guarantee, outer-covers-inner with a strict opt-in,
acknowledgement once per package along a chain, pinned to the chain,
acceptance per protocol, failing closed, and the tests that prove the
invariant.
Package-default causes are acknowledged in config.idp next to the
setting, covering only that cause. A loss found by a newer spec asks
again without a false major change. The spec and IR format versions stay
independent, each frozen version recording its spec version, with the spec
append-only. @Unverified for both forms. The repository is named
specification.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant