Skip to content

The spec coins terms it doesn't earn, and has no test for which ones to keep #87

Description

@dhh1128

This is a MINOR finding by the scale in CONTRIBUTING.md, against the ratified 4.2 bytes at sha256 68cc5c9b7164b33dffcf7b705a0d1301fe108c647d35638fec61d52d29b2775a. I read every span cited below in place rather than working from notes. I looked at two sections, section 5's definitions and sections 8.2 and 8.3, so what follows is a sample rather than an inventory.

The claim is that Custos coins words which carry a serious tone without carrying a distinction, repeats them, and has no test that would have caught any of them. That matters more than tidiness. A reader who can't tell a load-bearing term from a decorative one can't tell which parts of the document are rigorous, and this spec is going somewhere it will be read and argued over by people with no way to make that call.

Start with "species". It appears at L1552 and three times inside the ratified block at L1558-1567. It does the work of "kind". The one thing it has to preserve is that these are not a fifth finding value, which L1563 states directly and L1876-1881 guards. "Kinds of pending" carries that just as well, and arguably better, since it says what they're kinds of.

"Typed", as a modifier on "requirement set", is worse, because it's applied inconsistently. L1647 makes the four fields a SHALL, so no untyped variety exists anywhere in the document and the adjective separates nothing. But the document says "typed requirement set" at L1434, L1524, L1647 and L3022, and bare "requirement set" at L1667, L1668, L1968 and L2411. The SHALL at L1647 says typed. The transition table twenty lines later says bare. Same object, two names, one section, which invites a reader to think the bare ones are something else. Anyone repairing this should know that "typed" has a second job as a verb, meaning that a thing's type is determined by something: "the bundle is typed by the law head" at L1619, and the same use at L599, L782, L1421 and L1583. That use is a real claim and has to survive. A blanket replacement would break it.

"Appraisal" is the most interesting of the three, because it's defined and still doesn't earn its place. L1162-1177 defines it inside the "Evaluator; constructor" entry: "'Appraisal' names the activity and the layer, the fold-plane act of computing findings from committed evidence." Section 1.3 makes "evaluate" one of the two verbs the whole model rests on, so "evaluator" and "evaluation" are ordinary English built off that verb and need no coining at all. I checked three things that might justify breaking the chain anyway, and none of them held. There's no name collision, because the "evaluation seal" at L1252 is the deferred fourth seal kind, is described as a committed verdict rather than an act, and its own entry says no construct in the document uses it. The claim that appraisal names a layer is empty, since the layer it points at is the fold plane, which is already called the fold plane. And the one real distinction available isn't held anywhere: if "appraisal" meant the domain's judging office while an evaluation is a single instance, the pair would earn its keep, but "appraisal position" at L1150 and L1614 is the coordinate of one act. The word gets used at both grains, so on either reading some use of it is wrong.

Two things pass, and they're worth stating because the point isn't that jargon is bad.

"Expired/abandoned" at L1558-1567 is one of exactly four enumerated values, defined where it's named, and L1585 requires a pending finding to carry one per requirement element. An implementation has to emit that exact string. It can't be paraphrased and shouldn't be.

The pair "requirement space" and "requirement set" is a real distinction the document holds consistently. I read all thirteen sites. Space always means the full set of checks the law commits for a question, fixed before anyone appraises anything, at L1409, L1620, L1741, L1749 and L1757. L1749 is the clearest: "everything that could defeat a question is in that question's committed requirement space before appraisal begins." Set always means the outstanding items a pending judgment is carrying, at L1434, L1522, L1647, L1667, L1668, L1966, L2409 and L3022. Fixed universe against what's still owed. Issue #82's first rule turns on exactly that difference, since a law change makes the space unreachable rather than making the set longer. So the distinction stays. Only the name is doing unnecessary work, and "committed" already marks it in four of the five space sites. "The committed requirements" and "the unsatisfied requirements" would carry it in ordinary words. I'd use "unsatisfied" rather than "outstanding" because outstanding suggests a debt still collectible, which is wrong for the case where the cure path has closed, and because unsatisfied is already the document's own word for this at L1894, L1966 and L2410.

One thing I found while doing this isn't a vocabulary problem and shouldn't be graded as one. "Discharge" carries two nearly opposite senses three lines apart in section 8.2. Almost everywhere it means a requirement being satisfied: L177, L1656, L1667, L1668, L1741. At L1562 and L1565 it means machinery letting go of something it was holding, as in "an operational processor has discharged its retained work" and "the committed ground for the discharge", where the ground is an eviction. Fulfilled against abandoned, same word. I'd file that separately as MAJOR, since it's a contradiction rather than a matter of taste, and the repair doesn't need a new word: L1586-1590 already says "silent disposal" and "the drop" a few lines further down. There's also "ground-evaporation", named as load-bearing at L1701 and defined nowhere in the document. It occurs twice, and the second occurrence at L3590 is a changelog entry recording that the distinction was made. That one probably wants defining rather than cutting.

The repair I'm proposing isn't a list of replacements. It's a test, so that the next five terms get decided by something other than taste and so a reviewer has something to check.

A term should survive if an implementation has to emit it, meaning it's an enumerated value visible in a payload the conformance predicate compares. Or if it names a distinction ordinary language can't make and the document holds that distinction at every site, both halves being required, since a distinction the document itself blurs isn't one. Or if it comes from a standard the document cites, where renaming would break alignment, which covers KEL, TEL, SAID, ACDC and threshold operator.

A term should go if it carries tone with no distinction behind it, or if it's a modifier with no counterpart anywhere in the document, or if it breaks a derivation the document itself sets up, which is what "appraisal" does against "evaluate". A term that's named as load-bearing and never defined fails too, but toward defining it.

The part that makes this a filter rather than one more source of drift is procedural: every proposed retirement has to cite which test it failed and at how many sites. Not that it reads better. That citation is the thing missing from whatever process produced the current text, and without it a de-jargoning pass is just a different taste applied with the same confidence.

There's a natural home for this. Section 1.7 is called "The comprehension gate" and opens by saying it's normative for the document itself, so a self-applied gate already exists. It tests two closures, primitive and law, and never tests whether a person can read the result. Issue #75 already dockets that gate as unrun for eleven constructs. This test fits there as a third closure, which makes legibility an obligation the authority has already acknowledged instead of a new program that needs approving.

On the grade. MINOR is right by the scale as written, since CONTRIBUTING.md defines MINOR as "vocabulary, teaching, polish". I think the scale is part of what's being reported. A standard whose contribution rules class vocabulary as inherently minor will keep accumulating vocabulary problems, because no finding about wording can ever be urgent enough to rule on. The evidence that this happened is that no coinage has been reviewed across four editions, and the document now contains a contradiction in its own vocabulary that no filed finding names. I'm filing at MINOR rather than inflating it, and separately proposing the scale gain a category for legibility defects that aren't polish.

Two limits worth knowing. Fifteen sections are unaudited. And I originally flagged "ground-evaporation", "requirement space" and "at birth" by scanning section 5's bolded entries, which is a method that produced one outright error: I concluded "appraisal" was undefined that way, when it's defined inside another term's entry. "Requirement space" and "ground-evaporation" have since been checked properly by reading every site. "At birth" turned out to be glossed where it's used, at L1675, so I've dropped it. Anything else found by scanning headings should be re-checked before it's acted on.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions