Version 1 of 1 · · razie · in person · Current version

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 own view / edit beats the project's, and ai-access: no makes 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 a Report: (out of search, on the Reports list only); a show= 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: page shows only the navbar and the body (a small floating ✎ Edit for editors); layout: full is a full-page app with no navbar (d3-f-pages › page_layout).
  • The navbar is wrong: it comes from the project's Nav topic, else base d2's; a parse error falls back to base d2's and sends admins N_NAV_BAD with 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:Base plus the project's picked Style: 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

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, view and edit need 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_find
  • N_NAV_BAD (notice) — the project's Nav didn't parse → fix the named line; base d2's bar shows meanwhile. see #surprise
  • style: {ok: false} — the Style topic has errors → d3-f-styles › style_diagnose. see #surprise
  • E_QUOTA, E_PLAN, E_DEMO, E_FORBIDDEN — a limit, a plan, a demo, an access refusal → d3-f-accounts. see #surprise_fix
  • E_SCOPE — beyond your grant → explain and hand it to someone who may. see #surprise_fix