Skip to content

docs(adr-0131): D6's second install mode is spelled unmanaged. A dated Tier H note executing ruling B on #15213 (the template spelling at D6, §6 Q5 and the C12 row) #22831

Description

@objectstack-fleet

Filing gate ③: a task the maintainer's ruling directs. Ruling B on #15213 (director record 6108509158, batch #317 item 3, maintainer 「同意」 2026-10-11T11:24Z), 裁后执行 step 1, verbatim:

The seat files the ADR-0131 Tier H note card: the template spelling at D6, §6 Q5 and the C12 row becomes unmanaged, dated and pointing here, ⛔ the original prose otherwise untouched. The maintainer approves its PR.

Filed by domain:spec seat 2 (#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK. ⛔ Not a claim. Lane and grade are triage's. docs/adr/** is Tier H (Prime Directive #14), so the PR needs the maintainer's APPROVED review.

What changes (read on origin/main)

File: docs/adr/0131-total-organization-ownership-no-null-organization-id.md. The install-mode spelling changes at the three positions the ruling names:

  • D6 (about :268–:270): "managed — registered as code, sealed, upgradeable; or template — copied once into the environment ledger …" becomes unmanaged.
  • §6 Q5 / the installModes paragraph (about :376–:378, and its restatement at about :839–:840): "installModes, default ['managed'] … refuses template whatever the package permits" becomes unmanaged.
  • The C12 row of the execution table (about :927): "Template install mode: manifest installModes …" becomes "Unmanaged install mode: …".

Plus one dated note at D6:

⛔ Not this card

Done when

  • The three positions spell unmanaged, and the dated note is at D6.
  • check:adr-anchors and the docs gates are green.
  • The maintainer has APPROVED the PR.

Dedupe

#15213's thread is the only place this spelling is discussed (the decision box 6108184800 and ruling 6108509158). This card is the note that ruling directs.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, documentation · priority:p3 · domain:spec · area:devpath, kept in pm:queue

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-11T12:56Z. ⛔ Not a claim, ⛔ not a dispatch.

  2. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 · 2026-10-11T13:12Z
    Session: session_016njDy8ozy9B9Ns5Y8kAWEK
    Account: marchtian (the seat's linked user as GET /user answers it; always the card's assignee)
    Branch: claude/issue-22831-adr0131-unmanaged-note
    Worktree: objectstack-issue-22831
    Domain: domain:spec
    Seat: domain:spec#2
    File surface (at origin/main 1eff3224d7; stop on breach and explain in the report):

    This act moves the card pm:queue → pm:dispatched and assigns marchtian.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 22831,
    "status": "done",
    "branch": "claude/issue-22831-adr0131-unmanaged-note",
    "pr": "#22845",
    "session": "session_016njDy8ozy9B9Ns5Y8kAWEK — mode:subagent, the parent PM session id (the Claude-Session trailer on 7f0c390)",
    "premise_still_valid": true,
    "summary": "ADR-0131's second install mode now reads unmanaged at the four sites ruling B on #15213 (record 6108509158) names, all at head 115ec70: D2's install-mode sentence (:269, template to unmanaged), D6's 'Two install modes' paragraph (:378), its restatement in §6 (:853), and the C12 row (:940, 'Unmanaged install mode'). One dated paragraph sits at D6 (:380-:391), 'Spelling note (2026-10-11, #22831).', in this record's own dated-note form (bold lead with date and card, 'record' plus the comment id), as with D14's 'Execution-plan note (2026-10-10, #22619)'. It cites the ruling and gives the three reasons (Salesforce and Power Platform unmanaged, already in ADR-0086's table; two states of one property; the collision with TemplateManifestSchema, email_template and os init templates). It says only the spelling moves, and that the kept 'template' prose names the same mode. Draft PR #22845 is assigned marchtian, Tier H, and needs the maintainer's APPROVED review. It needs the skip-changeset LABEL, which the seat must apply: a label is the repo's only route for a docs-only PR (an empty changeset is refused by check-empty-changeset), and it is outside this run's write budget. Every other 'template' mention is kept and listed in the PR body with its line and reason. That includes D6's bullet label 'Template.' (:412), which stays per the ruling and is raised as the one open question.",
    "tests": "dispatch-gates --commands --repo objectstack-ai/objectstack (no paths) derived 19 commands at 7f0c390 and the same 19 at merged head 115ec70 (merge base 31b5a5f, 1 path, +17/-4). All 19 exited 0 at 115ec70. --ran: '19 derived famil(ies) accounted for — 19 run, 0 NOT-MEASURED (a DERIVED zero — all 19 recorded an exit code and none of them is 3)'. Verdict lines: check-adr-links '726 relative link destination(s) under docs/adr/ resolve'; check-adr-symbol-anchors '2309 anchors across 142 records resolve ... 0 line anchors survive'; check:adr-anchors 'OK (66 anchored file(s), every governing ADR still referenced ...)'; check:nul-bytes 'OK (scanned 10879 text file(s) ... no raw ASCII control bytes)'; check:doc-authoring '18140 customer-facing string(s) across 1349 spec sources clean'; check:doc-formula-expressions '22 record-scoped formula example(s) ... judged clean'. The rest (closing-keyword-parity +self-test, comment-mask-corpus, ci-filter-parity, cross-package-test-inputs, driver-memory-census, gitlink-declared, pm-governed-merges, pm-prior-rulings, refd-timer-probe, watch-hint-literal) each printed OK. Before the merge, doc-formula-expressions first exited 3 (PREREQUISITE NOT MET, formula/lint unbuilt), which is not counted. After turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under os-verify-lock (VERDICT command-exit 0, held 133s, waited 51s), it exited 0. check-issue-citations: NOT MEASURED for this file, because docs/adr/** is a DEFERRED_SURFACES row (0 files read). #22831 and #15213 were each read by REST as open issues, not PRs. pnpm lint: not owed. ESLint --format json on the one file answers 'File ignored because no matching configuration was supplied.' (1 file, 0 errors), and every files: block in eslint.config.mjs matches only JS/TS extensions, so no linted file's verdict can move. check-governed-merges --test on the file list: exit 3, landing tier H, 21 lines. No package touched, so there is no build or test leg for this diff. Measured readings: code-font template at install-mode sites 2 to 0, 'Template install mode' 1 to 0, record 6108509158 0 to 1. scripts/adr-anchors has no JSON quoting these lines. On §6 Q5, the install-mode question was Q5 in PR #14976's drafts 47db4e9..de84c70 and Q4 at acceptance (0be9039), so :839-:840 is read as part of §6 Q5's spelling, as the PR body says. PR body read back byte-identical (12762 bytes, cmp). CI on 115ec70 at report time: 29 check runs, 9 success, 7 skipped, 13 in_progress, 0 failure. It was not awaited. Check Changeset is expected to go red until the seat applies skip-changeset; it is not a required context.",
    "mcp_calls": "0 — no MCP GitHub tool was called",
    "api_writes": "2 — (1) fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches carrying pr_create, which run 38143953847 executed as objectstack-fleet[bot] as POST /repos/objectstack-ai/objectstack/pulls (draft, #22845) plus POST /repos//issues/22845/assignees (marchtian); (2) this os-dev-report comment, POST /repos//issues/22831/comments through scripts/pm/post-stamped.mjs. Plus 3 git pushes (empty-branch probe, 7f0c390, merge 115ec70), which are not REST. Zero label writes. All reads were REST GETs and one git fetch of refs/pull/14976/head into a scratch ref, deleted afterwards.",
    "open_questions": [
    {
    "question": "D6's bullet label 'Template.' (:412) still names the mode with the old word, two paragraphs below the unmanaged spelling. Should it move too?",
    "options": [
    "A: keep it (as shipped). The ruling, card, claim and dispatch keep all prose outside the three positions, and the note names it explicitly as the same mode.",
    "B: change it to 'Unmanaged.' in this PR. It is a one-word edit on :412, but it goes beyond the ruling's 'original prose otherwise untouched'."
    ],
    "recommendation": "A, because the ruling's text is binding and the note already removes the ambiguity. The maintainer can ask for B in the review, and it is a one-word follow-up on the same branch."
    }
    ],
    "out_of_scope_findings": [
    "carrier: #15213's S2 (domain:spec seat), which writes unmanaged into the spec and docs · ADR-0126's status line (docs/adr/0126-packaged-metadata-customization-model.md:3) says 'template = copied once, fully editable ...' in plain prose · noted, not filed",
    "carrier: #15213's S2 · the ADR-0087 entry packages/spec/src/migrations/entries/semantic/18.meta-doors-organization-scope-retired.ts:30 describes 'a template install' in its description string; prose about installs, not the manifest value · noted, not filed"
    ],
    "deviations": [
    "PR body Clause-② line: copied verbatim from claim 6109392629 ('Clause-②: no (an ADR text note; no schema, export or accept set moves)'), per os-dev's copy-the-claim's-line rule, instead of the dispatch's bare 'Clause-②: no'. scripts/pm/clause2-line.mjs reads both as {kind: declared, value: no, arm: null}.",
    "The harness attribution reminder asked for a model-named Co-Authored-By trailer and a different PR footer. AGENTS.md takes precedence, so the commit carries the model-free pair (Claude-Session + Co-authored-by: Claude) and the PR body ends with the session-URL footer."
    ]
    }


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    ✅ Seat review PASS — PR #22845 at 115ec7061e. Tier H: left draft, waiting on the maintainer's APPROVED review

    domain:spec seat 2 (#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK · 2026-10-11T13:42Z · holder of claim 6109392629. Report: the dev's os-dev-report on this card.

    Checked sentence by sentence against the diff at 115ec7061e, not the report (one file, docs/adr/0131-…, +17 / −4):

    • The four sites ruling B (6108509158) names, now unmanaged:
      • :269: D2's install-mode sentence, which states D6's two modes;
      • :378: D6's "Two install modes";
      • :853: §6's restatement of the accepted install-mode question (§6 begins at :848);
      • :940: the C12 row, in §8, "Execution plan", which begins at :926.
    • The dated note (:380–:391): every factual sentence holds on main.
      • ADR-0086's comparison table names Salesforce's managed/unmanaged packages (:115) and Power Platform's managed/unmanaged solution layering (:117).
      • TemplateManifestSchema is in packages/spec/src/marketplace/template-manifest.zod.ts.
      • email_template is a canonical metadata type (shared/metadata-url-spelling.test.ts:127).
      • os init carries templates (packages/cli/src/commands/init.ts).
      • The Template bullet it points to is at :412.
    • Only the spelling moves. No decision, status line, refusal posture or execution-plan dependency changes. The copy-once import, full editability, no upgrade channel and the group / isolated refusal read the same before and after.
    • Changeset: docs-only, no package touched. The seat verified this itself and applied skip-changeset; read back via relay run 38144205656. No .changeset/*.md is touched.
    • Gates: the dev ran the 19 derived families at 115ec7061e, and all exited 0. Among them are check-adr-links (726 links resolve), check-adr-symbol-anchors and check:adr-anchors.
    • Governed check: check-governed-merges.mjs --pr 22845: GOVERNED, docs/adr/** ×1, landing tier H, 21 lines.

    One open question for the maintainer's review, recommendation A:

    • The question: D6's bullet label **Template.** (:412) still uses the old word, two paragraphs under the note. Should it move?
    • A, keep (as shipped): ruling B says "original prose otherwise untouched", and the note names that bullet explicitly as this same mode.
    • B, change it to **Unmanaged.**: a one-word edit on the same branch, if the maintainer asks for it in the review.

    Out of scope, noted for #15213 S2 (whoever claims it after S1):

    • ADR-0126's status line (:3) says "template = copied once…";
    • packages/spec/src/migrations/entries/semantic/18.meta-doors-organization-scope-retired.ts:30 says "a template install".

    Neither is filed.

  5. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    Maintainer decision: B. D6's bullet label at :412 moves too. Patch round 1 on PR #22845

    domain:spec seat 2 (#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK · 2026-10-11T14:09Z · holder of claim 6109392629.

    Maintainer's words, verbatim, in the seat's session: 「B,:412 一起改」. This answers the open question in the seat review 6109652797.

    Patch order (text only, same branch, same PR):

    1. :412: - **Template.** → - **Unmanaged.**. The bullet's body text is kept.
    2. The spelling note (:380–:391):
      • It names the bullet label among the sites that now read unmanaged.
      • It drops "the Template bullet below" from its list of kept prose. The kept list stays: "template package", "template import", "template install mode".
      • It cites this decision, as record plus comment id, beside ruling B.
    3. The PR body:
      • the table gains the :412 row;
      • the open question is marked answered (B, this record);
      • the line count is updated.

    Scope stays as ruled. Every other template mention is untouched, including :632's list label "Template packages are refused" (prose about packages, in the note's kept list).

    Landing. Still Tier H. The maintainer's APPROVED review goes on the patched head.

  6. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 22831,
    "status": "done",
    "branch": "claude/issue-22831-adr0131-unmanaged-note",
    "pr": "#22845",
    "head": "3d9b4f245e",
    "round": "patch round 1 (maintainer decision B, record 6109891008)",
    "session": "session_016njDy8ozy9B9Ns5Y8kAWEK — mode:subagent, the parent PM session id (the Claude-Session trailer on 3d9b4f2)",
    "premise_still_valid": true,
    "summary": "Patch round 1 carries out the maintainer's decision B in record 6109891008 on #22831 (「B,:412 一起改」), in commit 3d9b4f2 on top of 115ec70. D6's bullet label '- Template.' now reads '- Unmanaged.'. It was :412 at the old head and is :414 now, because the note grew two lines; the bullet body is kept. The spelling note (:380-:393) cites record 6109891008 beside ruling B's record 6108509158, in its own form ('record' plus the comment id). It names the Unmanaged bullet label among the sites that read unmanaged, and its kept-prose list is now "template package", "template import", "template install mode". No other template mention moved, including D12 item 10 'Template packages are refused' (:634). The PR diff against merge base 31b5a5f is +20/-5 (25 lines). PR #22845's body was patched once: the table gains the :414 row, line numbers are at 3d9b4f2, the open question is marked answered (B, 6109891008), the 维护者速读 is refreshed, and the footer is kept. It stays draft and Tier H, so the maintainer's APPROVED review goes on 3d9b4f2.",
    "tests": "origin/main moved 4 commits past merge base 31b5a5f (to 12b9daf), none under docs/adr/ (git diff --name-only: 0 paths), so no merge, as the order says. dispatch-gates --commands --repo objectstack-ai/objectstack (no paths) at 3d9b4f2 derived the same 19 commands as at 7f0c390 and 115ec70. All 19 exited 0. --ran: '19 derived famil(ies) accounted for — 19 run, 0 NOT-MEASURED (a DERIVED zero — all 19 recorded an exit code and none of them is 3)'. The derivation printed a STALE TREE warning: 3 gate files changed upstream (scripts/check-route-envelope.mjs, scripts/engine-double-contract.pinned.json, scripts/pm/os-regen-merge.sh). None of them is among the 19, and none of their diffs names docs/adr/. The three gates the order names: check-adr-links '726 relative link destination(s) under docs/adr/ resolve' (+ --self-test 0); check-adr-symbol-anchors '2309 anchors across 142 records resolve ... 0 line anchors survive' (+ --self-test 0); check:adr-anchors 'OK (66 anchored file(s), every governing ADR still referenced ...)'. Also check:nul-bytes 'OK (scanned 10879 text file(s) ... no raw ASCII control bytes)', check:doc-authoring '18140 customer-facing string(s) across 1349 spec sources clean', and check:doc-formula-expressions '22 record-scoped formula example(s) ... judged clean'; that gate ran after formula and lint were rebuilt under os-verify-lock (VERDICT command-exit 0, full turbo cache hit, held 2s). The remaining 11 each printed OK. Before commit, the control-byte self-scan found 0 matches (grep exit 1). Diff re-read in full against 31b5a5f. Mechanism counts from base 1eff322 to 3d9b4f2: '- Template.' label 1 to 0; '- Unmanaged.' 0 to 1; code-font template at install-mode sites 2 to 0 (the 2 left are quotes inside the note); 'Template install mode' 1 to 0; record 6108509158 0 to 1; record 6109891008 0 to 1; file 1099 to 1114 lines. PR body read back byte-identical (13381 bytes, cmp). Clause-② reader on the body: declared, no. Closing-keyword parsers: only #22831. CI on 3d9b4f2 at report time: 37 check runs, 22 success, 11 skipped, 4 in_progress, 0 failure. It was not awaited.",
    "mcp_calls": "0 — no MCP GitHub tool was called",
    "api_writes": "2 this round — (1) fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches carrying issue_patch, which run 38146598537 executed as objectstack-fleet[bot] as PATCH /repos//issues/22845 (the PR body, 13381 bytes, read back identical); (2) this os-dev-report comment, POST /repos//issues/22831/comments through scripts/pm/post-stamped.mjs. Plus 1 git push (115ec70 to 3d9b4f2), which is not REST. Zero label writes and no draft flip. Round 0 writes, already reported in 6109630106: the pr_create dispatch and the first report comment.",
    "open_questions": [],
    "out_of_scope_findings": [
    "carrier: #15213's S2 (domain:spec seat), which writes unmanaged into the spec and docs · ADR-0126's status line (docs/adr/0126-packaged-metadata-customization-model.md:3) says 'template = copied once, fully editable ...' in plain prose · noted, not filed",
    "carrier: #15213's S2 · the ADR-0087 entry packages/spec/src/migrations/entries/semantic/18.meta-doors-organization-scope-retired.ts:30 describes 'a template install' in its description string; prose about installs, not the manifest value · noted, not filed"
    ],
    "deviations": [
    "The worktree was removed after round 0 and recreated for this round from the unchanged local and remote branch (both at 115ec70 before the patch), followed by pnpm install --frozen-lockfile.",
    "Line numbers moved by +2 after the note, because the note is 14 lines now, not 12: the bullet label is :414, §6 is :855, C12 is :942, and D12 item 10 is :634. The order's ':412' and ':632' are previous-head numbers for the same lines."
    ]
    }


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    ✅ Seat delta review PASS — PR #22845 at 3d9b4f245e (patch round 1, decision B). Tier H: still draft, waiting on the maintainer's APPROVED review of THIS head

    domain:spec seat 2 (#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK · 2026-10-11T14:20Z · holder of claim 6109392629. Over the seat review 6109652797 at 115ec7061e and the decision record 6109891008.

    Checked against git diff 115ec7061e 3d9b4f245e, not the report (one file, the note plus one label):

    • The label: - **Template.** → - **Unmanaged.**, now at :414. The bullet's body is byte-unchanged.
    • The spelling note (:380–:393):
    • Nothing else moved. D12 item 10's "Template packages are refused" (:634) is untouched, as ordered.
    • Every sentence of the note is still true at the head. The site list now matches the diff's five positions.
    • Base: main moved 4 commits past the merge base, with 0 paths under docs/adr/, so there was no merge. PR net vs main: +20 / −5.
    • Gates: the dev ran the 19 derived families at 3d9b4f245e, all exit 0. Among them are check-adr-links, check-adr-symbol-anchors and check:adr-anchors.
    • CI at review time: 25 success, 11 skipped, 0 failure. TypeScript Type Check and Lint & Repo Gates are still running. This diff touches no TS or lint input.
    • PR body:
      • The table gains the :414 row.
      • The open question is marked answered (B, 6109891008).
      • The footer is kept.
      • skip-changeset stays applied.

    Landing:

    1. The maintainer approves 3d9b4f245e.
    2. This seat runs check-governed-merges.mjs --pr 22845 again.
    3. Once CI is green, the seat flips it ready and arms auto-merge.

    If the approval has not come by this seat's stand-down, the card is handed over with this state.

  8. objectstack-fleet commented on Oct 11, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #22845 → 0e0678c323 (Fixes #22831). Closed completed by the merge

    domain:spec seat 2 (#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK · 2026-10-11T14:55Z · holder of claim 6109392629, released by this act.

    Release: session_016njDy8ozy9B9Ns5Y8kAWEK · why: landed, card closed · this act removes pm:dispatched.

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:specpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions