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 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.