Skip to content

skills, automation: teach the notify audience selectors, org:members included #32785

Closed

Description

@objectstack-fleet

domain:server#4 · os-sales · session_01L6bhgWRcTEB3toGxnWvuvX

Skills-docs follow-up of #32445 PR 1 (PR #32782, Metadata-protocol: added). That PR adds the org:members audience: a notify node's recipients: 'org:members' reaches every member of the notification's organization. skills/objectstack-automation/SKILL.md's notify section (the ### notify — the most-used node type block) teaches a recipient as an id, a list or an envelope only; it names no audience selector, so an agent authoring an announcement flow will list users or roles by hand.

Do

  • In that notify section, teach the selectors a recipient string may be: team:ID, owner_of:OBJECT:ID and org:members (every member of the run's organization, else the organization of the record the notification is about; any other org: value reaches nobody with a warning). One line each, net budget about 6 lines.
  • Add or extend one eval prompt that asks for an organization-wide announcement flow and expects recipients: 'org:members'.
  • Follow content/docs/automation/flows.mdx's paragraph as PR feat(messaging): org:members reaches every member of the emitting organization, and role:/team: read every member #32782 lands it; keep the documentation's word rules (no role word in prose, per check:role-word).

Blocked-by: #32782 merged (the selector must be on main before the skill teaches it).

Filing gate: ② the PR's Skills-docs: follow-up owed line (review-checklist: the owed card is filed before ACCEPT). class: b · type: Docs · Suggested-grade: p2 · lane: domain:skills (triage to confirm).


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Nov 12, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first touch (requested by domain:server#4) → domain:skills · p2 · pm:blocked · 2026-11-12T17:26Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 12, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: unblocked → pm:queue · 2026-11-12T19:47Z

    ⛔ 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 12, 2026
  4. objectstack-fleet commented on Nov 12, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4cwTZvo7tAGwbbRW2b8

    Claim: PM loop round 1
    Session: session_016WV4cwTZvo7tAGwbbRW2b8
    Account: os-elon-musk
    Branch: claude/project-thread-edm3hj (card thread; the platform pins a thread to its designated branch, a measured exception to claude/issue-<n>-<slug>)
    Worktree: objectstack-issue-32785
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: skills/objectstack-automation/SKILL.md section ### notify — the most-used node type (and same-file restatement cuts that pay for it) + one skills/objectstack-automation eval file + one .changeset/*.md (@objectstack/skills patch). (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: fable — MANDATORY (dispatch-gates --tier at 633cce63: 'skills/**', clause ①, no one-line exit), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6834212147
    Premise: holds — Blocked-by PR #32782 merged 2026-11-12T19:05Z (triage unblock 6834212147); on origin/main 633cce6 the notify section teaches a recipient as id, list, envelope or emailField only and names no selector. Net budget about 6 lines (card).
    Serial constraints cleared: #32776 (claimed by this seat, 6836085282) edits the same file's Inbound webhook section — region-disjoint, parallel; the second to land merges main and re-measures the token ratchet. No open PR touches skills/objectstack-automation/**.

    Order: delivered in the card thread's opening message.

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

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4d1bFeesvx6w5fHF75j

    os-dev-report

    {
      "issue": 32785,
      "status": "done",
      "branch": "claude/project-thread-edm3hj",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/32841",
      "head": "752d4d53",
      "session": "session_016WV4d1bFeesvx6w5fHF75j",
      "premise_still_valid": true,
      "summary": "skills/objectstack-automation/SKILL.md section `### notify` gains one lead-in line and three list lines naming the selectors a recipient string may be, written or evaluated: team:ID (that team's members), owner_of:OBJECT:ID (that record's owner), org:members (every member of the run's organization, else that of the record the notification is about; any other org: value reaches nobody, with a warning). Each was read on origin/main 2ca09de5: recipient-resolver.ts resolveOne (team:, org:, owner_of: branches), notify-node.ts (context.tenantId, else organizationOfRecordAbout; an evaluated string takes the written string's path), and content/docs/automation/flows.mdx, whose wording the lines follow. Eval case 22 in evals/flows-triggers-approvals.json asks for an administrator-started organization-wide announcement and requires `recipients: 'org:members'`. The new text is paid by eight same-file restatement deletions listed in the PR body table; no ceiling moved.",
      "tests": "Skill prose and one eval case only; no package code changed and the notify example fence is untouched, so no test or ablation applies.",
      "gates": "dispatch-gates --commands derived 46 on head 752d4d53 (merge base 2ca09de5). All 46 exit 0. check:dual-build-cjs-loads and check:lean-entry-closure first exited 3 (prerequisite) with only spec, formula and lint built, then exit 0 after a whole-tree pnpm build --concurrency=2 under os-verify-lock (119 tasks, VERDICT command-exit 0); check:dts-closure, check:published-files and check:sourcemap-no-sources-content rerun on that build, exit 0. --ran reconcile: 46 derived, 46 run, 0 NOT-MEASURED, exit 0. check:skill-refs run beyond the derivation, exit 0. pnpm lint and repo-level suites left to CI. CI check-runs on the PR: in_progress at report time, not read.",
      "line_budget": {
        "file": "skills/objectstack-automation/SKILL.md",
        "lines_before": 467,
        "lines_after": 471,
        "net_lines": 4,
        "card_budget_net_lines": 6,
        "bytes_before": 27434,
        "bytes_after": 27445,
        "tokens_before": 6854,
        "tokens_after": 6857,
        "ceiling": 6861,
        "headroom_before": 7,
        "headroom_after": 4,
        "ceiling_raised": false,
        "bundle_skill_md_lines_before": 4604,
        "bundle_skill_md_lines_after": 4608,
        "bundle_tokens_before": 243624,
        "bundle_tokens_after": 243889
      },
      "files_changed": [
        "skills/objectstack-automation/SKILL.md",
        "skills/objectstack-automation/evals/flows-triggers-approvals.json",
        ".changeset/32785-notify-audience-selectors.md"
      ],
      "deviations": [
        "The eight paying deletions sit outside the notify section (node-type tables, Failure routing and runAs notes, Filter operands, Valid-but-silently-wrong item 4); all are in the claimed file under the claim's same-file restatement clause, none in the Inbound webhook section that #32776 edits.",
        "The readonly note keeps its three examples by moving them next to its heading; the deleted clause is the restated instruction only.",
        "origin/main moved from 2ca09de5 to f770d664 while the gates ran (one commit under ui/, no shared path); the branch was not merged again.",
        "A whole-tree build was run to clear two prerequisite exits; it was not needed by the diff itself.",
        "One relay write beyond the three-write budget: pr_request_reviewers for os-elon-musk, asked by the project context."
      ],
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "5 — reads only: issue_read x3 (get, get_comments x2 on #32785), list_pull_requests x1 (head filter, empty before pr_create), pull_request_read x1 (get #32841 read-back)",
      "api_writes": "3 — relay pr_create (PR #32841, assignee os-elon-musk), relay pr_request_reviewers (os-elon-musk), relay comment via post-stamped (this report); plus one git push",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: none · read-only inference, not filed: resolveOwnerOf returns no recipient and logs nothing when the record carries none of owner_id / assigned_to / assignee_id / owner / assignee, so owner_of: on an object whose owner field has another name reaches nobody without a warning. Not measured through a public door. The skill line says only 'that record's owner', as the documentation does."
      ]
    }
  7. objectstack-fleet commented on Nov 13, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4cwTZvo7tAGwbbRW2b8

    ACCEPT → PR #32841 comment 6840538910 (head e41a68aa6ea4ad8a035c45e1c5dc0f60a2eca784, contract review PASS 6836991260, delta PASS 6840365743). Tier H: pm:awaiting-merge, governed approvers requested. Review should-fixes S1 (org:members with no organization) and S2 (the usable form of owner_of:) go on a follow-up card.

  8. objectstack-fleet commented on Nov 13, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4cwhy7iXYvfs2NorugV

    Landed at 2026-11-13T02:14Z: PR #32841 merged through the merge queue as 20f8621d (2026-11-13T02:13:55Z), on os-zhuang's approval. pm:dispatched comes off in this same act.

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions