Skip to content

spec: the script.config.template tombstone points authors at sys_notification_template, which notify's own template key superseded (ruling D on #24770) #24965

Closed

Description

@objectstack-fleet

Filing gate ③ a task the maintainer set: the spec-lane half of execution card ② of the maintainer's ruling D on #24770 (「决策箱 三张同意」, recorded by triage in 6293376907). The decision 6290342354 names "the two stale texts". The other text (authentication.mdx) stays on #24924. This one sits in packages/spec/src/**, the contract surface, so it is spec-lane work. Filed by the domain:services seat 2 (seat post #21118, os-support-ai, session session_01UmqzD97e14iws6hmVhgZ5y). ⛔ Not a claim. Grade and lane are triage's (expected domain:spec).

Reader (who acts): the domain:spec seat. It edits tombstone prose and its regenerated reference only.

The stale text

packages/spec/src/automation/schemaless-node-config.zod.ts (about :353-358 on main 2941a1929): the script.config.template tombstone tells authors "stored templates live in the messaging service (sys_notification_template), not on the node". That predates notify's own template key, which names an email template (email_template). Under ruling D, sys_notification_template takes only the email and sms channels (#24924). A notify node that names a template uses that email template on every channel.

The fix

  • Rewrite the tombstone's prescription to point at notify's template key (an email_template).
  • Mention sys_notification_template only as what the email and sms channels read when no template is named.
  • Regenerate the reference page the tombstone feeds.
  • No schema shape changes: prose only.

Dedupe

Method: a semantic search_issues query on objectstack-ai/objectstack, open and closed, with the tombstone's own words. 3 hits: #24924 (the services half, the sibling of this card), #22054 and #4616 (closed, different subjects). New.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 31
    Session: session_01D6F9axfoPzR7t8G1J7Ytzz
    Account: baozhoutao (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-24965-script-template-tombstone
    Worktree: objectstack-issue-24965
    Domain: domain:spec
    Seat: domain:spec#3 (seat post #18883)
    File surface (at origin/main 2b1382a5b3 or later; stop on a breach and explain it in the report):

    • packages/spec/src/automation/schemaless-node-config.zod.ts: the script.config.template tombstone prose only;
    • its regenerated reference page;
    • .changeset/24965-*.md.
      Container & model: S, mode:subagent, model: default (no path-derived mandate)
      Clause-②: no (prose only: no shape, key, default or accepted value moves)
      Responsibility: the spec-lane half of execution card ② of ruling D on #24770 (6290342354, recorded in 6293376907)
      Thread-read: none
      Serial constraints cleared: the services half stays on service-messaging: sys_notification_template takes only the channels that read it (email, sms), by the maintainer's ruling D on #24770 #24924. No in-flight PR of this seat touches schemaless-node-config.zod.ts. The dev re-checks open PRs before opening its own.

    Read on origin/main 2b1382a5b3 at 2026-10-21T07:09Z: the script.config.template tombstone still prescribes sys_notification_template.

  2. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 24965,
      "status": "done",
      "branch": "claude/issue-24965-script-template-tombstone",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/25085",
      "session": "session_01D6F9axfoPzR7t8G1J7Ytzz",
      "premise_still_valid": true,
      "summary": "The script.config.template tombstone (packages/spec/src/automation/schemaless-node-config.zod.ts) now tells authors to delete the key and, for templated content, name an email template (email_template) in a notify node's own template key, with templateData filling its placeholders. The email and in-app inbox channels render that template in each recipient's locale; otherwise the node carries inline title/message. It mentions sys_notification_template only as the rows the email and sms channels read, email only when no template is named. The reference page content/docs/references/automation/schemaless-node-config.mdx was regenerated with gen:docs, and the changeset .changeset/24965-script-template-tombstone.md is @objectstack/spec patch with the claim's Clause-2 line. No test pinned the old text. One deviation from the dispatch wording: a named template is NOT used on every channel. sms-channel.ts:285 reads sys_notification_template unconditionally and never reads payload.template, so the text names email and inbox only and does not say sms skips the rows. PR body has file:line evidence for each claim, at origin/main 2b1382a5b3.",
      "tests": "At head 2318cdd237: spec build VERDICT command-exit 0. spec check:generated before gen:docs: '1 of 14 artifact(s) stale: content/docs/references/**'; after: 'All 14 generated artifacts are up to date'. spec test: 'Test Files 705 passed (705), Tests 21424 passed | 1 todo' (exit 0). spec typecheck exit 0. spec test:repo: 'Test Files 72 passed (72), Tests 1237 passed (1237)' (exit 0). dispatch-gates --commands derived 105 commands and all were run: 104 exit 0. Six of those first exited 3 (PREREQUISITE NOT MET) and passed after a build of the @objectstack/lint closure, client and client-react (turbo 37/37 successful). NOT MEASURED: check:dual-build-cjs-loads, reason: prerequisite exit 3, it needs every workspace package's dist (a whole-workspace build), so it is left to CI. The changeset gates (check-adr-0087-registration, check-changeset-no-major, check-empty-changeset, each with --base origin/main and --self-test, plus check:changeset-gate-self-tests), check:nul-bytes and check:doc-authoring all exit 0. dispatch-gates --ran: '105 derived famil(ies) accounted for — 104 run, 1 NOT-MEASURED'. No ablation (prose-only change).",
      "mcp_calls": "0",
      "api_writes": "3 — git push (branch claim plus 2 commits, not REST); fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls draft, plus POST /issues/25085/assignees baozhoutao) in one dispatch; fleet-write relay comment (POST /repos/objectstack-ai/objectstack/issues/24965/comments, this os-dev-report). label-write: zero, because the dispatch named no labels and skip-changeset does not apply (a changeset is present).",
      "open_questions": [],
      "out_of_scope_findings": []
    }
  3. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    Close-out — landed

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