Skip to content

spec: status lines for every section that landed ahead of its implementation (#539) - #541

Merged
gafferongames merged 1 commit into
mainfrom
spec-status-539
Sep 4, 2026
Merged

spec: status lines for every section that landed ahead of its implementation (#539)#541
gafferongames merged 1 commit into
mainfrom
spec-status-539

Conversation

@gafferongames

@gafferongames gafferongames commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Closes #539. Docs only: docs/SPEC.md and docs/SPEC-TABLES.md. No rule
changes and no code.

Several specification sections state present-tense behavior the tree does not
carry. Each now says so in the house form §3.3, §6.6 and §2.9 already use: the
behavior is specified ahead of its implementation, what the tree does today,
and the issue that owes it. Every line is deleted by the implementation PR
that lands the behavior.

Each present-state sentence below was confirmed against the tree, with a probe
unit through schema check where the claim is a refusal.

site what the tree does today owed
SPEC.md §3.1 the scanner lexes /// as an ordinary // line comment and discards it, no Doc field exists in internal/ast or ir, and none of §4.1's misplacement refusals fires: a /// above package and a /// trailing a field both compile #523 ruling 4
SPEC.md §4.2 internal/check gathers tags on *ast.TypeDecl alone. A field's pipe draws "unknown attribute", a table and a union declaration draw "takes no qualification", a const draws its own, a union arm's pipe draws "expected a field type", and a qualified enum or flags variant does not parse #523 ruling 4
SPEC-TABLES.md §8.1 no target emits doc, num_tags or tags on TableFieldInfo or TableTypeInfo, and nothing upstream exists to fill one #523 ruling 4
§6.5, §7, §19.2 TableRefuseReason is spelled in no target, no runtime and no tool. Open is const Scene * SceneOpen( const void * bytes, uint64_t length ), BlockOpen returns a bare bool, a measure answers a bare -1, and the name is not claimed, so a unit may declare it #523
§4 no report struct carries a widened member. Any kind difference is one kind_mismatch and the payload is skipped, so the counters a caller sees are unknown, kind_mismatch, clamped, duplicate and malformed #523
§2.4, §11 schema check accepts [E.Max]T in a table body with no diagnostic and exit 0 #540

docs/VERSIONING.md needs nothing from this branch: #536 landed the
[E.Max]T entry in its "Owed before 3.0.0" list, keyed to #540, and the
///-and-tags entry beside it. Rebased onto that, so the one owed entry per
site is main's.

go test ./compiler/ -run Doc passes, which is the gate that parses the
pages' own schema blocks.

🤖 Generated with Claude Code

…ntation (#539)

Several specification sections state present-tense behavior the tree does not
carry. Each now says so in the house form §3.3, §6.6 and §2.9 already use: the
behavior is specified ahead of its implementation, what the tree does today,
and the issue that owes it. Every line is deleted by the implementation PR
that lands the behavior. No rule changes.

- SPEC.md §3.1: the compiler reads no comment kind. A `///` line lexes as an
  ordinary `//` comment and is discarded, no doc text reaches the IR or a
  descriptor column, and none of §4.1's misplacement refusals fires. #523
  ruling 4.
- SPEC.md §4.2: a tag compiles on a `type` declaration alone. Every other line
  kind refuses one under a diagnostic written for a different rule. #523
  ruling 4.
- SPEC-TABLES.md §8.1: no target emits `doc`, `num_tags` or `tags` on
  `TableFieldInfo` or `TableTypeInfo`. #523 ruling 4.
- SPEC-TABLES.md §6.5, §7 and §19.2: `TableRefuseReason` is spelled nowhere,
  `Open` and `BlockOpen` take no reason out-parameter, a measure answers a
  bare `-1`, and the name is not claimed. #523.
- SPEC-TABLES.md §4: no report struct carries `widened`, and every pair the
  ladders accept is a `kind_mismatch` today. #523.
- SPEC-TABLES.md §2.4 and §11: `schema check` accepts `[E.Max]T` in a table
  body with no diagnostic and exit 0. #540, which VERSIONING.md's "Owed
  before 3.0.0" list already carries after #536.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@gafferongames
gafferongames merged commit 004fc0a into main Sep 4, 2026
20 checks passed
@gafferongames
gafferongames deleted the spec-status-539 branch September 4, 2026 17:27
gafferongames added a commit that referenced this pull request Sep 4, 2026
The unit registry's entry point is specified and emitted by no backend; the
section carried no status line and survived the #541 sweep. It now says so in
the house form, owed under #523 item 4 with the descriptor columns.

Co-authored-by: Rowan Claude <rowan@mas-bandwidth.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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.

spec: every section that landed ahead of its implementation says so in a status line

1 participant