Skip to content

docs(permissions): system-context.mdx is a hand-written per-site census of every isSystem read, edited 9 times in 30 days and held by a gate whose --fix is retired — generate it like tenant-audit-census.mdx #26442

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed. Maintainer, 2026-10-27, in the director summon chat, to the seat's check-retirement sweep and its offer of three cards, verbatim: 「同意」 (the sweep was ordered by 「排查一下还有哪些检查应该退役」). Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708, sweep record 6433263738). ⛔ Not a claim. Batch-of: 11 (director seat, 2026-10-27). Dedupe: 600 newest open + closed issues grepped for the check's file name → 0 unless stated. Part of #26431. Reader: domain:devx (docs gates) with domain:server for the symbol list.

Measured: scripts/check-system-context-census.mjs holds content/docs/permissions/system-context.mdx — one path#symbol row per isSystem read plus a headline count — to the code; its --fix is RETIRED ("refuses, exit 2 — nothing on the page is generated"), so every move of a symbol is a hand edit: 9 commits to the page in 30 days. Its sibling content/docs/permissions/tenant-audit-census.mdx is generated by scripts/tenant-audit-census.mjs --write and only drift-checked.

Wanted: generate the census table and the count from the tree (the tenant-audit pattern, --write + drift check), keeping the page's hand-written explanatory prose above the table; or, if the maintainer's reading is that the page is not read, retire the table and the gate and keep the prose. The lane proposes which on the PR. Acceptance: a symbol move needs no hand edit of the table; check-system-context-census is either a drift check over generated output or gone. Size: S. Clause-②: no. Metadata-protocol: none.

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: audit line · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T05:11Z

    ⛔ Not a claim, ⛔ not a dispatch. The filer's labels are read and kept; this is the triage line an execution seat needs before it claims.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 10 · 2026-10-27T05:21Z
    Session: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi9KWDJajrYvamoD37G6YZHjx
    Account: os-steve
    Branch: claude/project-thread-08uk9o (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)
    Worktree: objectstack-issue-26442
    Domain: domain:devx
    Seat: domain:devx#2 (seat post #20163)
    File surface: content/docs/permissions/system-context.mdx (hand-written explanatory prose kept above a generated census table) and scripts/check-system-context-census.mjs (becomes a --write generator plus drift check on the tenant-audit-census pattern, or retires with the table if the PR shows the page is not read; the PR proposes which). Its root check:* alias and lint.yml step only if the gate's name or invocation changes. ⛔ Per the triage line (6434336086), what the check proves is not weakened: the PR shows the drift check still reds when an isSystem read is added or moved without regenerating. The symbol list is domain:server's to confirm: the PR asks for that confirmation, it does not change any isSystem read. ⛔ No ui/ path. A lint.yml edit makes the PR Tier H: draft until a GOVERNED_APPROVERS approval
    Container & model: S, mode:thread, model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — maintainer-directed filing (sweep 6433263738), Part of #26431; triaged p2 at 6434336086
    Thread-read: 6434336086
    Premise: the gate's --fix is retired ("refuses, exit 2") and the page saw 9 hand edits in 30 days (the dev re-reads both first)
    Serial constraints cleared: #26441 (this seat, thread C) retires five other prose-count gates and does not touch check-system-context-census or system-context.mdx; #26466 (this seat) only links to system-context.mdx row 1b and does not edit it


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26442,
      "status": "pr_open",
      "branch": "claude/project-thread-08uk9o",
      "pr": 26522,
      "head": "4d2bbfe387c6f16301d5ce3017acccb13de51aa2",
      "session": "session_01ADHkmSHnQFa1PEAAXJ9hmc",
      "premise_still_valid": true,
      "proposal": "generate (not retire): the page is linked from 4 docs pages, quoted by 2 source comments, and #26466 links its row 1b",
      "summary": "Behaviour rows in content/docs/permissions/system-context.mdx now key their isSystem reads by bare symbol name in a Symbol column. Names held by two or more census files are pinned as path#symbol: isUserContextWrite, onInsert, onUpdate and start, on rows 12, 23c, 23d, 25, 26, 26b and 62. A generated ## Site register region (BEGIN/END GENERATED markers, 132 lines, no totals) lists path#symbol, read count and owning rows. scripts/check-system-context-census.mjs gains --write, which splices only that region, and check F (evaluateRegister). Check F covers drift, every read owned by a row, unique bare keys, and every row keying a read. --fix still exits 2 and names --write. Checks A-E are unchanged. No isSystem read point was changed.",
      "weakening_check": "Strictly stronger. On origin/main 00a4593ad, one extra isSystem read inside buildDriverOptions exits 0 (the declared precision gap); on this branch it exits 1 with [register-drift]. Moving isPerfDisclosurePrincipal to a new file exits 1 ([register-drift], [unresolved-symbol], [file-without-a-row], [anchor-is-not-a-read-site]); --write then changes one register line, leaves row 13 untouched, and the gate is green. A real instance: main moved resolveOneHopRelated during the card, and the merge needed one --write line (4d2bbfe38).",
      "tests": "check-system-context-census --self-test: all cases passed. New batteries: SITE REGISTER (floor 12) and THE REAL PAGE (floor 5). The --fix battery is rewritten as only --write writes (floor 5). The precision battery adds a register-drift case (floor 3). Roster floor 16 -> 18. Gate on HEAD: OK, 153 sites / 22 packages / 83 files / 132 symbols, 141 keys in 85 rows, register matches. eslint --no-inline-config on the script: exit 0.",
      "gates": {
        "head": "4d2bbfe38",
        "derived": 64,
        "run": 64,
        "not_measured": 0,
        "unrun": 0,
        "reconciliation": "64 derived, 64 run, 0 NOT-MEASURED, 0 UNRUN (a DERIVED zero)",
        "reruns": "spec check:docs (exit 1: json-schema older than src after the main merge) and check:skill-examples (exit 3) both exit 0 after pnpm --filter @objectstack/spec build under os-verify-lock",
        "pm_dispatch_gates": "exit 0, fast tier 1935 cases, 394s",
        "ci_not_measured_locally": ["Build Docs", "Plan Test Core shards", "type-check lanes"]
      },
      "line_budget": {"changed_lines": 1213, "added": 1038, "removed": 175, "files": 2, "threshold": 3000, "under": true},
      "files_changed": [
        "content/docs/permissions/system-context.mdx",
        "scripts/check-system-context-census.mjs"
      ],
      "tier": "not H (no governed surface, no package.json, no lint.yml; alias and invocation unchanged)",
      "changeset": "skip-changeset (docs + repo-internal gate)",
      "clause_2": "no",
      "metadata_protocol": "none",
      "deviations": [],
      "dogfood_battery": "n/a",
      "mcp_calls": {"issue_read": 3, "pull_request_read": 1, "subscribe_pr_activity": 1, "github_writes": 0},
      "api_writes": {"git_push_commits": 4, "relay_pr_create": 1, "relay_comment": 1},
      "open_questions": [
        "domain:server to confirm the row Symbol list and the register Rows column (asked in the PR body)"
      ],
      "out_of_scope_findings": [
        ".gitattributes L97-108 says nothing on system-context.mdx is generated, which is now stale",
        "scripts/regen-artifacts.mjs NOT_DRIVER_MANAGED content/docs/permissions/** reason says 'plain prose now', which is now stale. It also prescribes os-regen routing for any generated page, which tenant-audit-census.mdx does not follow either",
        "scripts/git-merge-regen.mjs MIXED_COMPARATORS comment describes the retired --fix rewriting anchors (stale before this PR)"
      ]
    }
  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Released by devx seat 2 (#20163). PR #26522 merged as 42ec9519; its two files on main match the reviewed head 4d2bbfe3 line for line. The three stale comments the card thread reported (6435295033, out_of_scope_findings) are filed as #26535 (p3).


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:devxpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions