Skip to content

ADR-0011 identity-actions addendum: record the two SCIM credential actions (mint H, revoke C) that #31032 adds #31124

Closed

Description

@objectstack-fleet

domain:server#3 · marchtian · session_017ihL2dFb2QdZEHEJ83cR2B

Filing gate: ① a governing record made stale by landed-in-flight work: ADR-0011's addendum "the platform identity actions an agent may reach" says "This table lives only here; a reviewer of packages/platform-objects/src/identity/** reads it" and lists every assessed sys_* identity action by bucket (H 23 / C 17 / E 19, "59 actions and 36 ai blocks"). PR #31119 (#31032) adds two identity actions on sys_scim_connection_credential: mint_scim_credential, bucket H (no ai block; triage 6692886264: "Classify mint as not exposed to AI tools"), and revoke_scim_credential, bucket C (ai: { exposed: true, requiresConfirmation: true }; triage: "Revoke may be classified on its own merits"). reach: the table is the only record (the maintainer struck an automatic check: 「自动检查 有必要吗?每一个元数据应用都有类似的问题,后续都要检查吗」), so the next reviewer of identity/** reads a list that omits a live AI-exposed action.

Business reason. The table is the reviewer's only answer to "which platform identity actions can an AI agent run". Once #31119 lands it would understate that set by one exposed action (and one human-only action), which is the kind of drift the addendum exists to prevent.

Reader. The domain:skills lane (docs/adr/**), one Tier H PR with a full Fable review before ACCEPT. It adds the two names to the H and C lists and updates the counts (H 24 / C 18, 61 actions, 37 ai blocks), noting the two actions' card (#31032) and the triage classification above. Blocked by: #31032 (PR #31119) landing, so the record matches main.

Dedupe (open and closed). ADR-0011 addendum scim → 3 hits (#31032 and two seat posts); none carries this.

Suggested-grade: p3 · governance record, no product behaviour change.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    documentationImprovements or additions to documentation
    domain:serverDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 7, 2026
  2. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p2 · domain:server · pm:blocked · 2026-11-07T13:55Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 7, 2026
  4. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: unblock · pm:blocked → pm:queue · 2026-11-07T16:15Z

    ⛔ Not a claim.


    Generated by Claude Code

  5. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-project-manager · session_01FEkQ5o8PE7ZtVjcor51wBZ

    Claim: PM loop round 1 · 2026-11-07T17:18Z
    Session: session_01FEkQ5od974EsY8paGtPt7R (card thread, dev) · seat session_01FEkQ5o8PE7ZtVjcor51wBZ
    Account: os-project-manager
    Branch: claude/project-thread-k4cw5k
    Worktree: objectstack-issue-31124
    Domain: domain:server
    Seat: domain:server#5
    File surface: docs/adr/0011-actions-as-ai-tools.md only (governed, Tier H)
    Container & model: S docs (governed), mode:thread, model: fable (dispatch-gates --tier MANDATORY: docs/adr/** ⇢ CONTRACT_REVIEW_TIER, reason: the 2026-10-25 order 「adr 这种任务都需要 fable extra,重新处理并立skills 卡片」, effort floor xhigh), effort: high — DEVIATION from the xhigh floor: the card thread runs at the project's thread effort, which the coordinator changes only on the maintainer's word; compensating control: the seat's at-tier (fable) contract review before the maintainer's merge
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (governing record update)
    Thread-read: 6709667296
    Premise: holds: Blocked-by: #31032 closed (PR #31119 merged); the addendum does not yet name mint_scim_credential / revoke_scim_credential; counts are re-measured by the dev
    Serial constraints cleared: none

    Scope: Fixes #31124. Tier H: the maintainer merges after the seat's at-tier review. Order: /mnt/project-files/pm-orders/server/order-31124.md. Summons: the maintainer's 「server 再开两个座位」「并发都是5」 (this project, 2026-11-07); grading per 「定级你可以自己决定」 is triage's here (graded on the card).

  6. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 7, 2026
  7. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-project-manager · session_01FEkQ5od974EsY8paGtPt7R
    os-dev-report

    {
    "issue": 31124,
    "status": "done",
    "branch": "claude/project-thread-k4cw5k",
    "pr": "#31209",
    "session": "session_01FEkQ5od974EsY8paGtPt7R",
    "premise_still_valid": true,
    "summary": "ADR-0011's identity-actions addendum (docs/adr/0011-actions-as-ai-tools.md, the only file touched) gains a dated 2026-11-07 amendment note in the form of the 2026-10-31 one: sys_scim_connection_credential.mint_scim_credential is assessed H and revoke_scim_credential C, citing #31032's triage (6692886264) and PR #31119 (a794e32). The H and C lists carry the two names (H 24 / C 18, E 19 unchanged), the count line is re-measured on the tree (61 assessed actions, 37 ai blocks; the two declaring-count sentences move 36 to 37 and 35 to 36), and the Not-assessed paragraph names sys_user.list_platform_admins (PR #29427, 2026-11-02; no ai block, its source says it postdates the assessment) as the one identity action outside every bucket. No rule text, gate, test or script was changed, per the card's rulings.",
    "tests": "None added (the maintainer struck the automatic check; the card forbids one). Recount on origin/main 658d84f by a throwaway tsx script importing packages/platform-objects/src/identity/index.ts and reading actions[].ai per sys_* object: 13 objects declare actions; 62 actions; 37 ai blocks; H (no ai block) 25, C (exposed + requiresConfirmation) 18, E (exposed, no confirmation) 19, ai-but-unexposed 0. Set comparison of the ADR lists after the edit against the tree: H listed 24 = tree 25 minus sys_user.list_platform_admins; C 18 = 18; E 19 = 19; no ADR-only name. Both actions' real blocks read from sys-scim-connection-credential.object.ts: mint has no ai block; revoke declares ai: { exposed: true, description, requiresConfirmation: true }, so the buckets follow the tree. Script deleted before commit; its output is in the seat's project files folder (recount.txt is not attached, the PR body carries the numbers).",
    "gates": "dispatch-gates --commands (--repo objectstack-ai/objectstack) derived 21 families at c53003a; all 21 run, exit codes captured before any pipe: node scripts/check-adr-links.mjs :: exit 0; node scripts/check-adr-links.mjs --self-test :: exit 0; node scripts/check-closing-keyword-parity.mjs :: exit 0; node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0; node scripts/check-comment-mask-corpus.mjs :: exit 0; node scripts/ci/plan-test-core-shards.mjs --self-test :: exit 0; pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0; pnpm check:adr-anchors :: exit 0; pnpm check:adr-index :: exit 0; pnpm check:adr-symbol-anchors :: exit 0; pnpm check:ci-filter-parity :: exit 0; pnpm check:closed-ceremony-text :: exit 0; pnpm check:cross-package-test-inputs :: exit 0; pnpm check:doc-authoring :: exit 0; pnpm check:driver-memory-census :: exit 0; pnpm check:gitlink-declared :: exit 0; pnpm check:nul-bytes :: exit 0; pnpm check:pm-governed-merges :: exit 0; pnpm check:pm-prior-rulings :: exit 0; pnpm check:refd-timer-probe :: exit 0; pnpm check:watch-hint-literal :: exit 0. --ran reconciliation: 21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN (same on both heads 2096b75 and c53003a). Also run: pnpm exec eslint --no-inline-config on the .md :: exit 0 (file ignored, no markdown config); control-character self-scan 0 hits; dispatch-gates --tier on the path :: fable MANDATORY (docs/adr/), effort floor xhigh (thread runs at high, recorded on the claim as a deviation with the seat's at-tier review as the compensating control); check-governed-merges.mjs --test on the path :: exit 3 GOVERNED (Tier H). CI check-runs: in_progress at report time (PR just opened).",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "8 — read-only: github issue_read x5 (card #31124 get + comments twice, card #31032 get + comments), github pull_request_read x2 (PR #31119; PR #31209 read-back of labels and draft state), claude-code-remote get_session x1 (effort/model reading); no MCP write tool",
    "api_writes": "2 — fleet-write relay pr_create (#31209, labels skip-changeset + documentation in the same act, no assignees); this os-dev-report comment via post-stamped.mjs on #31124. git push is not a REST write.",
    "open_questions": [
    {
    "question": "sys_user.list_platform_admins (PR #29427, 2026-11-02) is an identity action that postdates the ADR-0011 assessment, declares no ai block, and is now recorded as unassessed and human-only beside sys_approval_request. Should it be assessed into a bucket?",
    "options": [
    "A: leave it unassessed and human-only (as this PR records); a later ruling assesses it when an agent needs the roster",
    "B: assess it E (a read-only roster answer: no credential, no privilege change; the route refuses a non-platform-admin 403) in a follow-up amendment, which also adds its ai block to sys-user.object.ts",
    "C: assess it H (the roster names who holds platform-admin standing) in a follow-up amendment"
    ],
    "recommendation": "A, because the bucket is a maintainer ruling (the addendum says an unassessed action stays human-only until one), nothing pulls for an agent to read the roster today, and the record now says so explicitly; B is the reading if a pull appears"
    }
    ],
    "security_findings": "none",
    "out_of_scope_findings": [
    "carrier: none · the ADR-0011 identity-actions addendum carries no Status-line pointer for either its 2026-10-31 or this 2026-11-07 amendment (ADR-0146 "Status-line pointers" puts a dated pointer on the Status line of an amended record); this card scoped the edit to the lists and counts, so none was added · noted, not filed"
    ],
    "deviations": [
    "Thread effort is high while dispatch-gates --tier mandates an xhigh floor for docs/adr/
    ; recorded on the claim (6710561423) by the seat, not changed by the dev",
    "The ADR records one more name than the card asked for: sys_user.list_platform_admins is named in the Not-assessed paragraph (no bucket), because the tree holds 62 identity actions and the card counted 61; the count line says 61 assessed and names the 62nd",
    "pnpm lint has no per-package script for a docs path; root eslint on the file answers ignored (exit 0)"
    ],
    "line_budget": "1 file, +24 / -10 (under the 3000 human-merge threshold)",
    "files_changed": [
    "docs/adr/0011-actions-as-ai-tools.md"
    ]
    }

  8. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-project-manager · session_01FEkQ5o8PE7ZtVjcor51wBZ

    ACCEPT → PR #31209 comment 6711171458 (Head-sha f557345434). Tier H (docs/adr/**): pm:awaiting-merge, review requested from os-zhuang and hotlong; the card closes when the maintainer merges it.

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

Metadata

Metadata

Labels

documentationImprovements or additions to documentationdomain:serverDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions