Repository navigation
fix(spec): in-system copy says "this system" or drops the noun, not "this environment" (cloud#3002 ruling A) - #24454
Conversation
…this environment" (cloud#3002 ruling A) Per-string reading of every non-test "this environment" hit in packages/spec/src: eleven change (a set made here is "authored in this system"; the system the reader is in is "this system" or the noun is dropped), four keep the word because it names a deployment or configuration scope (the seed loader's prod/dev/test tier, the ADR-0131 environment-wide uninstall scope, the environment artifact's consent record). Wording only: no code, kind, path, accept set or export moves. Claude-Session: https://claude.ai/code/session_01WnW7HvfnfHbLg1fpkHX3Mu Co-authored-by: Claude <noreply@anthropic.com>
…ystem" describes (gen:docs) Claude-Session: https://claude.ai/code/session_01WnW7HvfnfHbLg1fpkHX3Mu Co-authored-by: Claude <noreply@anthropic.com>
… permission-set packageId help text (check-i18n-bundles --write) Claude-Session: https://claude.ai/code/session_01WnW7HvfnfHbLg1fpkHX3Mu Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 2 package(s): 11 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
What this run could not see
Coarse fallback — 143 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 2cdd13a90259cbbaa61cce133bbd169e02a24ee3 && git checkout 2cdd13a90259cbbaa61cce133bbd169e02a24ee3
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin fa26308bb0332152a359335be27ba1a7f18574de 9fcf38b94b7c63e6e735dc3999d60a4710d5ccdf && git checkout -B drift-repro fa26308bb0332152a359335be27ba1a7f18574de && git merge --no-ff 9fcf38b94b7c63e6e735dc3999d60a4710d5ccdf
node scripts/docs-audit/affected-docs.mjs --json fa26308bb0332152a359335be27ba1a7f18574de
|
Contract reviewServed-tier: Inputs: card #24406 body and its five comments (triage 6256228241, addendum 6256303275, claim 6258987316, os-dev-report 6259796816, claim amendment 6259830280); PR #24454 body, its 12-file list and the net diff against main; the 41 check-runs on the head, read at 2026-10-19T05:13Z. Read-only throughout: files at the head and at origin/main through git show and git grep on a fetched ref; nothing built, run or re-run. The remainder of the diff (the changeset, the three content/docs/references pages, the generated en bundle) is the lane seat's ACCEPT at TIER_DEFAULT. Check-runs on the head: 41, all completed. 36 success, 5 skipped by design (Console Pin Gate, Temporal Conformance, Dogfood Verify CLI, the dogfood matrix shard, Packed-tarball smoke). The five required contexts are success: Lint and Repo Gates, TypeScript Type Check, Test Core, Build Core, Governed Surface Queue Guard. No failure, nothing in progress. Head repo equals base repo; no governed path; 51 changed lines. ① Derived judgmentsEach line the diff moves, judged against the rule the card quotes (cloud#3002 letter A: made here, not from a package, reads "authored in this system"; the system the caller is in drops the noun or says "this system"; a deployment or configuration scope keeps its word) and against the house spelling PR #24407 and PR #24413 landed.
② Semver level
③ Boundary flags
Reviewer-found, not in the dev's report. None blocks this PR; each needs a carrier:
Implemented-by: VERDICT: PASS Generated by Claude Code |
席位核对ACCEPT ·
Generated by Claude Code |
Fixes #24406
Clause-②: no
What this does
Published copy in
packages/speccalled the running system "this environment". objectstack-ai/cloud#3002 ruling A, as the card quotes it, reads each string by its sense:This PR reads every non-test
this environmenthit inpackages/spec/src:git grep -canswers 15 onorigin/main538f923cb9, the card's sites plus the addendum's TSDoc. 11 change and 4 keep the word, each with its reason in the table. The spelling matches what theservicesPR (#24407) and thecloud-connection/mcpPR (#24413) landed.Wording only. No refusal
code, status, kind, issue path, accept set or export moves.Per-string reading
All sites are under
packages/spec/src/. Line numbers are on538f923cb9; no line moves.security/permission-set-owner-binding.ts:127, thepackageIdrefusal on the save, restore and publish doorspackageIdstates"security/permission.form.ts:52, Setup help text forpackageIdsecurity/permission.zod.ts:680, thepermission.managedBytombstone prescriptionmigrations/entries/semantic/18.permission-set-managed-by-retired.ts:18, upgrade-guidereplacementsystem/auth-config.zod.ts:345, TSDoc ofAudienceConfigSchemasystem/auth-config.zod.ts:401, TSDoc ofposturesystem/auth-config.zod.ts:417, describe ofposturesystem/auth-config.zod.ts:581, TSDoc ofaudiencesystem/auth-config.zod.ts:601, describe ofaudienceapi/protocol.zod.ts:3373, describe ofAiModelsResponse.modelslistModels()fallback shape, which has no plan behind it)contracts/metadata-service.ts:393, TSDoc ofIMetadataService.listDiagnoseddata/seed-loader.zod.ts:265, TSDoc ofenvenvis theprod,devortestenum, resolved fromconfig.envorNODE_ENV(metadata-protocolSeedLoader.resolveEnvConfig)data/seed-loader.zod.ts:269, describe ofenvmigrations/entries/semantic/18.package-uninstall-environment-wide.ts:21, upgrade-guidereplacementorganizationId/allTenantskeys named. The entry id and itsacceptanceCriteriasay "environment-wide", and so does the runtime's own remedy for a write sent with an organizationsystem/environment-artifact.zod.ts:155, TSDoc of the consent-record keyGenerated outputs, by their generators only
content/docs/references/{api/protocol,security/permission,system/auth-config}.mdxcome frompnpm --filter @objectstack/spec gen:docs, aftercheck:generatednamedcheck:docsas the one stale artifact (1 of 14).packages/platform-objects/src/apps/translations/en.metadata-forms.generated.tscomes fromnode scripts/check-i18n-bundles.mjs --write, afterpnpm check:i18nreportedplatform-objects DRIFTED (1). One line moves, thepackageIdhelp text. Thezh-CN,ja-JPandes-ESbundles are untouched, and no key is added or dropped. Nopackages/platform-objectssource file is edited.Tests and pins
No test in the repository pins any of the old sentences:
git grep -Fover the tree finds each only in its source, the generated pages and released changelogs. The tombstone testpermission-set-managed-by-retirement.test.tspins the prescription with a regex whose.*spans the changed clause, so no pin needed re-truing.Changeset
.changeset/24406-spec-this-system-copy.mdis apatchfor@objectstack/specand@objectstack/platform-objects. Both publish: neither setsprivate, andsrc/**/*.zod.ts,distand the generated bundle ship.Verification
Every reading below is at HEAD
9fcf38b94b, the final commit, on base538f923cb9. Each exit code was captured before any pipe.pnpm --filter @objectstack/spec build, throughscripts/pm/os-verify-lock.sh:VERDICT command-exit 0.pnpm --filter @objectstack/spec check:generated: "✓ All 14 generated artifacts are up to date". Beforegen:docsit read "✗ 1 of 14 artifact(s) stale: content/docs/references/**".pnpm --filter @objectstack/spec test:Test Files 697 passed (697),Tests 21267 passed | 1 todo (21268), exit 0.pnpm --filter @objectstack/spec typecheck: exit 0.pnpm --filter @objectstack/platform-objects test:Test Files 77 passed (77),Tests 1184 passed (1184), exit 0.pnpm --filter @objectstack/platform-objects typecheck: exit 0, with "check:test-typecheck: OK". This was taken afterformula,lintandcorewere rebuilt with declarations.pnpm check:i18n: before the regeneration, exit 1 with "platform-objects DRIFTED (1)". After it, exit 0 with "OK (10 package(s) — all bundles in sync, no undeclared authoring keys)".node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 109 for this diff. The--ranreconciliation answers "109 derived famil(ies) accounted for — 107 run, 2 NOT-MEASURED (2 DERIVED from a recorded exit 3)". 106 exited 0.check:skill-examplesandcheck:dual-build-cjs-loadsexited 3 (PREREQUISITE NOT MET). They read the declarations or built output of packages outside this diff's build closure, such asclient-reactandstudio. CI's required jobs run them on a full build.check:dts-closureexited 1, naming 53 packages with no.d.ts. Every one of them is a package this worktree built JS-only (OS_SKIP_DTS=1) so the i18n generator's CLI could run, so the reading describes the local tree, not this diff. CI measures it on its own full build.Acceptance notes
These were read and are not this card's to move, being outside the census or outside this lane. Carrier for each: none.
packages/client/src/index.ts:6702, the TSDoc ofai.models(), andcontent/docs/api/plugin-endpoints.mdx:112, a hand-written page listed inscripts/docs-audit/handwritten-docs.json, still say "Models this environment offers". They mirror the describe this PR moves.packages/metadata/src/metadata-manager.ts:1024carries the same "this environment contains N items" rationale as theIMetadataServiceTSDoc, in a comment.security/permission-set-owner-binding.ts:103, on the build and register doors, says "environment-authored". It is outside the literal census, and "environment-authored" is the documented name for that class of metadata (content/docs/permissions/*.mdx,content/docs/deployment/install-modes.mdx). So it keeps its word, as "the environment catalog" did in the sibling PRs.api/protocol.zod.ts:3359("the environment's plan-filtered picker list") and:3371("Whether this is the environment default") are outside the literal census. They name the deployment's plan-scoped allowlist and its configured default.:3359citesADR-0028, which in this registry is the metadata-naming ADR, not a model allowlist. The record it means is probably a cloud one, which AGENTS.md cites ascloud ADR-NNNN.CHANGELOG.mdentries and consumed.changeset/pre/*files keep the old sentences. They are release-owned.Generated by Claude Code