Skip to content

docs(adr): ADR-0070 D2 addendum — a type: module sub-package of an installed app may be disabled by an admin (#28117 item 6) #28285

Closed

Description

@objectstack-fleet

domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

Filing gate: ③ — carries item 6 of #28117; #28117 keeps items 1–5 (the code PR). ⛔ Not a claim.

Why split: docs/adr/** is Tier H. Kept in #28117's code PR, this one line would hold the whole runtime and objectql change for the maintainer's approval, so the server seat routed it to its own card.

The line, verbatim from #28117 item 6: add to ADR-0070 D2 (docs/adr/0070-package-first-authoring.md): "a type: module sub-package of an installed app may be disabled (not authored into) by an admin; ruling 2026-10-30".

Ruling: the maintainer's words, quoted on #28117: 「大包 + 设置里启用模块」, then 「同意」 (2026-10-30 13:05Z).

When: dispatch after #28117's PR merges, so the addendum describes shipped behaviour. That PR's head will name the exact tie it measured ("belongs to an installed app"); the line should name that tie too.

Blocked-by: #28117


Generated by Claude Code

Blocked-by: #28117

Activity

  1. added
    documentationImprovements or additions to documentation
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 31, 2026
  2. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p2 · domain:skills · area:devpath · pm:blocked on #28117 · 2026-10-31T03:56Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

    Unblocked · 2026-10-31T05:25Z · ⛔ not a claim

    Blocker #28117's code half merged in PR #28308 (7abe151b): a type: 'module' package of an installed app may now be disabled, not authored into. This card's ADR line describes behaviour that is on main. pm:blocked → pm:queue. docs/adr/** is Tier H, so the PR stays for the maintainer's approval.


    Generated by Claude Code

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

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

    Claim: PM loop round 3 · card thread · cross-lane · 2026-10-31T15:12Z
    Session: session_0186vfjHHMsRXC9EUT9hTFMo (the seat); the card thread is session_01FEkQ5nCt4UPJjChW4GyQxQ
    Account: os-project-manager (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-a2g9zi (the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)
    Worktree: the card thread's own container checkout
    Domain: domain:skills (the card's lane, kept); dispatched cross-lane by domain:server#2
    Seat: domain:server#2
    Ruling-ref: cross-lane dispatch under the maintainer's 「座位之间可以协调,你有空你就可以派」 (2026-10-31), with no domain:skills seat online. Triage 6538699446 (p2, Tier H); the maintainer's 「大包 + 设置里启用模块」 / 「同意」 (2026-10-30, quoted on #28117); the line, verbatim from #28117 item 6, names the tie PR #28308 shipped.
    File surface: docs/adr/0070-package-first-authoring.md (one dated D2 addendum). ⛔ No code, no other ADR.
    Container & model: M, mode:thread, model: fable (--tier MANDATORY from the surface), effort: xhigh. Tier H: the PR stays draft for the maintainer's approval, and a contract review at CONTRACT_REVIEW_TIER is owed.
    Clause-②: no (governed prose only, no accept set moves; the dev declares)
    Metadata-protocol: none
    Responsibility: the code is ADR-0070 D2 (package writability) · no platform path covers it (the governed prose follow-up of PR #28308) · reached by every later card cut from ADR-0070
    Thread-read: none
    Premise: holds (PR #28308 merged as 7abe151b; isDisableableAppModule is on main)
    Serial constraints cleared: no open PR touches docs/adr/0070-package-first-authoring.md at this read
    Resume-from: none — fresh from origin/main

    State: pm:queue → pm:dispatched, assigned to os-project-manager, recorded by this claim.


    Generated by Claude Code

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

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_01FEkQ5nCt4UPJjChW4GyQxQ
    os-dev-report
    {
    "issue": 28285,
    "status": "done",
    "branch": "claude/project-thread-a2g9zi",
    "pr": "#28430",
    "session": "session_01FEkQ5nCt4UPJjChW4GyQxQ — this card thread (harness Claude-Session line); dispatching seat session_0186vfjHHMsRXC9EUT9hTFMo (claim 6545211287)",
    "premise_still_valid": true,
    "summary": "Premise held on origin/main 5da3a8c: PR #28308 is merged (7abe151), isDisableableAppModule is in packages/runtime/src/domains/packages.ts, and ADR-0070 D2 carried no line about disabling. ADR-0146's supersession of ADR-0070 covers D3's prompt and D5's destination only (its pointer on ADR-0070 says D1, D2, D4 and D6 stand), so D2 is not the superseded part and the amendment proceeds. One file changed, docs/adr/0070-package-first-authoring.md: (1) a dated amendment note under D2 in the registry's blockquote form (ADR-0087 / ADR-0005), quoting the maintainer verbatim (「大包 + 设置里启用模块」, then 「同意」, 2026-10-30), stating that read-only in D2 means may-not-be-authored-into and not may-not-be-switched-off, naming the tie the disable door reads as shipped (manifest.type 'module'; manifest.dependencies directly naming an installed type 'app' package, ADR-0141 D1; own manifest.scope not system/cloud), what does not move (isWritablePackage unchanged, writable false for a module, edit/publish/revert/delete/overwrite still 422 WRITABLE_PACKAGE_REQUIRED, the disableable served verdict beside it computed by the same predicate), what disabled means for the module (404 OBJECT_PACKAGE_DISABLED on the data plane and by-name reads, nav contributions dropped by applyNavContributions, record-change flows withheld for in-process writes, enable restores, data kept), and the in-process ctx.api question recorded as NOT decided here, with the maintainer as decision letter 6538936519 on #28117; (2) the dated Amended pointer on the Status line that ADR-0146's Status-line pointers convention requires, nothing else on it moved, D3–D6 untouched. Five new symbol anchors, all resolving. Clause-②: no, Metadata-protocol: none, skip-changeset on the create. Tier H: the PR is draft and stays draft for the maintainer.",
    "tests": "n/a — a decision record; no tested behaviour changes, so no package suite and no ablation. Verification is the derived gate set: each of the 21 commands run on head c2b0e3a with its exit code captured before any pipe, all exit 0 (table in the PR body). Readings: check-adr-symbol-anchors '2952 anchors across 148 records resolve — 691 symbol (663 declaration, 28 literal), 2214 file-level'; check-adr-links '962 relative link destination(s) under docs/adr/ resolve'; adr-index --check 'OK — docs/adr/README.md is current and every record parsed' (so the generated index is not touched); check:doc-authoring '✓ doc authoring guard … no growth, no burn-down unrecorded'; check:nul-bytes OK and grep -naP for control bytes on the file: 0. Scoped lint: pnpm exec eslint --no-inline-config docs/adr/0070-package-first-authoring.md exit 0 with 'File ignored because no matching configuration was supplied' (Markdown is outside the eslint config).",
    "gates": "Head c2b0e3a: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 21 commands (the ADR families among them: check:adr-anchors, check:adr-index, check:adr-links, check:adr-symbol-anchors, check:doc-authoring, check:pm-governed-merges). First pass: 20 exit 0, 1 exit 3 — pnpm --filter @objectstack/lint run check:doc-formula-expressions, PREREQUISITE NOT MET (@objectstack/formula and @objectstack/lint not built); built both under the verify lock (pnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lint, VERDICT command-exit 0, held 96s), reran: exit 0, '✓ check:doc-formula-expressions: 25 record-scoped formula example(s) across 547 files / 1820 TS blocks judged clean'. --ran reconciliation on the corrected record: '21 derived famil(ies) accounted for — 21 run, 0 NOT-MEASURED (a DERIVED zero — all 21 recorded an exit code and none of them is 3)'. Governed predicate: node scripts/pm/check-governed-merges.mjs --test docs/adr/0070-package-first-authoring.md exit 3 — '⛔ GOVERNED — a human merge is the review record for this PR (#9495 regime) … ⚖️ landing tier: H(人合) — the maintainer's hand, or an authorized APPROVED review (GOVERNED_APPROVERS) and then the owning seat lands it. docs/adr/** ×1'. Tier: dispatch-gates --tier on the path 'Model tier — MANDATORY: claude-fable-5-1 … effort floor at xhigh'; this session: claude-fable-5-1, effort xhigh (get_session). CI check-runs on PR #28430 are the seat's to read; none re-run locally.",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "7 — mcp__github__issue_read (get #28285; get_comments #28285 twice; get #28117; get_comments #28117), mcp__github__pull_request_read (get #28308; get #28430 for the body read-back). No MCP write tool.",
    "api_writes": "2 — relay pr_create (fleet-write run 41215034086, PR #28430, read-back identical 13748 bytes, labels skip-changeset + documentation stored, assignees none); relay comment of this report on #28285 (post-stamped). git push x1 to claude/project-thread-a2g9zi is not a REST write.",
    "open_questions": [],
    "out_of_scope_findings": [
    "carrier: #28117 · noted, not filed: the in-process ctx.api access to a disabled module's objects is recorded in the amendment as not decided; it waits on decision letter 6538936519 (option A recommended there). If the maintainer rules B or C, the note's last sentence is the one to amend, in a later ADR PR."
    ],
    "deviations": "Commit trailers are model-free (Co-authored-by: Claude) per os-dev.md and the pre-push hook, not the harness's model-named line. PR body: the harness attribution block (two lines) is first as the project requires, the seat signature line follows it, then Fixes #28285. PR opened with no assignees and no reviewer request, and no subscribe_pr_activity, per the order (the session's best-effort assignee/reviewer MCP writes were skipped: no MCP writes). The card-thread checkout was shallow with a stale origin/main: unshallowed and fetched before deriving; worktree built by detaching the shared checkout (memory recipe)."
    }


    Generated by Claude Code

  8. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

    Landing record · #28285 · PR #28430

    domain:server seat 2 · session_0186vfjHHMsRXC9EUT9hTFMo · 2026-10-31T21:05Z

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-28430-*' 0 refs (released)
    Ancestry git merge-base --is-ancestor 8e6acf4b origin/main yes
    Content git grep -c isDisableableAppModule origin/main -- docs/adr/0070-package-first-authoring.md 1 hit

    Release: claim 6545211287 (session_0186vfjHHMsRXC9EUT9hTFMo, branch claude/project-thread-a2g9zi) · landed.

    • State: pm:dispatched removed; the card is closed.
    • Resume-from: none.

    Generated by Claude Code

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

Metadata

Metadata

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:skillsDomain 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