meta.book
21 anchors
| Anchor | Implementation | Tests |
|---|---|---|
| meta.book (21) | 10 Implemented18 TODO | 12 Implemented18 TODO |
anchor_moves | ImplementedTODO | ImplementedTODO |
Moving a rule within its chapter preserves its identity. Changing its local name or moving it into a different chapter namespace renames the rule and requires updating specification, implementation, and test references. Published links to the old location retain a redirect or context alias. A compatibility link does not create a second canonical definition or satisfy a stale code reference. | ||
authority | ImplementedTODO | ImplementedTODO |
The mdBook Design chapter tree is the canonical specification. Markdown and
| ||
browser_delivery | TODO | ImplementedTODO |
Book generation, standalone export, and local serving use the same resolved model and renderer to implement these browsing rules. Invalid models produce diagnostics instead of a partially valid explorer. A generated book or standalone HTML artifact includes the data and assets needed for navigation, search, entity links, and Rust source display without a Sage server. Each view identifies itself as a snapshot. Model or Rust edits become visible when that snapshot is rebuilt, exported again, or regenerated by restarting the server. | ||
browser_dependencies | TODO | TODO |
Method views render each declared envelope clause with its effect kind and target: invocations, input reads, context creation, and transitive prohibitions. They expose possible direct callees, reverse callers, and overriding implementations, using the validator’s conservative dispatch resolution. Inherited prohibitions retain their declaring method. Linked targets lead to the corresponding entities. These views label declared permissions and prohibitions as such; they do not imply that a permitted call happened or that runtime conformance has been established. | ||
browser_rust_source | TODO | TODO |
Readers can reveal or hide a Rust source pane without leaving the selected Sage entity. The pane follows selection and uses indexed Rust correspondences, showing the file, line numbers, and highlighted declaration with surrounding source. Multiple mapped sites are individually selectable. Missing source is reported explicitly. Module markers, macro-input sites, and cfg conditions remain distinguishable from a confirmed active executable implementation. The pane identifies its contents as a source snapshot; navigating to code does not establish that the code executed or satisfied a specification rule. | ||
browser_search | TODO | TODO |
Search finds declared entities by name, qualified model path, descriptive prose, and corresponding Rust paths when available. Crate and entity-kind filters combine with the search text. Results identify each entity’s kind and owner and link directly to it, including named members. The view states when no entities match. Changing search or filters does not invalidate an entity’s direct link or prevent opening a linked entity outside the current results. | ||
browser_serve | TODO | TODO |
The For example, | ||
browser_structure | TODO | TODO |
Readers can navigate from crates to modules, declarations, and their members, with the owning crate, module, and declaration visible at each level. Crate views show purpose and dependencies. Declaration views show kind, descriptive prose, generic parameters, and the modeled structure: struct fields, enum variants and their fields, or the description of an opaque type. Class and context views show fields, base classes, and methods, distinguishing declared, inherited, abstract, and overriding methods. Method views show query/function kind, signature, and prose. References to modeled types, bases, and methods link to their declarations. | ||
chapter_names | ImplementedTODO | ImplementedTODO |
An anchor’s full name combines its chapter namespace with the local name
written at its definition. The namespace is derived from the chapter source
path relative to Design, removing the extension and joining path components
with dots. For example, local The intended Markdown source spelling is local:
Rust references use the resolved full name, such as
| ||
crate_ownership | Implemented | Implemented |
Every | ||
crates_landing | Implemented | Implemented |
The Crates landing page preserves handwritten Markdown from
| ||
entity_links | TODO | TODO |
Every declared Sage entity has an unambiguous direct link, including crates,
modules, types, classes, contexts, methods/queries, and named members such as
fields and enum variants. Opening a link selects the declaration or member in
its rendered context without a prior search or browser session. Links resolve
through the entity’s identity and owning scope: equal local names in different
owners remain distinct, and relocating a chapter does not break links to
unchanged model entities. Markdown and Entity links and specification anchors have different purposes. For example,
| ||
index_groups | ImplementedTODO | ImplementedTODO |
The anchor index groups entries hierarchically by their name prefixes, such as
| ||
index_namespace_pages | Implemented | Implemented |
The generated Anchors landing page lists every active rule. Each namespace
prefix has a page with the same table restricted to that prefix. A rule named
| ||
index_rows | ImplementedTODO | ImplementedTODO |
The Design section includes an automatically generated index of every active anchor. Each anchor has a main row containing the final component of its name, with the namespace supplied by the enclosing group or page heading, and separate implementation and test statuses. The name’s tooltip shows its full identity. A disclosure control opens a second row containing its rendered specification text. Hiding the text preserves the main row. The linked name opens that anchor’s own page, independently of expanding or collapsing the text. | ||
index_status | ImplementedTODO | ImplementedTODO |
Implementation and test status are computed independently from their declared
entries: ordinary entries display Implemented, | ||
rfd_changes | TODO | TODO |
An RFD branch contains both the design record and the proposed normative Design changes. The RFD records motivation, alternatives, goals, and a high-level overview of the required changes, with links to the affected Design pages and anchors. Its implementation plan develops that overview into stages. Acceptance merges the record and specification changes together; unfinished implementation or tests remain explicit TODO entries. Subsequent implementation replaces those entries with code and evidence. Completing an RFD does not require copying its rules into Design, because the normative changes were already expressed there. | ||
sage_chapters | TODO | ImplementedTODO |
| ||
self_description | TODO | TODO |
The specification-book system is itself specified by anchors in Design. Its rules participate in the same naming, reference validation, implementation and test coverage, status reporting, index, and anchor-page generation as all other rules. A rule about the validator or renderer receives no exemption from those requirements; unfinished work uses explicit TODO entries. | ||
shared_model | ImplementedTODO | ImplementedTODO |
Book generation and | ||
source_roles | TODO | TODO |
The Design overview contains Meta, Tenets, Anchors, Crates, and RFDs. Meta specifies the specification system itself. Tenets explains design principles without defining specification anchors. Anchors is generated from all active specification rules. Crates combines a handwritten reading map and modeled crate chapters. RFDs record changes and reasoning without defining active rules. The User’s Guide provides non-normative usage instructions. | ||