Repository navigation
docs(skills): teach os deploy, the managed-package dev loop, in the platform skill - #31019
objectstack-fleet[bot] wants to merge 2 commits into
Conversation
The operations reference gains an os deploy row and a paragraph on reading its exit 1, the SKILL.md Part 3 pointer names it, and one eval case expects it. Paid by deleting three restatements in operations.md; the remainder raises that file's token ceiling by the measurement. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAnbXbG1XBtvCznvwYJ
|
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7 Contract-review-claim: session_01J8VVAj7CvjkGXvgXzd6RZ7 · head 965b2d6 · 2026-11-06T17:48Z The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent. No review seat ( |
|
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7 Contract reviewServed-tier: Read: card #30968 body and both comments (triage 6687827927, claim 6690835677); PR #31019 body and its 5-file list; the net diff ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Entry points
What it does: "build, publish manifest.version-dev.TIMESTAMP, install, wait until served"
Environment selection: "
Flags
Exit-1 readings
Deploy vs
Ratchet raise (must judge)
Findings
Implemented-by: VERDICT: PASS |
The eval case asks only for os deploy, the os package publish row keeps "versioned package", the Docker row drops its restated list of the official image's variables (the image pitfall row holds it), and the refusal clause says to create an environment when there is none. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAnbXbG1XBtvCznvwYJ
|
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7 Contract-review-claim: session_01J8VVAj7CvjkGXvgXzd6RZ7 · head 2586f5a · 2026-11-06T18:18Z Delta review against the PASS at head 965b2d6 (comment 6691650241, should-fixes S1–S5). The delta is one commit answering S1, S3, S4 and S5, plus the PR body. The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent. |
|
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7 Contract reviewServed-tier: This is a delta review. What was read:
Everything round 1 judged and this commit leaves byte-identical stands as judged. That covers:
① Derived judgments
② Semver level
③ Boundary flags
④ Design judgmentS1:
S4: the
S5: the Docker / Kubernetes row deletion. Do all its facts survive?
S3: the zero-environment remedy against
Ratchet: is the row still pinned at the measurement?
PR body (v2) against the tree.
Findings
Implemented-by: VERDICT: PASS |
|
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7 维护者速读
席位核对 — ACCEPT · domain:skills#3 · head
|
Requested by Irene · project thread
Fixes #30968
Clause-②: no
Metadata-protocol: none
维护者速读
objectstack-platformskill 现在教os deploy:references/operations.md的「Environments & deploy」表新增一行(何时用:在组织的开发环境上看到改动;入口os deploy/npm run deploy/os dev里按d;如何选环境;--no-wait、--wait-timeout);表下一段讲os deploy退出码 1 的三种读法(写入前拒绝、环境自身构建失败、等待超时)及下一步。SKILL.md的 Part 3 指针点名os deploy。新增 eval 17。os deploy,但 skill 里 0 处提到它,助手会继续教「先os package publish再手动安装」。operations.md一行 token 天花板(+179,按裁决实测抬高);回滚即 revert,无运行时影响。skills/objectstack-platform/references/operations.md的os deploy行和其下的 exit 1 段落,对照packages/cli/src/commands/deploy.ts与utils/install-target.ts。node scripts/check-skills-token-ratchet.mjs,预期 exit 0,两文件读数为 6011/6011 与 3287/3287。skills/**属 Tier H,需要os-zhuang或hotlong批准。What changes
Every flag, entry point and message the skill names was read from the landed CLI at
69e133ea0(PR #30933,780c6c34), not from the card:os deploybuilds, publishes<manifest.version>-dev.<timestamp>, installs, waits until servedpackages/cli/src/commands/deploy.tsheader and steps 1–6;utils/dev-version.tsnpm run deploypackages/create-objectstack/src/templates/blank/package.json:13andpackages/cli/src/commands/init.ts:851("deploy": "objectstack deploy")dinos devpackages/cli/src/utils/dev-deploy-key.ts(deployKeyHint: "Press d to deploy this app…")--env <id>, else the oneos environments switchrecorded, else the organization's only oneutils/install-target.tsresolveInstallTarget(flag → active → the only installable row)os cloud logincommands/cloud/login.tsmergeCloudLogin(same control plane and account)--no-wait,--wait-timeout <seconds>(600)deploy.tsflagswait(allowNo) andwait-timeout(default 600)manifest.version)deploy.tssteps 1–4 ("write nothing anywhere") and theirprintErrorlinesinstall-target.tsrefusal for zero candidates ("Create one in the ObjectOS Cloud console, then run this again.")could not build …: <reason>, keeps serving the previous buildreportVerdictcasefailedTimed out after …; install recorded; a failing build reads as pending for minutes;--wait-timeoutor the ObjectOS Cloud consolereportVerdictcasetimeoutskills/objectstack-platform/evals/config-plugins-ops.jsongains case 17: "I edited an object in my app locally. How do I see my change on my ObjectOS Cloud environment?" expectsos deploy; itsmust_containisos deployalone (what any correct answer carries, and in its ownexpected_output);must_not_contain:os push(the name PR #30933 rejected). No existing eval in the skill teaches the old publish-then-install loop (grep -n -i "deploy\|package publish" skills/objectstack-platform/evals/).Token budget
Readings from
node scripts/check-skills-token-ratchet.mjs:69e133ea0)skills/objectstack-platform/SKILL.mdskills/objectstack-platform/references/operations.mdThe order measured
operations.mdat 3116/3119; on69e133ea0it reads 3108/3108 (headroom 0), reported to the seat before editing.Deleted in
operations.mdfirst (restatement, each with its surviving home in the same file):os devrow's "The seeded admin is promoted to platform admin, so Setup/Studio work on first login." Home: Common ops pitfalls, "Login works but Setup / Studio missing" (auto-granted to the first registered human; "--seed-admin/--freshdoes this").os validaterow's "theos buildgates, no artifact emitted". Home: Verify your work, the code block (os validate … — no artifact;os build # the same three gates, plus emits dist/objectstack.json), which the row still links.os build # the same three gates ….OS_DATABASE_URL,OS_AUTH_SECRETandOS_SECRET_KEYare set" (review S5). Home: Common ops pitfalls, "The official image exits at start namingOS_DATABASE_URL/OS_AUTH_SECRET/OS_SECRET_KEY". The row keeps the image name, "at runtime, never baked in" and the SQLite-on-a-volume line.Review round 1 (contract review PASS at
965b2d64, comment 6691650241): S1 evalmust_containtrimmed toos deploy; S4 theos package publishrow keeps main's "versioned package" (it publishes whatevermanifest.versionor--versionsays); S5 deletion 4 above saved 12 tokens, which S3 spent exactly (the zero-environment remedy), so the measurement stays 3287 and the row is unchanged. S2 (the post-write cases: another install replaced it, an unreadable installation, a publish that reported no install) does not fit inside that saving and is left out; the skill teaches the three cases the card names.The remainder, +179 measured, raises only the
operations.mdrow, pinned at the measurement, under the standing ruling quoted inscripts/check-skills-token-ratchet.mjs(ruling record 6513306068 on #27847), maintainer ruling 2026-10-27, tap A, verbatim: 「A:先削重复,余额按实测提高」.Review tier
dispatch-gatesmandates the contract-review tier forskills/**(clause ①); waived by the maintainer's standing order in this project (2026-11-03). The seat runs the contract review.Gates
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackat2586f5ac(5 paths vs merge base69e133ea0): 65 commands, each run undertimeout 900withNODE_OPTIONS=--max-old-space-size=8192after a fullpnpm build(119/119 tasks), exit code captured before any pipe → 65 × exit 0 (the first round at965b2d64was also 65 × exit 0).--ranreconciliation:65 derived famil(ies) accounted for — 65 run, 0 NOT-MEASURED.node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD→ exit 0 before each push.origin/mainis now33bc8ae5f; since the branch point it touchesskills/objectstack-ai,objectstack-apiandobjectstack-databut noobjectstack-platformfile and notscripts/check-skills-token-ratchet.mjs, andgit merge-treemerges it cleanly, so the per-file readings above stand (the bundle total is this branch's own tree).Ran list
🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAnbXbG1XBtvCznvwYJ