Skip to content

C3 #15204 docs sweep: ten content/docs pages still describe the four retired catalog row objects; draft now, land after stage 8 #22976

Closed

Description

@objectstack-fleet

Part of #15204

Handed out of the #15194 epic subtree to the domain:devx lane (content/docs/**). The epic PM (session_01Rerax7QTjKMPCUZxQUtPFR, marchtian) did this at the maintainer's request on 2026-10-12, to spread the remaining work across accounts. The work is priority:p1.

What

The stage-8 developer measured 10 hand-written pages that still describe the four catalog row objects (sys_position, sys_permission_set, sys_position_permission_set and sys_capability) as stored tables, or describe the projector and write-throughs that stage 8 removes. The measurement is in the stage-8 report 6118994290, "carrier: docs-sweep dispatch". The 4 auto-generated reference pages are regenerated inside S8 itself.

The pages:

  • content/docs/concepts/metadata-lifecycle.mdx
  • content/docs/data-modeling/objects.mdx
  • content/docs/deployment/environment-variables.mdx
  • content/docs/permissions/authorization.mdx
  • content/docs/permissions/capabilities.mdx
  • content/docs/permissions/delegated-administration.mdx
  • content/docs/permissions/permission-sets.mdx
  • content/docs/permissions/positions.mdx
  • content/docs/permissions/system-context.mdx (since chore(docs,scripts): system-context page states no census totals; the census gate keeps the register #22950 it carries no census totals; keep its register rows exact)
  • content/docs/protocol/backward-compatibility.mdx

Rules


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Held, not dispatched yet · domain:devx seat 1 · os-warren · session_012yK1ddAdAqfzwigRHZq3r2 · 2026-10-12T08:18Z. ⛔ Not a claim, ⛔ no label change: the card stays pm:queue.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    S8 on main · domain:engine seat 2 · session_01ADzJtzYTLUfgrRZHxkagkX · 2026-10-13T14:47Z.

    C3 #15204 stage 8 landed: S8-T (PR #22962 → 150da61aa5) and S8 (PR #23222 → 66949b7729). The four security-catalog row objects (sys_position, sys_permission_set, sys_position_permission_set, sys_capability) are unregistered on main, and their tables and rows stay for C7b's ceremony. The projector, both data-door write-throughs, the position backfill and the walled catalog data door are unwired; their modules are still in the tree. The landing record is on #23056.

  3. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Hold lifted · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T15:58Z. ⛔ Not a claim. The card stays pm:queue.

  4. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 16 (serial) · domain:devx seat 1 · 2026-10-13T18:24Z · handed to this lane by the #15194 epic PM at the maintainer's request (card body), priority:p1; hold lifted 6149668257
    Session: session_012zwsLMxQBwHUYJgPyrpEvx
    Account: zhuangjianguo (the seat's linked user, as GET /user reports it; this card's assignee as of this act)
    Branch: claude/issue-22976-catalog-row-docs-sweep
    Worktree: objectstack-issue-22976
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: the card's 10 pages, re-measured against main at dispatch:

    • concepts/metadata-lifecycle.mdx
    • data-modeling/objects.mdx
    • deployment/environment-variables.mdx
    • permissions/{authorization,capabilities,delegated-administration,permission-sets,positions,system-context}.mdx
    • protocol/backward-compatibility.mdx

    Pages the re-measure adds or drops are named in the PR, with their evidence.

    Container & model: M, mode:subagent, model: opus. dispatch-gates --tier on content/docs/** gives no path-derived mandate.
    Clause-②: no (docs)
    Responsibility:

  5. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 22976,
      "status": "done",
      "branch": "claude/issue-22976-catalog-row-docs-sweep",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/23322",
      "session": "session_012zwsLMxQBwHUYJgPyrpEvx",
      "premise_still_valid": true,
      "summary": "Draft PR #23322 (head 260137da82, base main 404fc477e5; 9 files, +149/-136, docs only) rewrites 9 of the card's 10 pages. They now describe the security catalog that main serves: positions, permission sets and capabilities are registry definitions read by name, assignments store names, and Setup writes go through the metadata door. That door requires manage_metadata, and under group or isolated only the platform operator may write. The pages no longer describe the four retired row objects, the ADR-0094 projector, the data-door write-through, binding rows or the row-object Setup pages as live. Every rewrite cites source at main 404fc477e5, and the PR body has the per-mention verdict table. Re-measure on main: the four-name grep over content/docs (releases and references excluded) matches exactly the card's 10 pages, and the removed-mechanism grep adds no page. protocol/backward-compatibility.mdx has one mention, which is correct release history, so it is unchanged. Correct retired sentences ('no row is written') are kept. Measured against the ADR text: D2/D3's original reading that Setup under single needs no Studio capability is withdrawn in the ADR's own 2026-10-10 note (#22621). main requires manage_metadata (meta-write-capability.ts:82), and the pages follow main. Shared pages: #23303's hunks on system-context and backward-compatibility are untouched. #23231 has a branch and no PR; its hunks on capabilities.mdx (243-249), permission-sets.mdx (354-360) and system-context row 55b are left alone. Row 55b on main still names the data door on the three retired objects, and #23231's branch rewrites that row. The worktree was removed after the PR opened.",
      "tests": "Docs only; no package build is owed. Derived gates on head 260137da82: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 44 commands, and all 44 exited 0. --ran reconciles: '44 derived famil(ies) accounted for — 44 run, 0 NOT-MEASURED (a DERIVED zero — all 44 recorded an exit code and none of them is 3)'. Selected verdicts: check:doc-anchors '499 internal #fragment link(s) across 420 source file(s) all resolve'; check:system-context-census 'OK — 133 elevation read sites ... the page cites 126 symbol(s) against 126 required'; check:doc-authoring, check:corpus-claim-drift, check:role-word, check:overlay-whitelist-table and check:nul-bytes green; spec check:docs '226 generated files in sync'. check:docs-transcript-drift and spec check:skill-examples first exited 3 (PREREQUISITE NOT MET: lint and client-react not built). Both were re-run after lock-held builds of '@objectstack/lint...' (os-verify-lock VERDICT command-exit 0, 153s) and '@objectstack/client-react...' (VERDICT command-exit 0, 433s), and both then exited 0 ('4 declared transcript value(s) ... equal'; '263 prose examples type-check'). Link check: lychee 0.24.2 with check-links.yml's argv (--offline --root-dir content --fallback-extensions mdx,md --config lychee.toml over the four globs) reported '2460 Total ... 0 Errors'; node scripts/check-adr-links.mjs reported 730 links resolve. MDX compile: @mdx-js/mdx 3.1.1 with remark-gfm compiled 9/9 edited pages; positive control: an unclosed Callout fails with 'Expected a closing tag'. skip-changeset: of the 71 non-private package.json manifests, none has a files[] entry naming content/; control: the same scan for 'liveness' matches packages/spec. No ablation or reverse verification applies (no code or type change). CI on #23322: not awaited.",
      "mcp_calls": "0",
      "api_writes": "3 — (1) pr_create through the fleet-write relay, request fw-20261013T190510Z-b93089 (run 38452027113, success). It created #23322 as draft; the relay read the body back byte-identical (13768/13768) and the assignee as zhuangjianguo; an independent REST GET agreed. (2) label-write --add skip-changeset through the relay, request fw-20261013T190605Z-2d32cb (run 38452148889, success). Read-back: documentation, size/m, skip-changeset. (3) This os-dev-report comment on #22976 through post-stamped and the relay. git push is not a REST write: the empty-branch probe and one commit.",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: C3 #15204 8-post (family closure) · adminScope.manageBindings and adminScope.authorEnvironmentSets are spec-declared (permission.zod.ts:692-694), but their primary gates target sys_position_permission_set and sys_permission_set, which main no longer registers (delegated-admin-gate.ts:131-149, 396-405). Only the strict-containment comparison still reads them (:993-1048). The showcase still declares both as false (examples/app-showcase/src/security/permission-sets.ts:402-403). The adminScope evidence in the permission liveness row cites the two retired objects. Docs now say this honestly; the enforce-or-remove disposition belongs to the 8-post stage · dedupe words: manageBindings, authorEnvironmentSets, adminScope inert, delegated-admin-gate retired objects · noted, not filed",
        "carrier: C3 #15204 8-post · spec describe and object description residue citing the retired objects: permission.zod.ts packageId and managedBy ('Persisted on sys_permission_set records', bootstrapDeclaredPermissions) and sys-user-position.object.ts position ('references sys_position.name'). The generated references/api/protocol.mdx (3 mentions) and references/identity/eval-user.mdx (2) render the same family · noted, not filed",
        "carrier: C3 #15204 stage 7a · createPermissionSetWriteThrough and registerPermissionSetProjection are still exported from the @objectstack/plugin-security entry (index.ts:79-80), but nothing in the tree registers them; the module goes with 7a. system-context row 11 now says so · noted, not filed",
        "carrier: C3 #15204 C7b · reads of legacy ids on the retired objects throw OBJECT_NOT_FOUND (engine.ts:10276), are caught, and answer no rows: auto-org-admin-grant.ts resolvePermissionSetIdsForName (:343-356, through tryFind :154), delegated-admin-gate.ts set and position lookups by id (:1317, :1330), and the grant-name backfill. The S8 report already lists these as C7b residue; re-confirmed on 404fc477e5 · noted, not filed",
        "carrier: #23231 (branch claude/issue-23231-walled-environment-metadata-writes, no PR yet) · on main, system-context.mdx row 55b still lists 'the data door on sys_position, sys_permission_set and sys_capability' among the live refusal sites. #23231's branch rewrites the row and scopes that clause to 'while those objects are registered', so it was left to that PR · noted, not filed",
        "carrier: 承接者:无 · delegated-administration.mdx (the invitation role cap paragraph) says 'sys_member is not one of the gate's governed objects', but GOVERNED_OBJECTS lists it (delegated-admin-gate.ts:148). This is unrelated to the catalog objects; it is noted in the PR's Acceptance notes and nothing else",
        "carrier: 承接者:无 · permissions/administrator-guide.mdx is not added to the page list: it names none of the four objects and none of the removed mechanisms. Its Setup walkthrough (a position's related list, the Assigned Users panel) was not checked against the console at the pin. NOT MEASURED; noted in the PR's Acceptance notes only"
      ]
    }

    Generated by Claude Code

  6. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT · PR #23322 (draft, head 260137da82, Fixes #22976) · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T19:11Z

    I checked this on GitHub and against source on main (87e902dcbb), not on the dev report alone. content/docs/** is reviewed by the dispatching seat's ACCEPT, per contract-review.md, so I read the diff sentence by sentence.

  7. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #23322 → 4d4040ccb6 (Fixes #22976) · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T19:31Z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions