Repository navigation
docs(skills): the os package publish row points app authors at the marketplace handbook - #28429
Conversation
…rketplace handbook The app-authoring agent reads `os package publish` in skills/objectstack-platform/references/operations.md and never found the page that says what a listing is made of (objectstack.manifest.json, the README), what review checks, and what the customer's administrator goes through. One link line on that row names it. Paid for under the skills token ratchet by deleting the cloud-connection blockquote's tail (the LocalManifestSource ledger and runtime-identity bind v2), which describes plugin internals an app author never acts on and whose home is the plugin's own source comments. Claude-Session: https://claude.ai/code/session_01FEkQ5p7yCAhAMSXLu1fXaZ Co-authored-by: Claude <noreply@anthropic.com>
…ook line skills/** ships inside @objectstack/skills (dist/skills via sync-catalog.mjs, and dist is in its files[]), so a skills-only change releases and owes a patch changeset; the skip-changeset label sent on the PR create was wrong and is removed in the same round. Claude-Session: https://claude.ai/code/session_01FEkQ5p7yCAhAMSXLu1fXaZ Co-authored-by: Claude <noreply@anthropic.com>
|
domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo Contract reviewServed-tier: Face: ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
No must-fix found. Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:server#2 · os-tesla · session_01L9qibw58ehQ2gRHP2h2Puz Contract-review-claim: |
|
domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo 席位核对ACCEPT · The maintainer's standing authorisation for landing reviewed PRs, verbatim: 「按照 pm-dispatch 规则复核过的都授权」. This PR is Tier H: that authorisation does not reach it. It stays draft until the maintainer approves.
Generated by Claude Code |
|
domain:server#2 · os-tesla · session_01L9qibw58ehQ2gRHP2h2Puz Contract reviewServed-tier: Inputs: card #27331 (the Skills-docs follow-up PR #27321 owed; triage ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Verdict reasoning. One sentence and one link in the row an app author reads at publish time, pointing at a page that exists on Implemented-by: VERDICT: PASS |
domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo
Requested by Leehom · project thread
Fixes #27331
Clause-②: no (governed prose only, no accept set moves; the dev declares)
Metadata-protocol: none
维护者速读
skills/objectstack-platform/references/operations.md的os package publish一行加了一句,指向 Marketplace handbook(/docs/deployment/marketplace-handbook):listing 文件、README、审核、以及客户管理员会经过的每个界面。为付 token 棘轮,删掉了同文件 cloud-connection 引文块的尾巴(LocalManifestSource账本、runtime-identity bind v2),那是插件内部机制,应用作者不碰。skills/objectstack-platform/references/operations.md第 106 行(新句与链接),第 109–114 行(删掉的引文块尾巴)。node scripts/check-skills-token-ratchet.mjs,预期该文件3124 tokens (ceiling 3125; headroom 1),全绿。skills/**),本 PR 保持 draft,需要你批准后由席位落地。附:卡上的 rider(openapiinclude两行)在 PR docs(skills): teach connector_action input as an evaluated value slot and the openapi include allowlist #28012 已改好,本 PR 不再动它,见 Acceptance notes。What changes
One file,
skills/objectstack-platform/references/operations.md, two hunks:os package publishrow (Environments & deploy table) gains one sentence: "Listing file, README, review and every screen the customer's administrator meets: Marketplace handbook". This is the reference file where an app-authoring agent reads aboutos package publish(the card allows the reference file in place ofSKILL.md;SKILL.mdnames themarketplaceservice token once and nothing about publishing). The link form matches the four existing docs links inskills/**, allhttps://objectstack.ai/docs/.... The page is onmainand listed incontent/docs/deployment/meta.json.os package publish.LocalManifestSource(a local desired-state ledger) plus runtime-identity bind v2 (environment-less self-hosted binding)". Those are plugin internals an app author never acts on; their home is the plugin's own source (packages/cloud-connection/src/connection-credential-store.tsnames theLocalManifestSourceledger and the runtime-identity-binding ADR;cloud-connection-plugin.tscarries the binding). What the blockquote still teaches (the package, its plugins, the install-local endpointos package installtargets, the Installed Apps page and Setup nav) is unchanged. No re-wrap: the two hunks are a content addition and a content deletion.Skills readings (two, as the landing rule asks)
origin/main5da3a8c)operations.mdlinesoperations.mdtokens (ratchet unit, ceil(bytes/4))skills/*/SKILL.mdlines summedSKILL.mdtouched)Why
The card: a follow-up PR #27321 owed when it landed the handbook and deliberately left the governed
skills/**line out. The agent that writes an app reads the skills first; without this line it never finds the page that says what a listing is made of and what the customer's administrator will go through, North Star step ④.Tests
No code changes; no package test suite reads this file. The gate that prices it:
Acceptance notes
openapiincludelines) is already delivered onmain, so this PR does not touch the two automation files the claim's file surface lists. The epic PM's request 6488631558 asked that, once PR feat(connector-openapi): declarative providerConfig.include operation allowlist #27387 merged,skills/objectstack-automation/references/integration-recipes.mdline 63 ("Theopenapiprovider has noincludekey — the trimmed document is the allowlist.") and case 1'sexpected_outputinskills/objectstack-automation/evals/integrations-declared.jsonbe rewritten in the same skills PR. Read atorigin/main5da3a8c on 2026-10-31, both already teachinclude: the recipe reads "providerConfig.includeallowlists operation keys as themcpprovider's does (absent = every operation; a non-array or unknown entry is fatal)", and the eval reads "(orproviderConfig.includenames those three operation keys, themcpprovider's allowlist meaning, where a non-array or unknown entry is fatal)". The commit list for both files names PR docs(skills): teach connector_action input as an evaluated value slot and the openapi include allowlist #28012 (merged 2026-10-30, "docs(skills): teach connector_action input as an evaluated value slot and the openapi include allowlist") as the change, and its body says in so many words that items 3, 4 and 5 are those two lines. Measured againstpackages/connectors/connector-openapi/src/openapi-provider.tsonmain(resolveIncludeList: absent returns undefined, a non-array or a non-string or empty entry throws; an entry the document does not carry is refused after generation), the published text is exact. Nothing to change; the token ratchet showsintegration-recipes.mdat headroom 0, so a re-touch would have cost a deletion for no gain.node scripts/pm/check-governed-merges.mjs --branch claude/project-thread-ce0xlt, exit 3: "derived fromgit diff --name-only --no-renames 5da3a8ce31 1212152e32(three-dot): 1 path(s). governed-surface predicate: 1 of 1 path(s) hit the register (13 surfaces govern objectstack). ⛔ GOVERNED — a human merge is the review record for this PR. landing tier: H(人合). skills/** ×1 — the published skills catalog: skills/objectstack-platform/references/operations.md. size: 6 changed line(s) (+2 / -4) ≤ 3000". The PR stays draft for the maintainer's approval; no seat readies, queues or arms it.@objectstack/skills(dist/skillsviasync-catalog.mjs, anddistis in itsfiles[]), so.changeset/27331-skills-marketplace-handbook-link.mdcarries a patch bump with the two declaration lines; noskip-changesetlabel (the one sent on thepr_createwas removed).pnpm lintscoped to touched packages: no package is touched (the diff is one markdown file underskills/, which eslint does not lint), so there is no scoped lint run to cite;pnpm lintrepo-wide belongs to CI'sLint & Repo Gates.Verification
Local gate subset (derived by
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackfrom the diff at 1212152; each exit code captured before any pipe; reconciled with--ran):node scripts/pm/dispatch-gates.mjs --ran: "33 derived famil(ies) accounted for — 29 run, 4 NOT-MEASURED (4 DERIVED from a recorded exit 3)". The four exit-3 families (check:dts-closure,check:dual-build-cjs-loads,check:lean-entry-closure,check:sourcemap-no-sources-content) read every package's builtdist/and refuse before measuring on a tree with no full build; this diff touches no package, so no build closure is owed locally (os-dev.md local-verification scope ①) and CI'sLint & Repo Gatesruns them on the PR.check:doc-formula-expressionsdoes readskills/, so@objectstack/formulaand@objectstack/lintwere built under the verify lock (VERDICT command-exit 0, 1m40s) and the gate re-run: exit 0. Governed check and the token ratchet are quoted under Acceptance notes and Tests.Head d9530dd (the changeset commit) re-derived the gates: 44 derived, 40 run green (the changeset adds 11 families, all exit 0), 4 NOT MEASURED (the four exit-3 families above). Token ratchet re-run at d9530dd: exit 0, headroom 1.
Every CI family runs on this PR's check-runs; the seat reads them there.
Human Minimum
packages/specholds no runtime logic. (No schema touched.)pnpm lintpasses. (Nothing in the diff is lint input; CI runs the repo-wide lint.)main, one pull request.@objectstack/skillscarries both lines; they are also above.)packages/spectouched: its generated artifacts are regenerated and committed. (Not touched.)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code