Skip to content

v0.32.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 12:08
36713d4

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.