Skip to content

[finding] packages/spec/liveness/README.md "Author warnings" still says warnings are opt-in per authorWarn row; since #21092 a dead or live-elsewhere verdict warns on its own #21135

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site. The landing site is a shipped prose page that now states the opposite of what the shipped lint does.

What is wrong

PR #21092 (Fixes #16094, merged as b616c0a63d, @objectstack/lint minor) changed shouldWarn in packages/lint/src/lint-liveness-properties.ts:

  • A ledger row now warns when its status is dead, live-elsewhere or experimental, or when it sets authorWarn: true.
  • A verdict-triggered row shows its authorHint, else the verdict's default hint, and never its note.

packages/spec/liveness/README.md, section "Author warnings — closing the loop (authorWarn)", at origin/main b616c0a63d, still teaches the old model:

Line Text Why it is now false
~553 "warnings are opt-in per entry" dead and live-elsewhere rows warn without opting in.
~557 authorWarn: true warns "(in addition, any experimental entry warns by default …)" The default set is now experimental, dead and live-elsewhere.
~558 authorHint "falls back to note" That holds only for opted-in and experimental rows. A verdict-triggered row falls back to the verdict's default hint.
~561–565 Rule 1: benign display metadata that is dead "must NOT be marked; an author isn't misled by them" Not marking no longer keeps it silent. Grading a benign display key dead now warns every author who sets it.
~572 "coverage grows by marking more entries authorWarn" Coverage now also grows by grading a row dead or live-elsewhere.

Reach: the page ships. @objectstack/spec's package.json files lists liveness. The cost lands on the next ledger edit. A maintainer who follows rule 1 and grades a benign display key dead "unmarked" ships a warning to every author of that key. Under --strict, that warning flips os lint and os validate to exit 1.

The four keys warned today are a view container's own name and label, and a permission set's rowLevelSecurity[].label and rowLevelSecurity[].description. They are the .changeset/16094-liveness-dead-warns.md measurement, and they are exactly this case: benign display keys graded dead, with no authorWarn.

Done when

The section describes the shipped rule:

  • Which statuses warn by default.
  • What authorWarn still adds, which is the only way a planned row warns.
  • Which hint each kind of row shows.
  • That grading a row dead or live-elsewhere is itself an author-facing act.

Rule 1 then becomes guidance about the verdict, not about the marker. pnpm --filter @objectstack/spec test and the liveness gates stay green. This changes no row.

Not in scope: #21127 (a live row with authorWarn throws the integrity sentinel) and #21096 (an opted-in row prints its note). Both are open on their own cards.


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

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:specpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions