From eb39034d7d5cb5317482a3305b32db239d4e278d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 5 Sep 2026 00:12:46 +0000 Subject: [PATCH] docs(skills): carry the deciding question in the App / Platform Boundary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The section stated the conclusion — business features in the app, capability in the platform — but not the test that produces it, so an app author had to already know the answer to apply it. Add the discriminator as one bullet next to that conclusion: could this be written by something that has only the metadata, and no knowledge of this company, with the two outcomes and the work each names. Rules only, no provenance narrative. Single-owner: the doctrine stays in this skill, which the other skills defer to by name. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox --- skills/objectstack-platform/SKILL.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/skills/objectstack-platform/SKILL.md b/skills/objectstack-platform/SKILL.md index e5fc000916..6b252a2e05 100644 --- a/skills/objectstack-platform/SKILL.md +++ b/skills/objectstack-platform/SKILL.md @@ -236,6 +236,12 @@ what the platform owns. - **Business features belong in the app; capability belongs in the platform.** A missing default, a wrong diagnostic, a shape the spec refuses — the fix is upstream. Raise it there; do not compensate for it here. +- **Could this be written by something that has only the metadata, and no + knowledge of this company?** *No* — it encodes this company's own judgement (a + discount ceiling, who a case is assigned to, how won/lost is booked) ⇒ the + app. *Yes* — it only asks whether the metadata is self-consistent (reference + integrity, translation coverage, view rosters, sharing-rule coverage, CRUD + round-trips, RLS probes per declared position) ⇒ the platform. - **A platform defect means waiting for the platform fix.** No defensive coding, no shape tolerance, no hand-written predicate re-implementing a platform rule, and never "land the half we can" — that spends the contract-first option and