Member card of the skills catalog optimization program #14292 (maintainer mandate 2026-09-02, verbatim: 「审核所有的 skills,进行全面的优化。」). Filed by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1). Read-only audit at objectstack origin/main a59f78d. Full findings table = audit record: the dev posts audit/objectstack-api/findings.md (seat scratchpad) verbatim as the first comment at claim time.
Audit summary
SKILL.md 6,311 tok (headroom 8) · evals/README.md 546 (headroom 0) · generated _index.md 888 — 7,745 paid per customer session; 705 lines; no rules/, zero eval fixtures. Real usage: 3 api-owned patterns — declarative apis: (2), http.server code mount (3), public anonymous form (2) — plus defineDatasource (4, belongs to data). Zero usages repo-wide: *.endpoint.ts, RestApiEndpointSchema, apiMethods, ServiceInfo, projectResolution, realtime authoring, ?preview=draft/?package=. The ADR-0121 declarative-apis: block (:149-254) is excellent and implementation-faithful; ~2,400 tokens go to surfaces with zero real usage or to other packages' anchors. Fence audit: 8 TS fences, 6 marked, no rot; one marked block (:532) type-checks against a locally declared shape, not the real PluginContext. Verdict RESTRUCTURE.
Top findings
| id |
span |
proposal |
Δ |
| API-H-01 |
evals/README.md:1-49 |
planned-eval stub (DEFERRED, #14296 item 2) |
−400 |
| API-C-01 |
SKILL.md:472-510 |
DELETE — datasources/drivers duplicate objectstack-data/rules/datasources.md + objectstack-platform/SKILL.md:353-357 (which has the Turso EE caveat api omits) |
−300 |
| API-E-01 |
SKILL.md:117-146 |
DELETE — leading os:check example teaches RestApiEndpointSchema, 0 consumers; no plugin-rest-api package; RestApiPluginConfig has no endpoints key |
−294 |
| API-F-05 |
SKILL.md:316-344 |
ServiceInfo is a response shape, 0 usages, not in the package's own SKILL_MAP → one row |
−230 |
| API-C-02 |
SKILL.md:513-538 |
DELETE — duplicates objectstack-platform/rules/service-registry.md and fabricates the host shape at :532 |
−226 |
| API-B-03 |
:65-71,283-313,559-563 |
MERGE — the apiMethods primitives/derived rule stated 3× in-file |
−180 |
| API-A-03 |
:8-9 vs :73-94,316-366 |
the description forbids the client seat; 663 tok of body teach it → delete to a pointer |
−150 |
| API-C-03 |
SKILL.md:458-468 |
DELETE — Security Layers table names no authorable key |
−138 |
| API-D-02 |
SKILL.md:384-396 |
DELETE — Handler Status table neutralised by its own callout ("nothing reads it at runtime") |
−130 |
| API-B-01 |
SKILL.md:419-429 |
DELETE — third rendering of "no nested auth block" |
−120 |
| API-D-01 |
SKILL.md:346-366 |
REWRITE-AS-CONSTRUCT → one line (health/ready are author-free) |
−120 |
| API-D-03 |
:544-547,:556-558 |
DELETE Best Practices 1 & 4 |
−109 |
| API-D-04 |
SKILL.md:569-576 |
DELETE pitfalls 1/2/4 — "use FLS" has no authorable spelling; the page sizes match no platform constant |
−95 |
| API-D-05 |
SKILL.md:191-198 |
DELETE carve-out why-prose, keep the rule |
−90 |
| API-B-05 |
SKILL.md:22-28 |
DELETE preamble restating the frontmatter |
−78 |
Net −2,125 (31%) at HIGH/MED-HIGH; −2,525 (37%) incl. MED. Incidental falsehoods: none (spot-checks held).
Three funded additions
http.server code-mount canonical example (+130, paid by API-E-01) — the only code-route pattern the repo ships (3 sites); needs the kernel:ready timing rule, the readServer('http.server') ?? readServer('http-server') dual lookup, and that getService is async.
- ADR-0112 error-code ledger construct (+120, paid by API-C-02) — two-tier vocabulary; unregistered code fails parse → fails CI; a downstream repo keeps its own ledger via
envelopeViolations(body) + makeApiErrorSchema(<own ledger>) (contract.zod.ts:146,215).
- OCC contract (+40, paid by API-D-03) —
If-Match header or expectedVersion body field (body wins), token typically updated_at, mismatch → 409 CONCURRENT_UPDATE (rest-server.ts:7711-7721).
Flight scope
IMPLEMENT (same-file, shrink-only): every DELETE / MERGE / REWRITE row above and in the findings file at HIGH or MED; the three funded additions; API-A-02/A-03 frontmatter edits; fix or unmark the :532 block so the gate proves something real.
ANCHOR RULINGS: datasources → objectstack-data/rules/datasources.md (delete + pointer); service registry → objectstack-platform/rules/service-registry.md and SKILL.md:353-357 (delete + pointer; the platform flight keeps those); request-side query syntax → objectstack-query.
DEFER: API-H-01 (eval stub, #14296 item 2); API-F-06 (declared-but-unenforced semantics → out-of-scope card for triage, not a doc edit).
Flight constraints (binding)
- ONE draft PR, first line
Fixes #<this card>; governed ⇒ stays draft; review requests are the seat's step.
- Token ratchet: no ratcheted file may grow; additions paid by deletions in the SAME file; ⛔ re-wrap is not payment; ⛔ no ceiling raise; ⛔ no new files; ⛔ do not touch the ratchet script.
- ⛔ Never edit another package's files; a missing/weaker anchor goes in the PR body under "follow-up for ". Generated files untouched. Frontmatter edits: regenerate
skills/README.md only if a drift gate requires it (report which).
- Live surface with zero measured usage ⇒ one row pointing at its schema; retired/tombstoned ⇒ delete. A false claim matching a spec
.describe() string ⇒ spec-side twin card.
- Gates:
node scripts/check-skills-token-ratchet.mjs, pnpm --filter @objectstack/spec check:skill-examples, pnpm check:skill-compatibility, pnpm check:skill-identifier-liveness, plus node scripts/pm/dispatch-gates.mjs --commands <changed paths>; record the head sha.
- PR body: per-item 落点 | before | after keyed by finding id; per-file token delta;
needs:contract-review on both carriers (the OCC and error-ledger additions are contract-semantics claims).
Refs: #14292 · #14296 · #13658.
Member card of the skills catalog optimization program #14292 (maintainer mandate 2026-09-02, verbatim: 「审核所有的 skills,进行全面的优化。」). Filed by the skills lane seat (session
session_01LraLgQVGq8egUwfYZpbYt1). Read-only audit at objectstackorigin/maina59f78d. Full findings table = audit record: the dev postsaudit/objectstack-api/findings.md(seat scratchpad) verbatim as the first comment at claim time.Audit summary
SKILL.md6,311 tok (headroom 8) ·evals/README.md546 (headroom 0) · generated_index.md888 — 7,745 paid per customer session; 705 lines; norules/, zero eval fixtures. Real usage: 3 api-owned patterns — declarativeapis:(2),http.servercode mount (3), public anonymous form (2) — plusdefineDatasource(4, belongs to data). Zero usages repo-wide:*.endpoint.ts,RestApiEndpointSchema,apiMethods,ServiceInfo,projectResolution, realtime authoring,?preview=draft/?package=. The ADR-0121 declarative-apis:block (:149-254) is excellent and implementation-faithful; ~2,400 tokens go to surfaces with zero real usage or to other packages' anchors. Fence audit: 8 TS fences, 6 marked, no rot; one marked block (:532) type-checks against a locally declared shape, not the realPluginContext. Verdict RESTRUCTURE.Top findings
evals/README.md:1-49SKILL.md:472-510objectstack-data/rules/datasources.md+objectstack-platform/SKILL.md:353-357(which has the Turso EE caveat api omits)SKILL.md:117-146os:checkexample teachesRestApiEndpointSchema, 0 consumers; noplugin-rest-apipackage;RestApiPluginConfighas noendpointskeySKILL.md:316-344ServiceInfois a response shape, 0 usages, not in the package's own SKILL_MAP → one rowSKILL.md:513-538objectstack-platform/rules/service-registry.mdand fabricates the host shape at:532:65-71,283-313,559-563apiMethodsprimitives/derived rule stated 3× in-file:8-9vs:73-94,316-366SKILL.md:458-468SKILL.md:384-396SKILL.md:419-429authblock"SKILL.md:346-366:544-547,:556-558SKILL.md:569-576SKILL.md:191-198SKILL.md:22-28Net −2,125 (31%) at HIGH/MED-HIGH; −2,525 (37%) incl. MED. Incidental falsehoods: none (spot-checks held).
Three funded additions
http.servercode-mount canonical example (+130, paid by API-E-01) — the only code-route pattern the repo ships (3 sites); needs thekernel:readytiming rule, thereadServer('http.server') ?? readServer('http-server')dual lookup, and thatgetServiceis async.envelopeViolations(body)+makeApiErrorSchema(<own ledger>)(contract.zod.ts:146,215).If-Matchheader orexpectedVersionbody field (body wins), token typicallyupdated_at, mismatch → 409CONCURRENT_UPDATE(rest-server.ts:7711-7721).Flight scope
IMPLEMENT (same-file, shrink-only): every DELETE / MERGE / REWRITE row above and in the findings file at HIGH or MED; the three funded additions; API-A-02/A-03 frontmatter edits; fix or unmark the
:532block so the gate proves something real.ANCHOR RULINGS: datasources →
objectstack-data/rules/datasources.md(delete + pointer); service registry →objectstack-platform/rules/service-registry.mdandSKILL.md:353-357(delete + pointer; the platform flight keeps those); request-side query syntax → objectstack-query.DEFER: API-H-01 (eval stub, #14296 item 2); API-F-06 (declared-but-unenforced semantics → out-of-scope card for triage, not a doc edit).
Flight constraints (binding)
Fixes #<this card>; governed ⇒ stays draft; review requests are the seat's step.skills/README.mdonly if a drift gate requires it (report which)..describe()string ⇒ spec-side twin card.node scripts/check-skills-token-ratchet.mjs,pnpm --filter @objectstack/spec check:skill-examples,pnpm check:skill-compatibility,pnpm check:skill-identifier-liveness, plusnode scripts/pm/dispatch-gates.mjs --commands <changed paths>; record the head sha.needs:contract-reviewon both carriers (the OCC and error-ledger additions are contract-semantics claims).Refs: #14292 · #14296 · #13658.