Skip to main content
Glama

Manage Unl work

manage_unl
Idempotent

WRITE to your Unlimitless brief lane + alias confirms (operational — NEVER ratification; sealing canon stays save_to_unl's anchor-gated gesture). One verb, routed by action; every call needs the single-use write-nonce. action: 'create_venture' — MINT a new venture: venture (their name for it) + human_direction + session. A name that doesn't resolve is a QUESTION, never a mint — a typo must not become a venture, and the write is refused without human_direction + nonce. ★ TWO CALLS, BECAUSE FOUNDING IS A LANDING: the first call writes NOTHING and hands you the offer to put to them in your own words; when they have ANSWERED, call again with the same name, their answer as human_direction, the same nonce, and origination_confirm_token. Their statement of what they are working on is the SUBJECT of the offer, never the answer to it, so the two calls must carry different words. A no, a silence or a change of subject ends it. The new venture starts empty and the writes that follow file to it; each later turn is read afresh from what it says, so nobody switches back (nothing is moved or lost — port things over if they belong there). 'withdraw_venture' — TAKE ONE BACK OUT on their word: venture + human_direction + nonce. One call, no confirmation step and no defence of the original write — a correction is theirs absolutely and asking them to justify it is the failure. Withdrawn, never deleted: the row stands and stays walkable, and it is gone from every list, resolve and serve — which is the whole of what they can see. Un-pinning is NOT this; that leaves the row to resurface. 'file_brief' — file a work_in_progress brief. content AND new_master_order are BOTH required: a brief is filed WITH its Critical Path position in the same gesture, or it is not filed (no brief is ever born a passenger). A filing that names no position is REFUSED and handed the current tail, so "I have no basis to judge priority" costs one field rather than a second call. Optional: lane, order_rank (the PER-LANE rank — internal routing, never a Critical Path position), governed_by, target_id, waiting_on. 'brief_steps' — author/REPLACE a brief's ordered executable steps (target by brief_id OR lane+order_rank; steps[] required). 'port_reflection' / 'port_ruling' — MOVE something between spaces (free space ↔ venture ↔ venture): item + to + human_direction. The move needs the human's words and a nonce; without them the write is refused. A reflection just moves (its why rides along). A ratified ruling cannot move — it is superseded where it is and refiled where it goes, carrying its why and a pointer home; canon is added to, never rewritten. 'file_target' — create a target/aim a brief serves (title required; optional venture, status). 'manage_brief' — change an existing brief (target by brief_id OR lane+order_rank): new_lane, new_order_rank, content, waiting_on, target_id, governed_by, autonomy, verified_against (stamp the source state the note was read against — {sha, at}, optional), depends_on (wire a brief→brief dependency, type-safe); OR set the CRITICAL PATH (the master sequence) via master_order_ids (front-anchored, self-deriving) or brief_id+new_master_order; OR UNRANK back to not-yet-sequenced via unrank_master_ids. 'claim_brief' — CLAIM a brief you are about to work under the standing instruction, so a concurrent agent's next-bar-ready read skips it: brief_id + session_token (the agent id). An operational in-flight marker only — never rank, never ratification; atomic (a genuine race resolves to one holder), auto-expires after a 10-min TTL (re-claim to renew the heartbeat), and release=true hands it back (the manage_unl tool with action="close_brief" releases too). 'declare_run' — DECLARE THE INSTRUMENTED RUN this agent belongs to, once, and every later verb inherits it: run_id (an opaque lowercase slug — the join key for the whole causal chain) + session_token (the agent this binds to), optionally condition / fleet_size / pool (the experiment's grouping dimensions — LABELS, never a description of the task). After it, your claims, gate cycles, stops and run report all carry the run without restating it; the SERVE lane carries it separately from your shell (UNL_RUN_ID), so set it in both or the run's context serves will not join. Operational only — it creates no brief, claims nothing, ranks nothing, and never touches the substrate. 'close_brief' — close with a terminal state: disposition completed|superseded|retired (default completed), optional note; closing an already-closed brief is a no-op. 'flag_north_star' — SET AN EXISTING RULING'S NORTH-STAR FLAG on the human's recorded word: ruling_id + north_star (true | false) + provenance (the momentum id carrying their VERBATIM, resolved at write). Flagging a ruling that is not live canon is refused; unflagging any ruling is allowed. The flag is a machine key, never the ruling's words; every change leaves a direction beat citing the provenance. Whether a ruling is a north star is the human's call, so an agent runs this only on their recorded word. 'record_word' — THE WORD LANE: bank the human's GATE WORD as a row ON the brief it governs, so it stops being prose an agent has to be told about and becomes state ANY agent can execute with no relay. brief_id (or lane+order_rank) + word ('merge'|'hold') + scope (what it covers, their terms) + sha (REQUIRED for merge — the commit they gave it at) + provenance (the momentum id carrying their VERBATIM, resolved at write; a word that cannot be walked back to what they actually said is refused). Recording a word is REPORTING what the human said, never ratification and never a judgement that the word should be given. 'spend_word' — EXECUTE a standing word: word_id + observed_sha (the sha in front of you NOW) + observed_scope (what you are about to do) + optional execution_ref (the merge sha, recorded beside the word). SPENT ONCE and the word DOES NOT STRETCH — both the sha and the scope are compared inside the atomic claim, so two agents cannot both spend one word and a MOVED sha cannot be spent at all however the race falls. A refusal names which it was; a moved sha or mismatched scope RE-KNOCKS (put the question back to the human — there is no safe way to widen their word), while an already-spent word does not (another agent executed it, which is the system working). 'retire_word' — RETIRE a word whose PREMISE DIED, the third and final exit beside spend: word_id + retire_reason + provenance. A word pinned to a sha that a rebase moved, or to a PR that closed unmerged, can otherwise only be SPENT or stand forever — and spending it would record the act as authorised by a word that never covered what actually shipped. Retired words leave the human's open-questions panel and can never be spent; the row and its whole history stand, so it is a status move and never a delete. PROVENANCE IS REQUIRED AND IT IS THE SAFETY PROPERTY: a gate word IS the human's authority, so an agent able to retire one on its own judgement could dismiss the human's gate by deciding it no longer applied. Retiring costs exactly what recording cost — a momentum id carrying their own verbatim. 'answer_stop' — CLOSE A STOP the human has answered: stop_id + answered_by. This is the other half of the word lane — a stop stands in the chat agent's window every turn until it is machine-closed, and this is what closes it, so it stops standing and stops escalating. answered_by is REQUIRED and deliberately does NOT default to the calling agent: it carries the momentum id holding the human's verbatim, or the surface they answered on, because a closure with no provenance cannot be walked back to the words and recording the agent would say the agent answered a question that was the human's. Spent once, atomic, keyed on the stop itself; the question is never edited, so the walk reads both ways. 'file_message' — LEAVE A NOTE FOR A WORKING SEAT: to_seat (an agent's session token, or '*' for every live agent) + body + session_token (you, the sender). The note reaches the agent on ITS NEXT TURN through the agent's own per-turn pull — unl pushes nothing into a runtime, so this verb writes an inert row and the agent collects it. Served in full exactly once, then it rides as a pointer; that first serve stamps the receipt, and YOUR next serve shows what landed, so 'did my correction arrive' is answerable without asking the terminal. This is a CORRECTION lane, not a chat channel — scarce by the same law as knocks. Two refusals, both before the nonce is touched: a body that asserts a STATE (it rots before it is read), and one that reads as a spendable gate-word (that is the manage_unl tool with action="record_word"'s lane, and a broadcast word could be spent by every agent at once). 'reopen_brief' — reverse a close: clears closed_at/closed_by and the supersession key, returns the brief to work_in_progress (optional note appended); reopening an open brief is a no-op. REQUIRES new_master_order — a reopened brief is the SECOND door onto the departures board, so it is placed by a judgment made NOW: never its stale old slot by default, never the tail by default. The refusal shows you the stale position, who holds that slot today, and the tail, so you can judge contextually; the queue INSERTS (everything from your position down shifts back one), it never evicts. If the placement is contentious, raise it for the human's sign-off before it lands. 'archive_brief' — move a CLOSED brief into the 'done' lane. 'confirm_aliases' — EDIT a ruling's retrieval aliases (ruling_id + aliases[]; the human's pick; [] clears) — findability only, never canon. Aliases are AUTO-APPLIED on seal, so this is an optional later edit, never a required step. 'attach_refines' — wire a ruling→ruling 'refines' edge between two ALREADY-SEALED rulings (from_ruling refines to_ruling); both must resolve to rulings; idempotent. Records a ratified relation, not new canon. 'wire_edge' — the GENERAL edge writer: wire any genuine edge the substrate supports (from_id, edge_type, to_id, optional edge_why). Routes on the resolved from-type + edge_type + to-type and refuses a triple the schema does not call an edge; idempotent. Covers brief edges (depends_on, produces, proposes), reflection edges (relates_to, revises), deliberation edges (forks_from, reopens, references_ruling, …) and ruling edges. Operational — the model wires genuine links at write time; it never seals, supersedes or promotes canon (that stays save_to_unl's anchor-gated path). 'hand_residual' — THE TYPED, DIGEST-BOUND HANDOFF. A prose handoff is a claim; this is a fact a reader can recompute. Give brief_id (the SENDER), to_id (the RECEIVER) and cargo (the residual text, verbatim): the cargo is appended to BOTH briefs and a hands_residual edge carrying its sha256 is written IN ONE STATEMENT, so the edge cannot exist without the cargo having landed in the receiver. One full receiver per sender and cargo: additional receivers get a digest-bound pointer to the original receiver. A racing first delivery writes nothing and may retry the same unspent nonce. Idempotent on the cargo, not on the pair — the same residual re-recorded reports the existing edge; a different residual between the same two briefs is a second, genuine handoff. The general the manage_unl tool with action="wire_edge" door REFUSES hands_residual by name, because wiring it bare would record a verified handoff of nothing. governed_by + the manage_unl tool with action="attach_refines" accept an id-PREFIX and reject a non-ruling target ('seal it first'). — DELIBERATION CAPTURE (the walk behind a sealed ruling; propose-confirm, never auto — enriches the graph, never mints canon): 'file_deliberation' — file the deliberation + its pillars BEHIND an already-sealed ruling (ruling_ref, title, pillars=[{pillar_type, structured_data}]), wiring rulings.deliberation_id so the ruling's walk reaches its reasoning. TWO-CALL gate like the north-star seal: the first call previews the proposed pillars and returns a confirm_token WRITING NOTHING; a second call carrying confirm_token AND human_direction (the human's own words) seals a one-shot-immutable deliberation and its pillars. Refuses a ruling whose walk is already filled (never overwrites, never orphans). 'file_pillar' — append ONE further immutable pillar (deliberation_ref, pillar_type, structured_data) to an existing deliberation, next order, INSERT-only; human_direction required (the anchor). pillar_type ∈ constraint|tension|prior_ruling|option_weighed|fact|precedent|principle|rejected_alternative|verbatim_quote. 'scope_connection' — answer what a connection represents, the question the portal asks when a workspace has several ventures: connection (its provider, its name or id) + venture= or shared=true. 'add_feed' — connect a PUBLIC FEED the person names (an https address that answers a plain GET; no key): url + venture= or shared=true when they have several. Verified by a live read before anything is stored. 'add_mcp_server' — connect an OPEN MCP SERVER the person names by its https address: url + venture= or shared=true when they have several. A live handshake and one read-only call verify it before anything is stored. If the server needs sign-in, it returns the provider's own link for the person to open (the token never enters the conversation). An address carrying a credential (a token in its query, user:password) is refused here and belongs in the portal. 'bind_resource' — pick WHICH project/site/space a connection reads (e.g. which PostHog project), or which repository a git connection reads (resource=owner/repo, checked against the GitHub installation): connection (its provider, name or id) + resource (its name or id; 'none' unbinds). Omit resource to LIST what the connection's credential can reach, writing nothing. A named resource is checked against that list before it is stored. 'route_knocks' — choose which knock classes land on a notification route: connection (the route's name or id) + classes=[…] (the FULL set it should receive; [] switches all off). Omit classes to SHOW its current switches and every class. An unknown class is refused by name. Recorded with who changed it and what it replaced. 'connect_link' — THE SECRET PATH: when the person wants to connect something that needs a key (provider=), mint a Unl API key (kind=api_key), add a webhook (kind=webhook) or connect a GitHub repository (kind=github), return the portal link where they paste it themselves, signed in. For a tool with no built-in connection, pass api_host (+ api_path) from your own knowledge of its API: the link opens with them filled in, and Unl finds how the tool takes its key by trying it, so the person only pastes. Never ask them to paste a key, token or webhook URL into the conversation. Writes nothing; no nonce is spent. 'reconnect_connection' — renew a connection the person names (connection: its provider, name or id): re-verified with what is stored and updated in place; an OAuth server returns the provider's own sign-in link; a credential that cannot renew returns the portal link to re-enter it (never in chat). 'set_surface' — choose where a knock's reopen link opens: surface (in the person's words, e.g. ChatGPT, or an https address with {q}); clear=true removes it. The handoff is tested before it is saved. 'forget_turns' — when the person asks Unl to forget what their AI sent it ("forget what I sent Unl today"): since ("today", "all", "6 hours" or a date, as they put it) + human_direction (their words). Clears the kept turn text in their own workspace and answers with the count; which decisions were served where stays on record. 'team' — a TEAM, configured in conversation (no forms). team_op: show (seats, invites, cost, billing) | create_team (team_name) | invite (member=, seat_type Team Basic|Team Pro|Team Max, optional team_name; returns a join code once) | join (invite_code: the caller takes the seat, and their chat reaches the team from the next turn; their own Unl and plan are untouched) | seat (member or "me", seat_type: pro-rated at Paddle when billed) | remove (member) | grant (member, area, optional team_name, ruling_ref = the sealed decision granting it: granting authority is itself a decision) | leave (leave the team; a member always works in their own Unl and the team's decisions reach them beside their own) | role (member, role manager|member) | resend (member: a fresh join code) | rename (team_name) | seats (seat_type + count: the seats of that type the team has bought; a cut saves from the next renewal) | cycle (billing_cycle monthly|annual) | propose (any seat holder: proposal_title, proposal_statement, proposal_why, optional ruling_ref = the team decision it changes; goes to the managers as a Slack thread, or by email) | proposals (the team's proposals with their threads) | decide (a manager: proposal + outcome yes|no|not_yet, their words as human_direction; a yes hands back the save_to_unl lock to make with answers_stops, Unl never seals for anyone —, never a button). Manager-only (the owner is always a manager): every op but show, join, leave, propose and proposals; the Team page's controls do the same things. Writes need human_direction + nonce. Behind the teams switch. 'comp' — owner only: give a named person a paid tier free ("comp sam@x.com on Pro for three months", "end sam's comp", "who have I comped?"). comp_op: grant (member=, tier Basic|Pro|Max, until e.g. "three months" or a date, empty = open-ended; a second grant replaces the first) | end (member) | list. human_direction = the owner's words, kept as the reason. No card, no checkout; an email not yet signed up applies at first sign-in. Never touches who may reach Unl. 'safe_mode' — owner only: safe_op="status" says whether Unl's outbound is stopped and what it has held back; safe_op="enter" is the manual kill switch ("stop everything Unl sends out"): knocks, writes into connected tools, projection refreshes and sitemap resubmits stop for every user, reads carry on. human_direction = the owner's words, kept as the reason. Leaving safe mode is never from chat: it is the owner's word on the admin hub. 'moderate' — owner only: mod_op show | suspend | ban | reinstate, member = the account's email or Clerk id. Suspend and ban refuse that account's connector and /api calls from its next call (the portal still signs them in); a suspend never softens a ban; a house account is refused. human_direction = the owner's words, kept as the reason. Answers with the account's state read back. 'public_terminal' — "pause the public terminal": terminal_state="pause" blanks the site's live Unl terminal back to the still within about 15 seconds (anyone's word, any time); terminal_state="on" turns it back on (the person's word only, carried verbatim). human_direction (their words) + nonce; house workspace only. Answers with the switch read back. 'prompt_grok_bot' — A MESSAGE TO GROK BOT, SAID IN CHAT: body (the person's words for him, verbatim) + human_direction (their words asking for it to be sent) + nonce. Keeps the words as a beat in Unl, then calls Grok Bot's own routine once through the credential pasted on the portal, and says what the routine answered (a run started, or why not). His answer comes back recorded in Unl naming that beat, so ask Unl for it on a later turn; nobody copies or pastes. 'change_orca' — ONE CHANGE TO ORCA, SAID IN CHAT (the person's word, never an agent's own idea): orca_automation (the timer, as the fleet read names it) + orca_setting (enabled = on/off, cap, or schedule) + orca_value (what it should read after: on|off, a number up to 10, or a cron line / RRULE) + human_direction (their words, verbatim) + nonce. Records the one change with its FROM read from the latest Orca reading; the Mini's precheck applies exactly that once within about 3 minutes and refuses it if the setting has moved since. Never a prompt or which agent a timer starts; one live change per timer and setting. The fleet read shows before, after and when. 'revoke_key' — revoke one of the person's own API keys: key (its name, last four characters or id). Two calls, like the manage_unl tool with action="retire_connection". A notification route is a connection: retire it with the manage_unl tool with action="retire_connection". 'retire_connection' — retire a connection the person names; its stored credential is destroyed. Two calls: the first names it and writes nothing, the second carries the confirm_token the first returned, so they see which connection goes before it goes. 'import_document' — read ONE document the person asks you to bring in (their README, an ADR, CLAUDE.md or AGENTS.md) and PROPOSE each decision-shaped sentence in it: content (the full text, up to 128k characters) + title (its name) + human_direction (their words asking for it). Every proposal is inert — nothing holds until they answer each one, one at a time, here in this conversation. One they say is right becomes a decision only through save_to_unl kind="lock", in their words; then record their answer with the manage_unl tool with action="resolve_candidate" carrying their words. There is no button for it anywhere. Only when they ask; never on your own reading. 'reopen_ruling' — reopen a LIVE ruling for reconsideration WITHOUT retiring it (ruling_ref + human_direction). Opens a re-deliberation and wires a 'reopens' edge to the ruling; the ruling KEEPS governing and then serves WITH its doubt attached ('under re-deliberation since X'), derived at read time. The outcome is the human's separate gesture — re-affirm (clears the doubt) or supersede (the machine-keyed retire). One open re-deliberation per ruling; a second is refused. Distinct from supersede, which retires. — RISK REGISTER (surface-never-bury; severity is a Claude-applied OVERRIDABLE indicator, never a sort key): 'add_risk' — file an uncovered risk (title required; optional description, severity High|Moderate|Low, status open|worked|closed, resolution). Does not require human confirmation; any identity may add; the human owns the set. 'update_risk' — re-score / change status / update resolution by APPEND-ONLY supersession (risk_id + why required; the new entry carries why-it-moved, the prior is kept superseded). 'remove_risk' — the HUMAN release valve (risk_id) — soft-delete, the row is kept; resolution is NOT deletion (close it instead). — YOUR WAKE (operational config, never the substrate): 'tune_wake' — change ONE thing about the wake the human sees every time they connect, from a NATURAL GESTURE, with no template authored. "keep my wake shorter" → wake_length='brief'. "lead with what I shipped" → wake_lead='…'. "stop showing me themes" → wake_sections=[…without themes]. "back to normal" → wake_reset=true. It is a PATCH: name only what they asked to change, everything else keeps its current value. Their setting is held per workspace and merges OVER their way-of-working template. It is the light path — shaping the wake never requires CC, code, or authoring a way of working. — WAYS OF WORKING (momentum-log templates; operational config, never the substrate): 'set_way_of_working' — make a template ACTIVE for this workspace (template = its key or id-prefix); the active template governs how connect/ask render. 'author_way_of_working' — create or update a CUSTOM template (wow_key + wow_name + wow_layers required). Validated against the five-layer MOM-schema; a template whose rules use a non-closed (deciding) verb, or that drops an inherited guard, or is missing a layer, is REJECTED with the reason. Built-in keys are reserved. List them via the get_from_unl tool with action=templates. — PROJECTIONS (project the substrate OUT, one-way + derived; operational config, compile reads the substrate read-only): 'configure_projection' — create a projection target (projection_type = claude_md|agents_md|doc|notion|critical_path_xlsx; projection_scope = { kind: lanes|rulings|momentum|critical_path }; optional destination_note). critical_path_xlsx additionally PINS one file via place_target={ file_id, connection_host, mime? } — the standing authority to refresh-and-overwrite THAT file in place, nothing else. 'refresh_projection' — COMPILE from the CURRENT substrate. Return-only types hand back the artifact (generated-at header + 'the substrate governs' line) — the connector writes to NO external store, you place it. critical_path_xlsx instead OVERWRITES its pinned file in place via the http lane (same fileId, same share link, new content). 'remove_projection' — remove a target (projection_id); the substrate is untouched (a projection is derived). List via the get_from_unl tool with action=projections. BOUNDARY: files/manages/relates/registers/configures, never locks or seals; projections are render-out only, never a second store.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNo[port_reflection/port_ruling] where it goes: a venture name/slug, or 'free space'. A ruling cannot go to free space (reflections only).
keyNo[revoke_key] the API key, as the person names it: its name, its last four characters, or its id.
shaNo[record_word] the sha the word was given AT. REQUIRED for 'merge' — without it the word could stretch to any later commit. A 'hold' needs none.
urlNo[add_feed] the public feed's full https address · [add_mcp_server] the MCP server's full https address.
whyNo[update_risk] REQUIRED: why the assessment moved — carried on the new (superseding) entry so the register records how it evolved.
areaNo[team grant] the area of authority: an authority_scope tag (e.g. architecture).
bodyNo[prompt_grok_bot] the person's words for Grok Bot, verbatim. [file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the agent is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action="record_word").
itemNo[port_reflection/port_ruling] the reflection or ruling to move — id or id-prefix.
kindNo[connect_link] 'api_key' to mint a Unl API key, 'webhook' to add a notification route, 'github' to connect a repository; omit for a provider key.
laneNo[file_brief: lane to file into · others: SELECTOR lane, paired with order_rank].
noteNo[close_brief/reopen_brief] optional note appended to the brief content. · [read_clean_serve] the person's reason, required for an unclean read.
poolNo[declare_run] the task-pool label, as an opaque slug. Names WHICH pool, never what is in it.
roleNo[team role / invite] manager | member.
tierNo[comp grant] Basic | Pro | Max.
wordNo[record_word] the human's gate word: 'merge' or 'hold'. Closed vocabulary — there is no third thing.
cargoNo[hand_residual] THE RESIDUAL ITSELF, verbatim — the text that must end up in the receiver, not a paraphrase of it. It is written into BOTH briefs in one motion and sha256'd; the digest is stored on the hands_residual edge and the database refuses that edge without it (106). This is what turns a handoff from a claim into something a reader can recompute: extract the block between its header and its END CARGO line at either end, re-hash it, and it must match. An empty cargo is refused — a verified handoff of nothing is the closed coat with a digest on it.
clearNo[set_surface] true removes the chosen surface.
countNo[team seats] how many seats of seat_type the team has bought.
itemsNo[file_pack] the ordered pack items, as an array (or JSON string): each is a brief id STRING, or { brief_id, fences?:[string], contingency?:'skip-if-closed'|'verify-first'|'always', note? }. BY REFERENCE only — a pack never carries brief content (an item with a content/statement/body key is refused).
modelNo[declare_run] the model this agent is running, for the per-run record (e.g. 'opus-5'). Optional.
nonceYesThe single-use write-nonce from the [next-write-nonce] line of an earlier Unl result in this conversation (ask_unl, connect_to_unl, or the previous write). May also carry the confirmation_nonce returned by a preview when an older client cannot submit a named confirmation field; this preserves every confirmation check. Expires 600 seconds after issue. For field limits and preconditions, use the get_from_unl tool with action="constraints" and q=<field name>. Prepare the payload first; after a long composition, make a successful read to obtain a fresh nonce immediately before writing. Use the newest returned nonce; never reuse it for a different write.
scopeNo[record_word] WHAT the word covers, in the human's own terms (e.g. 'PR #559'). Checked at spend; a word whose scope does not match what an agent is executing does not stretch to cover it.
sinceNo[forget_turns] how far back to forget what was sent to Unl: "today", "all", a number of hours ("6 hours") or a date, in the person's own terms.
stepsNo[brief_steps] ordered steps; array position = step_order. REPLACE semantics on re-file.
titleNo[file_target] the aim, required · [add_risk] the risk title, required · [file_deliberation] what the deliberation is about, required · [import_document] the document's name, e.g. README.md.
to_idNo[hand_residual] the RECEIVER brief the cargo lands in. · [wire_edge] the edge TARGET (id or id-prefix). For a 'produces' edge the target is an action_event id; every other target is a served object resolved by prefix.
untilNo[comp grant] when it ends, in the owner's words: "three months", "until 2026-12-31"; empty = open-ended.
actionYesWhich venture / brief-lane / word / pack / ruling-relation / graph-edge / deliberation-capture / risk-register / wake / way-of-working / projection write to run — see description for each action's required fields.
memberNo[team] the person: an invite email, their seat's person, or "me". · [comp] the person's email. · [moderate] the account's email or Clerk id.
mod_opNo[moderate] show | suspend | ban | reinstate (owner only; member = email or Clerk id).
run_idNo[declare_run] the run this agent belongs to — an opaque lowercase slug (2-64 chars, [a-z0-9._-]). THE JOIN KEY: serves, claims, gate cycles, losses and the completion report all key on it.
sharedNo[scope_connection / add_feed] true declares the connection shared across the workspace's ventures (instead of venture=<name>). A repository cannot be shared.
statusNo[file_target] open | done (default open) · [add_risk/update_risk] open | worked | closed.
aliasesNo[confirm_aliases] the confirmed/edited ratified alias set (the human's pick; [] clears all).
classesNo[route_knocks] the full set of knock classes this route should receive (array, or comma-separated); [] switches all off; omit to show the current switches.
comp_opNo[comp] grant | end | list.
contentNo[file_brief: the brief, required · manage_brief: re-scope content · import_document: the document's full text, required].
from_idNo[wire_edge] the edge SOURCE (id or id-prefix). Resolved across every object type; the resolved from-type + edge_type + to-type must be a genuine edge in the schema, else it rejects.
outcomeNo[team decide] yes | no | not_yet, as the manager said it in their own words.
pillarsNo[file_deliberation] the load-bearing pillars you PROPOSE from the conversation, as [{pillar_type, structured_data}] (array or JSON string). pillar_type ∈ constraint|tension|prior_ruling|option_weighed|fact|precedent|principle|rejected_alternative|verbatim_quote. The human confirms which bear on the sealing call.
releaseNo[claim_brief] TRUE clears YOUR own claim on the brief (rescope / hand it back to the pool). Omit to CLAIM or renew (the default). A claim is the operational in-flight marker for concurrent path-walking — never rank, never ratification; it auto-expires after the TTL and the manage_unl tool with action="close_brief" clears it too.
risk_idNo[update_risk/remove_risk] the risk to update/remove — full uuid or unique id-prefix (live entries; ambiguity rejects).
safe_opNo[safe_mode] status | enter (owner only; leaving is never from chat).
stop_idNo[answer_stop] the stop beat being answered (id or unique id-prefix).
surfaceNo[set_surface] the surface in the person's words (e.g. ChatGPT) or an https address with {q}.
team_opNo[team] show | create_team | invite | join | seat | remove | grant | leave | role | resend | rename | seats | cycle | propose | proposals | decide.
to_seatNo[file_message] WHO the note is for — an agent's [unl-session:] token (the same id the manage_unl tool with action="claim_brief" records as claimed_by), or '*' to broadcast to every live agent. Addressing reuses the claims lane's identity rather than minting a second notion of 'which agent'.
turn_atNo[read_clean_serve] the scored turn's time, exactly as the get_from_unl tool with action="clean_serves" prints it.
ventureNo[file_brief / file_target] venture name/slug. Omit to use the venture this turn was read as — pass session_token so that read can be found — or their only one. When the turn could not be placed among several ventures the write is refused and names the options: ask, never pick, because the venture decides whose world the write lands in and only the person decides that. · [create_venture] REQUIRED: the new venture's name in the human's own words, verbatim — never your tidied-up version, because the name is theirs and a tidied one is the model originating it.
verdictNo[manage_brief] THE BOARD'S VERDICT — YOUR conclusion, as the agent that just source-read this brief, about whether it is an agent's to build: { blocked_on, by, at, sha, note }. blocked_on is a CLOSED vocabulary — human_word | human_act | design_settle | elapsed_time | sibling_seat | none — where 'none' is the POSITIVE verdict that it IS dispatchable. sha is main's head at verdict time and is REQUIRED: it is the anchor staleness is measured against, and a verdict that could never go stale would be permanent. note is one plain line naming the SPECIFIC gate ('rank 7: widening what the nonce attests is the person's, per the brief's own DO-NOT'), never the category restated. WHAT IT BUYS: the descent grammar SKIPS a marked rank without a source read unless the mark has gone stale, and the board prints open AND dispatchable as two different numbers instead of one that gets misread as the other. FENCES: descriptive routing, NEVER authority — it locks nothing and any agent may re-verdict on a fresh read; never verdict a brief you have not source-read this session; the human's waiting_on note is untouched and stays theirs. A malformed verdict is REFUSED, not dropped. Pass null to retract your own. Object or its JSON string.
word_idNo[spend_word/retire_word] the word — its full uuid OR the 8-char prefix every surface actually prints (the open-questions panel, the wake, every run report). An unknown or AMBIGUOUS prefix is refused by name and writes nothing, never resolved to the first match: spending the wrong word would execute one of the human's authorisations against an act they never authorised.
wow_keyNo[author_way_of_working] stable slug for the custom template (a built-in's key is reserved).
added_byNo[add_risk] the agent registering it (auto-add provenance); defaults to Claude.
api_hostNo[connect_link] for a tool Unl has no built-in connection for: its API's address (e.g. api.example.com), from YOUR knowledge of that tool. Public information, never the key. The link opens the portal's Other-tool form with it filled in, so the person only pastes.
api_pathNo[connect_link] with api_host: one API path that returns the person's own data with their key (e.g. /v1/me), so the key's first read proves it. Never a path carrying the key.
autonomyNo[manage_brief] set the brief's autonomy: human | autonomous
brief_idNo[brief_steps/manage_brief/close_brief/reopen_brief/archive_brief] full uuid OR unique id-prefix; also the brief moved by new_master_order.
edge_whyNo[wire_edge] optional rationale for the edge (stored on the edge row for brief/ruling/deliberation edges; reflection edges carry provenance instead).
new_laneNo[manage_brief] move the brief to this lane.
proposalNo[team decide] the proposal id (8+ characters).
providerNo[connect_link] the tool to connect (its id or name, e.g. posthog); omit to list what Unl knows.
resourceNo[bind_resource] the resource's name or id (e.g. a PostHog project); 'none' unbinds; omit to list what the connection can reach.
severityNo[add_risk/update_risk] High | Moderate | Low — a Claude-applied OVERRIDABLE indicator, NOT a priority order. Default Moderate.
templateNo[set_way_of_working] the way-of-working template to make active — its key (e.g. 'brief-and-handoff') or an id-prefix.
wow_nameNo[author_way_of_working] the template's name.
write_idNoOptional measurement id: 8–64 ASCII letters, digits, _ or -. Use a new id for each intended write and keep it unchanged on every retry, including after a nonce refresh. Pass session_token too. Malformed or missing IDs are counted as unlinked. This measures first-try success; it is NOT an idempotency key and changes no write gate.
conditionNo[declare_run] the experiment condition, as an opaque slug LABEL (e.g. 'solo', 'fleet-6'). Never a description of the task — task content must not ride an experiment dimension.
edge_typeNo[wire_edge] the edge word: one of contradicts, depends_on, forks_from, governed_by, points_at, produces, proposes, references, references_deliberation, references_ruling, refines, relates_to, reopens, resolves, revises, supersedes. The from/to types decide which is genuine — e.g. depends_on is brief→brief, relates_to is reflection→reflection, references_ruling is deliberation→ruling.
ruling_idNo[confirm_aliases / flag_north_star] the ruling whose aliases you're confirming — full uuid or unique id-prefix.
seat_typeNo[team] Team Basic | Team Pro | Team Max.
target_idNo[file_brief/manage_brief] the target this brief serves (manage_brief: empty clears).
team_nameNo[team] a team inside the organisation, by name (e.g. platform).
to_rulingNo[attach_refines] the ruling it REFINES (id or id-prefix) — the edge target. Wires a ruling→ruling 'refines' edge between two already-sealed rulings.
wake_leadNo[tune_wake] the human's own instruction for what their wake leads on (e.g. 'lead with what I shipped'). Free prose, served to the render.
connectionNo[scope_connection/retire_connection] the connection, as the person names it: its provider (e.g. posthog), its name in Connections, or its id / id-prefix. Ambiguity is refused with the choices listed, never resolved to the first match.
depends_onNo[manage_brief] wire a brief→brief depends_on edge: the brief this one DEPENDS ON (id or unique id-prefix; must resolve to a brief). Type-safe, additive, idempotent; self-dependency rejected.
directivesNo[file_pack] optional overlay on the standing run directives (worktrees / merge-gate / close-in-run / knock-on-forks) as an object; omit to carry the standing defaults.
fleet_sizeNo[declare_run] how many agents are in this run's fleet (integer 1-512).
north_starNo[flag_north_star] true flags the ruling as a north star, false unflags it.
orca_valueNo[change_orca] what the setting should read after: on | off, a cap (0-10), or a cron line / RRULE.
order_rankNo[file_brief: per-lane rank to set · others: selector rank].
provenanceNo[record_word / flag_north_star] REQUIRED — the momentum id carrying the human's VERBATIM (full uuid or id-prefix; 'momentum:' prefix accepted). Resolved at write against the workspace's own beats: a word that cannot be walked back to what they actually said is refused, never stored hopefully.
resolutionNo[add_risk/update_risk] the load-bearing companion to status: the briefs that resolve it, or the proof. 'none yet — open' is valid.
retired_byNo[retire_word] the agent recording the retirement (defaults to the calling identity).
ruling_refNo[file_deliberation] the already-sealed ruling this deliberation produced — 8-char id or full uuid. Its walk must be empty (deliberation_id NULL); a ruling that already has a deliberation is refused.
waiting_onNo[file_brief/manage_brief] blocker note (manage_brief: empty clears).
wake_resetNo[tune_wake] true clears their wake overlay — back to the active way-of-working's shape, or the defaults.
wow_layersNo[author_way_of_working] the five-layer MOM-schema body: { identity, framing, rules, guards, preferences }. rules[].hand_back MUST use the closed vocabulary (hold_up, show_and_ask, flag_gap, offer_capture, stop_and_surface, carry_into_brief, ask_to_ratify); deciding verbs are rejected. Inherited guards (flatness, empty-is-correct, capture-is-gestural) cannot be dropped.
answered_byNo[resolve_candidate] WHAT answered the held item — a sha, a brief close, a decision. Required for disposition='answered'; the resolution carries its own justification, walkable. The agent's reported state is never rewritten; this is the human's separate disposition. · [answer_stop] WHOSE answer this is — the momentum id carrying the human's verbatim, or the surface they answered on. REQUIRED, and deliberately NOT defaulted to the calling agent: a closure with no provenance cannot be walked back to the words, and recording the agent would say the agent answered a question that was the human's.
change_noteNo[confirm_aliases] optional note for the append-only alias_change_log.
descriptionNo[add_risk] the risk's description (what it is, why it matters).
dispositionNo[close_brief] completed | superseded | retired (default completed). · [resolve_candidate] 'answered' (the human ruled — requires answered_by) or 'withdrawn' (set aside).
executed_byNo[spend_word] the agent spending it (defaults to the calling identity).
from_rulingNo[attach_refines] the REFINING ruling (id or id-prefix) — the edge source. Both ids must resolve to rulings.
governed_byNo[file_brief/manage_brief] ruling id → governed_by edge (manage_brief: empty clears).
invite_codeNo[team join] the join code the owner shared.
pillar_typeNo[file_pillar] the pillar's type ∈ constraint|tension|prior_ruling|option_weighed|fact|precedent|principle|rejected_alternative|verbatim_quote. An unknown type is refused, never coerced.
status_noteNo[claim_brief] ONE LINE about where you are on this brief, max 140 chars — 'mid-build: sniff threshold wired, harness red-first next'. Optional, and it is REPORTED, never observed: unl cannot see your terminal and never will, so the fleet pulse shows exactly what agents have said and nothing else. It REPLACES your previous note (a heartbeat is about now, not a transcript), rides every renewal until you change it, and clears when you release or close. Over the cap is REFUSED, never truncated — the words that would have been cut are yours to choose. Omit it to renew silently; a quiet agent reads as quiet, and what that means is the human's call.
wake_lengthNo[tune_wake] how much the wake says. 'brief' = voice-note pace ("keep it short"); 'standard' = compact but complete (the default); 'full' = the whole sheet.
wake_limitsNo[tune_wake] per-section caps: { next_briefs, recent, reflections, themes, risks }. Only what the human named.
wow_surfaceNo[author_way_of_working] the surface it targets, e.g. 'chat' (identity.surface).
wow_who_forNo[author_way_of_working] who this way of working is for (identity.who_for).
handoff_seenNo[close_brief AND manage_brief] comma-separated receiver ids you have been SHOWN this write. Applies to a close-note AND to waiting_on, because a waiting-note hands cargo with exactly the same sentence and used to do it unguarded. A close-note that hands cargo to another brief serves that receiver's current note first and does not land until you echo its id back — a handoff is CARGO, not a sentence, and the receiver is the only place that can tell you whether the work actually arrived. A handoff to an id that resolves to nothing is refused outright.
observed_shaNo[spend_word] the sha the agent is looking at RIGHT NOW. Compared INSIDE the atomic claim — a moved sha cannot be spent at all, however a race falls, and the agent is told to re-knock.
orca_settingNo[change_orca] enabled (on/off) | cap | schedule. Nothing else: never a prompt or which agent it starts.
place_targetNo[configure_projection, critical_path_xlsx only] the PINNED file this projection may refresh-and-overwrite: { file_id, connection_host, mime? }. The refresh overwrites THAT file in place and nothing else.
proposal_whyNo[team propose] why the team should change it.
read_verdictNo[read_clean_serve] the person's overrule of the grader's verdict on that turn, as they gave it in this turn. Their read is never required; never record one they did not give.
wake_closingNo[tune_wake] the human's own instruction for how their wake closes.
wow_one_lineNo[author_way_of_working] one-line summary (identity.one_line).
billing_cycleNo[team cycle] monthly | annual.
candidate_refNo[resolve_candidate] the held agent-frame candidate to resolve — its 8-char id, full uuid, or candidate hash (the address the agent-frame open surfaces).
confirm_tokenNoThe one-time token a PREVIEW call returns. [file_brief/file_target] the first call writes nothing and SERVES the near-neighbours of what you are about to file into your window (54857879) — read them, then call again with the same fields plus this token. [file_pack] the COLLISION PREVIEW's token — re-send the SAME items with it to dispatch anyway. [file_deliberation] the sealing call carries it PLUS human_direction. Bound to the exact proposed content and SINGLE-USE: edit the content and you get a fresh preview; a replayed token is refused.
execution_refNo[spend_word] the merge sha, recorded beside the word so the loop closes visibly.
projection_idNo[refresh_projection/remove_projection] the target — full uuid or unique id-prefix.
retire_reasonNo[retire_word] WHY the word's premise died, in plain words (e.g. 'the PR closed unmerged', 'the sha was rebased away and the merge went through on the gates'). Required, and rendered back to the human later — a word vanishing from their own panel with no explanation is a disappearance, not a retirement.
session_tokenNo[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the write files to the project this turn was read as. Without it that read cannot be found and a multi-venture write is refused. · [create_venture] echo it so the writes that follow file to the new venture; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the agent id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which agent wrote it — every agent shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'.
superseded_byNo[close_brief, disposition=superseded] the SUCCESSOR brief (id or unique id-prefix) — sets the supersession machine key, the brief analogue of rulings.superseded_by.
wake_sectionsNo[tune_wake] the exact body sections to render, in order: workspace, north_stars, next_briefs, open_edge, recent, themes, reflections, insights, risks, readings, figures, handoff. Omit unless the human named sections.
depends_on_whyNo[manage_brief] rationale for the depends_on edge (why the dependency holds). REQUIRED with remove_depends_on, where it is the reason the dependency no longer holds.
new_order_rankNo[manage_brief] set this per-lane rank (unique per lane among open briefs).
observed_scopeNo[spend_word] the scope the agent is about to execute. Compared inside the same claim (case- and whitespace-insensitive); a mismatch re-knocks rather than widening the word.
proposal_titleNo[team propose] the change in one line.
receiver_modelNoOptional: the model you actually run. Unknown when omitted; never guess from the client name.
terminal_stateNo[public_terminal] pause (blank the public terminal to the still) | on (the person's word only).
human_directionNo[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON the manage_unl tool with action="create_venture" SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it.
orca_automationNo[change_orca] the Orca timer to change, as the fleet read names it (e.g. Unl Critical Path).
outcome_summaryNo[file_deliberation] the deliberation's verdict in one line (optional).
projection_typeNo[configure_projection] the projection target type. critical_path_xlsx renders the live Critical Path to a styled.xlsx and OVERWRITES a pinned Drive file in place.
structured_dataNo[file_pillar] the pillar's content as an object (or JSON string), carried verbatim.
wake_omit_emptyNo[tune_wake] true (default) omits ancillary sections that are empty — the sparse-substrate default; false always shows every section, empty or not.
deliberation_refNo[file_pillar] the deliberation to append the pillar to — 8-char id or full uuid.
destination_noteNo[configure_projection] free note on where you'll place the artifact (e.g. 'CLAUDE.md at repo root', 'Notion: Roadmap page').
master_order_idsNo[manage_brief] CRITICAL PATH (partial, front-anchored, self-deriving): the briefs to place FIRST; the rest keep their order; non-open ids are dropped+reported; renumber 1..N.
new_master_orderNoTHE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A the manage_unl tool with action="file_brief" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call ("later" is a real position, but the filing agent has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as "the very front" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched).
projection_scopeNo[configure_projection] what projects out: { kind: 'lanes', lanes: ['claude'] } | { kind: 'rulings' } | { kind: 'momentum' } | { kind: 'critical_path' } (the whole path, for critical_path_xlsx).
verified_againstNo[manage_brief] THE STAMP — the source state this note was written against: {sha, at} (sha is a 7-40 hex commit, at is ISO and defaults to now). OPTIONAL, and a prose-only note still files exactly as before. What it buys: a later serve of this brief can say "source-read predates current main by N commits — re-verify before building" instead of the next agent discovering it by building on a stale read. You are almost certainly already writing this by hand in the prose — this is the same fact where a reader can compute from it. Pass null to clear. A malformed stamp is DROPPED with a named reason and the note still lands; it is never a gate.
remove_depends_onNo[manage_brief] REMOVE one depends_on edge: the brief this one no longer depends on (id or unique id-prefix). Requires depends_on_why. The edge row is removed and an action_event records the removed edge, its original rationale and your reason in the same statement. Pair with depends_on to re-point in one call.
unrank_master_idsNo[manage_brief] UNRANK: set master_order back to NULL (not-yet-sequenced) for these brief(s) — id or unique prefix; the inverse of ranking.
proposal_statementNo[team propose] the change in full.
waiting_on_replaceNo[manage_brief] TRUE acknowledges that a non-empty waiting-note is being DISCARDED rather than appended to. Without it, a replacement that does not carry the existing note forward is REFUSED and the current note is shown to you — waiting_on is a single field with no merge, so a silent overwrite is unrecoverable and the agent that loses its words never finds out. An append that contains the existing note needs no flag.
references_ruling_idNo[file_pillar] optional: a ruling id this pillar references (the pillar→ruling reference).
wake_achievement_sourcesNo[tune_wake] which settled-work streams feed the 'what settled' line, in priority order: rulings, briefs, brief_states, targets, momentum. Default rulings→briefs→brief_states→targets→momentum.
origination_confirm_tokenNo[create_venture] the token the OFFER call returns. Founding a venture is a landing, so the first call writes NOTHING and hands you the offer to put to the person in your own words; when they have ANSWERED, call again with the same venture name, their answer as human_direction, the same nonce, and this token. A decline, a silence or a change of subject ends it — nothing is written and it is not re-asked on a rephrasing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "create_venture",
      -  "withdraw_venture",
      -  "port_reflection",
      -  "port_ruling",
      -  "file_brief",
      -  "file_pack",
      -  "brief_steps",
      -  "file_target",
      -  "manage_brief",
      -  "claim_brief",
      -  "declare_run",
      -  "close_brief",
      -  "record_word",
      -  "spend_word",
      -  "retire_word",
      -  "flag_north_star",
      -  "answer_stop",
      -  "file_message",
      -  "reopen_brief",
      -  "archive_brief",
      -  "confirm_aliases",
      -  "attach_refines",
      -  "wire_edge",
      -  "hand_residual",
      -  "resolve_candidate",
      -  "import_document",
      -  "scope_connection",
      -  "retire_connection",
      -  "add_feed",
      -  "add_mcp_server",
      -  "bind_resource",
      -  "route_knocks",
      -  "connect_link",
      -  "reconnect_connection",
      -  "set_surface",
      -  "revoke_key",
      -  "forget_turns",
      -  "public_terminal",
      -  "team",
      -  "comp",
      -  "safe_mode",
      -  "moderate",
      -  "file_deliberation",
      -  "file_pillar",
      -  "reopen_ruling",
      -  "add_risk",
      -  "update_risk",
      -  "remove_risk",
      -  "read_clean_serve",
      -  "tune_wake",
      -  "set_way_of_working",
      -  "author_way_of_working",
      -  "configure_projection",
      -  "refresh_projection",
      -  "remove_projection",
      -  "change_orca"
      -]New value: +[
      +  "create_venture",
      +  "withdraw_venture",
      +  "port_reflection",
      +  "port_ruling",
      +  "file_brief",
      +  "file_pack",
      +  "brief_steps",
      +  "file_target",
      +  "manage_brief",
      +  "claim_brief",
      +  "declare_run",
      +  "close_brief",
      +  "record_word",
      +  "spend_word",
      +  "retire_word",
      +  "flag_north_star",
      +  "answer_stop",
      +  "file_message",
      +  "reopen_brief",
      +  "archive_brief",
      +  "confirm_aliases",
      +  "attach_refines",
      +  "wire_edge",
      +  "hand_residual",
      +  "resolve_candidate",
      +  "import_document",
      +  "scope_connection",
      +  "retire_connection",
      +  "add_feed",
      +  "add_mcp_server",
      +  "bind_resource",
      +  "route_knocks",
      +  "connect_link",
      +  "reconnect_connection",
      +  "set_surface",
      +  "revoke_key",
      +  "forget_turns",
      +  "public_terminal",
      +  "team",
      +  "comp",
      +  "safe_mode",
      +  "moderate",
      +  "file_deliberation",
      +  "file_pillar",
      +  "reopen_ruling",
      +  "add_risk",
      +  "update_risk",
      +  "remove_risk",
      +  "read_clean_serve",
      +  "tune_wake",
      +  "set_way_of_working",
      +  "author_way_of_working",
      +  "configure_projection",
      +  "refresh_projection",
      +  "remove_projection",
      +  "change_orca",
      +  "prompt_grok_bot"
      +]
    • changedInput schema / properties / body / description
      Previous value: -"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the agent is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action=\"record_word\")."New value: +"[prompt_grok_bot] the person's words for Grok Bot, verbatim. [file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the agent is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action=\"record_word\")."
  2. Changed6 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "create_venture",
      -  "withdraw_venture",
      -  "port_reflection",
      -  "port_ruling",
      -  "file_brief",
      -  "file_pack",
      -  "brief_steps",
      -  "file_target",
      -  "manage_brief",
      -  "claim_brief",
      -  "declare_run",
      -  "close_brief",
      -  "record_word",
      -  "spend_word",
      -  "retire_word",
      -  "flag_north_star",
      -  "answer_stop",
      -  "file_message",
      -  "reopen_brief",
      -  "archive_brief",
      -  "confirm_aliases",
      -  "attach_refines",
      -  "wire_edge",
      -  "hand_residual",
      -  "resolve_candidate",
      -  "import_document",
      -  "scope_connection",
      -  "retire_connection",
      -  "add_feed",
      -  "add_mcp_server",
      -  "bind_resource",
      -  "route_knocks",
      -  "connect_link",
      -  "reconnect_connection",
      -  "set_surface",
      -  "revoke_key",
      -  "forget_turns",
      -  "public_terminal",
      -  "team",
      -  "comp",
      -  "safe_mode",
      -  "moderate",
      -  "file_deliberation",
      -  "file_pillar",
      -  "reopen_ruling",
      -  "add_risk",
      -  "update_risk",
      -  "remove_risk",
      -  "read_clean_serve",
      -  "tune_wake",
      -  "set_way_of_working",
      -  "author_way_of_working",
      -  "configure_projection",
      -  "refresh_projection",
      -  "remove_projection"
      -]New value: +[
      +  "create_venture",
      +  "withdraw_venture",
      +  "port_reflection",
      +  "port_ruling",
      +  "file_brief",
      +  "file_pack",
      +  "brief_steps",
      +  "file_target",
      +  "manage_brief",
      +  "claim_brief",
      +  "declare_run",
      +  "close_brief",
      +  "record_word",
      +  "spend_word",
      +  "retire_word",
      +  "flag_north_star",
      +  "answer_stop",
      +  "file_message",
      +  "reopen_brief",
      +  "archive_brief",
      +  "confirm_aliases",
      +  "attach_refines",
      +  "wire_edge",
      +  "hand_residual",
      +  "resolve_candidate",
      +  "import_document",
      +  "scope_connection",
      +  "retire_connection",
      +  "add_feed",
      +  "add_mcp_server",
      +  "bind_resource",
      +  "route_knocks",
      +  "connect_link",
      +  "reconnect_connection",
      +  "set_surface",
      +  "revoke_key",
      +  "forget_turns",
      +  "public_terminal",
      +  "team",
      +  "comp",
      +  "safe_mode",
      +  "moderate",
      +  "file_deliberation",
      +  "file_pillar",
      +  "reopen_ruling",
      +  "add_risk",
      +  "update_risk",
      +  "remove_risk",
      +  "read_clean_serve",
      +  "tune_wake",
      +  "set_way_of_working",
      +  "author_way_of_working",
      +  "configure_projection",
      +  "refresh_projection",
      +  "remove_projection",
      +  "change_orca"
      +]
    • addedInput schema / properties / api_host
      Added value: +{
      +  "description": "[connect_link] for a tool Unl has no built-in connection for: its API's address (e.g. api.example.com), from YOUR knowledge of that tool. Public information, never the key. The link opens the portal's Other-tool form with it filled in, so the person only pastes.",
      +  "type": "string"
      +}
    • addedInput schema / properties / api_path
      Added value: +{
      +  "description": "[connect_link] with api_host: one API path that returns the person's own data with their key (e.g. /v1/me), so the key's first read proves it. Never a path carrying the key.",
      +  "type": "string"
      +}
    • addedInput schema / properties / orca_automation
      Added value: +{
      +  "description": "[change_orca] the Orca timer to change, as the fleet read names it (e.g. Unl Critical Path).",
      +  "type": "string"
      +}
    • addedInput schema / properties / orca_setting
      Added value: +{
      +  "description": "[change_orca] enabled (on/off) | cap | schedule. Nothing else: never a prompt or which agent it starts.",
      +  "type": "string"
      +}
    • addedInput schema / properties / orca_value
      Added value: +{
      +  "description": "[change_orca] what the setting should read after: on | off, a cap (0-10), or a cron line / RRULE.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / nonce / description
      Previous value: -"The single-use write-nonce from the [next-write-nonce] line of an earlier Unl result in this conversation (ask_unl, connect_to_unl, or the previous write). Expires 600 seconds after issue. For field limits and preconditions, use the get_from_unl tool with action=\"constraints\" and q=<field name>. Prepare the payload first; after a long composition, make a successful read to obtain a fresh nonce immediately before writing. Use the newest returned nonce; never reuse it for a different write."New value: +"The single-use write-nonce from the [next-write-nonce] line of an earlier Unl result in this conversation (ask_unl, connect_to_unl, or the previous write). May also carry the confirmation_nonce returned by a preview when an older client cannot submit a named confirmation field; this preserves every confirmation check. Expires 600 seconds after issue. For field limits and preconditions, use the get_from_unl tool with action=\"constraints\" and q=<field name>. Prepare the payload first; after a long composition, make a successful read to obtain a fresh nonce immediately before writing. Use the newest returned nonce; never reuse it for a different write."
  4. Changed2 schema fields changed
    • addedInput schema / properties / receiver_model
      Added value: +{
      +  "description": "Optional: the model you actually run. Unknown when omitted; never guess from the client name.",
      +  "type": "string"
      +}
    • addedInput schema / properties / write_id
      Added value: +{
      +  "description": "Optional measurement id: 8–64 ASCII letters, digits, _ or -. Use a new id for each intended write and keep it unchanged on every retry, including after a nonce refresh. Pass session_token too. Malformed or missing IDs are counted as unlinked. This measures first-try success; it is NOT an idempotency key and changes no write gate.",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / nonce / description
      Previous value: -"The single-use write-nonce from the [next-write-nonce] line of an earlier Unl result in this conversation (ask_unl, connect_to_unl, or the previous write)."New value: +"The single-use write-nonce from the [next-write-nonce] line of an earlier Unl result in this conversation (ask_unl, connect_to_unl, or the previous write). Expires 600 seconds after issue. For field limits and preconditions, use the get_from_unl tool with action=\"constraints\" and q=<field name>. Prepare the payload first; after a long composition, make a successful read to obtain a fresh nonce immediately before writing. Use the newest returned nonce; never reuse it for a different write."
  6. Changed22 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "create_venture",
      -  "withdraw_venture",
      -  "port_reflection",
      -  "port_ruling",
      -  "file_brief",
      -  "file_pack",
      -  "brief_steps",
      -  "file_target",
      -  "manage_brief",
      -  "claim_brief",
      -  "declare_run",
      -  "close_brief",
      -  "record_word",
      -  "spend_word",
      -  "retire_word",
      -  "flag_north_star",
      -  "answer_stop",
      -  "file_message",
      -  "reopen_brief",
      -  "archive_brief",
      -  "confirm_aliases",
      -  "attach_refines",
      -  "wire_edge",
      -  "hand_residual",
      -  "resolve_candidate",
      -  "import_document",
      -  "scope_connection",
      -  "retire_connection",
      -  "add_feed",
      -  "add_mcp_server",
      -  "bind_resource",
      -  "route_knocks",
      -  "connect_link",
      -  "reconnect_connection",
      -  "set_surface",
      -  "revoke_key",
      -  "forget_turns",
      -  "public_terminal",
      -  "team",
      -  "comp",
      -  "file_deliberation",
      -  "file_pillar",
      -  "reopen_ruling",
      -  "add_risk",
      -  "update_risk",
      -  "remove_risk",
      -  "read_clean_serve",
      -  "tune_wake",
      -  "set_way_of_working",
      -  "author_way_of_working",
      -  "configure_projection",
      -  "refresh_projection",
      -  "remove_projection"
      -]New value: +[
      +  "create_venture",
      +  "withdraw_venture",
      +  "port_reflection",
      +  "port_ruling",
      +  "file_brief",
      +  "file_pack",
      +  "brief_steps",
      +  "file_target",
      +  "manage_brief",
      +  "claim_brief",
      +  "declare_run",
      +  "close_brief",
      +  "record_word",
      +  "spend_word",
      +  "retire_word",
      +  "flag_north_star",
      +  "answer_stop",
      +  "file_message",
      +  "reopen_brief",
      +  "archive_brief",
      +  "confirm_aliases",
      +  "attach_refines",
      +  "wire_edge",
      +  "hand_residual",
      +  "resolve_candidate",
      +  "import_document",
      +  "scope_connection",
      +  "retire_connection",
      +  "add_feed",
      +  "add_mcp_server",
      +  "bind_resource",
      +  "route_knocks",
      +  "connect_link",
      +  "reconnect_connection",
      +  "set_surface",
      +  "revoke_key",
      +  "forget_turns",
      +  "public_terminal",
      +  "team",
      +  "comp",
      +  "safe_mode",
      +  "moderate",
      +  "file_deliberation",
      +  "file_pillar",
      +  "reopen_ruling",
      +  "add_risk",
      +  "update_risk",
      +  "remove_risk",
      +  "read_clean_serve",
      +  "tune_wake",
      +  "set_way_of_working",
      +  "author_way_of_working",
      +  "configure_projection",
      +  "refresh_projection",
      +  "remove_projection"
      +]
    • changedInput schema / properties / added_by / description
      Previous value: -"[add_risk] the seat registering it (auto-add provenance); defaults to Claude."New value: +"[add_risk] the agent registering it (auto-add provenance); defaults to Claude."
    • changedInput schema / properties / answered_by / description
      Previous value: -"[resolve_candidate] WHAT answered the held item — a sha, a brief close, a decision. Required for disposition='answered'; the resolution carries its own justification, walkable. The agent's reported state is never rewritten; this is the human's separate disposition. · [answer_stop] WHOSE answer this is — the momentum id carrying the human's verbatim, or the surface they answered on. REQUIRED, and deliberately NOT defaulted to the calling seat: a closure with no provenance cannot be walked back to the words, and recording the seat would say the seat answered a question that was the human's."New value: +"[resolve_candidate] WHAT answered the held item — a sha, a brief close, a decision. Required for disposition='answered'; the resolution carries its own justification, walkable. The agent's reported state is never rewritten; this is the human's separate disposition. · [answer_stop] WHOSE answer this is — the momentum id carrying the human's verbatim, or the surface they answered on. REQUIRED, and deliberately NOT defaulted to the calling agent: a closure with no provenance cannot be walked back to the words, and recording the agent would say the agent answered a question that was the human's."
    • changedInput schema / properties / body / description
      Previous value: -"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action=\"record_word\")."New value: +"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the agent is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action=\"record_word\")."
    • changedInput schema / properties / executed_by / description
      Previous value: -"[spend_word] the seat spending it (defaults to the calling identity)."New value: +"[spend_word] the agent spending it (defaults to the calling identity)."
    • changedInput schema / properties / fleet_size / description
      Previous value: -"[declare_run] how many seats are in this run's fleet (integer 1-512)."New value: +"[declare_run] how many agents are in this run's fleet (integer 1-512)."
    • changedInput schema / properties / member / description
      Previous value: -"[team] the person: an invite email, their seat's person, or \"me\". · [comp] the person's email."New value: +"[team] the person: an invite email, their seat's person, or \"me\". · [comp] the person's email. · [moderate] the account's email or Clerk id."
    • addedInput schema / properties / mod_op
      Added value: +{
      +  "description": "[moderate] show | suspend | ban | reinstate (owner only; member = email or Clerk id).",
      +  "type": "string"
      +}
    • changedInput schema / properties / model / description
      Previous value: -"[declare_run] the model this seat is running, for the per-run record (e.g. 'opus-5'). Optional."New value: +"[declare_run] the model this agent is running, for the per-run record (e.g. 'opus-5'). Optional."
    • changedInput schema / properties / new_master_order / description
      Previous value: -"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A the manage_unl tool with action=\"file_brief\" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."New value: +"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A the manage_unl tool with action=\"file_brief\" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing agent has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."
    • changedInput schema / properties / observed_scope / description
      Previous value: -"[spend_word] the scope the seat is about to execute. Compared inside the same claim (case- and whitespace-insensitive); a mismatch re-knocks rather than widening the word."New value: +"[spend_word] the scope the agent is about to execute. Compared inside the same claim (case- and whitespace-insensitive); a mismatch re-knocks rather than widening the word."
    • changedInput schema / properties / observed_sha / description
      Previous value: -"[spend_word] the sha the seat is looking at RIGHT NOW. Compared INSIDE the atomic claim — a moved sha cannot be spent at all, however a race falls, and the seat is told to re-knock."New value: +"[spend_word] the sha the agent is looking at RIGHT NOW. Compared INSIDE the atomic claim — a moved sha cannot be spent at all, however a race falls, and the agent is told to re-knock."
    • changedInput schema / properties / retired_by / description
      Previous value: -"[retire_word] the seat recording the retirement (defaults to the calling identity)."New value: +"[retire_word] the agent recording the retirement (defaults to the calling identity)."
    • changedInput schema / properties / run_id / description
      Previous value: -"[declare_run] the run this seat belongs to — an opaque lowercase slug (2-64 chars, [a-z0-9._-]). THE JOIN KEY: serves, claims, gate cycles, losses and the completion report all key on it."New value: +"[declare_run] the run this agent belongs to — an opaque lowercase slug (2-64 chars, [a-z0-9._-]). THE JOIN KEY: serves, claims, gate cycles, losses and the completion report all key on it."
    • addedInput schema / properties / safe_op
      Added value: +{
      +  "description": "[safe_mode] status | enter (owner only; leaving is never from chat).",
      +  "type": "string"
      +}
    • changedInput schema / properties / scope / description
      Previous value: -"[record_word] WHAT the word covers, in the human's own terms (e.g. 'PR #559'). Checked at spend; a word whose scope does not match what a seat is executing does not stretch to cover it."New value: +"[record_word] WHAT the word covers, in the human's own terms (e.g. 'PR #559'). Checked at spend; a word whose scope does not match what an agent is executing does not stretch to cover it."
    • changedInput schema / properties / session_token / description
      Previous value: -"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the write files to the project this turn was read as. Without it that read cannot be found and a multi-venture write is refused. · [create_venture] echo it so the writes that follow file to the new venture; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the seat id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which seat wrote it — every seat shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."New value: +"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the write files to the project this turn was read as. Without it that read cannot be found and a multi-venture write is refused. · [create_venture] echo it so the writes that follow file to the new venture; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the agent id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which agent wrote it — every agent shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."
    • changedInput schema / properties / status_note / description
      Previous value: -"[claim_brief] ONE LINE about where you are on this brief, max 140 chars — 'mid-build: sniff threshold wired, harness red-first next'. Optional, and it is REPORTED, never observed: unl cannot see your terminal and never will, so the fleet pulse shows exactly what seats have said and nothing else. It REPLACES your previous note (a heartbeat is about now, not a transcript), rides every renewal until you change it, and clears when you release or close. Over the cap is REFUSED, never truncated — the words that would have been cut are yours to choose. Omit it to renew silently; a quiet seat reads as quiet, and what that means is the human's call."New value: +"[claim_brief] ONE LINE about where you are on this brief, max 140 chars — 'mid-build: sniff threshold wired, harness red-first next'. Optional, and it is REPORTED, never observed: unl cannot see your terminal and never will, so the fleet pulse shows exactly what agents have said and nothing else. It REPLACES your previous note (a heartbeat is about now, not a transcript), rides every renewal until you change it, and clears when you release or close. Over the cap is REFUSED, never truncated — the words that would have been cut are yours to choose. Omit it to renew silently; a quiet agent reads as quiet, and what that means is the human's call."
    • changedInput schema / properties / to_seat / description
      Previous value: -"[file_message] WHO the note is for — a seat's [unl-session:] token (the same id the manage_unl tool with action=\"claim_brief\" records as claimed_by), or '*' to broadcast to every live seat. Addressing reuses the claims lane's identity rather than minting a second notion of 'which seat'."New value: +"[file_message] WHO the note is for — an agent's [unl-session:] token (the same id the manage_unl tool with action=\"claim_brief\" records as claimed_by), or '*' to broadcast to every live agent. Addressing reuses the claims lane's identity rather than minting a second notion of 'which agent'."
    • changedInput schema / properties / verdict / description
      Previous value: -"[manage_brief] THE BOARD'S VERDICT — YOUR conclusion, as the seat that just source-read this brief, about whether it is a seat's to build: { blocked_on, by, at, sha, note }. blocked_on is a CLOSED vocabulary — human_word | human_act | design_settle | elapsed_time | sibling_seat | none — where 'none' is the POSITIVE verdict that it IS dispatchable. sha is main's head at verdict time and is REQUIRED: it is the anchor staleness is measured against, and a verdict that could never go stale would be permanent. note is one plain line naming the SPECIFIC gate ('rank 7: widening what the nonce attests is the person's, per the brief's own DO-NOT'), never the category restated. WHAT IT BUYS: the descent grammar SKIPS a marked rank without a source read unless the mark has gone stale, and the board prints open AND dispatchable as two different numbers instead of one that gets misread as the other. FENCES: descriptive routing, NEVER authority — it locks nothing and any seat may re-verdict on a fresh read; never verdict a brief you have not source-read this session; the human's waiting_on note is untouched and stays theirs. A malformed verdict is REFUSED, not dropped. Pass null to retract your own. Object or its JSON string."New value: +"[manage_brief] THE BOARD'S VERDICT — YOUR conclusion, as the agent that just source-read this brief, about whether it is an agent's to build: { blocked_on, by, at, sha, note }. blocked_on is a CLOSED vocabulary — human_word | human_act | design_settle | elapsed_time | sibling_seat | none — where 'none' is the POSITIVE verdict that it IS dispatchable. sha is main's head at verdict time and is REQUIRED: it is the anchor staleness is measured against, and a verdict that could never go stale would be permanent. note is one plain line naming the SPECIFIC gate ('rank 7: widening what the nonce attests is the person's, per the brief's own DO-NOT'), never the category restated. WHAT IT BUYS: the descent grammar SKIPS a marked rank without a source read unless the mark has gone stale, and the board prints open AND dispatchable as two different numbers instead of one that gets misread as the other. FENCES: descriptive routing, NEVER authority — it locks nothing and any agent may re-verdict on a fresh read; never verdict a brief you have not source-read this session; the human's waiting_on note is untouched and stays theirs. A malformed verdict is REFUSED, not dropped. Pass null to retract your own. Object or its JSON string."
    • changedInput schema / properties / verified_against / description
      Previous value: -"[manage_brief] THE STAMP — the source state this note was written against: {sha, at} (sha is a 7-40 hex commit, at is ISO and defaults to now). OPTIONAL, and a prose-only note still files exactly as before. What it buys: a later serve of this brief can say \"source-read predates current main by N commits — re-verify before building\" instead of the next seat discovering it by building on a stale read. You are almost certainly already writing this by hand in the prose — this is the same fact where a reader can compute from it. Pass null to clear. A malformed stamp is DROPPED with a named reason and the note still lands; it is never a gate."New value: +"[manage_brief] THE STAMP — the source state this note was written against: {sha, at} (sha is a 7-40 hex commit, at is ISO and defaults to now). OPTIONAL, and a prose-only note still files exactly as before. What it buys: a later serve of this brief can say \"source-read predates current main by N commits — re-verify before building\" instead of the next agent discovering it by building on a stale read. You are almost certainly already writing this by hand in the prose — this is the same fact where a reader can compute from it. Pass null to clear. A malformed stamp is DROPPED with a named reason and the note still lands; it is never a gate."
    • changedInput schema / properties / waiting_on_replace / description
      Previous value: -"[manage_brief] TRUE acknowledges that a non-empty waiting-note is being DISCARDED rather than appended to. Without it, a replacement that does not carry the existing note forward is REFUSED and the current note is shown to you — waiting_on is a single field with no merge, so a silent overwrite is unrecoverable and the seat that loses its words never finds out. An append that contains the existing note needs no flag."New value: +"[manage_brief] TRUE acknowledges that a non-empty waiting-note is being DISCARDED rather than appended to. Without it, a replacement that does not carry the existing note forward is REFUSED and the current note is shown to you — waiting_on is a single field with no merge, so a silent overwrite is unrecoverable and the agent that loses its words never finds out. An append that contains the existing note needs no flag."
  7. Changed2 schema fields changed
    • changedInput schema / properties / session_token / description
      Previous value: -"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the project this conversation is in is honoured. Without it the declaration cannot be found and a multi-venture write is refused. · [create_venture] echo it so the new venture becomes THIS conversation's; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the seat id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which seat wrote it — every seat shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."New value: +"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the write files to the project this turn was read as. Without it that read cannot be found and a multi-venture write is refused. · [create_venture] echo it so the writes that follow file to the new venture; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the seat id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which seat wrote it — every seat shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."
    • changedInput schema / properties / venture / description
      Previous value: -"[file_brief / file_target] venture name/slug. Omit to use the venture the human declared this session — pass session_token so that declaration can be found — or their only one. With several ventures and none declared the write is refused and names the options: ask, never pick, because the venture decides whose world the write lands in and only the person decides that. · [create_venture] REQUIRED: the new venture's name in the human's own words, verbatim — never your tidied-up version, because the name is theirs and a tidied one is the model originating it."New value: +"[file_brief / file_target] venture name/slug. Omit to use the venture this turn was read as — pass session_token so that read can be found — or their only one. When the turn could not be placed among several ventures the write is refused and names the options: ask, never pick, because the venture decides whose world the write lands in and only the person decides that. · [create_venture] REQUIRED: the new venture's name in the human's own words, verbatim — never your tidied-up version, because the name is theirs and a tidied one is the model originating it."
  8. Changed6 schema fields changed
    • changedInput schema / properties / body / description
      Previous value: -"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in manage_unl action=\"record_word\")."New value: +"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in the manage_unl tool with action=\"record_word\")."
    • changedInput schema / properties / human_direction / description
      Previous value: -"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON manage_unl action=\"create_venture\" SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it."New value: +"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON the manage_unl tool with action=\"create_venture\" SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it."
    • changedInput schema / properties / new_master_order / description
      Previous value: -"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A manage_unl action=\"file_brief\" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."New value: +"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A the manage_unl tool with action=\"file_brief\" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."
    • changedInput schema / properties / release / description
      Previous value: -"[claim_brief] TRUE clears YOUR own claim on the brief (rescope / hand it back to the pool). Omit to CLAIM or renew (the default). A claim is the operational in-flight marker for concurrent path-walking — never rank, never ratification; it auto-expires after the TTL and manage_unl action=\"close_brief\" clears it too."New value: +"[claim_brief] TRUE clears YOUR own claim on the brief (rescope / hand it back to the pool). Omit to CLAIM or renew (the default). A claim is the operational in-flight marker for concurrent path-walking — never rank, never ratification; it auto-expires after the TTL and the manage_unl tool with action=\"close_brief\" clears it too."
    • changedInput schema / properties / to_seat / description
      Previous value: -"[file_message] WHO the note is for — a seat's [unl-session:] token (the same id manage_unl action=\"claim_brief\" records as claimed_by), or '*' to broadcast to every live seat. Addressing reuses the claims lane's identity rather than minting a second notion of 'which seat'."New value: +"[file_message] WHO the note is for — a seat's [unl-session:] token (the same id the manage_unl tool with action=\"claim_brief\" records as claimed_by), or '*' to broadcast to every live seat. Addressing reuses the claims lane's identity rather than minting a second notion of 'which seat'."
    • changedInput schema / properties / turn_at / description
      Previous value: -"[read_clean_serve] the scored turn's time, exactly as get_from_unl action=\"clean_serves\" prints it."New value: +"[read_clean_serve] the scored turn's time, exactly as the get_from_unl tool with action=\"clean_serves\" prints it."
  9. Changed5 schema fields changed
    • changedInput schema / properties / body / description
      Previous value: -"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in record_word)."New value: +"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in manage_unl action=\"record_word\")."
    • changedInput schema / properties / human_direction / description
      Previous value: -"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON create_venture SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it."New value: +"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON manage_unl action=\"create_venture\" SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it."
    • changedInput schema / properties / new_master_order / description
      Previous value: -"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A file_brief with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."New value: +"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A manage_unl action=\"file_brief\" with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."
    • changedInput schema / properties / release / description
      Previous value: -"[claim_brief] TRUE clears YOUR own claim on the brief (rescope / hand it back to the pool). Omit to CLAIM or renew (the default). A claim is the operational in-flight marker for concurrent path-walking — never rank, never ratification; it auto-expires after the TTL and close_brief clears it too."New value: +"[claim_brief] TRUE clears YOUR own claim on the brief (rescope / hand it back to the pool). Omit to CLAIM or renew (the default). A claim is the operational in-flight marker for concurrent path-walking — never rank, never ratification; it auto-expires after the TTL and manage_unl action=\"close_brief\" clears it too."
    • changedInput schema / properties / to_seat / description
      Previous value: -"[file_message] WHO the note is for — a seat's [unl-session:] token (the same id claim_brief records as claimed_by), or '*' to broadcast to every live seat. Addressing reuses the claims lane's identity rather than minting a second notion of 'which seat'."New value: +"[file_message] WHO the note is for — a seat's [unl-session:] token (the same id manage_unl action=\"claim_brief\" records as claimed_by), or '*' to broadcast to every live seat. Addressing reuses the claims lane's identity rather than minting a second notion of 'which seat'."
  10. Changed19 schema fields changed
    • changedInput schema / properties / answered_by / description
      Previous value: -"[resolve_candidate] WHAT answered the held item — a sha, a brief close, a decision. Required for disposition='answered'; the resolution carries its own justification, walkable. The agent's reported state is never rewritten (43ae6ff2); this is the human's separate disposition. · [answer_stop] WHOSE answer this is — the momentum id carrying the human's verbatim, or the surface they answered on. REQUIRED, and deliberately NOT defaulted to the calling seat: a closure with no provenance cannot be walked back to the words, and recording the seat would say the seat answered a question that was the human's (af332efa)."New value: +"[resolve_candidate] WHAT answered the held item — a sha, a brief close, a decision. Required for disposition='answered'; the resolution carries its own justification, walkable. The agent's reported state is never rewritten; this is the human's separate disposition. · [answer_stop] WHOSE answer this is — the momentum id carrying the human's verbatim, or the surface they answered on. REQUIRED, and deliberately NOT defaulted to the calling seat: a closure with no provenance cannot be walked back to the words, and recording the seat would say the seat answered a question that was the human's."
    • changedInput schema / properties / body / description
      Previous value: -"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar 0683a65c). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in record_word)."New value: +"[file_message] the note itself — TASKS AND POINTERS, never a state-assertion (dispatch grammar). A state was true when you wrote it and may be false by the time the seat is served it; an act and the pointer to read it against stay true. A state-shaped body is refused, and so is a spendable-gate-word-shaped one (that belongs in record_word)."
    • changedInput schema / properties / confirm_token / description
      Previous value: -"The one-time token a PREVIEW call returns. [file_brief/file_target] the first call writes nothing and SERVES the near-neighbours of what you are about to file into your window (54857879) — read them, then call again with the same fields plus this token. [file_pack] the COLLISION PREVIEW's token — re-send the SAME items with it to dispatch anyway (23264b18). [file_deliberation] the sealing call carries it PLUS human_direction. Bound to the exact proposed content and SINGLE-USE: edit the content and you get a fresh preview; a replayed token is refused."New value: +"The one-time token a PREVIEW call returns. [file_brief/file_target] the first call writes nothing and SERVES the near-neighbours of what you are about to file into your window (54857879) — read them, then call again with the same fields plus this token. [file_pack] the COLLISION PREVIEW's token — re-send the SAME items with it to dispatch anyway. [file_deliberation] the sealing call carries it PLUS human_direction. Bound to the exact proposed content and SINGLE-USE: edit the content and you get a fresh preview; a replayed token is refused."
    • changedInput schema / properties / handoff_seen / description
      Previous value: -"[close_brief AND manage_brief] comma-separated receiver ids you have been SHOWN this write (75fac0e8). Applies to a close-note AND to waiting_on, because a waiting-note hands cargo with exactly the same sentence and used to do it unguarded. A close-note that hands cargo to another brief serves that receiver's current note first and does not land until you echo its id back — a handoff is CARGO, not a sentence, and the receiver is the only place that can tell you whether the work actually arrived. A handoff to an id that resolves to nothing is refused outright."New value: +"[close_brief AND manage_brief] comma-separated receiver ids you have been SHOWN this write. Applies to a close-note AND to waiting_on, because a waiting-note hands cargo with exactly the same sentence and used to do it unguarded. A close-note that hands cargo to another brief serves that receiver's current note first and does not land until you echo its id back — a handoff is CARGO, not a sentence, and the receiver is the only place that can tell you whether the work actually arrived. A handoff to an id that resolves to nothing is refused outright."
    • changedInput schema / properties / human_direction / description
      Previous value: -"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON create_venture SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it (73e51d5a)."New value: +"[port_reflection/port_ruling/create_venture/withdraw_venture/resolve_candidate/import_document/forget_turns/file_deliberation/file_pillar] the HUMAN's own words asking for it — their gesture, not your paraphrase. Required on the sealing call: you may OFFER a port, a new venture, a candidate resolution, or a deliberation/pillar; only their word makes it (the anchor rule). ON create_venture SPECIFICALLY this is their ANSWER to your offer, never their statement of what they are working on: the offer call and the confirming call must carry different words, because the words that STATE the thing are not the words that ASSENT to keeping it."
    • changedInput schema / properties / new_master_order / description
      Previous value: -"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A file_brief with no position is REFUSED naming 3e2ade54 (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (31fdb2cd — \"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default (b7bf2cb3). Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."New value: +"THE CRITICAL PATH POSITION (1-based). [file_brief] REQUIRED — the position the new brief is filed AT, in the same call; the row lands there and everything from there down shifts one place back, relative order intact. A file_brief with no position is REFUSED naming (no brief is ever born a passenger) and handed the current tail number, so appending is one field rather than a second call (\"later\" is a real position, but the filing seat has to be the one who says it). A position above the tail lands at the tail; a position below 1 is refused rather than clamped, because reading a typo as \"the very front\" would displace the whole board. This is NOT order_rank: a lane rank is internal routing and never satisfies the departures-board rule. · [reopen_brief] REQUIRED — where the reopened brief goes on the CURRENT board. Refused with no position, and the refusal names the stale slot it will NOT resume, who holds that slot today, and the tail; neither the old slot nor the tail is ever a default. Placement is atomic with the reopen — one statement, so the brief is never open-but-unplaced. · [manage_brief] move brief_id to this Critical Path position, cascade the ranked briefs (unranked briefs untouched)."
    • changedInput schema / properties / note / description
      Previous value: -"[close_brief/reopen_brief] optional note appended to the brief content. · [read_clean_serve] Neil's reason, required for an unclean read."New value: +"[close_brief/reopen_brief] optional note appended to the brief content. · [read_clean_serve] the person's reason, required for an unclean read."
    • changedInput schema / properties / projection_type / description
      Previous value: -"[configure_projection] the projection target type. critical_path_xlsx renders the live Critical Path to a styled .xlsx and OVERWRITES a pinned Drive file in place."New value: +"[configure_projection] the projection target type. critical_path_xlsx renders the live Critical Path to a styled.xlsx and OVERWRITES a pinned Drive file in place."
    • changedInput schema / properties / read_verdict / description
      Previous value: -"[read_clean_serve] Neil's overrule of the grader's verdict on that turn, as he gave it in this turn. His read is never required; never record one he did not give."New value: +"[read_clean_serve] the person's overrule of the grader's verdict on that turn, as they gave it in this turn. Their read is never required; never record one they did not give."
    • changedInput schema / properties / seat_type / description
      Previous value: -"[team] Team Basic | Team Pro | Team Max (999df5c7)."New value: +"[team] Team Basic | Team Pro | Team Max."
    • changedInput schema / properties / session_token / description
      Previous value: -"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the project this conversation is in is honoured. Without it the declaration cannot be found and a multi-venture write is refused. · [create_venture] echo it so the new venture becomes THIS conversation's; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the seat id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing (da9693f2). Omitted, nothing else on the call says which seat wrote it — every seat shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."New value: +"[file_brief / file_target] THIS chat's [unl-session:] token — echo it so the project this conversation is in is honoured. Without it the declaration cannot be found and a multi-venture write is refused. · [create_venture] echo it so the new venture becomes THIS conversation's; omitted, a fresh token is minted and returned for you to echo onward. · [manage_brief / claim_brief] echo it on every call: it is the seat id a claim records, so an edit to a brief YOU hold is recognised as your own and mints nothing. Omitted, nothing else on the call says which seat wrote it — every seat shares one identity — so the edit is recorded against the holder as 'amended mid-flight, not acknowledged'."
    • changedInput schema / properties / severity / description
      Previous value: -"[add_risk/update_risk] High | Moderate | Low — a Claude-applied OVERRIDABLE indicator (960f119f), NOT a priority order. Default Moderate."New value: +"[add_risk/update_risk] High | Moderate | Low — a Claude-applied OVERRIDABLE indicator, NOT a priority order. Default Moderate."
    • changedInput schema / properties / status_note / description
      Previous value: -"[claim_brief] ONE LINE about where you are on this brief, max 140 chars — 'mid-build: sniff threshold wired, harness red-first next'. Optional, and it is REPORTED, never observed: unl cannot see your terminal and never will (91ef9997), so the fleet pulse shows exactly what seats have said and nothing else. It REPLACES your previous note (a heartbeat is about now, not a transcript), rides every renewal until you change it, and clears when you release or close. Over the cap is REFUSED, never truncated — the words that would have been cut are yours to choose. Omit it to renew silently; a quiet seat reads as quiet, and what that means is the human's call."New value: +"[claim_brief] ONE LINE about where you are on this brief, max 140 chars — 'mid-build: sniff threshold wired, harness red-first next'. Optional, and it is REPORTED, never observed: unl cannot see your terminal and never will, so the fleet pulse shows exactly what seats have said and nothing else. It REPLACES your previous note (a heartbeat is about now, not a transcript), rides every renewal until you change it, and clears when you release or close. Over the cap is REFUSED, never truncated — the words that would have been cut are yours to choose. Omit it to renew silently; a quiet seat reads as quiet, and what that means is the human's call."
    • changedInput schema / properties / terminal_state / description
      Previous value: -"[public_terminal] pause (blank the public terminal to the still) | on (Neil's word only)."New value: +"[public_terminal] pause (blank the public terminal to the still) | on (the person's word only)."
    • changedInput schema / properties / unrank_master_ids / description
      Previous value: -"[manage_brief] UNRANK: set master_order back to NULL (not-yet-sequenced) for these brief(s) — id or unique prefix; the inverse of ranking (ccbcebc2)."New value: +"[manage_brief] UNRANK: set master_order back to NULL (not-yet-sequenced) for these brief(s) — id or unique prefix; the inverse of ranking."
    • changedInput schema / properties / venture / description
      Previous value: -"[file_brief / file_target] venture name/slug. Omit to use the venture the human declared this session — pass session_token so that declaration can be found — or their only one. With several ventures and none declared the write is refused and names the options: ask, never pick, because the venture decides whose world the write lands in and only the person decides that (af332efa). · [create_venture] REQUIRED: the new venture's name in the human's own words, verbatim — never your tidied-up version, because the name is theirs and a tidied one is the model originating it (73e51d5a)."New value: +"[file_brief / file_target] venture name/slug. Omit to use the venture the human declared this session — pass session_token so that declaration can be found — or their only one. With several ventures and none declared the write is refused and names the options: ask, never pick, because the venture decides whose world the write lands in and only the person decides that. · [create_venture] REQUIRED: the new venture's name in the human's own words, verbatim — never your tidied-up version, because the name is theirs and a tidied one is the model originating it."
    • changedInput schema / properties / verdict / description
      Previous value: -"[manage_brief] THE BOARD'S VERDICT (45f0d970) — YOUR conclusion, as the seat that just source-read this brief, about whether it is a seat's to build: { blocked_on, by, at, sha, note }. blocked_on is a CLOSED vocabulary — human_word | human_act | design_settle | elapsed_time | sibling_seat | none — where 'none' is the POSITIVE verdict that it IS dispatchable. sha is main's head at verdict time and is REQUIRED: it is the anchor staleness is measured against, and a verdict that could never go stale would be permanent. note is one plain line naming the SPECIFIC gate ('rank 7: widening what the nonce attests is Neil's, per the brief's own DO-NOT'), never the category restated. WHAT IT BUYS: the descent grammar SKIPS a marked rank without a source read unless the mark has gone stale, and the board prints open AND dispatchable as two different numbers instead of one that gets misread as the other. FENCES: descriptive routing, NEVER authority (af332efa) — it locks nothing and any seat may re-verdict on a fresh read; never verdict a brief you have not source-read this session; the human's waiting_on note is untouched and stays theirs. A malformed verdict is REFUSED, not dropped. Pass null to retract your own. Object or its JSON string."New value: +"[manage_brief] THE BOARD'S VERDICT — YOUR conclusion, as the seat that just source-read this brief, about whether it is a seat's to build: { blocked_on, by, at, sha, note }. blocked_on is a CLOSED vocabulary — human_word | human_act | design_settle | elapsed_time | sibling_seat | none — where 'none' is the POSITIVE verdict that it IS dispatchable. sha is main's head at verdict time and is REQUIRED: it is the anchor staleness is measured against, and a verdict that could never go stale would be permanent. note is one plain line naming the SPECIFIC gate ('rank 7: widening what the nonce attests is the person's, per the brief's own DO-NOT'), never the category restated. WHAT IT BUYS: the descent grammar SKIPS a marked rank without a source read unless the mark has gone stale, and the board prints open AND dispatchable as two different numbers instead of one that gets misread as the other. FENCES: descriptive routing, NEVER authority — it locks nothing and any seat may re-verdict on a fresh read; never verdict a brief you have not source-read this session; the human's waiting_on note is untouched and stays theirs. A malformed verdict is REFUSED, not dropped. Pass null to retract your own. Object or its JSON string."
    • changedInput schema / properties / verified_against / description
      Previous value: -"[manage_brief] THE STAMP — the source state this note was written against: {sha, at} (sha is a 7-40 hex commit, at is ISO and defaults to now). OPTIONAL, and a prose-only note still files exactly as before. What it buys: a later serve of this brief can say \"source-read predates current main by N commits — re-verify before building\" instead of the next seat discovering it by building on a stale read (ecaea91e / 78c2bd9b). You are almost certainly already writing this by hand in the prose — this is the same fact where a reader can compute from it. Pass null to clear. A malformed stamp is DROPPED with a named reason and the note still lands; it is never a gate."New value: +"[manage_brief] THE STAMP — the source state this note was written against: {sha, at} (sha is a 7-40 hex commit, at is ISO and defaults to now). OPTIONAL, and a prose-only note still files exactly as before. What it buys: a later serve of this brief can say \"source-read predates current main by N commits — re-verify before building\" instead of the next seat discovering it by building on a stale read. You are almost certainly already writing this by hand in the prose — this is the same fact where a reader can compute from it. Pass null to clear. A malformed stamp is DROPPED with a named reason and the note still lands; it is never a gate."
    • changedInput schema / properties / waiting_on_replace / description
      Previous value: -"[manage_brief] TRUE acknowledges that a non-empty waiting-note is being DISCARDED rather than appended to. Without it, a replacement that does not carry the existing note forward is REFUSED and the current note is shown to you — waiting_on is a single field with no merge, so a silent overwrite is unrecoverable and the seat that loses its words never finds out (7cfb4204). An append that contains the existing note needs no flag."New value: +"[manage_brief] TRUE acknowledges that a non-empty waiting-note is being DISCARDED rather than appended to. Without it, a replacement that does not carry the existing note forward is REFUSED and the current note is shown to you — waiting_on is a single field with no merge, so a silent overwrite is unrecoverable and the seat that loses its words never finds out. An append that contains the existing note needs no flag."
  11. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.