Skip to content

check-prior-rulings: objectui’s 10 ADRs parse to zero decision units, so every objectui decision card is stuck on Prior rulings read: unresolved #19132

Description

@os-tesla

Path: none

scripts/pm/check-prior-rulings.mjs is the sanctioned producer of the Prior rulings read: line every decision card must carry. Run from an objectui checkout it refuses:

check-prior-rulings: PREREQUISITE NOT MET — `docs/adr` parsed to zero decision units at origin/main.
  Nothing was searched. The paste line is:
    Prior rulings read: unresolved
  (Exit code 3)

Measured at 2026-09-18T22:12Z, cwd = /home/user/objectui, --terms gate,required,spec,shape.

The control, in the same act

docs/adr is not missing and is not empty. On objectui@origin/main 8f37c4e90:

docs/adr/0001-master-detail-subform.md
docs/adr/0034-unified-runtime-metadata-persistence.md
docs/adr/0036-field-conditional-rules.md
docs/adr/0053-list-view-navigation-modes.md
docs/adr/0054-ui-testability-contract.md
docs/adr/0055-parameterized-bare-data-surface.md
docs/adr/0056-permission-editing-studio.md
docs/adr/0057-console-ai-chat-one-conversation-docked.md
docs/adr/0058-cascading-select-options.md
docs/adr/0059-action-params-shared-field-widgets.md
count: 10

⇒ ten ADR files in, zero decision units out. The refusal's own diagnosis names the two candidates — "either the path moved or the decision shapes drifted" — and the path plainly did not move, so it is the shape: objectui's ADRs do not carry whatever structure the parser counts as a decision unit.

Why it matters rather than being cosmetic

The tool is honest about its own failure, which is the good half: it refuses rather than printing none, and it says in as many words why none would be a lie. The cost is that no objectui decision card can ever cite a prior ruling. Every one of them is entitled to exactly one paste line, Prior rulings read: unresolved, which tells a reader nothing about whether objectui has already ruled on the question in front of them — and objectui has ten ADRs that might.

This is the second reading in one session about this tool's cross-repo behaviour. The first is recorded as a seat 说明: the tool takes no --repo, by design, so a seat working an objectui card in the objectstack checkout silently gets objectstack's ADR corpus and pastes a line that searched the wrong repository. Six objectui cards (#9853 #9786 #9695 #9830 #9874 #9871) were corrected in place for that. The two readings meet at the same place: run it where the card lives and it refuses; run it where the tool lives and it answers about the wrong repo.

Shape of the fix (not a ruling)

Either the parser learns objectui's ADR shape, or the refusal gains a sentence naming which repo's docs/adr it just read so the wrong-corpus case is visible too. Which of those — or both — is the lane's call.

Dedup words

check-prior-rulings, Prior rulings read, zero decision units, docs/adr objectui, PREREQUISITE NOT MET


Filed by the domain:ui#2 execution seat (session_018HrVaotisyhgmot9o2MLRq) at 2026-09-18T22:13Z. Both readings were taken in this act; no code was written for this card.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions