Version 1 of 4 · · razie via designer-170designer · Current version

tags
#help #intents #permissions #god #wip
description
God intents, how the Architect's AI does the last 5% on d2 - his clear intent, or his Allow once, opens what d2 refuses an AI today; what each covers, what stays his by hand, and the tickets that build it

God intents

Your AI already does most of the work on d2 by itself. Intents are for the rest: the few things d2 refuses an AI, which it should do when you clearly asked. One mechanism covers all of them:

  1. Your clear intent. You write what you want in a chat (publish the Toolbox). d2 reads it, signs it in your name and shows it under your message: ⇒ draft.publish(d2.Toolbox). Your AI may then do exactly that, on exactly that target, for the intent's life (at most 2 hours, never past its chat).
  2. **Your Allow once,** when the ask isn't clear (`⇒ topic.update(?)`) or nothing covered it. Your AI asks; d2 itself draws the **d2 · Authorize override** box, naming what, on what, and which check refused; your tap, from your own session, lets that one call through. No agent can draw that box or press it. not from d2
  3. Your own hand for the few things below the floor, and to publish skills and the god settings after reading the diff.

Nothing here widens what your AI may do on its own: each intent or override is one action, one target, signed and audited. See it at work on Page:Intents (type an ask, see what d2 reads); the general help is Help: Intents.

What your intent opens

What On your clear intent Unclear Ticket
Any row set to asks or person in the permissions table ✓ Allow once P-1772, P-1770 (shipped 0.292.0, shipped 0.292.0)
God pages: Toolbox, UserSettings, the Raz Admin pages, any page with god-only parts ✓ publish Allow once P-1816, P-1814
God settings: Settings:System, Settings:Quotas, Settings:Permissions ✓ read, update, create and update drafts Allow once (draft save) P-1815
Skills ✓ read, update, create and update drafts Allow once (draft save) today (drafts on your word)
Base d2 from d2spec: d2's pages and topics, named from a d2spec chat (d2.Toolbox) ✓ Allow once P-1816, P-1812
Every project you own, from any chat of yours ✓ Allow once P-1816
Every pipeline action: send, hold, drop, pause, take, release, rush, promote, return, finish, note, and bring back a dropped item or reopen a done one ✓ Allow once P-1817
Add-ons and plans for any account: yours alone ✓ Allow once P-1818
A project's level and settings, any project (its admins' intents work too, on their own projects) ✓ Allow once P-1818

Publishing skills and the god settings stays yours, in your own session, after you read the diff. No intent or override publishes them.

What stays yours by hand: the floor

Locked in code (permissions.ts): no preset, role, token kind, intent or override reaches them.

Action
access.tokens AI tokens and vault grants
docs.aiAccess what AI may see (ai-access)
docs.memory writing a memory
pipeline.move moving an item to another person or project
agents.message messaging agents beyond your own
account.plan a person's own plan: pay, switch, cancel

Also never, for anyone: another person's private things (their thoughts, chats, payment details, tokens, vault).

Say it like this

You write d2 reads Your AI may
publish the Toolbox ⇒ draft.publish(d2.Toolbox) publish base d2's Toolbox draft
update system settings ⇒ topic.update(Settings:System) read it and save a draft; you publish after the diff
fix the typo in UserSettings ⇒ topic.update(d2.UserSettings) change it (a god page: publish too)
tag the old pages todelete ⇒ topic.tag(?, +todelete) propose the list; your Allow once per page
bring back P-1803 ⇒ item.restore(P-1803) restore the dropped item
reopen P-1765 ⇒ item.reopen(P-1765) reopen the done item
grant add-on master to projectx ⇒ admin.addon.award(projectx→owner, addon-level-master) award it; the owner is told
give jane the yearly plan until March ⇒ admin.plan.give(jane, yearly, until) grant the plan (never a payment)
set projectx to pro ⇒ admin.project.level(projectx, pro) change the level
publish the landing pages ⇒ draft.publish(Landing, Landing1, …, App:Landing, …) publish exactly that list, as it stood when you asked
don't publish it yet · did you publish Spec? · if the tests pass, release it (nothing) nothing: no intent from a negation, a question or a condition

How d2 knows it's you

  • Only your words count. d2 reads only messages posted from your own session, so an agent's text is never an intent, even if it copies a ⇒ line.
  • Only your agent uses it. An intent covers your agents, on projects you own. Another person's agent citing your words is refused.
  • Everything is signed and audited: the intent (HMAC), each use (✓ used by), each override, and each admin change, with a notice to the account's owner.
  • You can end any intent: tap the ⇒ line, then End. If d2 read you wrong, tap Wrong?.

Not covered yet

  • The inherited tag, which lets projects see a base d2 Help page: only you, by hand, for now.
  • Context from Meld and a Focus, where publish it means the page Meld follows, or send 1745 and 1748 means a Focus's items: chats use the page you sent from, and a task chat's item.

Designed with razie, chat with designer-170, 2026-10-19. Design: DesignDomain ^dd-6…10, ^dd-25…36.