From 6dc260aaec43058e3226f1a18ea6c3fc637aa5a0 Mon Sep 17 00:00:00 2001 From: "objectstack-fleet[bot]" Date: Thu, 8 Oct 2026 22:58:17 +0000 Subject: [PATCH] docs(skills): lint-rules table states both tiers of relationship/master-detail-required The published objectstack-data skill said the rule is a `warning` everywhere. `packages/lint/src/data-model-rules.ts` fires it at `error` on a `sharingModel: 'controlled_by_parent'` object, where it also refuses a `readonly` or `system` master reference; on every other object it stays a `warning`. The row now says so in both cells. The file sits at its token ceiling (970/970), so the longer row is paid for by dropping the intro clause that duplicated the table's own "in addition to naming/label/i18n" framing. Net 0 lines; 970 -> 964 tokens. Claude-Session: https://claude.ai/code/session_01RPo7FUd6bSnAfkWMAKi848 Co-authored-by: Claude --- skills/objectstack-data/references/lint-rules.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/skills/objectstack-data/references/lint-rules.md b/skills/objectstack-data/references/lint-rules.md index 8115f6f4d86..b5e5b15b3b9 100644 --- a/skills/objectstack-data/references/lint-rules.md +++ b/skills/objectstack-data/references/lint-rules.md @@ -1,16 +1,16 @@ ## Linting & Generation Quality -`os lint` checks the data model against the conventions in this skill — -not just naming/labels but the relationship/master-detail/roll-up patterns. Run -it after authoring or generating metadata. Severities: `error` (structural, -fails the command), `warning` (likely-wrong choice), `suggestion` (nudge). +`os lint` checks the data model against the conventions in this skill. Run it +after authoring or generating metadata. +Severities: `error` (structural, fails the command), `warning` (likely-wrong +choice), `suggestion` (nudge). Data-model rules (in addition to naming/label/i18n): | Rule | Severity | Catches | |---|---|---| | `relationship/missing-reference` | error | lookup/master_detail without a `reference` target | -| `relationship/master-detail-required` | warning | a `master_detail` that isn't `required` (a detail can't exist without its master) | +| `relationship/master-detail-required` | warning; error under `controlled_by_parent` | a `master_detail` that isn't `required` — or, under `controlled_by_parent`, is `readonly`/`system` | | `relationship/delete-behavior` | suggestion | `master_detail` without an explicit `deleteBehavior` | | `relationship/line-items-inline-edit` | suggestion | a `*_line`/`*_item` master_detail child without `inlineEdit` | | `relationship/line-item-should-be-master-detail` | suggestion | a line-item-shaped child using `lookup` instead of `master_detail` |