diff --git a/.changeset/27569-liveness-lint-elsewhere-example.md b/.changeset/27569-liveness-lint-elsewhere-example.md new file mode 100644 index 00000000000..f0eb09f9ef4 --- /dev/null +++ b/.changeset/27569-liveness-lint-elsewhere-example.md @@ -0,0 +1,10 @@ +--- +'@objectstack/lint': patch +--- + +docs(lint): the liveness lint's `live-elsewhere` worked example no longer names `manifest.runtime`, a `live` row since the boot-time loader began dispatching on the plugin tier + +Clause-②: no +Metadata-protocol: none + +`lintLivenessProperties` used `manifest.runtime` as its worked example of a `live-elsewhere` row in its doc comment and in the `live-elsewhere` verdict's default hint. That row reads `live` now, so the example taught the opposite of the ledger. Both places describe the verdict generically instead (a key with zero local dispatch whose only enforcer is a gate in another repository, a marketplace publish gate for instance, named by the ledger row's `evidence`), since no shipped row holds the verdict today. The rule, its id and the hint's instruction (keep the property; read the row's evidence for the enforcer) are unchanged. diff --git a/packages/lint/src/lint-liveness-properties.ts b/packages/lint/src/lint-liveness-properties.ts index 21abfa76317..819864b85c7 100644 --- a/packages/lint/src/lint-liveness-properties.ts +++ b/packages/lint/src/lint-liveness-properties.ts @@ -213,14 +213,17 @@ function isAuthored(value: unknown): boolean { * `#14057` is the same defect class arriving through a different door, and the * reason the boundary below is a THROW rather than a fallthrough. #13483 added * the fifth status to the ledger vocabulary — `live-elsewhere`: dead HERE by - * measurement, genuinely enforced in a sibling repo (first row: - * `manifest.runtime`, whose enforcer is the cloud marketplace publish gate) — - * without teaching this function about it. Falling into `dead` would have said - * "Remove it" about a key whose enforcement is real and remote, i.e. exactly - * the most wrong sentence available: deleting it tears out a live gate's - * input. That row is not deletable, so `live-elsewhere` gets its own branch and - * its own rule id, and its default hint points the author at the ledger row's - * `evidence` — the enforcer's address — rather than at a delete key. + * measurement, genuinely enforced in a sibling repo (a key with zero local + * dispatch whose only enforcer is a gate in another repository, a marketplace + * publish gate for instance, named by the ledger row's `evidence`) — without + * teaching this function about it. No shipped row holds the verdict today; + * the ledger README keeps the historical worked example. Falling into `dead` + * would have said "Remove it" about a key whose enforcement is real and + * remote, i.e. exactly the most wrong sentence available: deleting it tears + * out a live gate's input. Such a row is not deletable, so `live-elsewhere` + * gets its own branch and its own rule id, and its default hint points the + * author at the ledger row's `evidence` — the enforcer's address — rather + * than at a delete key. * * Each verdict below also carries its own DEFAULT hint (used when the ledger * entry has no `authorHint`; the row's `note` is never shown to an author, since @@ -292,7 +295,7 @@ function describe(entry: LedgerEntry): { kind: string; rule: string; defaultHint rule: LIVENESS_LIVE_ELSEWHERE_PROPERTY, defaultHint: 'Keep it — nothing reads it when the stack loads here, but a sibling repo enforces it ' + - "(for `manifest.runtime`, the cloud marketplace publish gate); see the ledger row's " + + "(a marketplace publish gate, for instance); see the ledger row's " + 'evidence for the enforcer.', }; }