You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
A list written inside a rule's bullet is refused.kac validate fails a bullet under a standard's rule heading
that holds a list of its own, and reports it once at the outermost nested list. One bullet is one obligation, so a
point nested inside it is cited by nothing and exported nowhere. Write each point as a bullet of its own with its own
modal. The check id is part-nested, and a type declaring no modals, as a glossary does, may still nest a list.
A modal written outside Rules is reported.binds-only-under-rules runs on standards. kac validate warns
where a bullet in any other section names one of the type's declared keywords, in bold or in plain capitals, and quotes
the bullet back. No citation reaches a rule written there, so the message offers the two fixes: move the bullet under
a Rules heading, or write the keyword in backticks where the bullet only names one. A paragraph is never reported,
nor a bullet inside a block quote. The check id is modal-outside-rules, and the standards/_template.md a corpus
starts from teaches the form.
A runbook whose resolution never says when to stop is reported.outcome-stated runs on runbooks. kac validate fails a Resolution section with no line opening Confirmed when, so a reader whose steps worked learns
when the incident is over. The check asks only that the line is present. Prose wraps at 120 columns, so a rule
testing the last line would fail a closing sentence running over two. The runbook _template.md states where the
line goes. failure-route-stated serves the other reader, whose step did not work.
A runbook nobody has walked in 92 days is reported.staleness-loud runs on runbooks. kac validate warns on last-rehearsed: "never", and on a date more than 92 days past, whichever rehearsal-frequency the record states.
That floor is where this rule parts from staleness on processes, which measures quarterly and annual alone.
A walk is a drill, or a read-through where the fault cannot be caused. The new rehearsal-method field records
which, as live or tabletop, and is required once last-rehearsed states a day.
A glossary definition that repeats its own term is reported.definitions-do-not-repeat-the-term runs on glossary. kac validate warns where the first sentence of an entry's definition names the term its heading
states, and quotes the sentence back. Code spans and link targets are dropped first, so an entry defining Export
as what kac export writes is passed over. A later sentence may use the term, because by then the reader has the
meaning. The check id is definition-circular, and ISO/IEC Directives, Part 2, clause 16.5.6 is the source.
A requirement written into a glossary entry is reported.entries-state-no-requirement runs on glossary. kac validate warns on a bold RFC 2119 keyword anywhere inside an entry, and names the term carrying it. Bold is
what binds under BCP 14, so a keyword written in plain capitals is a term being named and is passed over. The
obligation belongs in a standard, which the message says. The check id is entry-requirement, and the glossary
type page states which of Part 2's rules run and which are the author's.
A service graded above something it depends on is reported.dependency-criticality runs on services. kac validate warns where a record's criticality outranks the criticality of a record its depends-on cites, and
quotes the id and both grades. The comparison rests on ordered: true, a new key on a shared enum in .schema/_enums.yaml saying its values rank, most significant first. examples/library carries one such edge, and
the record already explains it.
Changed
A rule's obligations export one entry per bullet.kac export writes obligations on each line of standards/rules.jsonl as a list, one entry per bullet under the rule's heading. Each entry states level, the bold
modal the bullet binds with, and text, the bullet as Markdown with its wrapped lines joined. A consumer filters on level. The standards export moves to shape version 2, and any type declaring modals can take the part.bullets
line source.
Removed
not-load-bearing is gone from explanations. The rule asked that no decided-tier document cite an explanation
as the authority for a constraint. No field declares ref: explanations, so such a citation is a markdown link, and
a link does not say whether it is background or an authority. explanations.md loses its Declared, not yet
enforced table, which held this rule alone. Every corpus's knowledge-as-code/taxonomy.md gains the principle as
prose, in the decided tier note.