Skip to content

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 11:44
d223538

Added

  • A standard exports its rules, and a corpus adopting standards ships a skill that reads them. The type declares
    parts: over the H3 headings under ## Rules, so kac export writes one line per rule to
    standards/rules.jsonl, carrying the obligations in the markdown the standard wrote them in. Each record travels
    beside them with its Summary and its conformance checklist. kac bundle includes the new standards-lookup skill
    wherever the export carries standards, and trims it where it does not. kac new ships the skill in the plugin tree,
    and kac update sends it to a corpus already created.
  • A field can be held to the citations its prose gathers. A type declares mirrors-citations: <Label> beside the
    field's ref:, and kac validate reports drift in both directions between the field and the labelled lines. A line
    is written in italic with the label bold, and closes the section whose citations it gathers, so a line standing in
    the middle of one is reported where it sits. A standard's implements: declares it: each rule closes on
    _**Covers:** …_ naming the clauses it discharges, so the frontmatter says which obligations the standard answers
    and each rule says which of them it answers. The obligations under a rule then carry no clause citation of their
    own, and kac export drops the footnote before it takes them, so a part carrying nothing else travels with no
    obligations rather than with a coverage line standing where its words belong. kac validate also reports the key
    declared with no ref: to resolve against. kac new ships the form in the standards template.
  • A standard may carry a Sources and further reading section. It names the external documents the standard defers
    to, each marked normative or informative. A rule built on somebody else's conventions then says where the rest of it
    lives. kac new ships the section in the standards template, and a standard deferring to nothing deletes it.

Changed

  • A standard's rules sit under ### headings, and kac validate reports a Rules section with none. The heading
    is what the rules beneath it hold a reader to, and it is the address a citation and an export both carry, so
    part-none now reaches standards as it already reached glossaries. A standard whose rules are a bare bullet list
    gains one heading. kac new ships the grouping in the standards template.
  • A tool's category is the folder it sits in under tools/, as a policy's and a standard's already were. It was
    the one of the three still written by hand, and the only field in the schema carrying no description:. A record
    that writes the key now fails derived-key: delete the line and file the record under the folder you want it to
    name. It is no longer required, so a tool filed directly in tools/ simply has no category, which is what the other
    two do. kac new ships the template without the key.

Fixed

  • kac validate reports a schema declaring of: object with no entry: block, rather than ending in a stack
    trace.
    The schema pass already names that fault as schema-shape. A record filling such a field reached the
    entry check first and took the run down, so the message never printed.
  • Declining kac update --drop-type says update, where it used to say new. The message is the tail of the
    command that printed it, and the one it named was a command the reader had not run.
  • A rule whose expr: names a number too large for a whole number is reported, rather than ending in a stack
    trace.
    words() < 99999999999 reached the parser's integer literal and overflowed past the exception the schema
    load catches. kac validate now names the number, its position and the rule.
  • kac restore refuses a package that unpacks to more than 256MB, or that holds a single entry over 16MB. The
    path each entry names was already held inside the import folder, and what it unpacks to was not, so a malformed
    package was read whole into memory instead. Both caps count the bytes actually read, because a zip entry's
    declared size is the package's own claim about itself.
  • A part id written against a link takes no delimiter that closes an emphasis. _[pol-SCRT].EMBED_ read the
    citation as pol-SCRT.EMBED_, because the id was measured off the source rather than off the text markdown makes
    of it. part-ref reported a clause nobody could write.