- name
- d3-f-support
- description
- Support — helping a person whose project behaves unexpectedly: finding the cause (a setting, a tag, an inherited topic, a layout, a quota), fixing within your grant and explaining briefly. Get skills only from /api/v2/skills/d3.
- feature
- support
- concepts
- [surprise, settings, inherited]
- tags
- #skill #feature #d3skill #wip
d3-f-support¶
Intro¶
Finding why a project surprised its person.
Most surprises in a project are a setting, a tag, an inherited topic or a quota doing what it was told. Support is finding which one, fixing it if it is yours to fix, and saying what happened in a sentence or two. This skill is the map of where a project's behaviour comes from; each area's details live in its own feature skill. A person lets a support AI into one project with a one-time link: the AI that opens it gets its own support key for that project, for the hours chosen, and the person is told of its consequential acts; support messages between people are separate and never shown to it. Spec: Spec › support.
Essentials¶
- R-support-1 MUST find the cause before changing anything: read the project's settings, the topic's frontmatter and who the person is there.
- R-support-2 MUST fix only within your grant (your token's level and the project's permissions); what needs more you explain and hand on — NEVER work around it.
- R-support-3 MUST explain briefly: one or two sentences on what happened and why, then what you did or what they can do, with the link. No lectures.
- R-support-4 NEVER touch another person's data, tokens or vault.
- R-support-5 NEVER re-create a demo's data by hand: demos reset on every deploy.
- R-support-6 MUST record what you changed in the project's history (d3-f-history › historyEntry_write).
Concepts¶
surprise¶
Something a person's project does that they didn't expect. Also called: a problem, a bug, "it's broken", "it changed". Usual causes:
- A topic is missing or hidden: tagged
notlisted(out of the Docs list and search, still opens by name),wip,ephemeral,style,skill,spec(d3-f-tags › tag_diagnose); its ownview/editbeats the project's, andai-access: nomakes it answer as missing to AIs (d3-f-accounts › session_denied); an edit nobody published, or a new topic not published yet (d3-f-drafts › publish_draft); it moved and left a MOVED note (d3-f-topics › topic_moved); it is aReport:(out of search, on the Reports list only); ashow=part removed for viewers who may not see it — who can't see a part can't edit that page (d3-f-pages › show_hide). - A page has no title or buttons:
layout: pageshows only the navbar and the body (a small floating ✎ Edit for editors);layout: fullis a full-page app with no navbar (d3-f-pages › page_layout). - The navbar is wrong: it comes from the project's
Navtopic, else base d2's; a parse error falls back to base d2's and sends adminsN_NAV_BADwith the line. Visitors always see d2's plain bar (logo, Log in, Sign up); the admin and AI pages always draw base d2's bar. - The look changed:
Style:Baseplus the project's pickedStyle:topic; a Style with errors can't be picked (d3-f-styles › style_diagnose). A person's text size and Wide are their own Appearance settings, not the project's (d3-f-styles › appearance_set). - A limit: quotas come from the owner's plan, not the asker's — "I'm on Monthly but it says 300 objects" means the project's owner is on Free (d3-f-accounts › plan_quotas).
- Can't see a project or page: logged out (401 with Log in), not a member (403 with how to join), or below the topic's
view(d3-f-accounts › session_denied, d3-f-accounts › member_join). - A demo lost its data or refuses a write: demo projects reset on every deploy and refuse visitors' writes (
E_DEMO); make your own project to keep work (d3-f-accounts › project_demo). - "Help changed under me", "the skill says something new": someone published base d2; nothing in the project changed (→ inherited).
surprise_diagnose¶
- Summary: read the settings, the topic's frontmatter and who the person is before touching anything.
- When: a person says something is missing, looks wrong, was refused or changed by itself.
- Needs: the page or topic they mean (ask for the link), and what they expected.
- Call:
GET /api/v2/me(who they are here: role, level) Also:GET /api/v2/topics/Settings:PROJECT·GET /api/v2/topics/<topic>?format=json(frontmatter: tags,view,edit,layout,ai-access). - Rules: R-support-1. Walk the usual causes above in order; stop at the first that explains it.
- Errors:
E_SCOPE→ you may not read that: say so and hand on. - Gotchas: an old project copy of a base topic, made before shadowing was refused, hides the inherited one until it is deleted.
surprise_fix¶
- Summary: fix only what your grant allows — project layouts, settings, tags and topics; hand on the rest.
- When: the cause is found and the fix is inside the project and inside your grant.
- Needs: the cause; your person's go for anything they didn't ask for.
- Call: the owning feature's write (a tag: d3-f-tags › tag_write; a topic: d3-f-topics › topic_write; a layout: d3-f-pages › page_layout), then d3-f-history › historyEntry_write.
- Rules: R-support-2, R-support-4, R-support-5, R-support-6. What needs a higher role, the platform's owner or a platform change: explain it and hand it to someone who may.
- Errors:
E_SCOPE→ beyond your grant: explain and hand on (d3-f-permissions › permissionTable_read) ·E_QUOTA,E_PLAN,E_DEMO,E_FORBIDDEN→ d3-f-accounts. - Gotchas: —
surprise_explain¶
- Summary: one or two sentences on what happened and why, then what you did or what they can do, with the link.
- When: always, after diagnosing — fixed or not.
- Needs: the cause in the person's own words for things, not d2's.
- Call: — (your reply to the person).
- Rules: R-support-3.
- Errors: —
- Gotchas: —
settings¶
A project's Settings:PROJECT topic. Also called: project settings, the config.
Fields: level (hero, creator, pro, master — what the project shows: a hero project has no pipeline, ops or agents), version; landing (public at /, where people log in; builtin:landing is d2's own) and home (/home) — a full-page App: may be either; view, edit (defaults for topics), categories: (per-category overrides), join (request, open, invite); consent: (which agreement the project asks for, d3-f-consent › consent_set).
Beside it: Settings:Init (tagged spec) runs diesel.project.on.init at every start and on save — crons and triggers are declared there (d3-f-crons › cron_declare); Admin → Init shows it or offers to create it. Settings:Permissions exists only once an admin pressed Customize (d3-f-permissions › permissionTable_customize).
settings_read¶
- Summary: the project's level, landing, access defaults and join mode explain most "why can't I".
- When: first step of any diagnosis.
- Needs: —
- Call:
GET /api/v2/topics/Settings:PROJECT. - Rules: Editing it needs mod;
join,viewandeditneed admin. - Errors:
E_SCOPE→ below the level that may read or edit it. - Gotchas: —
inherited¶
A base d2 topic tagged inherited (Help pages, the shipped skills, Style:Base, Toolbox, UserSettings, Nav…): read, linked and served by every project at its own address as if it were the project's. Also called: common topics, "from d2".
Where it shows: the Docs page lists them under Common topics, search under From d2.
inherited_find¶
- Summary: a topic that changed with no edit in the project is inherited — it is edited at home, on base d2.
- When: "this page changed and nobody here touched it", or a write answers
E_INHERITED. - Needs: the topic's name.
- Call:
GET /api/v2/topics/<topic>?format=json(its tags and home project). - Rules: Edits happen on base d2 and reach every project when published there; a project never edits a base (d3-f-topics › inherited_edit). No shadowing: a project can't make a topic with an inherited name; its own way goes in topics of its own names. Templates shape a project only at creation — changing a base template doesn't change existing projects. A fresh install starts from the seed; after that live base d2 is the source. Domain classes are not inherited.
- Errors:
E_INHERITED→ pick another name, or propose the change on base d2. - Gotchas: —
Errors¶
E_INHERITED— that name is inherited from base d2 → pick another name, or propose the change on base d2. see #inherited_findN_NAV_BAD(notice) — the project'sNavdidn't parse → fix the named line; base d2's bar shows meanwhile. see #surprisestyle: {ok: false}— the Style topic has errors → d3-f-styles › style_diagnose. see #surpriseE_QUOTA,E_PLAN,E_DEMO,E_FORBIDDEN— a limit, a plan, a demo, an access refusal → d3-f-accounts. see #surprise_fixE_SCOPE— beyond your grant → explain and hand it to someone who may. see #surprise_fix