Skip to content

docs(skills): a list view edits in place by default; a read-only list declares editInline: false (#22605, skill half) - #22630

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-22605-skill-list-views
Oct 10, 2026
Merged

os-zhuang merged 2 commits into
mainfrom
claude/issue-22605-skill-list-views

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #22605
Clause-②: no

The skill half of #22605, one paragraph in skills/objectstack-ui/rules/list-views.md ("Configuring a List View", after the column-features table): inline editing is on by default under the permission gate, and a list whose records are read-only by nature — a log, an audit trail, a history, a report roll-up — declares userActions: { editInline: false }. The spec half (the default flip, the ledgers, the generated references and the changeset) is PR 1 on claude/issue-22605-edit-inline-default-on, which lands through the queue; this PR touches skills/** and is Tier H, so it waits for the maintainer's APPROVED review.

The ruling

Maintainer, 2026-10-10, verbatim: 「乙 v18 把 spec 默认翻成 true,editInline: false 变成关法。」 The paragraph teaches the author the one key that matters under the new default — the opt-out — and names the lists that want it. No other skills/** file moves; the file is hand-written (the only generated lifts inside skills/** are references/_index.md and references/react-blocks.md), so there is no generator to run.

Two readings (the published-skills ratchet)

  • The file, rules/list-views.md: 300 → 305 lines; 3068 → 3136 tokens (ceil(bytes / 4): 12269 → 12543 bytes) against a ceiling of 3141, headroom 5. Paid from existing headroom; nothing re-wrapped, nothing deleted.
  • The package: the sum of every skills/*/SKILL.md is 4410 → 4410 lines (no SKILL.md moves). node scripts/check-skills-token-ratchet.mjs: ✓ 54 authored bundle file(s) within their ceilings; 10 generator-owned file(s) measured, not ratcheted, with skills/objectstack-ui/rules/list-views.md is 3136 tokens (ceiling 3141; headroom 5).

Gates (local, at e6f3eb158a, after merging origin/main 83b8b80728)

Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths): 23 families. Reconciled with --ran: 23 derived, 23 run, 0 NOT-MEASURED, 0 UNRUN, every one exit 0 — check:doc-formula-expressions after building @objectstack/formula and lint. node scripts/pm/check-governed-merges.mjs --test skills/objectstack-ui/rules/list-views.md answers governed, Tier H (skills/**, the published skills catalog); the file is not in a generated lift, so no --test recompute applies. The skill line ratchet (scripts/pm/check-skill-line-ratchet.mjs) prices .claude/** only and does not cover the published catalog; the token ratchet above is the one that applies. eslint does not cover .md (its population is **/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}; the file reports "ignored because no matching configuration"). The three PR-context guards run once this PR has a number; their readings go in the report comment on the card.

Changeset

None: skills/** ships in no package's files[], so this diff releases nothing. The changeset gate's own prescription for that case is the skip-changeset label, which this seat does not write under this dispatch; the report names it for the seat.

维护者速读(草稿)

改了什么

objectstack-ui 技能的「Configuring a List View」一节加一段:列表默认可以在表格里直接改单元格(前提是用户对该对象有更新权限);天然只读的列表——日志、审计、历史、报表汇总——写 userActions: { editInline: false } 关掉。只动这一个文件,只加这一段,不改任何示例代码块。

为什么改

您 2026-10-10 的裁决把 v18 的 spec 默认值翻成了 true,editInline: false 成了关法。AI 和开发者写列表视图时读的是这份技能;技能不提这个键,他们既不知道默认已经可编辑,也不知道只读列表该怎么写。PR 1 改规范和参考页,这段把同一件事告诉写元数据的人。

风险与代价(含回滚)

风险很低:纯文档,不影响运行时;技能包字数红线 3141 token,改后 3136,余量 5。代价是这个文件的余量基本用完,下次再加内容要先删内容。回滚就是撤销这一段(git revert),不牵连任何代码。注意 skills/** 是 Tier H,需要您的 APPROVED review 才能合并;本 PR 不发版,需要 skip-changeset 标签。

席位意见

(留空)

你要做的

  1. 读这一段(5 行),确认措辞符合裁决意图。
  2. 确认后在本 PR 上点 Approve;席位随后入队合并。
  3. 若希望这段写在别的位置(例如 defineView 容器小节之后),直接在 review 里说,席位改。

Generated by Claude Code

…y list declares editInline: false

One paragraph under "Configuring a List View" in objectstack-ui, for the maintainer's
v18 ruling (2026-10-10): inline editing is on by default under the permission gate, and a
list whose records are read-only by nature (a log, an audit trail, a history, a report
roll-up) declares userActions: { editInline: false }. rules/list-views.md 3068 -> 3136
tokens against a 3141 ceiling, 300 -> 305 lines; no other skills/** file moves.

Claude-Session: https://claude.ai/code/session_01KNKBCRDJCu5tGy3TEbvtrF
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

维护者速读(终稿)

domain:spec seat 3 (#18883) · session session_01KNKBCRDJCu5tGy3TEbvtrF · 2026-10-10T06:58Z. 席位已核对 diff(1 个文件,+5 / −0)。

改了什么

objectstack-ui 技能的「Configuring a List View」一节加了一段:列表默认可以在表格里直接改单元格,前提是用户对该对象有更新权限;天然只读的列表(日志、审计、历史、报表汇总)写 userActions: { editInline: false } 关掉。只动这一个文件、只加这一段,示例代码块没有改。

为什么改

您 2026-10-10 裁定 v18 把 spec 默认值翻成 true,editInline: false 成为关闭方式。AI 和开发者写列表视图时读的就是这份技能。技能不提这个键,他们既不知道默认已经可编辑,也不知道只读列表该怎么写。规范和参考页由 PR #22629 改,这一段把同一件事告诉写元数据的人。

风险与代价(含回滚)

纯文档,不影响运行时。技能包的 token 上限是 3141,改后 3136,这个文件的余量基本用完,下次往里加内容要先删内容。回滚就是撤掉这一段。本 PR 不发版,已挂 skip-changeset。

席位意见

同意合并。措辞与裁决一致:默认开、权限门不变、关闭方式是 editInline: false。落地顺序上,席位会等 PR #22629(spec 默认值翻转)先合并,再把本 PR 入队,避免技能先教一个 spec 还没生效的默认值。

你要做的

在本 PR 上点 Approve。


Generated by Claude Code

@objectstack-fleet objectstack-fleet Bot added needs-user-decision skip-changeset PR has no user-facing published change; bypasses the changeset gate labels Oct 10, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review October 10, 2026 07:00
@os-zhuang
os-zhuang enabled auto-merge October 10, 2026 07:00
@os-zhuang
os-zhuang added this pull request to the merge queue Oct 10, 2026
Merged via the queue into main with commit f368b7e Oct 10, 2026
40 of 41 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-22605-skill-list-views branch October 10, 2026 07:20
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: e6f3eb158a199d5c2b06c0e91a2f61d0f2f330ae
Local-runs: none

Read-only: the card body and its four comments (triage 6093968052, claim 6094254055, dev report 6094863892, ACCEPT 6094884470), the PR body and file list, the net diff against the merge-base 83b8b80728 (1 file, +5 / −0), and the head's check-runs. The branch is at the brief's sha. Nothing built, run or re-run.

① Derived judgments

  • The paragraph against the ruling. The ruling, verbatim on the card: 「乙 v18 把 spec 默认翻成 true,editInline: false 变成关法。」 The paragraph (lines 94–97 at head) says inline editing is on by default under the permission gate — a user who may update the object edits a cell in place — and a list whose records are read-only by nature (a log, an audit trail, a history, a report roll-up) declares userActions: { editInline: false }. That is the card's own sentence for this file: the new default, the gate it sits under, the opt-out spelled the way the ruling spells it, and the four examples the card lists. Nothing it says is beyond the ruling: no app-level default, no editInline: true on existing views, nothing about objectui. Held.
  • Placement. Inside ## Configuring a List View (the section the card names, lines 9–256), under ### Column Features, after the column-features table and before ### Filtering, as a standalone bold-led paragraph; no example code block moves. The dev report and the PR body describe exactly this. Held.
  • A hand-written skill file. Neither build-skill-docs.ts nor build-skill-references.ts reads rules/*.md (the references generator's one rules mention is a comment); the generated lifts inside skills/** are references/_index.md and references/react-blocks.md, so there is no generator to run and no recompute to certify. No other skills/** file mentions editInline, so the catalog says this once. The published-skills token ratchet is CI's (Lint & Repo Gates, success on this head); the dev's reading is 3136 of 3141 — this file's headroom is now 5 tokens, so the next addition to it deletes first.
  • One wording note, not a finding. The paragraph names no version. The card's wording names none either, and the skill on main documents main; it is the landing order in ③, not the paragraph, that decides whether the sentence is true when a reader meets it.

② Semver level

  • No changeset and skip-changeset is right. skills/** ships in no package's files[], so the diff releases nothing from any released package. check-empty-changeset.mjs prescribes exactly this route in its own words ("It releases nothing (… skills/ …) → delete the changeset and apply the 'skip-changeset' label (route 2)"), and its GREEN 3 battery is "a skills/**-only PR carrying NO changeset". The seat applied the label after the dev's report (the dev writes no labels under dispatch, as reported); the one Check Changeset failure on this head (114155815119) ran before the label and the later runs are skipped, which is the gate standing down, not a red. Clause-②: no is right: no accept set and no public surface is touched. Held.

③ Boundary flags

Implemented-by: claude/issue-22605-skill-list-views
Reviewed-by: session_01KNKBCRDJCu5tGy3TEbvtrF

VERDICT: PASS


Generated by Claude Code

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 needs-user-decision size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants