Version Packages - #73
Open
NSchatz wants to merge 1 commit into
Open
Conversation
NSchatz
added a commit
that referenced
this pull request
Aug 9, 2026
…reach (conformance-refuter pass 2)
`conformance-refuter` pass 2 returned **REFUTED** on `9760562`, cumulative 2. **It refuted no code
again**: it verified the remedy diff was docblock text only, `booleanOf` unwidened base-to-head,
`hasUnreadableBoolean` and `checkUnreadableBooleans` untouched, the complement exact,
`safeToSummarize` monotone toward refusal, the window a superset of the read, and the seventh
mutation consistent with the code. Every finding was a claim defect, and this commit is the
**deletion** the pass prescribed. No `src/` behaviour changes.
## Finding 1, major: the corrected claim was a new claim, and it was also too wide
Pass 1's replacement said the validator "is no substitute, because it draws `TYPE_MISMATCH` on the
lexical `"1"` and on a conformant `<doNotPerform value="true"/>` alike, so it does not separate
readable from unreadable". **The three rows behind that were all XML**, and the conclusion was drawn
unscoped over a channel whose own docblock says "in either wire format". On the **JSON** wire it is
plainly false: `validatePrimitiveValue` shape-checks `typeof value === "boolean"`, so with a schema
supplied a conformant `{"doNotPerform":true}` validates **clean** while `{"doNotPerform":"Y"}` draws
`TYPE_MISMATCH`. The package's own pending `olive-comets-listen` changeset already recorded that, so
two changesets in one release body contradicted each other.
**Deleted, not qualified**, at all six carriers: `README.md`, `CHANGELOG.md` (frozen under ADR 0001
while PR #73 is open), `.changeset/olive-herons-report.md`, the notes, and both docblocks in
`src/safety/status.ts`. The pin's `conformant` row went with it, since it existed only to support the
deleted sentence and the same false error is already pinned with the `Quantity` residuals.
**What survives unscoped is availability, not discrimination**: `MedicationRequest` has no built-in
schema (`BUILTIN_SCHEMAS` is `[Patient]`), so the validator is silent about this element unless a
caller supplies one, and a readout that has to hold on every document cannot rest on a diagnostic
that only exists when a caller opts in. The pin now asserts exactly that and nothing more: silent by
default, available on request.
**This was the second generation of one over-general sentence in one paragraph, one per pass.** The
notes record both refuted versions verbatim beside the survivor, because the trap is that a corrected
claim inherits nothing.
## Finding 2, minor: the public docblock named the wrong read, and it ships in `dist/index.d.ts`
`unreadableBooleans`' docblock (and its README twin) said the window is "wider than `readSafety`'s
own read, which only visits the resource it is handed". `readSafety` does walk the whole tree, and
`arrayWrappedScalars`, named two clauses earlier, is itself computed at every nested resource root.
The subject is the **`doNotPerform` read**, which is what the private docblock already said. Corrected
in both.
## Finding 3, minor: the mirrored correction pointed the wrong way, in the frozen file
`CHANGELOG.md` twice said the channel is added by "the entry below". The `unreadableBooleans` entry is
under `### Added` at the top of `[Unreleased]`; the `#79` entry referencing it is under `### Fixed`
below. Both now say "the entry above". Not present at base.
## Still `PRE-EXISTING`, re-verified by pass 2, and the coordinator owes an item
**`ServiceRequest.doNotPerform` and `CommunicationRequest.doNotPerform` are `?!` boolean modifiers the
safety spine never reads.** Neither type is in `SAFETY_RESOURCE_TYPES` and `readSafety` gates on
`isType("MedicationRequest")`, so a **conformant** `{"resourceType":"ServiceRequest",
"doNotPerform":true}` reads `negations: []`, `safeToSummarize: true`, `assertSafeToSummarize` clean.
Identical at `05ecc5a`, so not a refutation. It is a sharper shape than the item this slice closes:
the document is conformant and the instruction is simply not looked for. Recorded in the notes;
**it is not yet in the backlog**, which is the coordinator's to file. Also still standing: "the six
safety resource types" at `README.md` and six `src/` sites while the set holds seven.
## Re-measured after the remedy
- Suite **65 files / 1,346 tests**, all green. Red-at-base still **18-of-30**, 30-of-30 at head, same
12 both-states pins.
- `verify.sh fhir` green: **11 `==>` headers, 11 `ran:` entries, zero `(FAIL)`**, no
unladdered-script warning.
NSchatz
added a commit
that referenced
this pull request
Aug 9, 2026
…UNGRADED) **This commit is UNGRADED and that is disclosed rather than glossed.** `conformance-refuter` pass 3 returned **NOT REFUTED** on `23cd9fa`, cumulative 3, the ADR 0016 cap. It found **no blocker and no major**, said the slice does not stop for a human, and left two minor findings it graded as non-blocking at the coordinator's discretion. They are applied rather than deferred because one carrier is `CHANGELOG.md`, frozen while PR #73 is open, where an over-wide clause would be permanent under ADR 0001. **Documentation and one test comment only**: `git diff 23cd9fa HEAD -- src/` is docblock text, and the suite is unchanged at 65 files / 1,346 tests. ## Pass 3, finding 1, minor: the availability sentence was wide by one word The surviving reason said the validator "is silent about this element unless a caller supplies one". Its datatype half is true, but with **no** schema at all the validator still speaks at this element through the **shape** channels, on both wires: `{"doNotPerform":["Y"]}` draws `ARRAY_WRAPPED_SCALAR`, a repeated `doNotPerform` draws `DUPLICATE_PROPERTY`, and two FHIR-namespace prefixes spelling the element twice draw `ARRAY_WRAPPED_SCALAR` from XML. Narrowed to **"silent about this element's datatype"** at all six carriers, with the shape channels named beside it. Pass 3 attributed the defect to the slice rather than to the pass-2 remedy (`9760562` already read "says nothing about it"). ## Pass 3, finding 2, minor: a rebuttal in a test comment read as a standalone claim The comment's "with a schema supplied it does NOT fail to separate readable from unreadable either" is sound as a one-counterexample rebuttal of the sentence pass 2 killed, but false as a proposition on the XML wire, which is the wire the file is about. Rewritten to name its wire in both directions. ## Pass 3, finding 3, `PRE-EXISTING` advisory, folded rather than filed twice `readDoNotPerform` is **root-only**, so a `Bundle` whose `entry[0].resource` is a **conformant** `MedicationRequest` with `doNotPerform: true` reads `negations: []` and `safeToSummarize: true`, while the *unreadable* spelling at the same location **is** reported by the new channel. Identical at `05ecc5a`. Pass 3's own disposition is adopted: fold it into the `ServiceRequest` / `CommunicationRequest` item pass 2 raised, since both are the spine's **read scope** and not a report. Recorded in the notes; the backlog item is the coordinator's to file. ## What pass 3 re-derived itself The remedy diff was docblock-only (comment-stripped `status.ts` byte-identical, 340/340 significant lines); the suite 65 files / 1,346 tests green; `check-no-emdash` and `check-no-internal-refs` clean; `BUILTIN_SCHEMAS` is `[Patient]`; pass 2's JSON counterexample reproduced; the corrected window wording true and the public and private docblocks now in agreement; the `CHANGELOG` direction fix correct; and the deleted `conformant` assertion already held, more strongly, by `test/xml-quantity-magnitude.test.ts`. It could not re-derive `verify.sh` or the red-at-base fraction and said so. ## The gate, in full `conformance-refuter` **REFUTED -> REFUTED -> NOT REFUTED**, cumulative 3, on `d96f97d`, `9760562` and `23cd9fa`. **Not one pass refuted the code.** Every finding across all three was a claim defect: pass 1 two majors, pass 2 one major, pass 3 two minors, each one the *reason* reaching past the *measurement*, and each remedy a deletion or a narrowing. The code was upheld on all three passes, which independently verified `booleanOf` unwidened, the complement exact, `safeToSummarize` monotone toward refusal, and the report's window a superset of the read. **ADR 0027 is NOT invoked and is not needed**: the gate converged on its own with a `NOT REFUTED` third pass, so there is no unconverged verdict to dispose of. This commit is the ordinary after-the-cap advisory application, disclosed here, in the PR body and in the repo's notes. `verify.sh fhir` green: 11 `==>` headers, 11 `ran:` entries, zero `(FAIL)`, no unladdered-script warning.
NSchatz
force-pushed
the
changeset-release/main
branch
from
August 10, 2026 03:07
3c5c69a to
bb5a111
Compare
NSchatz
force-pushed
the
changeset-release/main
branch
from
August 10, 2026 14:41
bb5a111 to
2080543
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@cosyte/fhir@0.0.10