- 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¶‹ Previous
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 withread: {since}. - Every status after long steps so no step outruns twice its
every; any call counts as alive;everyis 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/askedbyis "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/checkpointwhen asked). - Time your first long step (a build) and post an
everyabove 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"withfor: [...]; passstartedByto every agent started; still post at starting/ending an agent, andidlewhen Next up is empty. - When an agent ends, post
gonefor 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:
blockedevent to the Architect ending**** PLEASE ANSWER: …+ postwaiting(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):
upat start;workingevery 300;waitingevery 3600 between turns (kept generic in #status_post).
process (d2spec facts)¶
- Draft d3 (newer than published) changed Board traffic: read with
since/untilfor the day; box keeps 3 days; older in_archive/chatbox-*on the CDN "once P-997 ships"; alerts askind: alert. Carried into #check_boardDay (P-997 dropped — archive may not exist yet). - Published used
GET /agents/messages?all=1plus the day's lines inLog: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¶
{role: …}tags; "Quotas, channel, chain, rules {role: tbd}" folded into #lane.- "see d3-f-pipeline › handovers" / "#liveness" anchors → now d3-f-pipeline › handover and plain d3-f-pipeline (old anchors don't exist in the new pipeline).
From d3-f-cdn¶
Notes for role skills (from d3-f-cdn conversion)¶
designer¶
- Only the designer writes the kept folders
designer/design/<area>/anddesigner/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
$objectsamples 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
coderfrom 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_SCOPEif 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_ACCESSkept 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
makerfrom 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
helpis 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:
aihistory 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 itemP-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.startis 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.startis 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 (nevermain) → push → notice →donewithchangedandtiming.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|largeare 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 withaskedBy; 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:Baseis 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
/stylesfirst (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, companyon company cards (metals project);admin,d2-specas 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 whenfromreally 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. Used2-designer-adminonly 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
goneor 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-tokenops,d2-admin-tokendeploy) 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)¶
- Base d2 lives at https://aiputty.com; inherited edits happen there.
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-diesel2secret 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 thegithub-diesel2secret (clone URL built from a variable). - Box tokens (
d2-tokenops,d2-admin-tokendeploy) 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:PROJECTneeds mod;join,view,editneed admin (administrator's Role rules).
process (d2spec facts)¶
- Demo projects:
d2hero,d2creator,d2pro,d2master,d2conf./d2admin,/razadminand/aialways draw base d2's bar. New projects are nameddemo-<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 daysD2_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 watcherwatcher. - Workflow Run a watch: → report_start → the watch's
check_…actions in the order ofd3-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_sendplus 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 testinproto1/(basic);npm run test:full;npm run test:deploy(basic plus the areas touched, from files changed since thedeployedtag);test:messaging(BUS-7 checks all ofsrc/).- 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, viatestData(prefix)). - Realms
d2test1,d2test2,d2capNlocally only (the certificate budget); only the Architect makesd2*realms; on the box onlyt-topics and objects; conformance projectd2conf. - MongoDB suites need
D2_MONGO_URLand skip without it. - Quiet reporter: failures (~600 chars each) and one summary line;
D2_VERBOSE=1orD2_REPORTER=tapfor more.test:fullprints nothing until the end: silent past ~2 minutes →ps; staled2*dirs in the temp directory slow it.npm installbefore a suite. npm run testspec→ the catalog pasted into Proto1Test. Layout and wording tests live intest/ui/. Tests topics are taggedd2-test;TestingbecomesSpecTest.
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-opsrole token; postsstartedBy: monitor; endsdonewith 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(notd2-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
qor 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-nbranch, 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 taggedd2-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 underd3-f-pipeline#item(Roles); "what each role keeps" goes to the role skills.