Skip to content

docs(adr): the 19 stale Proposed records (status date before 2026-07-26) are ruled by the maintainer in four batches of five — carrier for the rulings and the status-line PRs #26553

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed — ruling A on #26076 (comment 6417460375, batch #398 item 3, maintainer 「其他同意」): "The 19 Proposed records older than 2026-07-26 are not relabelled by the PR: the PR lists them with an implementation reading each, and this seat presents them to the maintainer in ruling batches of five." PR #26503 (merged 2026-10-27T06:55Z) carries that list. Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). ⛔ Not a claim. Reader: the director seat (presents and records the rulings here) and, per batch, whoever opens the status-line PR (docs/adr/**, Tier H, lands by the maintainer's approval; authoring is open to every seat). Dedupe: #26076 (closed, the ruling), PR #26503 (the list) — this card is their carrier, not a duplicate; 600 newest issues grepped stale Proposed|Proposed ADR → 0 other.

维护者速读

#26076 你裁了 A:索引生成、拼写统一、重号并列,19 份状态还写着 Proposed、日期早于 2026-07-26 的记录不由席位改标,由你逐份裁。PR #26503 已落地并给每份附了实现读数。本卡收四批裁决(每批五份),每批裁完由席位开一个只改状态行的 docs/adr/** PR,你批准落地。每份只有四种结局:Accepted(已实现或按实现程度接受,状态行写明待办)、Deferred(留作提案,不排期)、Withdrawn(不做了)、Superseded(被哪份取代)。

The 19, in the order PR #26503 lists them

Batch 1: ADR-0010 (metadata-protection-model) · ADR-0019 (app-as-consumer-unit) · ADR-0022 · ADR-0026 · ADR-0027.
Batch 2: ADR-0038 · ADR-0046 · ADR-0050 · ADR-0051 · ADR-0052.
Batch 3: ADR-0063 · ADR-0064 · ADR-0071 · ADR-0072 · ADR-0073.
Batch 4: ADR-0077 · ADR-0080 · ADR-0096 · ADR-0025.

Done-when

  • Four ruling comments on this card (one per batch, Ruling: first line, letters per record, the maintainer's words verbatim).
  • Four status-line PRs merged (or fewer, if the maintainer rules several batches before a PR is cut); node scripts/adr-index.mjs --check green after each.
  • docs/adr/README.md shows no Proposed row with a status date before 2026-07-26.

Size: XS per PR (status lines only; a Superseded ruling adds the cross-reference line the index reads). Clause-②: no. Metadata-protocol: none.

Related

#26076 (ruling A); PR #26503 (index + the 19 readings); AGENTS.md Prime Directive 13 (numbers never reassigned) and 14 (Tier H).

Activity

  1. added
    documentationImprovements or additions to documentation
    domain:specDomain lane — seat card indexed by label:pm:seat
    pm:awaiting-maintainerAwaiting a manual maintainer action — ruling already given; no dispatch, no machine exit
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 27, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #410 · 2026-10-27T08:04Z

    Director seat, summon #51 continuation (ledger objectstack#12708). Batch 1 of the four the #26076 ruling A ordered: ADR-0010 (metadata-protection-model) · ADR-0019 (app-as-consumer-unit) · ADR-0022 · ADR-0026 · ADR-0027, presented to the maintainer in batch #410 with PR #26503's implementation readings re-read on origin/main f48aa451. Each record takes one of four letters: A Accepted (status line states what landed and what is pending) · B Deferred (kept as a proposal, no work planned) · C Withdrawn · D Superseded by a named record. The ruling is recorded on this card; the five status lines land in one docs/adr/** PR (Tier H, the maintainer approves). Seat readings beyond the PR's counts:

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling: batch #410 · ADR batch 1 of 4 · 0010 A · 0019 A · 0022 A · 0026 B · 0027 A (narrowed) · maintainer 「同意」 2026-10-27T10:03Z

    Recorded by the director seat (summon #51 continuation, session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). The maintainer answered batch #410 with 「同意」 — every seat letter. Brief 6436780170. The five status lines below land in one docs/adr/** PR opened by this seat (Tier H, the maintainer approves); the keyword is the first word after **Status**: as scripts/adr-index.mjs reads it.

    1. ADR-0010 metadata-protection-model → Accepted. The four-layer model is live (packages/spec/src/shared/protection.zod.ts "ADR-0010 §3.7 Phase 4.3"; allowEnvironmentOverlay, ADR-0131 C5/D6; readers in metadata-manager, registry, plugin). Status line: Accepted — Phases 1, 4 and 4.3 implemented; Phase 2 (L4 frozen paths + provenance), Phase 3 (L2 + RBAC unlock) and Phase 5 (solution stack) pending; the spec lane re-reads Phases 2–3 on the PR and corrects the line if they landed.
    2. ADR-0019 app-as-consumer-unit → Accepted, narrowed to what landed. CONSUMER_INSTALLABLE_TYPES / isConsumerInstallable and the MarketplaceListingSchema.packageType narrowing are in spec; pending: the Console marketplace filling packageType from the manifest, and HotCRM folded to one App (D3/D4). The 90 bare-number citations mostly name the twin 0019-approval-as-flow-node.
    3. ADR-0022 connectors-vs-messaging-channels → Accepted. The routing decision is in force (GET /automation/connectors, service-messaging, connector-slack); §3 shared transport (the Slack channel delegating to the Slack connector) stays pending on the line.
    4. ADR-0026 client-ui-plugin-distribution → Deferred. No implementation in packages/ or ui/; the maintainer ruled on app-shell: a published library that is 66% Console product surface — retire the 67 zero-reference exports now, decide the split, and fold the second i18n table into @object-ui/i18n #25922 (6431234244) that a customisable console has no business demand for now. Restart condition on the line: a third-party UI plugin is wanted (bundled in an App, or operator-provisioned). Not Withdrawn — the maintainer's word was 「暂时」.
    5. ADR-0027 metadata-authoring-lifecycle → Accepted, narrowed. M1–M2 (staging, publish seal) are implemented in the rest/runtime draft → publish path (meta-item-history-routes.ts:548, meta.ts:1238 cite (E)(5)), not as the @objectstack/metadata-authoring package the record names (no such package exists); M3 promotion + approval gates, M4 advanced migration and the rollback executor are not built.

    Execution: this seat opens the status-line PR now (five lines, skip-changeset, node scripts/adr-index.mjs --check green), requests the maintainer's review, and records the merge here. Batch 2 (ADR-0038 · 0046 · 0050 · 0051 · 0052) follows when the maintainer next summons. Ruling-ref: names this comment. Clause-②: no, Metadata-protocol: none.

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ADR batch 1 landed · director seat · 2026-10-27T10:29Z

    PR #26607 merged 2026-10-27T10:29Z by the maintainer's own strokes (os-zhuang: APPROVED, ready, auto-merge, queue). The five status lines of ruling 6438940264 are on main: ADR-0010, 0019, 0022, 0027 Accepted (0019 and 0027 narrowed to what landed), ADR-0026 Deferred with its restart condition; docs/adr/README.md regenerated (Proposed 22 → 17). Batch 2 (ADR-0038 · 0046 · 0050 · 0051 · 0052) is presented at the maintainer's next summon. ⛔ Not a claim.

  5. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #417 · 2026-10-28T02:16Z

    Director seat, summon #51 continuation (ledger objectstack#12708). Batch 2 of the four the #26076 ruling A ordered: ADR-0038 · ADR-0046 · ADR-0050 · ADR-0051 · ADR-0052, presented to the maintainer in batch #417 with PR #26503's readings (rows 6–10) re-read on origin/main 5e99bd936c (objectstack) and ce05c91 (cloud). Letters as in batch 1: A Accepted (status line names what is pending), B Deferred (restart condition on the line), C Withdrawn, D Superseded.

  6. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling: batch #417 · ADR batch 2 of 4 · 0038 A · 0046 A · 0051 A · 0052 A (narrowed) · 0050 set aside → #27032 · maintainer 「ADR-0050 表单布局 vs 呈现,单独立卡交维护者处理,其他同意」 2026-10-28T02:24Z

    Recorded by the director seat (summon #51 continuation, session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). Brief 6458849517. The maintainer accepted the seat's letter on four records and took ADR-0050 for their own ruling on a separate card. The four status lines below land in one docs/adr/** PR opened by this seat (Tier H, the maintainer approves); the keyword is the first word after **Status**: as scripts/adr-index.mjs reads it; ADR-0050's line is untouched in that PR.

    1. ADR-0038 build-verification-loop → Accepted. L1 graph lint and L4 verify_build live in cloud service-ai-studio (verify/graph-lint.ts, plugin.ts:1061), L3 runtime probes in the framework (metadata-protocol/src/build-probes.ts, RuntimeBuildIssue, probe report in protocol.zod.ts:1578), L5 golden-prompt evals (eval-golden-prompts.yml, ai_eval_runs). Pending on the line: L2 renderability contract (dataset compile only).
    2. ADR-0046 package-docs-as-metadata → Accepted. P1 (DocSchema, collect-docs.ts, kernel doc), P2 (console portal, help menu, Studio doc editor), P3a/P3b (BookSchema, GET /meta/book/:name/tree, §6.7 audience gate in meta-item-read-gate.ts) implemented. Pending: P3c (Studio drag-edit, anonymous apps/docs library) and P3d (taxonomy, book search, tags).
    3. ADR-0050 form-layout-vs-presentation → set aside, maintainer's own ruling on [Decision] ADR-0050 form layout vs presentation — the maintainer's own call: schedule the spec-major narrowing of FormView.type to layout only, defer it, or withdraw the record (set aside from ADR batch 2 on #26553) #27032 (needs-user-decision + pm:awaiting-maintainer, as [Decision] Where the shared Company Core ontology lives: an app package in the objectstack monorepo, its own repository, platform-objects sys_* objects, or no shared core? #26582). Not presented again by this seat. Its status line stays Proposed (amended 2026-10-20) until that ruling.
    4. ADR-0051 inline-metadata-views-in-docs → Accepted. P1–P3 implemented: the metadata fence lifts to element:metadata_viewer (plugin-markdown/src/MarkdownImpl.tsx:120), the viewer renders state_machine / flow / permission (metadata-viewer.tsx:177/:378/:450), publish lint with liveness checks (collect-docs.ts lintMetadataEmbeds). The old "no runtime rendering" sentence leaves the line; object embeds and the general objectui fence stay deferred.
    5. ADR-0052 audit-is-not-the-activity-feed → Accepted, narrowed. §5b (trackHistory + milestone templates, object.zod.ts:2868), P0b (sys_attachment, sys_notification no longer registered by plugin-audit — audit-plugin.ts:274), P1 (sys_comment canonical, reactions, service-feed retired) implemented. Pending on the line: P2 domain event spine — audit-writers.ts:254 still dual-writes sys_audit_log and sys_activity; sys_activity / sys_comment still live in plugin-audit.

    Execution: this seat opens the status-line PR now (four lines + regenerated docs/adr/README.md, skip-changeset, node scripts/adr-index.mjs --check green), requests the maintainer's review through the relay, and records the merge here. Batch 3 (ADR-0063 · 0064 · 0071 · 0072 · 0073) follows when the maintainer next summons. Ruling-ref: names this comment. Clause-②: no, Metadata-protocol: none.

  7. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #418 · 2026-10-28T03:37Z

    Director seat, summon #51 continuation (ledger objectstack#12708). Batch 3 of the four the #26076 ruling A ordered: ADR-0063 · ADR-0064 · ADR-0071 · ADR-0072 · ADR-0073, presented to the maintainer in batch #418 with PR #26503's readings (rows 11–15) re-read on origin/main 3230bdbf76 (objectstack) and ce2ed26 (cloud). Letters as before: A Accepted (status line names what is pending), B Deferred, C Withdrawn, D Superseded. Batch 2's docs PR #27034 is approved and in the merge queue; its contract-review corrections are held as a follow-up commit.

  8. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling: batch #418 · ADR batch 3 of 4 · 0063 A · 0064 A · 0071 A · 0072 A (narrowed) · 0073 A (narrowed) · maintainer 「同意」 2026-10-28T03:40Z

    Recorded by the director seat (summon #51 continuation, session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). The maintainer answered batch #418 with 「同意」 — every seat letter. Brief 6460032147. The five status lines below land in one docs/adr/** PR opened by this seat together with the batch 2 contract-review corrections (ADR-0038 L5 wording, ADR-0046 §5 wording, ADR-0052 §6 P0b paragraph) held since PR #27034 entered the merge queue; the PR opens right after #27034 merges (Tier H, the maintainer approves). The keyword is the first word after **Status**: as scripts/adr-index.mjs reads it.

    1. ADR-0063 two-kernel-agents → Accepted. Framework: skill.surface enum (packages/spec/src/ai/skill.zod.ts:327), the agent type allowRuntimeCreate: false (metadata-plugin.zod.ts:1330, tenant agents withdrawn). Cloud service-ai: ask canonical with data_chat and metadata_assistant → build aliases (agents/agent-aliases.ts), the platform-ownership gate on the runtime catalog (agent-runtime.ts:566/:633), decline-and-redirect to the Builder (:354); objectui binds the surface. Nothing pending on the line.
    2. ADR-0064 tool-scoping-to-agent → Accepted. Tools resolve as the union of surface-compatible skills' tools with the legacy agent.tools[] fall-through removed (agent-runtime.ts:827/:865); incompatible affinity is a load error (:990–1001); schema_reader is the surface:'both' read-only skill; no new schema. Nothing pending.
    3. ADR-0071 dataset-semantic-layer-depth → Accepted. Multi-hop to-one joins with the 3-hop cap (dataset.zod.ts:590–604), compiler and both strategies, plus the Studio include-path editor (DatasetDefaultInspector.tsx, useDatasetFields.ts); the record's own "header pending formal update" is now done. Nothing pending.
    4. ADR-0072 reference-scope-and-resolvability → Accepted, narrowed. Slice 0/1 (flow scope resolution, picker, scope-aware validation) and Slice 2 object-output drilling (FlowReferenceField.tsx:369 resolveObjectName from config.objectName) implemented. Pending on the line: Slice 3 lazy reference tree, Slice 4 guided fetch (D4), Slice 5 beyond flow, D6 outputSchema.objectName; the three open questions stay.
    5. ADR-0073 automation-execution-identity → Accepted, narrowed. v1 as the record scopes it: the decision record (D1–D4), the D5 author-time guardrail (lint-flow-patterns.ts flow-runas-unscoped), and the two amendments (The #1888 user-less fail-open is wider than the lint that guards it — record-change flows fired by a system write run UNSCOPED, unlinted #3760 refusal UnscopedRunDataAccessError; Security: a runAs system flow writes identity-assignment rows (sys_user_position, sys_invitation) past the delegated-administration gate #25251 identity-assignment carve-out). Pending on the line: M2 — the automation principal and runAs:'automation' (execution.zod.ts:419 still ['system','user']), gated on the first real consumer, not a date.

    Execution: the five lines are edited now on the seat's held branch (gates green locally); the PR follows #27034's merge. Batch 4 (ADR-0077 · 0080 · 0096 · 0025, the last) follows when the maintainer next summons. Ruling-ref: names this comment. Clause-②: no, Metadata-protocol: none.

  9. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    ADR batch 2 landed · director seat · 2026-10-28T04:35Z

    PR #27034 merged 2026-10-28T04:31Z by the maintainer's approval through the merge queue (main cd609a4979): ADR-0038, 0046, 0051, 0052 → Accepted per ruling 6458958232; docs/adr/README.md Accepted 112 → 116, Proposed 18 → 14. ADR-0050 waits on the maintainer's own ruling on #27032.

    Contract review 6459576746 on that PR returned one verified must-fix (ADR-0038's line overstated L5) and two should-fixes; the corrections could not be pushed while the PR sat in the merge queue, so they ride PR #27081 together with ADR batch 3's five lines (ruling 6460071100): head a7fa8a05b8, two commits (e75c243a3d corrections, a7fa8a05b8 batch 3), README Accepted 116 → 121, Proposed 14 → 9, gates green; review requested from hotlong + os-zhuang through the relay. Batch 4 (ADR-0077 · 0080 · 0096 · 0025) follows at the next summon.

  10. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #420 · 2026-10-28T04:40Z

    Director seat, summon #51 continuation (ledger objectstack#12708). Batch 4 of 4 under #26076 ruling A: ADR-0077 · ADR-0080 · ADR-0096 · ADR-0025, presented to the maintainer in batch #420 with PR #26503's readings (rows 16–19) re-read on origin/main cd609a4979. Letters as before: A Accepted (status line names what is pending), B Deferred, C Withdrawn, D Superseded. PR #27081 (batch 3 lines + batch 2 corrections) is open and awaits the maintainer's approval; this batch's lines land in a final docs PR.

    • ADR-0077 authoring-surface boundary: the intent → surface routing model and the record-before non-goal are cited by packages/spec/src/data/object.zod.ts and objectql/src/find-hook-result-shape.ts; the v1 code — the two os build lints flow-record-before-cannot-mutate / -cannot-veto — is not in packages/lint/src/lint-flow-patterns.ts (rule list read), and no hook-body "requires-human-review" flag exists. Seat letter A narrowed (the model stands; v1's lints and the §3 review flag pending), or B if the maintainer does not want the lints scheduled.
    • ADR-0080 AI-authored UI JSX source: @objectstack/sdui-parser (parse ≠ execute, codegen, public tier) shipped and is consumed by metadata-protocol, lint and objectui components; the page kind was renamed jsx → html by ADR-0081 (which "builds on" this record) and the jsx value retired at 18 (spec(conversions): eight ADR-0087 D2 conversions stay on the 18 load path after #23487 — five families each need a ruling before they can retire #23543); the save door compiles html source and derives requires (COMPILED_PAGE_KINDS, page.zod.ts:1181, "ADR-0080 §5"); amendment 2026-09-01 on the type attribute. Pending: registry-manifest prop/binding validation depth (Tier A inputs), binding-against-object-schema check; the deferred list stays. Seat letter A narrowed.
    • ADR-0096 execution-surface identity admission: D5's fail-closed posture is live — the principal-less hand-off "ADR-0096 D5 replaced with a refusal" (runtime/src/http-dispatcher.ts:1399/:1763); the D4 admission matrix exists (packages/qa/dogfood/test/authz-conformance.matrix.ts); the E2 exploitables were fixed on their own cards. Pending: D2 systemContext(reason) / SystemGrant (not in execution-context.zod.ts or data-engine.zod.ts), D3 identity-required signatures, D6 action-level runAs. Seat letter A narrowed.
    • ADR-0025 plugin package distribution: Phase 1 landed (.osplugin, os plugin build / sign / publish under packages/cli/src/commands/plugin/); install-time consent for package installs landed, and the consent → enforcer binding landed 2026-10-25 (runtime/src/security/artifact-granted-permissions.ts, option A phase 1, consumer of EnvironmentArtifactSchema.grantedPermissions), so the line's "registered-only and enforces nothing" is stale in part. Pending: Phase 2 (os plugin install, the .osplugin loader, sys_plugin* registry — none exists), Phases 3–5. Seat letter A narrowed.
      Prior rulings read: [Decision] docs/adr: 143 ADRs with no index, four numbers used twice, 19 Proposed older than three months, three status-line spellings — how the registry gets put in order #26076 A (6417460375); PR docs(adr): generated README index, one status-line spelling, shared numbers cited by stem #26503 rows 16–19; batch rulings 6438940264 / 6458958232 / 6460071100; spec(conversions): eight ADR-0087 D2 conversions stay on the 18 load path after #23487 — five families each need a ruling before they can retire #23543 F5-jsx A (0080); ADR-0081 (0080); thread: none.
  11. 4 remaining items

  12. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    ADR-0025 line landed · director seat · 2026-10-28T06:58Z

    PR #27118 (ADR-0025 v2, ruling 6461953053) merged 2026-10-28T06:56Z (main 07d18e6927): status line Accepted (narrowed to Phase 1 + consent; M1–M3 on #27108). docs/adr/README.md Accepted 125, Proposed 5. Of the 19 records under #26076 ruling A, 18 are ruled and landed; the one left is ADR-0050, the maintainer's own ruling on #27032. This card's Done-when closes with that one.

  13. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer · ADR-0050 ruled · director seat (summon #53, session_01QSeKYo7qYsX6HsAneHBMP2) · 2026-10-28T08:37Z · ⛔ not a claim

    The record the maintainer set aside from batch #417 is ruled: #27032 → A′ (ruling 6464210455, maintainer 「其他同意」 2026-10-28): ADR-0050 Accepted, the cutover lands now as a (narrowing) minor (this repository has no spec-major window, AGENTS.md L1084–1090). Cutover cards: spec #27155, ui #27159 (Blocked-by: #27155).

    For this card's closeout docs PR (Tier H): the ADR-0050 status line becomes **Status**: Accepted (2026-10-28, letter A′ on #27032, ruling record 6464210455) — cutover card #27155 (spec) + #27159 (renderer); the 2026-10-20 amendment stands and docs/adr/README.md moves the row from Proposed to Accepted. #27032 closes completed in this act, so the #26076 closeout no longer waits on it.

  14. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e
    2026-11-06T14:56Z

    State: pm:awaiting-maintainer → pm:queue. Nothing on this card waits on the maintainer any more. All 19 records are ruled, and ADR-0050 was ruled A′ on #27032 (2026-10-28). One thing is left: on origin/main, docs/adr/0050-form-layout-vs-presentation.md still reads **Status**: Proposed, and docs/adr/README.md still lists it under Proposed (5). The closeout docs PR (Tier H, wording in the 2026-10-28 08:37Z pointer) is lane work.

    🤖 Generated with Claude Code

  15. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:awaiting-maintainerAwaiting a manual maintainer action — ruling already given; no dispatch, no machine exit
    on Nov 6, 2026
  16. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  17. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibzzqHZdAVqgBAvxXKB

    Claim: PM loop round 3 · 2026-11-06T15:16Z
    Session: session_01L9qibzzqHZdAVqgBAvxXKB
    Account: os-tesla (the card's assignee)
    Branch: claude/project-thread-uz8dqb (the card thread's designated branch; dev session session_01L9qibw3DoQ7bgioFtvcrw7)
    Worktree: objectstack-issue-26553
    Domain: domain:spec
    Seat: domain:spec#1
    File surface: docs/adr/0050-form-layout-vs-presentation.md (status line :3 only), docs/adr/README.md (regenerated by pnpm adr:index, never hand-edited), a changeset only if the gate demands one. ⛔ any other ADR body text (stop on breach)
    Container & model: XS, mode:thread, model: CONTRACT_REVIEW_TIER (dispatch-gates --tier: MANDATORY from docs/adr/**, no one-line exemption), effort: xhigh (the docs/adr/** floor)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the ADR index on origin/main still lists ADR-0050 as Proposed although the maintainer ruled it A′ on #27032 (ruling record 6464210455) and both cutover cards (#27155, #27159) closed completed. Every reader of docs/adr/README.md and every card cut from ADR-0050 reads a stale state today. The fix is the status line plus the regenerated index.
    Thread-read: 6687826083
    Premise: holds. On origin/main 1aeeafd9, :3 reads **Status**: Proposed (2026-06-15) · **Amended** (2026-10-20, …) and the README counts Proposed 5.
    Serial constraints cleared: none (no open PR names #26553 or ADR-0050)

    Tier H (docs/adr/**): the seat reviews the PR, then hands it to os-zhuang. It stays draft until then.

    Order: /mnt/project-files/spec-seat-1/r2026-11-06/dispatch-26553.md (frame FRAME.md beside it).

  18. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibw3DoQ7bgioFtvcrw7
    os-dev-report
    Posted 2026-11-06T15:38Z · dev session session_01L9qibw3DoQ7bgioFtvcrw7 · head ac20488

    {
      "issue": 26553,
      "status": "done",
      "branch": "claude/project-thread-uz8dqb",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30986",
      "session": "session_01L9qibw3DoQ7bgioFtvcrw7",
      "premise_still_valid": true,
      "summary": "Closeout docs PR for ADR-0050, the last of the 19 records under this card. On origin/main 1aeeafd9 the record's line 3 still read Proposed (2026-06-15) with the 2026-10-20 amendment, and docs/adr/README.md counted Proposed 5 / Accepted 130, so the premise holds. Line 3 now opens with the ruled sentence verbatim from pointer 6464456446 (Accepted, letter A-prime on #27032, ruling record 6464210455, cutover cards #27155 and #27159, the 2026-10-20 amendment stands) and KEEPS the existing amendment text and its two links (#24692, ruling record 6281834942) after it, because the ruled sentence says the amendment stands and those links are the only trace of where it was decided. A case-insensitive grep for 'proposed' hit line 3 alone before the edit and nothing after it. docs/adr/README.md was regenerated by node scripts/adr-index.mjs, never hand-edited: the row moves to Accepted with date 2026-10-28, counts Accepted 131 / Proposed 4; adr-index --check exit 0. Draft PR #30986 opened through the relay (run 42244571901, body 6893 bytes stored byte-identical) with Fixes #26553 and the skip-changeset label; Tier H by path, left for the seat's review and the approver's hand.",
      "tests": "node scripts/adr-index.mjs (wrote docs/adr/README.md, 237 lines) then node scripts/adr-index.mjs --check exit 0: 'adr-index: OK — docs/adr/README.md is current and every record parsed'. The status-line edit ran as a script asserting exactly one hit of the old line at line 3 and one hit of the new line afterwards (old hits 0, new hits 1). git diff --shortstat origin/main...HEAD: 2 files, +4/-4. No ablation: no tested behaviour changed (docs only).",
      "gates": "Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack on head ac204886 (2 paths vs merge-base 1aeeafd9; changed lines 8, under the 3000 threshold): 21 commands, each run in the foreground with stdin closed, exit code landed on disk before any pipe, all 21 exit 0 — check-adr-links (+self-test), check-closing-keyword-parity (+self-test), check-comment-mask-corpus, ci/plan-test-core-shards --self-test, lint check:doc-formula-expressions (lint closure built first under os-verify-lock.sh, VERDICT command-exit 0, 96 s held), check:adr-anchors, check:adr-index, check:adr-symbol-anchors, check:ci-filter-parity, check:closed-ceremony-text, check:cross-package-test-inputs, check:doc-authoring, check:driver-memory-census, check:gitlink-declared, check:nul-bytes, check:pm-governed-merges, check:pm-prior-rulings, check:refd-timer-probe, check:watch-hint-literal. Reconciliation dispatch-gates --ran: '21 derived famil(ies) accounted for — 21 run, 0 NOT-MEASURED'. dispatch-gates --tier: CONTRACT_REVIEW_TIER mandatory from docs/adr/**, effort floor xhigh (this run is on that tier). check-governed-merges.mjs --test: both paths governed (Tier H). PR check-runs: in_progress at report time, read by the seat on the PR.",
      "line_budget": "n/a — docs/adr/** carries no line ratchet; diff is +4/-4 (8 changed lines, generated README included), under the 3000-line human-merge threshold.",
      "files_changed": ["docs/adr/0050-form-layout-vs-presentation.md (line 3 only)", "docs/adr/README.md (regenerated by pnpm adr:index: summary counts lines 20–21, ADR-0050 row line 123)"],
      "neighbours": "Open PRs touching docs/adr/ on their heads vs merge-base with origin/main 1aeeafd9: #30828 (ADR-0142), #30862 (ADR-0125), #30899 (ADR-0146), #30940 (ADR-0055). None touches docs/adr/README.md. The later lander merges main and re-runs pnpm adr:index if a status line moved.",
      "changeset": "none, skip-changeset declared on the create: docs/adr/** ships in no released package (no files[] under packages/ names docs/adr). Read-back on PR #30986: labels size/xs + skip-changeset present, draft true, head ac204886, base moved to acd190b2 (mergeable_state blocked = checks pending). Clause-②: no. Metadata-protocol: none.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "5 reads, 0 writes — issue_read get (1), issue_read get_comments (2), list_pull_requests (1), pull_request_read get (1, the PR read-back). No MCP write tool was called; the harness's assignee/reviewer step was skipped on purpose (the frame forbids MCP writes; pr_create carries no assignee, the seat sets it at hand-over).",
      "api_writes": "0 REST proxy writes by this session. Relay: 1 fleet-write stroke (pr_create, request fw-20261106T153606Z-137441, run 42244571901, conclusion success, read-back identical). git: 1 push to claude/project-thread-uz8dqb (ac204886).",
      "deviations": [
        "The checkout is shallow; the clone was deepened by 400 commits (git fetch --deepen) so the six open PRs without a merge-base could be read for the neighbour check. Declared, no other effect.",
        "The dev session is subscribed to the PR's activity events for CI wakes only; no polling, no sleep, report delivered before CI converged (check-runs in_progress).",
        "Worktree objectstack-issue-26553 is kept until the PR's CI is read, so a main-caused red or a BEHIND state can be answered; it is removed after that."
      ],
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": []
    }
  19. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibzzqHZdAVqgBAvxXKB

    ACCEPT → PR #30986 comment 6688960398 (head ac204886, contract review PASS 6688923854, CI green, clean). Tier H (docs/adr/**): pm:awaiting-merge + review requested from os-zhuang / hotlong. The seat lands after an authorized APPROVED review.

  20. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibzzqHZdAVqgBAvxXKB

    Finding recorded, not filed · domain:spec#1 · 2026-11-06T16:11Z · ⛔ not a claim

    Contract review 6688923854 on PR #30986 raised one should-fix outside that PR's file surface. In docs/adr/0050-form-layout-vs-presentation.md, Migration (:51) and Consequences / Sequencing (:59–60) still call the cutover "spec-major". Ruling A′ (6464210455) shipped it as a (narrowing) minor, @objectstack/spec 18.3.0, because this repo has no spec-major window (AGENTS.md). The status line now cites the ruling record, so the fact can be reached from the record.

    Filing gate: not filed as its own card. docs/adr/** is not a shipped surface, and no PR or seat is editing ADR-0050 now, so it has no hands-on reader. The next PR that touches ADR-0050 carries a one-line dated note under Migration, in the shape of the 2026-10-20 note under Decision 2. This comment is the record.

  21. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibzzqHZdAVqgBAvxXKB

    Landed · domain:spec#1 · 2026-11-06T17:11Z

    reading value
    PR #30986 merged 2026-11-06T17:11:10Z by the maintainer through the queue (os-zhuang ready + enqueue = the Tier H record), merge commit 0b157306e361b971e64357ea8257984fb47d0d0d, final head ac204886
    origin/main contains the merge commit (git merge-base --is-ancestor)

    State: card closed as completed by Fixes #26553. In this stroke pm:dispatched was removed from the card and pm:awaiting-merge from the PR. All 19 records under #26076 ruling A are now landed. The one ADR-0050 body should-fix is recorded in 6689516087.

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:specDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions