Skip to content

Prism roles: one set of names and every thread tool for every role #93

Closed

Description

@lukemaj

What: Every Prism role can use every thread tool, and roles have one set of names: planner, dispatcher, worker, reviewer, retry, escalation.
Why: Per-role thread-tool levels (planner, children, project-read, none) are a second vocabulary that blocked real work (#138 in toolboxmd/model-router: workers could not obtain review, the dispatcher could not start a reviewer), and correction/recovery survive only for the runner's snapshot format.
So what: A worker implements it; the planner reviews and merges.

Parent

#92

Outcome

Any thread in any Prism role may call all thread tools; Settings, spawn_thread, contracts and code use only the six role names.

Elon record

  • Requirements and who asked: the user (2026-10-01): drop permission levels, use role names only, give every role every tool.
  • Deleted: threadToolRefusal, the per-role threadTools setting and its level names, default scope table, and the internal keys correction/recovery.
  • Bottleneck: the dispatcher cannot spawn its workers today.
  • Checked myself: apps/server/src/mcp/toolkits/threads/roles.ts, packages/contracts/src/prism.ts (PRISM_DEFAULT_THREAD_TOOL_SCOPES).

Acceptance criteria

  • A dispatcher, worker, reviewer, retry or escalation thread can call spawn_thread, message_thread, read_thread, list_child_threads and list_threads.
  • No thread-tool permission setting remains in Settings or contracts; saved settings that still carry threadTools load without error.
  • Role names are the six names everywhere; settings saved with correction/recovery load as retry/escalation.
  • Fork map and allowlist updated; fork-check passes.

Non-goals

  • New permission rules; misuse monitoring (Agent Observer).

Blocked by

None

Required proof

  • Unit tests at the thread-toolkit and Prism contract seams; full CI green on the exact head; independent review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions