Skip to content

Remove the deprecated check field from check results - #70

Merged
ottonomy merged 1 commit into
nightshift/46-make-check-ids-required-and-rename-suitesummaryfrom
nightshift/47-remove-the-deprecated-check-field-from-check-res
Oct 20, 2026
Merged

ottonomy merged 1 commit into
nightshift/46-make-check-ids-required-and-rename-suitesummaryfrom
nightshift/47-remove-the-deprecated-check-field-from-check-res

Conversation

@ottonomy

Copy link
Copy Markdown
Contributor

Closes #47

Stacked on #69 — review and merge that first (or merge the stack together).

Departures

None. Everything under "What to build" is in the commit: the field is gone from
CheckResult, every writer and reader moved to id, all tests that read
.check or wrote a check key were converted, and the README, the API guide,
the architecture doc and the CHANGELOG were updated.

Decisions not in the issue

  • pickAppliesSkipReason now takes the suite's phase. The summary helper
    used to recognise the synthetic row by comparing check to
    "<suite>.applies". An id embeds the phase, so the comparison cannot be
    made from the suite id alone. I passed the phase that summarizeSuite
    already has into the helper and compared against
    computeId(phase, suiteId, "<suite>.applies"), rather than, say,
    suffix-matching the id. It is exact, and it reuses the one function that
    builds ids.
  • id is written before suite in the JSON examples. The ticket says the
    rows show "id and suite"; putting the identifier first reads better and
    matches the rows the API guide already had.
  • Two test files got a named constant instead of an inline literal. In
    test/openbadges/unknown-achievement-type-check.spec.ts the local check id
    was already a CHECK_ID constant, so I added RESULT_ID derived from it
    rather than repeating the long namespaced string. Everywhere else I inlined
    the id, matching the surrounding style.
  • Formatting. Several converted lines grew past the repository's 80-column
    style, so I wrapped them the way Prettier would. Prettier itself is not one
    of the commands I was allowed to run, so this is by eye; eslint src test
    (which pnpm run test runs first) is clean.
  • Noticed, left alone: docs/api/verification-results.md still says
    "Singular check is used when n === 1" — that is about the English word in
    a rollup message, not the removed field, so I did not touch it. The six
    pre-existing type errors are likewise untouched, as the ticket directs.

Agent-Run: 2ed717c0-eeaa-4367-a5fd-dd0646c4d406

`CheckResult.id` is now the only identifier a result row carries;
`suite` stays, since it is how rows are grouped and cannot be
recovered from a namespaced id.

Everything that built a row — the orchestrator's four construction
sites and the parse-failure result in the verifier — stops writing
`check`. Readers switch to `id`: the recognition-profile extraction
in the verifier, and the summary helper's test for the synthetic
`<suite>.applies` row, which now compares against the computed id
and so takes the suite's phase.

A check's own local id is unchanged. The "Not run: <check> failed"
reason, the detail of a check that threw, and the summary's "not
run" message still quote it.

Tests that read `.check` or built rows with a `check` key now use
`id`, which carries the phase: a suite defined in a test with no
phase yields ids beginning `unknown.`, and the Open Badges checks
named `schema.obv3.*` keep both names when they run in a suite
named `openbadges…`.

Docs: every example result row in the README and the API guides
shows `id` and `suite`; the architecture doc's field list drops
`check`; the CHANGELOG records the removal rather than a
deprecation, and the migration notes point readers at `id`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ottonomy
ottonomy force-pushed the nightshift/47-remove-the-deprecated-check-field-from-check-res branch from bdbfd05 to 7de6bf4 Compare October 20, 2026 19:23
@ottonomy
ottonomy merged commit 546f3f7 into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-authored Opened by an unattended agent — review before trusting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove the deprecated check field from check results

1 participant