docs(skills): the platform skill counts the eight generator barrels, picklists included - #21337
Conversation
…picklists included The blank starter wires eight barrels since the picklist generator landed (`src/picklists` under the `picklists` stack key). The template sentence in skills/objectstack-platform/SKILL.md still said seven and listed seven; it now says eight and names `picklists`, net zero lines. Claude-Session: https://claude.ai/code/session_01VvcEokUG1tvVxkceYfR5XB Co-authored-by: Claude <noreply@anthropic.com>
…ill-generator-barrels
Contract reviewServed-tier: Inputs read: card #21018 (body and all 10 comments: claim Checks on Shape: the branch is one authored commit ① Derived judgments(a) The sentence is true at (b) Published rule text: nothing false, nothing newly ambiguous. Each of the eight names is both a (c) The sweep, re-done independently over all 65 files under
② Semver levelThe diff publishes nothing from any released package: ③ Boundary flags
Implemented-by: VERDICT: PASS |
维护者速读
改了什么平台技能包
为什么改上一个 PR(#21167,已合并为 风险与代价(含回滚)
席位意见建议批准。理由:
你要做的在 PR #21337 上点一次 Approve(你或 os-zhuang 任一账户)。批准记录到位后,由席位转 ready、入队落地,你无需再操作。 |
Fixes #21018
Clause-②: no
This PR is item 4 of #21018, the last item on the card: the Tier H line in
skills/objectstack-platform/SKILL.mdthat counts and lists the blank starter's generator barrels. The code half landed onmainasbcd68a29f3(PR #21167), and since that landing the sentence has been false. The claim for this PR is5945859013on the card; the dev session issession_01VvcEokUG1tvVxkceYfR5XB.Premise, checked on
origin/main(1caa603730, then merged222ecc27f9)packages/create-objectstack/src/templates/blank/objectstack.config.tsimports eight barrels and hands each to its stack key, in this order:objects,views,actions,flows,dashboards,apps,skills,picklists.src/of the template holds the same eight directories.os initderives its wiring from the roster:SCAFFOLD_WIRED_BARRELS(packages/cli/src/commands/init.ts:602) mapsGENERATOR_SCAFFOLD_TARGETS, which isObject.entries(GENERATORS)ingenerate.ts— eight generators:object,view,action,flow,dashboard,app,skill,picklist.packages/cli/test/create-objectstack-wiring-parity.test.tsholds the blank template's import lines and stack-key lines equal to theos initrendering, so the template list and the roster cannot drift apart.picklistslast — the order the template file uses. The SKILL.md line said seven and listed seven.What changed
One file, two lines, net zero lines:
skills/objectstack-platform/SKILL.md:194-195.Before:
After:
This is the text PR #21167's "Not in this PR" section proposed, byte for byte.
The
skills/**readings (both halves)1caa603730)82e06107cf)skills/objectstack-platform/SKILL.md, linesskills/objectstack-platform/SKILL.md, tokens (ceil(utf8 bytes / 4), the ratchet's convention)skills/**/SKILL.md, linesskills/**/SKILL.md, tokensThe 13 added bytes are the word
eightforseven(same length) plus, \picklists`. No re-wrap, no content removed, no ceiling moved.node scripts/check-skills-token-ratchet.mjsreadsskills/objectstack-platform/SKILL.md is 5830 tokens (ceiling 5833; headroom 3)on82e0610`.The sweep of
skills/**Every file under
skills/was grepped for a count word (six to nine) near barrel / generator / template / scaffold, for the wordbarrel, forpicklist, and forsrc/directory listings. OnlySKILL.md:194-195states a count or list that PR #21167 made false. The other hits, each left alone:skills/objectstack-platform/SKILL.md:210-235, the "Project Structure Conventions" tree: a generic convention listing (objects,views,apps,flows,actions,dashboards,reports,datasets,i18n,handlers, each marked optional). It never enumerated the template's barrels (it omittedskillsalready), so it states no count or list that is now wrong.skills/objectstack-platform/references/bootstrap.md:55-72and:163-180: illustrative config examples with four barrels and one barrel. Examples, not a roster.skills/objectstack-platform/evals/config-plugins-ops.json:7: an eval's expected output for a CRM config ("barrel imports … same for views / flows"). Not a roster.skills/objectstack-platform/SKILL.md:44-45: the stack-key list already namespicklistsandpicklistExtensions. Correct.Changeset
None, declared with the
skip-changesetlabel. The diff publishes nothing from any released package: nopackage.jsonunderpackages/orapps/names a skills path in itsfiles[](positive control:@objectstack/spec'sfiles[]listsdist,json-schema, …), andcreate-objectstackinstalls the catalog at scaffold time withnpx skills add objectstack-ai/objectstack/skills(packages/create-objectstack/src/skills-install.ts), reading this repository directly rather than a bundled copy.Gates
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands, run with no paths, derived 25 families from the change set (1 path). The list is identical before and after theorigin/mainmerge.82e06107cf, each exit code captured before any pipe: 25 exit 0.--ranreconciliation:✓ dispatch-gates --ran: 25 derived famil(ies) accounted for — 25 run, 0 NOT-MEASURED.84fc471b7fthe same 25 were run once before: 24 exit 0 and onePREREQUISITE NOT MET(exit 3,@objectstack/lintcheck:doc-formula-expressions, the package was not built). Afterpnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lintunder the verify lock it exited 0; the merged-head run above includes it green.pnpm --filter @objectstack/spec run check:skill-examples. It refused withPREREQUISITE NOT MET(exit 3:packages/client-react/distholds no declarations). NOT MEASURED locally; it is declared to CI. The diff changes nots/tsxfence, which is the only surface that gate reads.scripts/pm/check-skill-line-ratchet.mjsis not applicable: its header excludes the publishedskills/catalog by design; the token ratchet above is the catalog's gate.pnpm lintis CI's run; this diff touches one Markdown file, which is outside eslint's population (eslint.config.mjslintsts/tsx/js/mjs), so nothing here moves a lint verdict.Acceptance notes
skills/objectstack-platform/references/operations.md:26reads "os generate KIND| Scaffold an object / view / flow / agent from a template" (KIND spelled there as a placeholder in angle brackets), whileskills/objectstack-ai/SKILL.md:344saysos g agentis retired. Pre-existing, not a count or list PR feat(cli,create-objectstack): os generate picklist, the src/picklists starter barrel, and a Picklists count in the metadata summary #21167 touched, and outside this claim's purpose; noted, not filed.skills/norpicklists/. It is a generic convention list with no count, so it is not false; noted for a future prose pass, not changed here.origin/main(222ecc27f9, two commits touchingscripts/pm/fleet-write/*andscripts/pm/issue-*.mjs, none touchingskills/or a gate this diff derives). The PR's net diff againstorigin/mainis the one file, +2 / −2.维护者速读(草稿)
改了什么
平台技能包
skills/objectstack-platform/SKILL.md里描述 blank 模板的那一句:把「七个生成器目录」改成「八个」,并在列表末尾补上picklists。改两行、删两行,净零行;整个技能包行数不变(4397 行),token 读数 5827 → 5830(上限 5833,余量 3)。为什么改
上一个 PR(代码半,#21167)落地后,
npm create objectstack新建的项目实际接了 8 个目录,多出的是src/picklists(共享选项列表,os generate picklist的产物)。技能文本还写 7 个:AI 读了会少认一个目录,不知道新生成的选项列表落在哪里、挂在哪个 stack 键下。风险与代价(含回滚)
只改一句说明文字,不改任何代码,不发任何 npm 包。技能目录由
npx skills add从仓库直接拉取,所以合并后新建的项目立刻读到新句子;已建项目不受影响。回滚就是 revert 这一个 commit。本地派生的 25 个门禁全绿;skills/**的 token 棘轮没动上限。席位意见
(留空,席位定稿时填写)
你要做的
在本 PR 上给一个 Approve(
skills/**是受管面 Tier H,需要维护者的批准记录);之后由席位负责落地,不用你再操作。Generated by Claude Code