Skip to content

docs(skills): objectstack-data's security rules name the risk of renaming or removing a shipped access item in a later version - #25429

Merged
os-zhuang merged 2 commits into
mainfrom
claude/skills-access-item-rename-risk
Oct 24, 2026
Merged

os-zhuang merged 2 commits into
mainfrom
claude/skills-access-item-rename-risk

Conversation

@hotlong

@hotlong hotlong commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Clause-②: no
Metadata-protocol: none

What this does

It adds a risk note to skills/objectstack-data/rules/security.md, the access-control rules of the published data-modelling skill: renaming or removing a shipped access item in a later package version can quietly undo an administrator's choice on upgrade.

Administrators act on a package's permission sets, positions, sharing rules and capabilities by name. They switch items off, clone sets, and reference the package's objects and fields from their own sets. So in a later version:

  • a rename makes the old switch-off stop matching, and the renamed item arrives switched on;
  • a removal leaves a customer's clone or own set naming something that no longer exists;
  • an added field deny on a shipped set is not carried into a customer's clone.

The note asks authors to keep shipped names stable and, when such a change is genuinely needed, to say in the release notes what an administrator should re-check. It is guidance only: no gate and no behaviour change. This is the maintainer's ruling of 2026-10-23: 「这种应该写到元数据应用的开发规范中」「提示风险就行」.

Why here

This came out of objectstack-ai/cloud#3173 (ADR-0126 wall 3 on cloud's install paths). The only package on the cloud marketplace is first-party (HotCRM), so the maintainer chose a development-convention note over a runtime check or a publish gate.

The token budget

The file sat at its ratchet ceiling, so the new text is paid for by deleting restatements in the same file. No rule changes meaning. Each deletion:

  1. The RBAC stack-key bullet. The "permissions, not permissionSets" fact is the code sample's own comment just above it.
  2. "takes the set's name". This repeats the sentence above it.
  3. The assignment payload. It repeats the columns listed two sentences earlier.
  4. The view_pii sample's comment. It repeats the sentence directly above it.
  5. The viewAllRecords corollary. It follows from "it never crosses the Layer 0 wall" in the same bullet.
  6. The callout tail. It restates the two Layer 0 bullets and the recipe's AND-gate comment; the ADR-0095 D1 citation stays in the first bullet.

The changes were written at the tier that dispatch-gates.mjs mandates for skills/**.

Verification

Run on head 3d46b7b8:

  • check-skills-token-ratchet: security.md is 2541 / 2543 tokens; --self-test passes.
  • check:doc-authoring, check:agent-test-spelling, check:role-word, check:skill-compatibility, check:skill-frame-sync, check:skill-identifier-liveness, check:pm-skill-id-lint, check:corpus-claim-drift and check-doc-route-spelling --advisory: each exits 0.

Noticed, not touched: the assignment paragraph still says an organization_id of null means every organization context. Since #24583 step 7, an organization-less grant confers nothing, so that clause looks stale. Fixing it changes a rule, so it is left for its own change.

🤖 Generated with Claude Code

hotlong and others added 2 commits October 23, 2026 20:58
…ming or removing a shipped access item

Co-authored-by: Claude <noreply@anthropic.com>
…ling — rewritten shorter and paid for by deleting in-file restatements

The section the previous commit appended put `skills/objectstack-data/rules/security.md`
at 2837 tokens against its 2543 ceiling. It is now a short risk note, "Renaming or
removing a shipped access item": administrators act on a package's access items by
name (switch-off, clone, references from their own sets); a rename re-enables the
item under its new name, a removal leaves a customer's clone or own set naming
nothing, an added field deny is not carried into a clone; keep shipped names stable
and, when a change is genuinely needed, say in the release notes what changed and
what an administrator should re-check. Guidance only, as ruled (「提示风险就行」).

The rest of the price is paid by deleting text that restated the same file:
- the "Stack key: `permissions`" bullet repeated the code sample's own comment;
  its refusal text and schema pointer stay;
- the `permission_set` warning repeated "the set's machine `name`" from the
  sentence above; "never a record id" and the refusal codes stay;
- the assignment call's payload repeated the row's columns listed two sentences
  earlier; the endpoint and who may write it stay;
- the `view_pii` code comment repeated "masked on read and denied on write";
- the `viewAllRecords` corollary sentence repeated "never crosses the Layer 0
  wall", "on one of those same postures" and the first bullet's "denied — the
  list renders empty";
- the callout's "wall keeps denying … platform admin sees nothing" repeated the
  Layer 0 bullets, "the pair is the correct combo" repeated its own first line,
  the AND-gate parenthetical repeated the recipe comment, and ADR-0095 D1 was
  already cited in the first bullet.
No rule changes meaning. File: 2541 / 2543 tokens.

Co-authored-by: Claude <noreply@anthropic.com>
@hotlong
hotlong requested a review from os-zhuang as a code owner October 23, 2026 13:17
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation tooling labels Oct 23, 2026
@os-zhuang
os-zhuang enabled auto-merge October 23, 2026 17:49
@os-zhuang
os-zhuang added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit 0949fe5 Oct 24, 2026
40 of 41 checks passed
@os-zhuang
os-zhuang deleted the claude/skills-access-item-rename-risk branch October 24, 2026 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants