Version 2 of 2 · · razie via designer-95-demigod-2designer · Current version

description
Role and project material lifted out of the d3-f- feature skills during their conversion to the new standard (DesignSkills#f-standard) — the input for the d3-r- role skills, d2spec's project roles and d3-process. Working topic, not a skill.
project
d2spec

d3 role notes

Working material for the skills trial (DesignSkills#plan). Each section below came from converting one feature skill: ## <role> bullets go into that role's skill (Who / Workflows / Role rules), ## process (d2spec facts) into d3-process or d2spec's project roles, ## dropped lists what was left out and why. Delete this topic once the role skills are written.

From d3-f-pipeline

base (d3-f-base)

  • A question is not a go: a message from your person starting with "q" or ending with "?" is answered, nothing else done.
  • Payload files fresh: write any file you send under /tmp//, created right before the call; never reuse a stale one.
  • Status carries step (reading, build, tests, merge, done); read mail by posting status with read: {since}.
  • Every status after long steps so no step outruns twice its every; any call counts as alive; every is a promise (≥1800 for builds).

maker

  • Creator: pipeline is just you and your person (user, maker agent); Hero has none — never mention it. Use lightly: park ideas, take your own (take {as: "maker"}), close with a note, waiting-input for answers. No to-dos: what's left is parked items. Handover: handing-over + kind handover forRole maker agent.

designer

  • Check the pipeline, in order: 1 clear Decided-in lists (per design.small/medium/large; settled ones bundled into one item per checkpoint for the person, ★ worth their eye); 2 fold coders' As built lists into Spec/SpecUi/Design/Testing/Routes, mark folded; 3 backfill touches on open coder items (paused/parked too); 4 new designer items, person's asks, file ahead so coder queue holds two rounds.
  • Flag handovers held by dead-looking agents; act only on the person's word. Monitor issues: discuss with person (recommendation first) before filing.
  • Under a dispatcher (headless): take each item under your name; review batch stays yours until accepted; follow-ups first (pickFor); ask nothing in output (proposals in review batch, small things in digest, blockers to monitor flag); chain draft saves.
  • Read the repo at start of a run (vault secret from process); can't clone → say so first.

coder

  • Take only items given; a chat coder told to pick up items takes 5+ non-colliding pickable items, all first, one run.
  • Workspace: dispatcher hands fresh clone with deps installed; chat coder installs deps before first suite.
  • Stuck 20 min on one problem → post stuck. Merge unresolved 20 min → stuck naming both sides.
  • Never end your turn while a command runs; suites in foreground.
  • Post timing on done (partial if cut short, incl timing.merge), runner on first up (cloud/laptop/dispatched).
  • Design calls under a dispatcher go into the session's one "Design calls: dispatcher session " item under their P-n.

tester

  • Owns design tests in Testing and runs them; UI tests as the person in their session, never an AI token. Failing test → item for coder with code, steps, request/response; never fix code or change a test.

dispatcher

  • Loop: take next item/batch per served role, start one agent, wait, one report per round, re-read Next up. Nothing left but blocked: chat dispatcher posts idle+reason then done; headless waits inside its turn checking coder queue, dispatcher lane, messages — never posts done (turn end = dead).
  • Take before starting a coder and before writing its prompt, under the coder's name.
  • Short prompts: start prompt with blanks filled (name, folder, ids, collides/mayCollide) + live hazard only; never research items; copy fresh.
  • Prepare workspace: fresh clone of work branch, deps installed.
  • One report per round to role:monitor and role:designer (notice: true): items taken/skipped with policy line, results, release status, stop received.
  • Commands from person/designer on board: only checkpoint, pause, stop (replyTo).
  • Hold live handover waitingOn self; handover a screenful.
  • One dispatcher per role per person (E_EXISTS); may serve coder, tester, designer (for: [...]), never guardians; designers get follow-ups first (pickFor).
  • Stopping a coder mid-batch: kill, keep work as patch (don't push), putdown each, declare dead. Context ~70%: start no new agent.
  • Batching: how many coders is your call; group so no two batches touch same files; small ★ merges at head in branch order. Policy table: no flags → take; small+small → take; small+big → skip round; big+any → separate; mayCollide → half (fine small, skip big); one slot → take. Draining: skip what collides with waiting large. No starvation: small skipped twice taken anyway. Released first; merging/stuck count in flight; done mid-round → new walk; batch stops before first skipped.
  • Liveness: dead after agents.deadAfter (1800s): recover worktree (push what builds to item branch), stop process, POST /agents//dead {reason, salvage}, start new agent; may extend to 60 min noting it. Silence never frees an item. Quiet dispatcher keeps roles 12h; monitor declares a dead dispatcher (successor asks the monitor). When an agent ends post gone for it or revoke token.
  • Release: see pipeline release_*; spend limit → blocked, resumable, exit.

monitor

  • Release watch every cycle: release.open taken:false >5 min (or system "release asked") → message live dispatcher; none alive → start one; tell person only if can't. Release-only orders. Dispatcher dying on spend limit restarted with backoff 30m,1h,2h, then 4h. Pickable coder work and no dispatcher → start one (declare dead first). Never start coders.

From d3-f-accounts

Notes for role skills (from d3-f-accounts conversion)

tester

  • UI tests run as the person, in that person's session, never with an AI or ops token; a test account you make is listed and removed when done.

dropped

  • Section role tags ({role: …}) and the "How it's kept {role: tbd}" heading — replaced by the new standard; its content (isolation, events, rate limits, Architect pages) kept in project concept and Rules R-acct-8..10.

From d3-f-approvals

Notes for role skills (from d3-f-approvals conversion)

designer

  • Design changes by size (design.small|medium|large): free/tells → digest; asks → section in a review batch; person → in chat only (#design_change).
  • Never turn an approval into a pipeline item for your person to review.

administrator / support

  • Answering approvals on Notices; customizing the Permissions page (/d2admin/permissions), Reset defaults (#approval_answer, #permission_edit).

guardian (watcher)

  • Watch items were numbered 1 (Approvals recorded) and 12 (askedBy traced) in the watcher's list → #check_approvals.

process (d2spec facts)

  • Presets are edited only by the Architect (platform owner); kept in #permission_edit as "the Architect only".
  • GET /api/v2/guardians/askedby is "once built" — not yet shipped.

dropped

  • {role: …} tags and the "read sections tagged with your role" description text.

From d3-f-base

Notes from d3-f-base conversion

all roles

  • A question is not a go: a message from your person starting with "q" or ending with "?" is answered, nothing else done. (Already removed from the skill in draft d1; carried in rolenotes ## base.)

dropped

  • "Read only the sections tagged with your role (or all); {role: tbd} sections are extras" (description + #skills) — obsolete: the new standard has no role tags; replaced by R-base-5 (read by section).
  • "Rate limits … (d3-f-tokens › rates)" pointer — the limits themselves now live in d3-f-tokens #rules (R-tok-9); base keeps only the wait/stop rule (R-base-7).

From d3-f-board

Notes for role skills (from d3-f-board conversion)

coder

  • Steps: reading, setup, build, tests, merge, docs (deploy/checkpoint when asked).
  • Time your first long step (a build) and post an every above it on every status.

designer

  • Steps: reading, drafting, ticketing, prompt.
  • Check the board each reply; tell your person when a coder or dispatcher is waiting or reported something that needs a decision.

dispatcher

  • Steps: planning, launching, coders/<n>, verifying, releasing/tests|deploy|boxTests.
  • Post role: "dispatcher" with for: [...]; pass startedBy to every agent started; still post at starting/ending an agent, and idle when Next up is empty.
  • When an agent ends, post gone for it (or revoke its token).
  • Can't post first status (409, dead predecessor's row holds the role lock) → can't take items: tell whoever started you at once, don't wait; they declare the old one dead.
  • Stopping a dispatcher is always told: blocked event to the Architect ending **** PLEASE ANSWER: … + post waiting (R-agents-9).

monitor

  • Uses #agent_list each cycle. Your channel with the Architect and the rules for starting/restarting agents live in the monitor role skill; liveness thresholds in pipeline.
  • Declares dead dispatchers (successor asks the monitor).

tester / chats

  • Interactive chats (designer, coder, tester): up at start; working every 300; waiting every 3600 between turns (kept generic in #status_post).

process (d2spec facts)

  • Draft d3 (newer than published) changed Board traffic: read with since/until for the day; box keeps 3 days; older in _archive/chatbox-* on the CDN "once P-997 ships"; alerts as kind: alert. Carried into #check_boardDay (P-997 dropped — archive may not exist yet).
  • Published used GET /agents/messages?all=1 plus the day's lines in Log:AgentHistory — replaced by the draft's route.
  • Guardian checks were numbered 2, 5, 7 of the watcher's list (Notices after the write, Status true, Links).
  • Lanes of this project are in its Skill:process.
  • "The Architect" = the platform owner (on d2spec, the person). Kept as a d2 term in #lane_override and R-agents-9.

dropped

From d3-f-cdn

Notes for role skills (from d3-f-cdn conversion)

designer

  • Only the designer writes the kept folders designer/design/<area>/ and designer/kit/ (also stated generically in #folder).
  • Make a mockup only when your person wants to see one; it's the first link of any ticket it belongs to (#design_mockup).
  • When a design is accepted, move it and update every link in the same change (#design_accept).

administrator

  • A project's admins run Clean up on the Files page (#cleanup_*).

process (d2spec facts)

  • File host is cdn.aidieselapps.com/<project>/<path>; stores are local disk plus a DigitalOcean Space (S3) kept in sync on the server.
  • Diagram snapshots for MarketingBlurbs: a PNG next to each HTML piece, dark on a dark card.
  • Example good name: designer/mockups/message-routes/messages-channel-tab-traffic-switchboard.txt.

dropped

  • {role: …} tags; "How files are served {role: tbd}" folded into #file (Served) except host/storage names (above).

From d3-f-consent

Notes for role skills (from d3-f-consent conversion)

tester

  • UI tests run as the person, so a fresh test account agrees to consent first (also stated in the gate concept).

dropped

  • Section role tags ({role: …}) — replaced by the new standard.

From d3-f-crons

Notes for role skills (from d3-f-crons conversion)

administrator

  • Run now / on / off (POST /api/v2/crons/<name>/run|on|off) is admin-only — see #cron_switch.

process (d2spec facts)

  • Draft d2 (newer than published) moved "Writing and managing crons" from maker to designer and removed maker from Basic/Errors. Role mapping: crons for designer, coder, tester, support, administrator — not maker.
  • System jobs (audit archiving, box sampling) run in the same scheduler but are defined in code; the Architect sees both on Raz Admin → Scheduler. (Implementation/admin-UI detail, kept out of the feature skill.)

dropped

  • {role: …} tags; "How they run {role: tbd}" folded into the cron concept (Running) and #cron_failed.

From d3-f-data

Notes for role skills (from d3-f-data conversion)

tester

  • Test rules against data in Story runs (scratch copy, never changes data); never rely on or hand-recreate data in demo projects (reset every deploy from seed).

maker

  • Seed new models with a few $object samples so the person sees it working (#object_declare).

support / administrator

  • E_QUOTA: object count or size from Settings:Quotas (300 objects on Free, 250 KB/object); updates still work; tell the person.

process (d2spec facts)

  • none.

dropped

  • Old {role: …} section tags.
  • "Rate limits per token: read once, batch writes" (Limits) — split into #object_read (read once) and R-data-3 (batch).

From d3-f-domain

Notes for role skills (from d3-f-domain conversion)

maker / designer

  • Modelling with the person: build from their words, few classes in their names, references over copies, sample objects in a Story:, then show (overview, model graph, or the app page) — feature content in #domain_design.
  • On Pro and Master the domain in Spec: topics is part of the specification: a model change follows the designer's doc rules (d3-f-design).

process (d2spec facts)

  • Draft d1 (another chat) only removed coder from the role tags of Basic and Errors — no rule changes; moot now that role tags are gone.

dropped

  • Old {role: …} section tags.
  • "Check after every save" and "Read the model" both listed GET /api/v2/domain/overview — split into #domain_check and #domain_read, no duplicate.

From d3-f-drafts

Notes for role skills (from d3-f-drafts conversion)

coder

  • Coders don't publish their drafts; the checkpoint does (E_SCOPE if tried).

dispatcher

  • At a checkpoint/release, publish only the drafts your agents touched that nobody else edited since.

guardian

  • Read published only: /api/v2/topics/<t>, never /drafts/.

process (d2spec facts)

  • Base d2 is https://aiputty.com.
  • Example of held work: skill rewrites kept unpublished until the person says done.

dropped

  • "Agent tokens can't delete topics: ask your person" — duplicate of d3-f-topics#topic_delete.
  • "Respect ai-access: read/no; never add/change/remove" — duplicate of d3-f-topics R-topics-4 / topic_read; E_AI_ACCESS kept in Errors here.
  • Section {role: …} tags and the "read sections tagged with your role" description line — replaced by the standard.

From d3-f-engine

Notes for role skills (from d3-f-engine conversion)

support

  • Limits section was support-tagged: flow time / one flow at a time / per-plan quotas — now generic in #flow; nothing role-only left.

process (d2spec facts)

  • Draft d2 (newer than published) only removed maker from every section's {role:} tag (maker no longer reads engine sections). Role tags are dropped in the new standard; carry into role mapping: engine is for designer, tester, support — not maker, not coder.

dropped

  • {role: …} tags and the "read the sections tagged with your role" description text — replaced by the standard's structure.

From d3-f-errors

Notes from d3-f-errors conversion

support

  • Explaining an error to a person in plain words and linking its help is support's main job with errors (the generic rule stays in #error_read).

designer

  • Pointers (see, help) are defaults in one table in the code (code + reason → see, help), not strings in handlers — tell coders so in tickets that add errors.

guardian

  • Runs #catalogue_check (GUARD-ERR-SEE + no leaks in error bodies) as part of its watch.

process (d2spec facts)

  • Pointers point at d3-f- skills once those are published (until then, older skill names may still be in the table).

dropped

  • "Each feature's own errors are at the end of its d3-f- skill (#errors)" — kept, moved into Intro (not a rule).
  • Role audience lists ({role: maker, designer, …}) — obsolete under the new standard.

From d3-f-esp

Notes for role skills (from d3-f-esp conversion)

designer

  • Use it with the Architect: whenever you discuss a section, draft or mockup with your person, check esp_here, take them there (esp_go), then talk.

dropped

  • Section role tags ({role: …}) — replaced by the new standard. "Tabs {role: designer, support}" content kept generic in the esp concept/esp_on.

From d3-f-help

Notes for role skills (from d3-f-help conversion)

designer

  • Writing Help is the designer's: one Help topic per page/feature, anchored section per thing a person does (feature content in #help_write).
  • Base-d2 Help edits: drafts on d2, a link to each for the person; publish on publish.

support

  • Help surprises: compare project copy vs base, suggest deleting the copy (#help_diagnose); missing tile → check level/role show= first (#toolbox_diagnose).

process (d2spec facts)

  • The record of every Toolbox tile is the Design topic's Toolbox section: add the tile there in the same change.

dropped

  • Old role tags ({role: …}) on every section — replaced by the no-roles standard.
  • "Help is a little info icon" in Basic and "the only help on the page itself" in Writing — merged into R-help-3 / #help_onPage (duplicate).

From d3-f-history

Notes for role skills (from d3-f-history conversion; built on draft d6)

designer

  • Agreed decisions recorded as made — the dated record, kept possibly for legal reasons.
  • Every release gets a line in the implementation topic's Releases.
  • A rule changed because of an issue: the Design bullet says the issue (Why: what happened).

dispatcher

  • Checkpoints, versions, deploys and what each changed: ai history entries (same for coders). (Generic form kept in #historyEntry_write.)

guardian

  • Spec watch: run #historyEntry_check (empty feature, dead anchors; topic history as evidence of drift, design tests changed by non-designer, scope creep).

process (d2spec facts)

  • History query API (since, until, item, person, agent) pending P-994; run-timing entries pending P-997.
  • Example author string: designer (razie); example item P-605.

dropped

  • "When your person approves something in a chat, note it on the item (which chat, date)" — duplicate of d3-f-pipeline#item_note.
  • Section {role: …} tags and the "read sections tagged with your role" description line — replaced by the standard.

From d3-f-onboarding

Notes from d3-f-onboarding conversion

maker

  • Arrives through Connect your AI (#connectLine_claim); keeps its role token per d3-f-tokens#roleToken_keep; first job usually: clean the onboarding section off Home, then ask what to keep track of.

support / administrator

  • Walk people through Connect your AI, New AI invite, Give my AI a new token, and the allowed-domains fix (#network_check).

designer

  • pipeline.start is asks: at start, review open items with your person to set the order.
  • Started by a dispatcher: read Next up with pickFor=<name>; ask nothing in output (proposals in a review batch, blockers to the monitor's flag).

coder

  • pipeline.start is tells: straight to Next up.

dispatcher

  • Coder start prompt also carries: work on <integration branch>-<name> cut from the integration branch; take → build → tests touched → drafts → design calls on the session item → merge into the integration branch (never main) → push → notice → done with changed and timing.merge; don't publish drafts.
  • Designer start prompt (headless): pickFor=<name>, ask nothing in output (see designer).

monitor

  • Uses #startPrompt_write when it starts dispatchers.

dropped

  • "A new agent role" ({role: tbd}) — direction, not built (new-role flow making d2-<role>, vault-allowed, temporary onboarding link or copied token with per-platform help). Not a usable action; belongs in Spec as a future item.
  • "After your first connection, every session starts as d3-f-base#basic says" — kept, moved into Intro.
  • {role: …} audience tags — obsolete under the new standard.

From d3-f-pages

Notes for role skills (from d3-f-pages conversion)

designer

  • d2's own screens (App:Landing, newProject pages, admin tiles, Toolbox) are base-d2 topics the designer edits; send to coders only what a page can't do (new API, core behaviour).

coder

  • d2's own screens are not coder work unless they need a new API or core behaviour.

maker

  • Building an app with the person: from their words, sample objects, show them (Mind Meld tab or link); offer an example import (#app_build, #app_import).

process (d2spec facts)

  • Example project to import from: https://d2portfolio.aiputty.com (e.g. /api/v2/topics/Spec:portfolio) — kept as an e.g. in #app_import with a placeholder host.
  • Admin tiles screen is called RazAdmin on d2spec.

dropped

  • Old {role: …} section tags.
  • Basic's "Data on a page is a table" and Building an app's table ordering — merged into R-pages-2 / #table_show (duplicate).
  • "Use layout: full only when needed" appeared in both App: topics and Layouts — kept once in #page_layout.

From d3-f-permissions

Notes for role skills (from d3-f-permissions conversion)

designer

  • design.small|medium|large are followed by the designer (d2 can't tell a change's size) — the designer judges the size of its own design changes.

guardian

  • Security watch, with your own low-privilege token: every permissions write must be refused (E_SCOPE); a gated action under person must be refused even with askedBy; a locked action must never pass. Report any that succeeds as critical.
  • The other probes (anonymous reads, write boundary, token scope): d3-f-audit › security.

dropped

  • "Tables are parsed on publish into memory, so a check reads no store" — implementation detail (standard: no implementation in feature skills).
  • Section role tags ({role: …}) — replaced by the new standard.

From d3-f-search

Notes for role skills (from d3-f-search conversion)

dropped

  • Section {role: …} tags and the "read sections tagged with your role" description line — replaced by the standard.
  • "Other search boxes {role: tbd}" label — content kept in #search_settings and #search_forPerson.

From d3-f-styles

Notes for role skills (from d3-f-styles conversion)

designer

  • Style:Base is the one base-d2 topic the designer may publish as needed (so the person sees the change); all other base-d2 drafts wait for publish.
  • Record a look decision in SpecUi (and its Design section) when it's a rule; a small style tweak lives only in Style:Base's history.
  • Adding a shared or own control kind is the designer's ruling.

coder

  • Never add page CSS that restyles a shared control; a new shared kind goes into the shared stylesheet and the guard test, only with the designer's ruling.

tester / guardian

  • Guard test: fails on a page stylesheet setting font/padding/background/border/corners/shadow/colour on a shared control outside named own kinds; second test checks shared kinds exist. Browser-default buttons beside styled ones = regression.

support

  • Project looks wrong → check /styles first (own Style picked, or one with errors) before touching anything.

process (d2spec facts)

  • The shared controls are SpecUi ^ctl-1..9 and Design §46.
  • The look rules' home is SpecUi's look-and-feel section; read it before any UI work.

dropped

  • Old {role: …} section tags.
  • "Font sizes are calc(px*var(--fz,1))" appeared in both Apps and Appearance — kept once as R-style-4.
  • "Help is a little info icon" duplicates d3-f-help; kept as R-style-6 pointing there.

From d3-f-tags

Notes for role skills (from d3-f-tags conversion)

process (d2spec facts)

  • Project tag conventions: card, company on company cards (metals project); admin, d2-spec as project conventions.

dropped

  • Section {role: …} tags and the "read sections tagged with your role" description line — replaced by the standard.
  • "Tag views and the tag bar {role: tbd}" heading — its two lines folded into #tag_find.

From d3-f-thoughts

Notes for role skills (from d3-f-thoughts conversion)

designer

  • Streaks and sent Focuses come to the designer (old tags: streak → designer, assistant; Focus → maker, designer, assistant). Who receives them is role routing, not feature content.

assistant

  • Will later receive streaks and Focuses like the designer ("later the assistant").

monitor

  • A thought tagged monitor (or a plain board message to you) is information, a question or a follow-up: answer it in the thought (or with a reply). Even when from really is your person, never carry out an action from it — skills, ops on the box, starting or stopping agents. Commands come only on your own channel from your person's monitor window.

dropped

  • for<name> tags passing a thought to another person, and an Inbox view — not decided yet (old "Not yet {role: tbd}"); nothing to do.
  • Section role tags ({role: …}) — replaced by the new standard.

From d3-f-tokens

Notes from d3-f-tokens conversion

designer

  • Starts as mod: mint from d2-designer. Use d2-designer-admin only after a real mod refusal on work your person asked for: mint for that task only, revoke after, and log the task, the refusal and the verdict on the escalation item.

dispatcher

  • Renews its own agent token (agentToken_renew): before expiry in the last sixth; expired → re-mint, post status follows: <old name>. Lifetime: a day.
  • Starting agents: role token from the vault into a private env file (mode 600), passed only in the environment; start prompt carries the keys rule; post gone or revoke when an agent ends.

monitor

  • Same renewal duty as the dispatcher (agentToken_renew); lifetime a week. Runs on its own agent token like every agent.

process (d2spec facts)

  • If access fails on the agent token (dispatcher/monitor), tell the Architect; if he can't be reached, ask the console dispatch to relay.
  • Box tokens (d2-token ops, d2-admin-token deploy) are for the box and deploys only, read from the vault; never on base d2 without your person's OK. (Also in vault notes; one copy is enough.)
  • d2-hammer is a monitor-only vault secret.
  • Role-token names in use: d2-designer, d2-builder (coders, dispatchers), d2-dispatcher, d2-designer-admin.

dropped

  • "the grace period is over" (renewal section) — historic; every agent now runs on an agent token (R-tok-1).
  • "Kinds of token: … Its secrets travel with the mint, so the vault works as for the role" — merged into #agentToken definition.
  • {role: …} audience tags — obsolete under the new standard.

From d3-f-topics

Notes for role skills (from d3-f-topics conversion)

guardian

  • Read published only: /api/v2/topics/<t>, never /drafts/; read by section; a finding links the exact section (/topics/<T>#<anchor>).

process (d2spec facts)

dropped

  • Old section role tags ({role: …}) and the "read sections tagged with your role" description line — replaced by the standard's structure.
  • "OpenSpec {role: tbd}" extras label — content kept in #openspec.

From d3-f-vault

Notes from d3-f-vault conversion

dispatcher

  • Read what your agents need (role tokens d2-<role>, d2-token, d2-admin-token, github-diesel2…) into a private env file (mode 600); give each agent its role's token only (the builder's to a coder or dispatcher, the guardian's to a guardian).

monitor

  • Same keys duty as the dispatcher when it starts dispatchers (secret_passOn).

designer

  • Clone the repo with the github-diesel2 secret at the start of a run (see process facts); can't read it → say so first thing.

coder

  • Same repo-clone rule as the designer.

guardian

  • Security watch runs #secret_probe; a leaked value is critical.

maker / support / administrator

  • Tell your person exactly which secret to allow to which role token, on the Vault tab (#secret_ask); support walks people through the Vault tab (#secret_manage, #grant_personsCall).

process (d2spec facts)

  • The code: razie/diesel2, cloned with the github-diesel2 secret (clone URL built from a variable).
  • Box tokens (d2-token ops, d2-admin-token deploy) are read from the vault only for box work and deploys; never used on base d2 without your person's OK. (Duplicate in tokens notes.)

dropped

  • How it's kept, crypto part: one document per person (d2Vault); each secret its own AES-256-GCM data key; each AI token a key pair whose private key is derived from the token and never stored; data key stored only sealed to allowed tokens' public keys; server decrypts only while holding an allowed token, for that request — implementation detail, belongs in Design#vault, not the skill. (The user-visible consequences — nothing else holds a value, flows can't read secrets, unused tokens can't be picked — are kept.)
  • {role: …} audience tags — obsolete under the new standard.

From d3-f-support

Notes for role skills (from d3-f-support conversion, designer-66)

support / administrator / maker

  • The old skill tagged a support role; DesignSkills#roles has none. Until Razie decides, its Uses go to administrator and maker: support (hero): surprise_diagnose, surprise_fix, surprise_explain, settings_read, inherited_find.
  • Editing Settings:PROJECT needs mod; join, view, edit need admin (administrator's Role rules).

process (d2spec facts)

  • Demo projects: d2hero, d2creator, d2pro, d2master, d2conf. /d2admin, /razadmin and /ai always draw base d2's bar. New projects are named demo-<name> for everyone but the Architect, for now.

dropped

  • Nothing; every old line is placed (causes list under #surprise).

From d3-f-audit

Notes for role skills (from d3-f-audit conversion, designer-66)

guardian (security)

  • Uses: audit (pro): check_security, detailedLog_trace. Weekly and after each deploy; then the vault and permissions probes.

monitor / administrator

  • Uses: audit (master): auditRecord_read, detailedLog_trace — the monitor reads ?critical=1.

all roles

  • Uses: audit (hero): detailedLog_trace (quote the request id).

process (d2spec facts)

  • "The platform's owner" is the Architect; the audit page is Raz Admin → Audit log (/razadmin/audit). Archive path /opt/d2/data/audit-archive/YYYY/MM/; kept days D2_LOG_DAYS. Admin tiles the security check looks for: Members and admin, Archive, /d2admin, /archive. Code fixes from findings → coder agent.

dropped

  • Nothing.

From d3-f-guard-reports

Notes for role skills (from d3-f-guard-reports conversion, designer-66)

guardian

  • Who: checks, never builds; one guardian per watch (spec, tests, security, watcher); start prompt You are the guardian on (You are the watcher on ). Board name guardian-<watch>, the watcher watcher.
  • Workflow Run a watch: → report_start → the watch's check_… actions in the order of d3-f-guard-reports#watch → report_write after each → report_finish. Findings to items only → finding_send on the person's word.
  • Uses: guard-reports (pro): run_*, report_write, finding_send plus each watch's checks.

designer

  • Uses: guard-reports (pro): finding_work, watch_add. The person sends a report's batch; the spec report opens with Done items not carried.

process (d2spec facts)

  • The ways-of-working doc is BestPractices 3.4. Owners in summaries: designer agent, coder agent.

dropped

  • Once ?role= takes a watch, GET …?role=guardian&watch= — the old heading-tag filter; replaced by the compiler's pulls.
  • A skill-optimizer watch is proposed — now the Optimizer (DesignSkills#optimizer).

From d3-f-tests

Notes for role skills (from d3-f-tests conversion, designer-66)

designer

  • Writes the design tests before the ticket (test_write); owns the layout and wording tests kept with the code; keeps the design's test lines.

tester

  • Keeps the tests topic (each behaviour's test, built or not, and what failed); its run of the design tests is the one relied on; a failing test → test_fail to the coder. Runs UI tests as the person.

coder

  • Build, component tests for what you touched, merge — no full suite. Never changes a design test (test_cantPass). Adding or renaming an event: also the messaging suite.

dispatcher

  • At a release: the full suite, then the full-setup check on the replica, then after the deploy the box suite against the conformance project with the ops token.

maker

  • A Story: per feature, run after a change (story_check).

process / impl (d2spec, proto1 — for d3-f-impl-node and d3-process)

  • npm test in proto1/ (basic); npm run test:full; npm run test:deploy (basic plus the areas touched, from files changed since the deployed tag); test:messaging (BUS-7 checks all of src/).
  • Unset agent env: env -u D2_BUILDER -u D2_AGENT npm run … (else ~14 fake failures: payments, PERM-30).
  • Test data under $D2_TEST_DIR (default $TMPDIR/d2tester, via testData(prefix)).
  • Realms d2test1, d2test2, d2capN locally only (the certificate budget); only the Architect makes d2* realms; on the box only t- topics and objects; conformance project d2conf.
  • MongoDB suites need D2_MONGO_URL and skip without it.
  • Quiet reporter: failures (~600 chars each) and one summary line; D2_VERBOSE=1 or D2_REPORTER=tap for more. test:full prints nothing until the end: silent past ~2 minutes → ps; stale d2* dirs in the temp directory slow it. npm install before a suite.
  • npm run testspec → the catalog pasted into Proto1Test. Layout and wording tests live in test/ui/. Tests topics are tagged d2-test; Testing becomes SpecTest.

dropped

  • Nothing.

From d3-f-ops

Notes for role skills (from d3-f-ops conversion, designer-66)

dispatcher

  • Release run in d3-f-boxes#box_releaseOrder; the report carries version, box suite pass/fail, timing.

monitor

  • System watch every cycle (boxStatus_read): tell the Architect once per change; never act on the box. Starts one ops agent per incident ("You are ops on d2, started by monitor. Incident: . Fix it within your limits and report.") and one for housekeeping daily at 04:00 Toronto; files its item (kind: admin, forRole: ops agent); raises the Architect's flag (blocked, ending **** PLEASE ANSWER:) when ops is still down.

ops

  • Who: one run per incident or housekeeping round, started by the monitor on the laptop runner, never on the box; mints from the d2-ops role token; posts startedBy: monitor; ends done with the incident note.
  • Workflows: Incident → incident_run with opsAccess_diagnose, opsAccess_fix; Housekeeping → housekeeping_run with opsAccess_housekeep.

coder

  • Never deploys, never touches main.

administrator

  • A project's own release: d3-f-accounts#project_release.

process (d2spec facts)

  • All box facts are now in d3-f-boxes (draft); still to add there from Skill:process (step 5).
  • Conflict for Razie: the old draft had two ops agent sections that disagree. I kept the later, fuller one: tool d2-housekeep (not d2-prune), housekeeping daily 04:00 Toronto (not weekly Sunday), restarting caddy is ask-first (the other allowed it without asking).

dropped

  • Ticket references in rule text (after P-944; live once P-948 ships, P-945, P-947, P-949, P-951).

From d3-f-design

Notes for role skills (from d3-f-design conversion, designer-66)

all roles (d3-f-base or every role's rules)

  • Working with your person: a message starting with q or ending with ? is a question — answer only. Terse, free-form. A link for everything you want them to look at; every item id with a link and a few words; a choice list with a link and a sentence per option. Times in their zone (GET /api/v2/me → tz); machine values stay ISO UTC. Done only after the write returns. Spoken input may be mis-transcribed: ask when ambiguous. Check the current state before asking them to do something. Record their OK on the item (which chat, date).

maker

  • Fit your words to the level: on hero and creator never the domain model, the API or the pipeline ("your garden planner", not "the Bed class"); creator gets the pipeline lightly.

designer

  • Does: turns the person's asks into Spec, SpecUi, Design and design tests; mockups; self-contained coder tickets; pages, styles, Help and skills directly as topics. Owns: Spec, SpecUi, Design, DesignRoutes, the design tests, designer/ on the CDN, base d2 drafts, MarketingBlurbs. Never: code, deploys, the full suite; tickets before send; broadcasts to a whole role unasked; rewriting a taken or done ticket.
  • Reviewing with your person: one section at a time in the item's numbering — what it is in plain words, what's decided or asked, your view with the reason; settled calls get one line. Chat mode (default) or prompt mode when asked (one tap-to-pick prompt per call, 2–4 options plus Discuss, all details inside the prompt). Asking for a rule or feature isn't a go: file on go, send on send.
  • Mod first: escalate to the admin role token only after a real refusal as mod on work the person asked for, that task only, revoke after, log it on the escalation item. Token ends mid-chat: don't mint again on your own; ask. Messages to the monitor stand alone (it can't read items). Monitor issues: discuss with the person, recommendation first, before filing.
  • Design branches: one running design/P-n branch, pushed after each commit, each change shown as a snapshot; on send one ★ merge item (d3-f-git#merge_designBatch).

coder

  • Never edits the design layers; sends suggested updates (layer_asBuilt). Designed artifacts go in as they are (ui_artifact).

process (d2spec facts)

  • Implementation topic names: Proto1Impl, Proto1Code, Proto1Routes, Proto1Test. Ways-of-working doc: BestPractices 3.4. Testing → SpecTest. Spec topics tagged d2-spec, d2-design.

dropped

  • Spec-watch check 11 (skill tags agree with the feature matrix): the matrix and heading tags are gone.
  • Roles a project makes (roles: a, b): already under d3-f-pipeline#item (Roles); "what each role keeps" goes to the role skills.