\\n\")")], [Type.atom("save_js"), Type.bitstring("var b=new Blob([\"\\n
\\n Anchor moved? — tyna, 2026-10-17\\n

tyna — the §3 anchor jumped after the last push.

\\n
\\n \\n\"],{type:\"text/html;charset=utf-8\"}),u=URL.createObjectURL(b),a=document.createElement(\"a\");a.href=u;a.download=\"semext-annotate.html\";document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(u)")], [Type.atom("saved"), Type.atom("false")], [Type.atom("view"), Type.bitstring("split")]])]])]])], [Type.bitstring("header_menu"), Type.map([[Type.atom("module"), Type.atom("Elixir.SemtextWeb.Hologram.Components.Site.HeaderMenu")], [Type.atom("struct"), Type.map([[Type.atom("__struct__"), Type.atom("Elixir.Hologram.Component")], [Type.atom("emitted_context"), Type.map([])], [Type.atom("next_action"), Type.atom("nil")], [Type.atom("next_command"), Type.atom("nil")], [Type.atom("next_page"), Type.atom("nil")], [Type.atom("state"), Type.map([[Type.atom("open"), Type.atom("false")]])]])]])], [Type.bitstring("header_search"), Type.map([[Type.atom("module"), Type.atom("Elixir.SemtextWeb.Hologram.Components.Site.HeaderSearch")], [Type.atom("struct"), Type.map([[Type.atom("__struct__"), Type.atom("Elixir.Hologram.Component")], [Type.atom("emitted_context"), Type.map([])], [Type.atom("next_action"), Type.atom("nil")], [Type.atom("next_command"), Type.atom("nil")], [Type.atom("next_page"), Type.atom("nil")], [Type.atom("state"), Type.map([[Type.atom("active"), Type.integer(-1n)], [Type.atom("active_id"), Type.atom("nil")], [Type.atom("groups"), Type.list([])], [Type.atom("index"), Type.list([Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("agent describes one ai agent inside the document: its name, a short bio, and its instructions. you write name, bio, and instructions as plain children. the browser ignores this element; extraction turns it into one agent record. use it when the document is addressed to or about an agent. name bio instructions id · kind · tags semtext tag element")], [Type.atom("hint"), Type.bitstring("Describes one AI agent inside the document: its name, a short bio, and its instructions.")], [Type.atom("href"), Type.bitstring("/reference/agent/")], [Type.atom("id"), Type.bitstring("header-search-o-0")], [Type.atom("index"), Type.integer(0n)], [Type.atom("key"), Type.bitstring("search-agent")], [Type.atom("title"), Type.bitstring("agent")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-acceptance-criteria a given/when/then criteria list for a ticket or story. you author the criteria; the card renders them as a structured list. point it at fixtures or an endpoint and it shows the cached snapshot with a last-refreshed stamp. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-criterion agent-kit-given agent-kit-when agent-kit-then agent kit element")], [Type.atom("hint"), Type.bitstring("A given/when/then criteria list for a ticket or story.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-acceptance-criteria/")], [Type.atom("id"), Type.bitstring("header-search-o-1")], [Type.atom("index"), Type.integer(1n)], [Type.atom("key"), Type.bitstring("search-agent-kit-acceptance-criteria")], [Type.atom("title"), Type.bitstring("agent-kit-acceptance-criteria")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-agent-persona an agent persona card: who the agent is and how it behaves. the content you write inside is the record; the card frames it. one renderer serves both persona tags, parameterized by kind. agent-kit-persona-name agent-kit-persona-role agent-kit-persona-bio agent-kit-persona-metadata agent kit element")], [Type.atom("hint"), Type.bitstring("An agent persona card: who the agent is and how it behaves.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-agent-persona/")], [Type.atom("id"), Type.bitstring("header-search-o-2")], [Type.atom("index"), Type.integer(2n)], [Type.atom("key"), Type.bitstring("search-agent-kit-agent-persona")], [Type.atom("title"), Type.bitstring("agent-kit-agent-persona")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-artifact a typed artifact card: code or text produced by the work. you set the type and language and author the content; the card renders it as a cached specimen with a refresh stamp. type one of `markdown`, `json`, `diff`, `code`; the chrome's type chip. optional. language optional language chip for the `code` type (informational; declared, never fetched on). fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). a snapshot `versions` list (`[{id, label, createdat}]`) renders as inert version chips. endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-artifact-content agent kit element")], [Type.atom("hint"), Type.bitstring("A typed artifact card: code or text produced by the work.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-artifact/")], [Type.atom("id"), Type.bitstring("header-search-o-3")], [Type.atom("index"), Type.integer(3n)], [Type.atom("key"), Type.bitstring("search-agent-kit-artifact")], [Type.atom("title"), Type.bitstring("agent-kit-artifact")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-asset a media asset card with a caption. you point src at the asset, set its mime type and write the caption. the card renders the cached asset; the caption is the record. src the cached media url. the chrome renders an `` from it verbatim; the element never fetches, resolves, or substitutes anything, and with javascript off no image element exists. mime the media type chip (`image/png`, `text/plain`, …); optional. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-caption agent kit element")], [Type.atom("hint"), Type.bitstring("A media asset card with a caption.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-asset/")], [Type.atom("id"), Type.bitstring("header-search-o-4")], [Type.atom("index"), Type.integer(4n)], [Type.atom("key"), Type.bitstring("search-agent-kit-asset")], [Type.atom("title"), Type.bitstring("agent-kit-asset")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-board a kanban-style board laid out over ticket references. you author the columns and the ticket refs inside; the board renders the layout you wrote. it displays the cached state — it does not poll the tracker. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). the reference dataset is `src/lit/fixtures/agent-kit/board.json`. endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-column agent-kit-ticket-ref agent kit element")], [Type.atom("hint"), Type.bitstring("A kanban-style board laid out over ticket references.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-board/")], [Type.atom("id"), Type.bitstring("header-search-o-5")], [Type.atom("index"), Type.integer(5n)], [Type.atom("key"), Type.bitstring("search-agent-kit-board")], [Type.atom("title"), Type.bitstring("agent-kit-board")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-bug a bug ticket card. one renderer serves all six ticket tags, parameterized by type. the inner content you write is the record; the chrome adds the type and the cached state. agent kit element")], [Type.atom("hint"), Type.bitstring("A bug ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-bug/")], [Type.atom("id"), Type.bitstring("header-search-o-6")], [Type.atom("index"), Type.integer(6n)], [Type.atom("key"), Type.bitstring("search-agent-kit-bug")], [Type.atom("title"), Type.bitstring("agent-kit-bug")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-chatroom a chatroom transcript card. you author the messages; the card renders the transcript with a cached-snapshot stamp. refresh is the cli lane — the embed never fetches at read time. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. there is no send path: unlike `sem-chat`, this element has no composer at all. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-chatroom-name agent-kit-chat-msg agent kit element")], [Type.atom("hint"), Type.bitstring("A chatroom transcript card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-chatroom/")], [Type.atom("id"), Type.bitstring("header-search-o-7")], [Type.atom("index"), Type.integer(7n)], [Type.atom("key"), Type.bitstring("search-agent-kit-chatroom")], [Type.atom("title"), Type.bitstring("agent-kit-chatroom")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-cucumber a gherkin spec card: the feature source shown as written. you author the spec; the card displays the source verbatim in a cached card. point it at fixtures for the snapshot stamp. script agent kit element")], [Type.atom("hint"), Type.bitstring("A Gherkin spec card: the feature source shown as written.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-cucumber/")], [Type.atom("id"), Type.bitstring("header-search-o-8")], [Type.atom("index"), Type.integer(8n)], [Type.atom("key"), Type.bitstring("search-agent-kit-cucumber")], [Type.atom("title"), Type.bitstring("agent-kit-cucumber")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-custom-assert a list of custom assertions, each an expression and an expectation. you author the expr and expect pairs; the card renders them as a structured list from the cached snapshot. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-assert-expr agent-kit-assert-expect agent kit element")], [Type.atom("hint"), Type.bitstring("A list of custom assertions, each an expression and an expectation.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-custom-assert/")], [Type.atom("id"), Type.bitstring("header-search-o-9")], [Type.atom("index"), Type.integer(9n)], [Type.atom("key"), Type.bitstring("search-agent-kit-custom-assert")], [Type.atom("title"), Type.bitstring("agent-kit-custom-assert")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-cypress a cypress spec card: the test source shown as written. you author the spec; the card displays it verbatim with a last-refreshed stamp from the cached snapshot. file optional same-origin path of the spec source when the script is not inline; the chrome renders it as a `source:` reference chip. never fetched by this element (live-fetch policy below) — declared so the reader (and the driver lane, later) can find the source. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). the pair defines no snapshot shape — declared for family symmetry only. endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent kit element")], [Type.atom("hint"), Type.bitstring("A Cypress spec card: the test source shown as written.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-cypress/")], [Type.atom("id"), Type.bitstring("header-search-o-10")], [Type.atom("index"), Type.integer(10n)], [Type.atom("key"), Type.bitstring("search-agent-kit-cypress")], [Type.atom("title"), Type.bitstring("agent-kit-cypress")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-epic an epic ticket card. one renderer serves all six ticket tags, parameterized by type. the inner content you write is the record; the chrome adds the type and the cached state. agent-kit-last-updated agent-kit-title agent-kit-description agent-kit-state agent-kit-labels agent kit element")], [Type.atom("hint"), Type.bitstring("An epic ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-epic/")], [Type.atom("id"), Type.bitstring("header-search-o-11")], [Type.atom("index"), Type.integer(11n)], [Type.atom("key"), Type.bitstring("search-agent-kit-epic")], [Type.atom("title"), Type.bitstring("agent-kit-epic")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-issue an issue ticket card with org, project and state. you set the key, state and labels and write the body; the card renders the cached ticket snapshot. it displays state — it never queries the tracker live. org the owning organization slug (reference quartet). project the project slug within the organization (reference quartet). key the ticket key: a project prefix of 1–6 `a-z0-9`, a dash, then at least three digits (`/^[a-z0-9]{1,6}-\\d{3,}$/` — `akit-001`, `r2d2-0417`). a malformed key is warned once (`agent-kit:ticket-key-invalid`) and the card's key chip and `#akit-ticket-` anchor are omitted — the uuid share footer is independent of the local key shape. uuid the upstream ticket uuid; when authored together with `org`, the chrome footer renders the share link `/app//tickets/` (\"open in agent-kit\"). state one of `open`, `in-progress`, `review`, `done`, `cancelled` (validator-checked). alternative spelling: authored as the `` element — the attribute wins when both spellings are present. labels comma-separated label list (`auth,extract`). alternative spelling: authored as the `` element — the attribute wins when both spellings are present. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset; shown in the chrome stamp when no `` element is authored). fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by these elements (live-fetch policy below) — declared for the authoring pipeline only. status one of `fresh`, `stale`, `error` (cached-embed preset). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent kit element")], [Type.atom("hint"), Type.bitstring("An issue ticket card with org, project and state.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-issue/")], [Type.atom("id"), Type.bitstring("header-search-o-12")], [Type.atom("index"), Type.integer(12n)], [Type.atom("key"), Type.bitstring("search-agent-kit-issue")], [Type.atom("title"), Type.bitstring("agent-kit-issue")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-organization an organization reference card. one renderer serves both reference-card tags, parameterized by kind. the content you write inside is the record. uuid the upstream record uuid (informational). fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by these elements (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset): for the organization card the `org` attribute is the record's slug; for the project card `org` + `key` name the owning organization and the project slug. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent kit element")], [Type.atom("hint"), Type.bitstring("An organization reference card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-organization/")], [Type.atom("id"), Type.bitstring("header-search-o-13")], [Type.atom("index"), Type.integer(13n)], [Type.atom("key"), Type.bitstring("search-agent-kit-organization")], [Type.atom("title"), Type.bitstring("agent-kit-organization")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-project a project reference card. one renderer serves both reference-card tags, parameterized by kind. the content you write inside is the record. agent-kit-name agent-kit-description agent kit element")], [Type.atom("hint"), Type.bitstring("A project reference card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-project/")], [Type.atom("id"), Type.bitstring("header-search-o-14")], [Type.atom("index"), Type.integer(14n)], [Type.atom("key"), Type.bitstring("search-agent-kit-project")], [Type.atom("title"), Type.bitstring("agent-kit-project")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-review a review card: comments and a verdict. you author the comments and set the verdict; the card renders the cached review. the verdict is data, not a live check. verdict one of `approve`, `request-changes`, `comment`, `pending` (default); the chrome's verdict chip, coloured by value. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-comment agent kit element")], [Type.atom("hint"), Type.bitstring("A review card: comments and a verdict.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-review/")], [Type.atom("id"), Type.bitstring("header-search-o-15")], [Type.atom("index"), Type.integer(15n)], [Type.atom("key"), Type.bitstring("search-agent-kit-review")], [Type.atom("title"), Type.bitstring("agent-kit-review")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-sub-task a sub-task ticket card. one renderer serves all six ticket tags, parameterized by type. the inner content you write is the record; the chrome adds the type and the cached state. agent kit element")], [Type.atom("hint"), Type.bitstring("A sub-task ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-sub-task/")], [Type.atom("id"), Type.bitstring("header-search-o-16")], [Type.atom("index"), Type.integer(16n)], [Type.atom("key"), Type.bitstring("search-agent-kit-sub-task")], [Type.atom("title"), Type.bitstring("agent-kit-sub-task")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-task a task ticket card. one renderer serves all six ticket tags, parameterized by type. the inner content you write is the record; the chrome adds the type and the cached state. agent kit element")], [Type.atom("hint"), Type.bitstring("A task ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-task/")], [Type.atom("id"), Type.bitstring("header-search-o-17")], [Type.atom("index"), Type.integer(17n)], [Type.atom("key"), Type.bitstring("search-agent-kit-task")], [Type.atom("title"), Type.bitstring("agent-kit-task")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-test-case a test-case card: steps and the expectation. you author the steps and what should happen; the card renders them as a structured list from the cached snapshot. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-step agent-kit-expected agent kit element")], [Type.atom("hint"), Type.bitstring("A test-case card: steps and the expectation.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-test-case/")], [Type.atom("id"), Type.bitstring("header-search-o-18")], [Type.atom("index"), Type.integer(18n)], [Type.atom("key"), Type.bitstring("search-agent-kit-test-case")], [Type.atom("title"), Type.bitstring("agent-kit-test-case")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-test-suite a test-suite card with per-branch rows. you author the rows — one per branch — and the card renders them from the cached snapshot with a refresh stamp. fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by this element (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). org `project`, `key`: `string` — the reference quartet (schema `reference` preset) — see reference attributes below. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent-kit-branch agent kit element")], [Type.atom("hint"), Type.bitstring("A test-suite card with per-branch rows.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-test-suite/")], [Type.atom("id"), Type.bitstring("header-search-o-19")], [Type.atom("index"), Type.integer(19n)], [Type.atom("key"), Type.bitstring("search-agent-kit-test-suite")], [Type.atom("title"), Type.bitstring("agent-kit-test-suite")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-ticket-ref an inline reference to a ticket. you set the key, org and project; the ref renders as an inline card linking into the ticket family. it stays ordinary text with javascript off. key the referenced ticket's key; required, ticket-key shape (`/^[a-z0-9]{1,6}-\\d{3,}$/` — e.g. `akit-001`). an invalid key is warned once and the reference stays inert prose. org the owning organization slug (informational; the join is the key). project the project slug within the organization. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent kit element")], [Type.atom("hint"), Type.bitstring("An inline reference to a ticket.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-ticket-ref/")], [Type.atom("id"), Type.bitstring("header-search-o-20")], [Type.atom("index"), Type.integer(20n)], [Type.atom("key"), Type.bitstring("search-agent-kit-ticket-ref")], [Type.atom("title"), Type.bitstring("agent-kit-ticket-ref")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-user-persona a user persona card: who the product serves. the content you write inside is the record; the card frames it, with an optional avatar. one renderer serves both persona tags. avatar the cached avatar url. the chrome header renders an `` from it verbatim; the element never fetches, resolves, or substitutes anything (no placeholder services), and with javascript off no image element exists. uuid the upstream persona uuid (informational; the reference quartet identifies the record). fixtures optional same-origin json path naming a cached snapshot for enrichment (cached-embed preset; a fixture source vetoes any `endpoint`). endpoint optional same-origin api path; never fetched by these elements (live-fetch policy below) — declared for the authoring pipeline only. last-refreshed authored iso-8601 stamp of the most recent sync (cached-embed preset). status one of `fresh`, `stale`, `error` (cached-embed preset). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) agent kit element")], [Type.atom("hint"), Type.bitstring("A user persona card: who the product serves.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-user-persona/")], [Type.atom("id"), Type.bitstring("header-search-o-21")], [Type.atom("index"), Type.integer(21n)], [Type.atom("key"), Type.bitstring("search-agent-kit-user-persona")], [Type.atom("title"), Type.bitstring("agent-kit-user-persona")]]), Type.map([[Type.atom("group"), Type.bitstring("Agent Kit elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-agent-kit-elements")], [Type.atom("haystack"), Type.bitstring("agent-kit-user-story a user story ticket card. one renderer serves all six ticket tags, parameterized by type. the inner content you write is the record; the chrome adds the type and the cached state. agent kit element")], [Type.atom("hint"), Type.bitstring("A user story ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-user-story/")], [Type.atom("id"), Type.bitstring("header-search-o-22")], [Type.atom("index"), Type.integer(22n)], [Type.atom("key"), Type.bitstring("search-agent-kit-user-story")], [Type.atom("title"), Type.bitstring("agent-kit-user-story")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("conclusion the takeaway side of a fact — what the statement means. you write it inside a sem-fact, after the statement. flashcard views show it on the answer side; extraction pairs it with the statement. semtext tag element")], [Type.atom("hint"), Type.bitstring("The takeaway side of a fact — what the statement means.")], [Type.atom("href"), Type.bitstring("/reference/conclusion/")], [Type.atom("id"), Type.bitstring("header-search-o-23")], [Type.atom("index"), Type.integer(23n)], [Type.atom("key"), Type.bitstring("search-conclusion")], [Type.atom("title"), Type.bitstring("conclusion")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("highlight prose with parts the reader can hide to test their recall. you wrap the words to remember in a highlight child, or use [[double brackets]] as shorthand. hiding them turns the passage into a self-test; showing them again reveals the answers. semtext tag element")], [Type.atom("hint"), Type.bitstring("Prose with parts the reader can hide to test their recall.")], [Type.atom("href"), Type.bitstring("/reference/highlight/")], [Type.atom("id"), Type.bitstring("header-search-o-24")], [Type.atom("index"), Type.integer(24n)], [Type.atom("key"), Type.bitstring("search-highlight")], [Type.atom("title"), Type.bitstring("highlight")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("incorrect-statement a wrong version of a fact, shown so readers can spot the error. you write it inside a sem-fact. quiz views can offer it as a wrong answer choice; extraction keeps it labelled as false — never as a claim. semtext tag element")], [Type.atom("hint"), Type.bitstring("A wrong version of a fact, shown so readers can spot the error.")], [Type.atom("href"), Type.bitstring("/reference/incorrect-statement/")], [Type.atom("id"), Type.bitstring("header-search-o-25")], [Type.atom("index"), Type.integer(25n)], [Type.atom("key"), Type.bitstring("search-incorrect-statement")], [Type.atom("title"), Type.bitstring("incorrect-statement")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-agent describes one ai agent: its name, type, and how it should behave. you write the agent's name, type, and rules as attributes and text. the page shows them as a tidy card. machines can read the same fields back. name required. the agent's identifier, the `⌜` field of the source form. mirrored to `data-name` after upgrade (the resolved value — an authored `data-name` is never overwritten). type required. the agent's archetype (e.g. `scout`, `coder`). mirrored to `data-type` after upgrade (the resolved value). version required. the npl contract version, the `npl@{version}` field of the source form. mirrored to `data-version` after upgrade (the resolved value). extends optional. the parent agent this definition extends; the header omits it when not authored. mirrored to `data-extends` after upgrade (the resolved value). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Describes one AI agent: its name, type, and how it should behave.")], [Type.atom("href"), Type.bitstring("/reference/npl-agent/")], [Type.atom("id"), Type.bitstring("header-search-o-26")], [Type.atom("index"), Type.integer(26n)], [Type.atom("key"), Type.bitstring("search-npl-agent")], [Type.atom("title"), Type.bitstring("npl-agent")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-artifact shows a piece of work an agent produced, like code or a report, with a title and notes. wrap the artifact's title and content in this element and the page adds a frame around them. the content itself is never changed. type (unset). a content type such as `text`, `code`, `svg`, `markdown`. `svg` routes the content through a sandboxed iframe; every other value (including unset) renders the content preformatted. mirrored to `data-type` (dual-form contract; the mirror is deferred past parse via afterparse). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) title content npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows a piece of work an agent produced, like code or a report, with a title and notes.")], [Type.atom("href"), Type.bitstring("/reference/npl-artifact/")], [Type.atom("id"), Type.bitstring("header-search-o-27")], [Type.atom("index"), Type.integer(27n)], [Type.atom("key"), Type.bitstring("search-npl-artifact")], [Type.atom("title"), Type.bitstring("npl-artifact")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-cot shows the steps of a chain of thought, folded up until the reader opens them. each step is listed in order, with the final answer at the end. the list uses a plain details box, so it works even with javascript off. collapsed absent ⇒ the block starts expanded; present ⇒ it starts collapsed. sets the **initial** open state of the native details; the user's own toggling is never re-forced. the runtime mirrors the boolean to `data-collapsed` (`\"true\"`/`\"false\"`) in `updated()` via afterparse — a write for css/extraction parity, never an input (the component reads the bare attribute only, like the sem tier's `collapsed`); the mirror is deferred past parse so a sem-source snapshot never sees runtime writes. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) sem-step outcome npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows the steps of a chain of thought, folded up until the reader opens them.")], [Type.atom("href"), Type.bitstring("/reference/npl-cot/")], [Type.atom("id"), Type.bitstring("header-search-o-28")], [Type.atom("index"), Type.integer(28n)], [Type.atom("key"), Type.bitstring("search-npl-cot")], [Type.atom("title"), Type.bitstring("npl-cot")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-critique shows a review of one thing from one point of view: strengths, weaknesses, and a verdict. you write the subject, the strengths, the weaknesses, and the verdict. the element lays them out as a clean, labelled review card. id per the global attribute catalog — optional, the native html `id`; the only attribute parameter. no component-specific parameters exist; all content rides the five authored children. subject perspective strengths weaknesses verdict npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows a review of one thing from one point of view: strengths, weaknesses, and a verdict.")], [Type.atom("href"), Type.bitstring("/reference/npl-critique/")], [Type.atom("id"), Type.bitstring("header-search-o-29")], [Type.atom("index"), Type.integer(29n)], [Type.atom("key"), Type.bitstring("search-npl-critique")], [Type.atom("title"), Type.bitstring("npl-critique")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-declaration shows which version of a rules document you are reading. it renders the version line of an npl document, such as [email protected], as a banner at the top. extended documents are marked the same way. version required; a missing version warns and the banner still renders, with the bare mark (`⌜npl@⌝`). rendered in the banner mark (`⌜npl@⌝`) and mirrored to `data-version` (dual-form contract; the mirror is deferred past parse via afterparse so a sem-source snapshot never sees runtime writes). type one of `definition` | `extension`. selects the banner mark (`⌜npl@…⌝` vs `⌜extend:npl@…⌝`) and mirrors the resolved kind to `data-type`. any other value falls back to `definition`. extend-target optional; the vocabulary an extension extends, authored on `type=\"extension\"` declarations. rendered by `.npl-declaration-target` beside the mark whenever authored and mirrored to `data-extend-target` (absent when unauthored). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows which version of a rules document you are reading.")], [Type.atom("href"), Type.bitstring("/reference/npl-declaration/")], [Type.atom("id"), Type.bitstring("header-search-o-30")], [Type.atom("index"), Type.integer(30n)], [Type.atom("key"), Type.bitstring("search-npl-declaration")], [Type.atom("title"), Type.bitstring("npl-declaration")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-directive marks a short instruction inside a sentence, so it stands out from the prose. you write the instruction, and optionally a longer note, inside this element. the page shows it as a small chip the reader can spot while scanning. glyph required; the emoji or symbol leading the chip. rendered by `.npl-directive-glyph` (dropped, gracefully, when absent) and mirrored to `data-glyph` when non-empty. kind one of `directive` | `prefix`. a `prefix` chip renders the `➤` arrow between glyph and instruction, the prefix form's source grammar. mirrored to `data-kind` (resolved value). qualifier optional; a trailing label beside the instruction, rendered by `.npl-directive-qualifier` and mirrored to `data-qualifier` when non-empty. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Marks a short instruction inside a sentence, so it stands out from the prose.")], [Type.atom("href"), Type.bitstring("/reference/npl-directive/")], [Type.atom("id"), Type.bitstring("header-search-o-31")], [Type.atom("index"), Type.integer(31n)], [Type.atom("key"), Type.bitstring("search-npl-directive")], [Type.atom("title"), Type.bitstring("npl-directive")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-example a sample element that shows how npl-* elements are built. it exists to demonstrate the pattern, not to be used in real documents. real elements replace it. label displayed by `.npl-example-label` and mirrored to `data-label` (dual-form contract: `data-label` wins when both spellings are present, so the mirror writes the resolved value and never clobbers an authored `data-label`; deferred past parse via afterparse so a sem-source snapshot never sees runtime writes). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("A sample element that shows how npl-* elements are built.")], [Type.atom("href"), Type.bitstring("/reference/npl-example/")], [Type.atom("id"), Type.bitstring("header-search-o-32")], [Type.atom("index"), Type.integer(32n)], [Type.atom("key"), Type.bitstring("search-npl-example")], [Type.atom("title"), Type.bitstring("npl-example")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-flag one setting a reader can switch, shown as a labelled row. you give it a name and a value. the reader can click the row to apply the setting. if the name implies a number range, values outside it are flagged. name required, no default. flag identifier; its wording implies the numeric range checked on `value` (below). value no default. rendered verbatim; validated only when the name implies a numeric range (case-insensitive substring of the name): `freq` checks [0.0, 1.0] (frequency flags), `factor` checks [-10, 10] (hormone factors), `threshold` must be numeric and unbounded. any other name (pump switches, meta, …) is free-form — never validated. an out-of-range or non-numeric value is not an error: the flag renders with the `npl-flag-invalid` warning class on its value span. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("One setting a reader can switch, shown as a labelled row.")], [Type.atom("href"), Type.bitstring("/reference/npl-flag/")], [Type.atom("id"), Type.bitstring("header-search-o-33")], [Type.atom("index"), Type.integer(33n)], [Type.atom("key"), Type.bitstring("search-npl-flag")], [Type.atom("title"), Type.bitstring("npl-flag")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-flags a group of settings shown as clickable rows. it wraps one or more npl-flag elements. you can add a short note above the rows to explain what they do. preset optional, no default (omit it entirely for no badge). one of `minimal`, `full`, `production`, `creative`, `tireless` (the npl flag source spells these `preset:`; the attribute accepts the bare word or the prefixed spelling, normalized for display). an unknown preset is not an error: it warns through the author-facing channel and renders with the invalid-preset warning class (see rendered form). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl-flag npl prompt tag element")], [Type.atom("hint"), Type.bitstring("A group of settings shown as clickable rows.")], [Type.atom("href"), Type.bitstring("/reference/npl-flags/")], [Type.atom("id"), Type.bitstring("header-search-o-34")], [Type.atom("index"), Type.integer(34n)], [Type.atom("key"), Type.bitstring("search-npl-flags")], [Type.atom("title"), Type.bitstring("npl-flags")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-hormones shows seven drive levels — like momentum, tension, and curiosity — as bars. each drive has a level from 0 to 100, drawn as a bar with an arrow showing whether it rose or fell. notes explain what a bar means when it passes a set limit. variant `panel` renders one row per `h` plus the `state` and `triggered` lines; `bars` renders only the rows (the compact form); `alert` renders only the `alert` elements. any other value falls back to `panel`. state child element — compound state description, rendered in the `panel` variant as the state line. triggered child element — threshold behaviors activated, or `none`. a row is highlighted (`data-fired`) when this block names the hormone: by symbol (word match, so `rst` does not hit \"first\"), by name, or by its `trigger` text; `none` highlights nothing. alert child elements — `hormone`, `value`, `threshold`, `behavior` attributes, body text as content. rendered only by the `alert` variant. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) h npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows seven drive levels — like momentum, tension, and curiosity — as bars.")], [Type.atom("href"), Type.bitstring("/reference/npl-hormones/")], [Type.atom("id"), Type.bitstring("header-search-o-35")], [Type.atom("index"), Type.integer(35n)], [Type.atom("key"), Type.bitstring("search-npl-hormones")], [Type.atom("title"), Type.bitstring("npl-hormones")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-intent shows what a piece of work is meant to achieve: the goal, the scope, and the expected outcomes. you write the goal, what is in and out of scope, the outcomes, and any assumptions. the element lays them out in a clear grid so a reader can check the plan at a glance. npl-intent-overview npl-intent-scope npl-intent-outcomes npl-intent-assumptions npl-intent-assumption npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows what a piece of work is meant to achieve: the goal, the scope, and the expected outcomes.")], [Type.atom("href"), Type.bitstring("/reference/npl-intent/")], [Type.atom("id"), Type.bitstring("header-search-o-36")], [Type.atom("index"), Type.integer(36n)], [Type.atom("key"), Type.bitstring("search-npl-intent")], [Type.atom("title"), Type.bitstring("npl-intent")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-mindread shows what one party thinks another party believes or feels. you write the subject, the signals (tone, patterns, things left unsaid), and the reading drawn from them. the result is clearly labelled as a guess, not a fact. confidence optional, a theory-of-mind reading is a guess until corrected; authored `0..1`. out-of-range values are **clamped** into `[0,1]` (a non-numeric authoring clamps to `0`), and the host is **marked**: `data-confidence` carries the clamped value, `data-confidence-out-of-range` the verbatim authored value, and the meter gains a `npl-mindread-confidence-out` note. subject signals signal type inferred motive mood cognitive unspoken adaptation npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows what one party thinks another party believes or feels.")], [Type.atom("href"), Type.bitstring("/reference/npl-mindread/")], [Type.atom("id"), Type.bitstring("header-search-o-37")], [Type.atom("index"), Type.integer(37n)], [Type.atom("key"), Type.bitstring("search-npl-mindread")], [Type.atom("title"), Type.bitstring("npl-mindread")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-mode lists the thinking styles an agent uses, one chip per style. you write each mode as a child element. the main mode is marked so the reader knows which lens leads. this element only shows information; it changes nothing. primary resolved in either authoring spelling (`data-primary` wins, conventions §2). declares this the primary lens; marks the rendered chips (`npl-mode-chip-primary`) and mirrors to `data-primary` after parse — an authored `data-primary` is never clobbered by the default. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) mode npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Lists the thinking styles an agent uses, one chip per style.")], [Type.atom("href"), Type.bitstring("/reference/npl-mode/")], [Type.atom("id"), Type.bitstring("header-search-o-38")], [Type.atom("index"), Type.integer(38n)], [Type.atom("key"), Type.bitstring("search-npl-mode")], [Type.atom("title"), Type.bitstring("npl-mode")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-mood shows a mood with an emoji, plus an optional note on its tone. you write the mood in the mood attribute. extra children can carry the tone, the context, and how the agent will approach work in this mood. mood required. one emoji followed by an optional qualifier string, whitespace-separated (`\"🙂 wistful\"`); a lone emoji is valid. displayed by `.npl-mood-chip` and mirrored to `data-mood` (dual-form contract; the mirror is deferred past parse via afterparse so a sem-source snapshot never sees runtime writes). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl-mood-tone npl-mood-context npl-mood-approach npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows a mood with an emoji, plus an optional note on its tone.")], [Type.atom("href"), Type.bitstring("/reference/npl-mood/")], [Type.atom("id"), Type.bitstring("header-search-o-39")], [Type.atom("index"), Type.integer(39n)], [Type.atom("key"), Type.bitstring("search-npl-mood")], [Type.atom("title"), Type.bitstring("npl-mood")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-poa shows a plan as a decision tree, plus the reasons each path was weighed. you write the tree, the reasoning with weights, and the option that was picked. the element shows all three parts; it never draws the tree for you. direction one of `lr` | `td`; declares the intended flow and mirrors to `data-direction` (dual-form contract, `data-` wins, mirror deferred past parse via afterparse). the fence's own `graph lr`/`graph td` line remains the renderer's source of truth — authored source is never rewritten. anything other than `lr`/`td` falls back to `lr` with an author-facing warning. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows a plan as a decision tree, plus the reasons each path was weighed.")], [Type.atom("href"), Type.bitstring("/reference/npl-poa/")], [Type.atom("id"), Type.bitstring("header-search-o-40")], [Type.atom("index"), Type.integer(40n)], [Type.atom("key"), Type.bitstring("search-npl-poa")], [Type.atom("title"), Type.bitstring("npl-poa")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-ref looks back at a finished turn: what went well, what to improve, and how it was checked. you write the assessment, the improvements, the validation, and any eval notes. the element lays them out as a review card after the work. variant one of `full`, `compact`, optional — `full` renders each section as a labelled block; `compact` renders one emoji line per section. any other value resolves to `full`, and the resolved variant mirrors to `data-variant` (dual-form contract; the mirror is deferred past parse via afterparse, like sem-note, so a sem-source snapshot never sees runtime writes). the variant is read at upgrade; it is display-only and not switched after wiring. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) assessment improvements validation eval fine-tune npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Looks back at a finished turn: what went well, what to improve, and how it was checked.")], [Type.atom("href"), Type.bitstring("/reference/npl-ref/")], [Type.atom("id"), Type.bitstring("header-search-o-41")], [Type.atom("index"), Type.integer(41n)], [Type.atom("key"), Type.bitstring("search-npl-ref")], [Type.atom("title"), Type.bitstring("npl-ref")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-rubric a scoring table: each row is a criterion with a weight and a score, plus a total. you write the criteria, their weights, and their scores. the total is shown as given, or worked out from the weights. wrong or missing numbers are flagged, not hidden. title (empty). rendered as the table caption and mirrored to `data-title` (dual-form contract; the mirror is deferred past parse via afterparse so a sem-source snapshot never sees runtime writes). npl-overall-score (optional, one) — `value`: number — default: the element's trimmed text (`value` wins when both are present). states the overall score; when absent or non-numeric the component computes the weighted average — sum(weight · score) ÷ sum(weight) over the criteria with a numeric weight and score (all-zero weights ⇒ no figure). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("A scoring table: each row is a criterion with a weight and a score, plus a total.")], [Type.atom("href"), Type.bitstring("/reference/npl-rubric/")], [Type.atom("id"), Type.bitstring("header-search-o-42")], [Type.atom("index"), Type.integer(42n)], [Type.atom("key"), Type.bitstring("search-npl-rubric")], [Type.atom("title"), Type.bitstring("npl-rubric")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-section a labelled section for any npl prompt block. known section types get a matching header; unknown types get a warning style so a typo is easy to spot. the content stays plain text, so search and copy still work. type required. one of the known section types: `alg`, `alg-pseudo`, `diagram`, `example`, `format`, `logic`, `note`, `syntax`, `template`. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("A labelled section for any NPL prompt block.")], [Type.atom("href"), Type.bitstring("/reference/npl-section/")], [Type.atom("id"), Type.bitstring("header-search-o-43")], [Type.atom("index"), Type.integer(43n)], [Type.atom("key"), Type.bitstring("search-npl-section")], [Type.atom("title"), Type.bitstring("npl-section")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-thought a thought bubble: short related ideas grouped under one type. each child is one thought with a type attribute, such as a question or a risk. the element shows them as a tidy list of bubbles. type optional; one of the eleven npl thought-block types (case-insensitive): `observation`, `tangent`, `question`, `relation`, `concern`, `affirmation`, `reflection`, `opportunity`, `aversion`, `interest`, `eval`. id per the global attribute catalog (conventions.md §2) npl-thought npl prompt tag element")], [Type.atom("hint"), Type.bitstring("A thought bubble: short related ideas grouped under one type.")], [Type.atom("href"), Type.bitstring("/reference/npl-thought/")], [Type.atom("id"), Type.bitstring("header-search-o-44")], [Type.atom("index"), Type.integer(44n)], [Type.atom("key"), Type.bitstring("search-npl-thought")], [Type.atom("title"), Type.bitstring("npl-thought")]]), Type.map([[Type.atom("group"), Type.bitstring("NPL elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-npl-elements")], [Type.atom("haystack"), Type.bitstring("npl-vos shows a persona's inner state: id, ego, superego, and mood, before a reply. you write each part of the state. the element shows them as labelled parts of one bracket. an optional collective part covers group personas. phase one of `entry`, `exit`; rendered as the bracket label and mirrored to data-phase (dual-form contract; the mirror is deferred past parse via afterparse so a sem-source snapshot never sees runtime writes). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) npl prompt tag element")], [Type.atom("hint"), Type.bitstring("Shows a persona's inner state: id, ego, superego, and mood, before a reply.")], [Type.atom("href"), Type.bitstring("/reference/npl-vos/")], [Type.atom("id"), Type.bitstring("header-search-o-45")], [Type.atom("index"), Type.integer(45n)], [Type.atom("key"), Type.bitstring("search-npl-vos")], [Type.atom("title"), Type.bitstring("npl-vos")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-api-call documents one api call's contract: method, endpoint, status and its parameters, as a card. the definition card for an endpoint. you write the operation name, http method and path, then one sem-api-param child per parameter or response field; the page shows a table and machines read the same fields back. name (on `sem-api-call`): required, string — the operation's display name. method (optional): string token — http method, rendered uppercased, extraction records the authored spelling uppercased. endpoint (required): string — path or url template. status (optional): string — the documented response status (\"200\", \"2xx\", \"201 created\" …). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("Documents one API call's contract: method, endpoint, status and its parameters, as a card.")], [Type.atom("href"), Type.bitstring("/reference/sem-api-call/")], [Type.atom("id"), Type.bitstring("header-search-o-46")], [Type.atom("index"), Type.integer(46n)], [Type.atom("key"), Type.bitstring("search-sem-api-call")], [Type.atom("title"), Type.bitstring("sem-api-call")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-api-param one parameter row inside a sem-api-call: name, where it lives, type and description. the child of sem-api-call. the in attribute says where the parameter lives (query, body, header, or response for a returned field); required marks the ones the caller must send. semtext tag element")], [Type.atom("hint"), Type.bitstring("One parameter row inside a sem-api-call: name, where it lives, type and description.")], [Type.atom("href"), Type.bitstring("/reference/sem-api-param/")], [Type.atom("id"), Type.bitstring("header-search-o-47")], [Type.atom("index"), Type.integer(47n)], [Type.atom("key"), Type.bitstring("search-sem-api-param")], [Type.atom("title"), Type.bitstring("sem-api-param")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-audiences names the reader groups a document knows about, so each reader sees the parts meant for them. you list each group here, then mark sections with an audience attribute. the reader picks their group and the page hides the rest. nothing is deleted — machines still read the whole document. id (required, document-unique): the profile token that `audience` specs and the hash parameter refer to. it is an ordinary element id, so it shares the document's id space. label (optional): human label; the id renders when absent. implies (optional, comma list): profiles this one satisfies as well. `operator implies reader` means an operator sees reader content. closure is transitive; a cycle is an authoring error, warned once and broken. semtext tag element")], [Type.atom("hint"), Type.bitstring("Names the reader groups a document knows about, so each reader sees the parts meant for them.")], [Type.atom("href"), Type.bitstring("/reference/sem-audiences/")], [Type.atom("id"), Type.bitstring("header-search-o-48")], [Type.atom("index"), Type.integer(48n)], [Type.atom("key"), Type.bitstring("search-sem-audiences")], [Type.atom("title"), Type.bitstring("sem-audiences")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-browser draws a browser-style window around a live semtext document. it gives the document an address bar and a window frame, while everything inside stays real, working semtext. use it when a page demonstrates a document rather than being one. src (optional): vfs path or url of the semtext document to render. with no `src`, the element's authored children are the viewport content. label (optional): tab-label override. priority: `label`, then the document's ``, then the `src` basename, then `untitled`. resolve (property only, not an attribute): a host-injected `(path) => string | null | promise<string | null>` consulted for scheme-less paths (`demo/deck.sem.html`, not `/…` or `https://…`) before any fetch. returning a string adopts it; returning null errors without fetching. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("Draws a browser-style window around a live SemText document.")], [Type.atom("href"), Type.bitstring("/reference/sem-browser/")], [Type.atom("id"), Type.bitstring("header-search-o-49")], [Type.atom("index"), Type.integer(49n)], [Type.atom("key"), Type.bitstring("search-sem-browser")], [Type.atom("title"), Type.bitstring("sem-browser")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-changelog a changelog: dated entries describing what changed. you wrap the collection in sem-changelogs and write one entry per change inside, each with its date and a name. it stays ordinary readable text with javascript off. semtext tag element")], [Type.atom("hint"), Type.bitstring("A changelog: dated entries describing what changed.")], [Type.atom("href"), Type.bitstring("/reference/sem-changelog/")], [Type.atom("id"), Type.bitstring("header-search-o-50")], [Type.atom("index"), Type.integer(50n)], [Type.atom("key"), Type.bitstring("search-sem-changelog")], [Type.atom("title"), Type.bitstring("sem-changelog")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-changelogs the collection wrapper for changelog entries. you set the kind — added, changed, fixed, removed — on each entry, and the chrome labels the collection. the entries themselves are the record; nothing is invented. date per entry; the authored stamp (yyyy-mm-dd), drawn into the entry heading chrome. name `title`: per the global/standard attribute catalog — entry heading qualifiers, drawn into the entry chrome. kind per the global attribute catalog (conventions.md §2) id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("The collection wrapper for changelog entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-changelogs/")], [Type.atom("id"), Type.bitstring("header-search-o-51")], [Type.atom("index"), Type.integer(51n)], [Type.atom("key"), Type.bitstring("search-sem-changelogs")], [Type.atom("title"), Type.bitstring("sem-changelogs")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-chronology a timeline: dated events shown in the order they happened. each child is one event with a when date, an optional end date, and an optional status. you write the events in order; the element never sorts them. it can show the events as a timeline rail or as a plain list. when (recommended): the event's date or period start, as the author wants a machine to see it (iso-8601 preferred, free text allowed). until (optional): period end. status (optional): `done | current | todo | blocked` — same vocabulary as `sem-step`. absent means unannotated, **not** `todo`: an event is a record of something that happened, not a task. view-as `timeline` (default) | `list`. unknown values render as `timeline`. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A timeline: dated events shown in the order they happened.")], [Type.atom("href"), Type.bitstring("/reference/sem-chronology/")], [Type.atom("id"), Type.bitstring("header-search-o-52")], [Type.atom("index"), Type.integer(52n)], [Type.atom("key"), Type.bitstring("search-sem-chronology")], [Type.atom("title"), Type.bitstring("sem-chronology")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-code a code listing with a file name, a language, and marked lines. the code is shown exactly as written — spacing included. you can mark the lines that matter, and the reader gets copy controls a plain code block cannot offer. lang (optional): language token, rendered as a badge. filename (optional): provenance label. mark (optional): emphasised lines, 1-based, comma list of numbers and `a-b` ranges (`2,4-5`). out-of-range entries are ignored. wrap (boolean, optional): start with soft-wrapped lines. controls (optional): comma flags from `copy`, `wrap`; unknown flags are ignored. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) pre code precode mark semtext tag element")], [Type.atom("hint"), Type.bitstring("A code listing with a file name, a language, and marked lines.")], [Type.atom("href"), Type.bitstring("/reference/sem-code/")], [Type.atom("id"), Type.bitstring("header-search-o-53")], [Type.atom("index"), Type.integer(53n)], [Type.atom("key"), Type.bitstring("search-sem-code")], [Type.atom("title"), Type.bitstring("sem-code")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-data-join combines two named data sets on one shared column, like a database join. you name the two sources and the key column. the joined result becomes a new data set that queries can use. nothing shows on the page by itself — it only feeds queries. data-name (alias `name`): required — bucket key of the join result; colliding with a source name is an authoring error. data-left (alias `left`): required — the left-hand bucket to join, by `data-name` reference. data-right (alias `right`): required — the other bucket to join, by `data-name` reference. data-on (alias `on`): required — the named key column; must exist (case-insensitive) in both buckets. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("Combines two named data sets on one shared column, like a database join.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-join/")], [Type.atom("id"), Type.bitstring("header-search-o-54")], [Type.atom("index"), Type.integer(54n)], [Type.atom("key"), Type.bitstring("search-sem-data-join")], [Type.atom("title"), Type.bitstring("sem-data-join")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-data-query a question asked of a data set, written in a small, safe sql-like language. you write one query: pick columns, filter, sort, and limit. joins are declared separately, and nothing can change the data. readers see the results, and the query text stays visible. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A question asked of a data set, written in a small, safe SQL-like language.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-query/")], [Type.atom("id"), Type.bitstring("header-search-o-55")], [Type.atom("index"), Type.integer(55n)], [Type.atom("key"), Type.bitstring("search-sem-data-query")], [Type.atom("title"), Type.bitstring("sem-data-query")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-data-source one named set of data inside a data visualizer. you either write the data inside the element or point at a file with source. doing both is an error the element reports clearly. with javascript off, the data still reads as text. data-name free text — human label rendered as the table `caption`, and the bucket key every query, join and cross-source view reference resolves (exact, then case-insensitive, then normalized: lowercase, non-alphanumeric runs collapsed to `-`, edge `-` trimmed). data-format (optional): one of `table`, `csv`, `yaml`, `json`, `sql` — payload syntax of the body or of the fetched resource; unknown format is a clear inline error, never a silent blank. data-type (optional): one of `rows`, `yaml-schema` — structure declaration; (absent ⇒ the tier infers). rows ⇒ simple row/column definition via the per-column declaration attribute; yaml-schema ⇒ the payload is an openapi-style yaml document whose nested objects flatten to dotted column paths. data-columns (optional): string — with `data-type=\"rows\"`, the per-column declaration, a comma list of `name[:type][?]` (`?` = nullable; types `string`, `number`, `integer`, `boolean`, `date`, `null`). declared types override inference per column; inference fills any column the declaration omits. source (optional): string — url of a relative/same-origin file or an absolute `http(s)` file/api endpoint; inline payload and `source` are mutually exclusive. `file://` is refused when the document itself is `file://`. data-views (optional): named views as `name=colspec; name=colspec` — `colspec` is `*` or a comma list of column names, matched case-insensitively; malformed segments are skipped (a typo hides a view, it never breaks the document). data-view (optional): view name — the default view. resolution: `data-view` name ⇒ first declared view ⇒ implicit `all=*`. data-header (optional): one of `true`, `false`; csv only: `false` ⇒ the first row is data and headers synthesize `col-<n>`. data-path (optional): string — `json`/api only: dot/bracket path into a nested response (`data.items`, `rows[2].entries`) that flattens to the row array. data-cache (optional): one of `no`; `no` ⇒ skip the in-memory fetch cache (one fetch per url per page load by default). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("One named set of data inside a data visualizer.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-source/")], [Type.atom("id"), Type.bitstring("header-search-o-56")], [Type.atom("index"), Type.integer(56n)], [Type.atom("key"), Type.bitstring("search-sem-data-source")], [Type.atom("title"), Type.bitstring("sem-data-source")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-data-visualizer the container that holds data sets, joins, and queries, and shows the results. you put one or more sem-data-source children inside, plus any joins and queries. the container owns the shared state: which data set and query are active. with javascript off it shows the data as plain tables. id optional — names the container for the modal deep link (`#dv=<visualizer-id>`). the copy-link chrome prefers the container's id; with none it falls back to the container's sole named source (`#bucket=<name>`), and a container with neither mints no copy-link button. kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) sem-data-source sem-data-join sem-data-query semtext tag element")], [Type.atom("hint"), Type.bitstring("The container that holds data sets, joins, and queries, and shows the results.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-visualizer/")], [Type.atom("id"), Type.bitstring("header-search-o-57")], [Type.atom("index"), Type.integer(57n)], [Type.atom("key"), Type.bitstring("search-sem-data-visualizer")], [Type.atom("title"), Type.bitstring("sem-data-visualizer")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-detail one passage of prose with parts that can be hidden for self-testing. this is the child of sem-details. wrap the words to recall in a highlight, or use [[double brackets]]. hiding them turns the passage into a memory exercise. highlight semtext tag element")], [Type.atom("hint"), Type.bitstring("One passage of prose with parts that can be hidden for self-testing.")], [Type.atom("href"), Type.bitstring("/reference/sem-detail/")], [Type.atom("id"), Type.bitstring("header-search-o-58")], [Type.atom("index"), Type.integer(58n)], [Type.atom("key"), Type.bitstring("search-sem-detail")], [Type.atom("title"), Type.bitstring("sem-detail")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-details a group of passages whose key words can be hidden for recall practice. each sem-detail child is one passage. readers hide or show the highlighted words to test themselves. this is a study aid — not a reveal box and not a tab set. view-as `plain` (default) | `quiz`. display-only sugar — the prose is identical; quiz view additionally occludes highlights. id on the container; `kind`, `tags` global. facts may also carry `<highlight>` prompts (schema sem-facts), but occlusion wiring for prose lives here. semtext tag element")], [Type.atom("hint"), Type.bitstring("A group of passages whose key words can be hidden for recall practice.")], [Type.atom("href"), Type.bitstring("/reference/sem-details/")], [Type.atom("id"), Type.bitstring("header-search-o-59")], [Type.atom("index"), Type.integer(59n)], [Type.atom("key"), Type.bitstring("search-sem-details")], [Type.atom("title"), Type.bitstring("sem-details")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-enhanced-document the required root wrapper around a semtext document. you wrap the whole document in it once. inside, plain html and sem-* elements mix freely. extraction reads everything inside the wrapper; the browser treats it as an ordinary container. role audience id · kind · tags semtext tag element")], [Type.atom("hint"), Type.bitstring("The required root wrapper around a SemText document.")], [Type.atom("href"), Type.bitstring("/reference/sem-enhanced-document/")], [Type.atom("id"), Type.bitstring("header-search-o-60")], [Type.atom("index"), Type.integer(60n)], [Type.atom("key"), Type.bitstring("search-sem-enhanced-document")], [Type.atom("title"), Type.bitstring("sem-enhanced-document")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-eval an evaluation spec: the inputs, expected outputs and criteria in one container. you author the cases as sections or prose inside; the container adds the chrome and label. it states what a good answer looks like — it does not run anything. kind optional qualifier drawn into the label chrome (display-only sugar). status one of `draft`, `approved`, `implemented` — lifecycle token, drawn as a status chip (display-only). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("An evaluation spec: the inputs, expected outputs and criteria in one container.")], [Type.atom("href"), Type.bitstring("/reference/sem-eval/")], [Type.atom("id"), Type.bitstring("header-search-o-61")], [Type.atom("index"), Type.integer(61n)], [Type.atom("key"), Type.bitstring("search-sem-eval")], [Type.atom("title"), Type.bitstring("sem-eval")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-event one dated event on a timeline. you give it a when date, an optional until end date, and an optional status such as planned or done. its place in the page is its place in time — the element does not sort events. time semtext tag element")], [Type.atom("hint"), Type.bitstring("One dated event on a timeline.")], [Type.atom("href"), Type.bitstring("/reference/sem-event/")], [Type.atom("id"), Type.bitstring("header-search-o-62")], [Type.atom("index"), Type.integer(62n)], [Type.atom("key"), Type.bitstring("search-sem-event")], [Type.atom("title"), Type.bitstring("sem-event")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-fact one fact: a statement, its conclusion, and optionally what would be wrong to believe. you write the statement, the conclusion drawn from it, and any incorrect-statement to warn against. the id is the token other text cites. it reads as plain sentences with javascript off. statement conclusion incorrect-statement semtext tag element")], [Type.atom("hint"), Type.bitstring("One fact: a statement, its conclusion, and optionally what would be wrong to believe.")], [Type.atom("href"), Type.bitstring("/reference/sem-fact/")], [Type.atom("id"), Type.bitstring("header-search-o-63")], [Type.atom("index"), Type.integer(63n)], [Type.atom("key"), Type.bitstring("search-sem-fact")], [Type.atom("title"), Type.bitstring("sem-fact")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-facts a group of facts the reader can flip through as cards, a quiz, or plain prose. you wrap sem-fact children in it and pick a view with view-as. the view only changes how the facts are shown — the facts themselves stay the same, and machines always read all of them. view-as `list` (default) | `flashcards` | `quiz`. canonical attribute; display-only sugar — machines extract the same pairs regardless of view. id on the container and on facts: required for citation (`#auth-facts/f-rotate`); `kind`, `tags` global. semtext tag element")], [Type.atom("hint"), Type.bitstring("A group of facts the reader can flip through as cards, a quiz, or plain prose.")], [Type.atom("href"), Type.bitstring("/reference/sem-facts/")], [Type.atom("id"), Type.bitstring("header-search-o-64")], [Type.atom("index"), Type.integer(64n)], [Type.atom("key"), Type.bitstring("search-sem-facts")], [Type.atom("title"), Type.bitstring("sem-facts")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-faq one faq entry: the asked question and its authored answer. the question child is the question; everything you write in the answer child is the answer. machines extract both verbatim; the browser can show them as a q and a pair. question answer semtext tag element")], [Type.atom("hint"), Type.bitstring("One FAQ entry: the asked question and its authored answer.")], [Type.atom("href"), Type.bitstring("/reference/sem-faq/")], [Type.atom("id"), Type.bitstring("header-search-o-65")], [Type.atom("index"), Type.integer(65n)], [Type.atom("key"), Type.bitstring("search-sem-faq")], [Type.atom("title"), Type.bitstring("sem-faq")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-faqs a collection of faq entries. you wrap sem-faq children in it. the view only changes how the questions and answers are shown — the words stay the same. kind collection qualifier drawn into the label chrome (display-only sugar). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A collection of FAQ entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-faqs/")], [Type.atom("id"), Type.bitstring("header-search-o-66")], [Type.atom("index"), Type.integer(66n)], [Type.atom("key"), Type.bitstring("search-sem-faqs")], [Type.atom("title"), Type.bitstring("sem-faqs")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-file-tree a file listing written as an indented tree inside a pre block. you type the tree with box-drawing characters or plain indentation; with javascript on the same engine as sem-site-tree turns it into a browsable listing, and with javascript off the pre is the record. label per the global attribute catalog (conventions.md §2) mode semtext tag element")], [Type.atom("hint"), Type.bitstring("A file listing written as an indented tree inside a pre block.")], [Type.atom("href"), Type.bitstring("/reference/sem-file-tree/")], [Type.atom("id"), Type.bitstring("header-search-o-67")], [Type.atom("index"), Type.integer(67n)], [Type.atom("key"), Type.bitstring("search-sem-file-tree")], [Type.atom("title"), Type.bitstring("sem-file-tree")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-guard-rail one guard rail: a rule the reader should not cross. you give it a severity and a scope, and write the rule as the content. it renders as a labelled, warning-level item in the guard-rails list. semtext tag element")], [Type.atom("hint"), Type.bitstring("One guard rail: a rule the reader should not cross.")], [Type.atom("href"), Type.bitstring("/reference/sem-guard-rail/")], [Type.atom("id"), Type.bitstring("header-search-o-68")], [Type.atom("index"), Type.integer(68n)], [Type.atom("key"), Type.bitstring("search-sem-guard-rail")], [Type.atom("title"), Type.bitstring("sem-guard-rail")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-guard-rails a collection of guard rails. you wrap sem-guard-rail children in it. the collection sorts nothing and invents nothing — the rails you wrote, in the order you wrote them. kind collection qualifier drawn into the label chrome (display-only sugar). severity (per entry): one of `info` (default), `warn`, `block` — selects the rail color; display-only sugar, extraction is identical under every severity. scope (per entry): `string` — free token naming where the rule applies; drawn into the entry's label chrome. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A collection of guard rails.")], [Type.atom("href"), Type.bitstring("/reference/sem-guard-rails/")], [Type.atom("id"), Type.bitstring("header-search-o-69")], [Type.atom("index"), Type.integer(69n)], [Type.atom("key"), Type.bitstring("search-sem-guard-rails")], [Type.atom("title"), Type.bitstring("sem-guard-rails")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-howto a how-to guide container: a named guide with free contents. the name child is the title; everything else inside is the guide. the container adds the chrome and label — you write the steps with the elements you already have. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A how-to guide container: a named guide with free contents.")], [Type.atom("href"), Type.bitstring("/reference/sem-howto/")], [Type.atom("id"), Type.bitstring("header-search-o-70")], [Type.atom("index"), Type.integer(70n)], [Type.atom("key"), Type.bitstring("search-sem-howto")], [Type.atom("title"), Type.bitstring("sem-howto")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-kb a knowledge-base article: the content you write inside is the article. there is no special structure to learn — headings, prose and the other elements all work as usual. the container frames the article with a labelled panel. kind optional topical qualifier, drawn into the label chrome (display-only sugar; extraction is identical either way). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A knowledge-base article: the content you write inside is the article.")], [Type.atom("href"), Type.bitstring("/reference/sem-kb/")], [Type.atom("id"), Type.bitstring("header-search-o-71")], [Type.atom("index"), Type.integer(71n)], [Type.atom("key"), Type.bitstring("search-sem-kb")], [Type.atom("title"), Type.bitstring("sem-kb")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-md a block written in markdown that the browser turns into html. you write tables, lists, and other markdown inside the element. readers see a formatted table or list; machines get the markdown back unchanged. made for content that is easier to write as markdown than as html. view-as (optional): `rendered` (default) or `raw` — the initial mode. **mutable presentation**: the toggle rewrites `data-view-as` at runtime (the authored bare attribute is left alone) and extraction ignores it (spec/extraction.md §5c). label (optional): a short caption rendered in the chrome. controls (optional): comma flags from `toggle`, `copy`; default both, also when the attribute is present but empty. unknown flags are ignored. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A block written in Markdown that the browser turns into HTML.")], [Type.atom("href"), Type.bitstring("/reference/sem-md/")], [Type.atom("id"), Type.bitstring("header-search-o-72")], [Type.atom("index"), Type.integer(72n)], [Type.atom("key"), Type.bitstring("search-sem-md")], [Type.atom("title"), Type.bitstring("sem-md")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-mockup a ui mockup container holding text or html. you pick the mode — text or html — and put the mockup inside. it renders as a framed specimen; nothing inside it is interactive. mode one of `text` (default), `html` — presentation selector; display-only sugar. kind optional qualifier drawn into the label chrome. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A UI mockup container holding text or HTML.")], [Type.atom("href"), Type.bitstring("/reference/sem-mockup/")], [Type.atom("id"), Type.bitstring("header-search-o-73")], [Type.atom("index"), Type.integer(73n)], [Type.atom("key"), Type.bitstring("search-sem-mockup")], [Type.atom("title"), Type.bitstring("sem-mockup")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-note a callout: a short piece of prose set beside the main text. pick a variant — info, warning, tip, or danger — for the colour and label. the collapsed attribute hides the body behind a short teaser. it stays ordinary readable text with javascript off. variant `info` (default) | `warning` | `tip` | `danger`. collapsed boolean attr — the body is hidden behind a ten-word teaser (`.sem-note-summary`) that expands on click. view-as presentation only. on wide viewports the note floats right beside the prose that follows it (width `--sem-margin-width`, default 14rem), inside the container; a document whose column has a gutter pushes it out with `--sem-margin-offset`. on narrow viewports and in print it reads inline as an ordinary callout. css-only — no handler, no chrome, no record change. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A callout: a short piece of prose set beside the main text.")], [Type.atom("href"), Type.bitstring("/reference/sem-note/")], [Type.atom("id"), Type.bitstring("header-search-o-74")], [Type.atom("index"), Type.integer(74n)], [Type.atom("key"), Type.bitstring("search-sem-note")], [Type.atom("title"), Type.bitstring("sem-note")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-option one answer choice in a question. the correct attribute marks the right choice. readers pick an answer; machines read which option was correct. correct semtext tag element")], [Type.atom("hint"), Type.bitstring("One answer choice in a question.")], [Type.atom("href"), Type.bitstring("/reference/sem-option/")], [Type.atom("id"), Type.bitstring("header-search-o-75")], [Type.atom("index"), Type.integer(75n)], [Type.atom("key"), Type.bitstring("search-sem-option")], [Type.atom("title"), Type.bitstring("sem-option")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-philosophy a principles container: the beliefs or rules a project runs on. you write the principles inside as prose or lists. the container gives them a labelled home so machines can find the project's stated principles. kind optional qualifier drawn into the label chrome (display-only sugar). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A principles container: the beliefs or rules a project runs on.")], [Type.atom("href"), Type.bitstring("/reference/sem-philosophy/")], [Type.atom("id"), Type.bitstring("header-search-o-76")], [Type.atom("index"), Type.integer(76n)], [Type.atom("key"), Type.bitstring("search-sem-philosophy")], [Type.atom("title"), Type.bitstring("sem-philosophy")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-plan a plan container: the reasoning and the steps of a solution. you write the plan inside as sections or prose, with an optional status. the container keeps the reasoning with the work it produced. kind optional qualifier drawn into the label chrome (display-only sugar). status per the global catalog (`done`, `current`, `todo`, `blocked`, `pass`, `fail`) — drawn as a status chip (display-only). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A plan container: the reasoning and the steps of a solution.")], [Type.atom("href"), Type.bitstring("/reference/sem-plan/")], [Type.atom("id"), Type.bitstring("header-search-o-77")], [Type.atom("index"), Type.integer(77n)], [Type.atom("key"), Type.bitstring("search-sem-plan")], [Type.atom("title"), Type.bitstring("sem-plan")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-procedure an ordered list of steps, each marked with where it stands. you write one sem-step per step, in the order they happen. each step carries a status: done, current, todo, or blocked. there are no step numbers to maintain — position is the number. kind free token (`runbook`, `recipe`, `migration` …). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("An ordered list of steps, each marked with where it stands.")], [Type.atom("href"), Type.bitstring("/reference/sem-procedure/")], [Type.atom("id"), Type.bitstring("header-search-o-78")], [Type.atom("index"), Type.integer(78n)], [Type.atom("key"), Type.bitstring("search-sem-procedure")], [Type.atom("title"), Type.bitstring("sem-procedure")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-profile names one reader group inside a sem-audiences block. you give it an id and a short label. sections tagged with this id show or hide as the reader switches groups. semtext tag element")], [Type.atom("hint"), Type.bitstring("Names one reader group inside a sem-audiences block.")], [Type.atom("href"), Type.bitstring("/reference/sem-profile/")], [Type.atom("id"), Type.bitstring("header-search-o-79")], [Type.atom("index"), Type.integer(79n)], [Type.atom("key"), Type.bitstring("search-sem-profile")], [Type.atom("title"), Type.bitstring("sem-profile")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-progress a progress bar for one number between 0 and 1. you give it a value and an optional label. the page draws a bar with the percentage. values outside the range are clamped for display, and the raw value still reads as text without javascript. value required, canonical unit 0..1. out-of-range values clamp for rendering; the raw attr stays untouched (machine readers see the author's value, the render shows the clamp). label optional meter caption; status optional completion state — pairs with value 1 and renders the full/accent state (same catalog as `sem-step`). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A progress bar for one number between 0 and 1.")], [Type.atom("href"), Type.bitstring("/reference/sem-progress/")], [Type.atom("id"), Type.bitstring("header-search-o-80")], [Type.atom("index"), Type.integer(80n)], [Type.atom("key"), Type.bitstring("search-sem-progress")], [Type.atom("title"), Type.bitstring("sem-progress")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-properties a list of key–value pairs, shown as a tidy definition grid. you write one sem-property per pair. the grid renders with plain css, so it works with javascript off. machines read the same pairs back. key (on each `sem-property`): required, free text (the term). the property text is the value. kind (optional): free token (`config`, `spec`, `env` …). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) view-as (optional; r/w1): the block is a glossary. each property should carry an `id`; prose elsewhere links a term with a plain anchor (`<a href=\"#g-jwt\">jwt</a>`), optionally wrapping it in `<dfn>` at its defining use. semtext tag element")], [Type.atom("hint"), Type.bitstring("A list of key–value pairs, shown as a tidy definition grid.")], [Type.atom("href"), Type.bitstring("/reference/sem-properties/")], [Type.atom("id"), Type.bitstring("header-search-o-81")], [Type.atom("index"), Type.integer(81n)], [Type.atom("key"), Type.bitstring("search-sem-properties")], [Type.atom("title"), Type.bitstring("sem-properties")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-property one key–value pair in a properties grid. the key attribute is the term; the text inside is its meaning. add role=definition when the value defines the key. semtext tag element")], [Type.atom("hint"), Type.bitstring("One key–value pair in a properties grid.")], [Type.atom("href"), Type.bitstring("/reference/sem-property/")], [Type.atom("id"), Type.bitstring("header-search-o-82")], [Type.atom("index"), Type.integer(82n)], [Type.atom("key"), Type.bitstring("search-sem-property")], [Type.atom("title"), Type.bitstring("sem-property")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-question a question with answer choices, for self-testing. you write the question and one or more sem-option children. it pairs with the quiz views of sem-facts. works as plain markup with javascript off. type semtext tag element")], [Type.atom("hint"), Type.bitstring("A question with answer choices, for self-testing.")], [Type.atom("href"), Type.bitstring("/reference/sem-question/")], [Type.atom("id"), Type.bitstring("header-search-o-83")], [Type.atom("index"), Type.integer(83n)], [Type.atom("key"), Type.bitstring("search-sem-question")], [Type.atom("title"), Type.bitstring("sem-question")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-reader reading tools for a long document: an outline, a progress bar, and controls for text size and theme. it is page furniture, not content — a document without it loses nothing a machine would read. readers get focus mode, type size, colour scheme, print, and audience controls in one place. controls optional. comma flags, in any order, one of `outline`, `progress`, `focus`, `type`, `color`, `print`, `audience` — unknown flags, including the theme flag reserved for r/w3, are ignored. controls render in the **canonical order** above, not in attribute order. outline-depth optional. deepest heading level in the generated outline, `2`–`6`; the outline always starts at `h2` — `h1` is the document title. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) nav semtext tag element")], [Type.atom("hint"), Type.bitstring("Reading tools for a long document: an outline, a progress bar, and controls for text size and theme.")], [Type.atom("href"), Type.bitstring("/reference/sem-reader/")], [Type.atom("id"), Type.bitstring("header-search-o-84")], [Type.atom("index"), Type.integer(84n)], [Type.atom("key"), Type.bitstring("search-sem-reader")], [Type.atom("title"), Type.bitstring("sem-reader")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-reference one numbered entry in a reference list. you give it an id, a link, and a note. in the text, cite it with a plain link to the id. the element carries the fields a plain list item cannot. semtext tag element")], [Type.atom("hint"), Type.bitstring("One numbered entry in a reference list.")], [Type.atom("href"), Type.bitstring("/reference/sem-reference/")], [Type.atom("id"), Type.bitstring("header-search-o-85")], [Type.atom("index"), Type.integer(85n)], [Type.atom("key"), Type.bitstring("search-sem-reference")], [Type.atom("title"), Type.bitstring("sem-reference")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-references a numbered list of sources the document cites. you wrap one sem-reference per source. numbers come from position. with javascript off the list still reads as an ordinary numbered list. kind `footnotes` | `bibliography` (free token; these two get distinct styling). optional. id (required; on each `sem-reference`): the citation target — the global `id`. href (optional; on each `sem-reference`): external location (`data-href` in the class form). cite (optional; on each `sem-reference`): short citation label (`rfc 6749`). semtext tag element")], [Type.atom("hint"), Type.bitstring("A numbered list of sources the document cites.")], [Type.atom("href"), Type.bitstring("/reference/sem-references/")], [Type.atom("id"), Type.bitstring("header-search-o-86")], [Type.atom("index"), Type.integer(86n)], [Type.atom("key"), Type.bitstring("search-sem-references")], [Type.atom("title"), Type.bitstring("sem-references")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-requirement a requirement statement with a status and priority. you write the requirement as the content and set kind, status and priority as attributes. machines read it as one requirement record; readers see a labelled statement. kind one of `functional`, `non-functional`, `constraint` — the requirement class, drawn into the label chrome. status one of `draft`, `approved`, `implemented` — lifecycle token, drawn as a status chip (display-only). priority free token (e.g. `high`); drawn into the status chip when present. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A requirement statement with a status and priority.")], [Type.atom("href"), Type.bitstring("/reference/sem-requirement/")], [Type.atom("id"), Type.bitstring("header-search-o-87")], [Type.atom("index"), Type.integer(87n)], [Type.atom("key"), Type.bitstring("search-sem-requirement")], [Type.atom("title"), Type.bitstring("sem-requirement")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-reveal a question the reader clicks to reveal the answer. you write the question as the summary and the answer as the body. it is a plain details box, so it works with javascript off. use it for explanation — a sem-fact is for claims. summary optional label for the closed state. default: the leading body text (max 60 chars, cut at the last word boundary, trailing punctuation dropped) acts as summary when absent. open boolean attr — starts **revealed** (no control; the body is live immediately; the host carries `data-revealed`). collapsed boolean attr — accepted, no-op. hidden is the default. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A question the reader clicks to reveal the answer.")], [Type.atom("href"), Type.bitstring("/reference/sem-reveal/")], [Type.atom("id"), Type.bitstring("header-search-o-88")], [Type.atom("index"), Type.integer(88n)], [Type.atom("key"), Type.bitstring("search-sem-reveal")], [Type.atom("title"), Type.bitstring("sem-reveal")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-rubric a scoring rubric container: criteria against levels. you author the grid inside as a plain table or row prose — the container does not force a shape. set max-score and the chrome shows the scale. max-score the scale ceiling (minimum 0); drawn into the label chrome as a chip when present. kind per the global attribute catalog (conventions.md §2) id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A scoring rubric container: criteria against levels.")], [Type.atom("href"), Type.bitstring("/reference/sem-rubric/")], [Type.atom("id"), Type.bitstring("header-search-o-89")], [Type.atom("index"), Type.integer(89n)], [Type.atom("key"), Type.bitstring("search-sem-rubric")], [Type.atom("title"), Type.bitstring("sem-rubric")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-runbook an operational runbook: preconditions, procedure and references in one container. you author the parts inside with the elements you already use; the container adds the chrome and a label. it reads as a document and extracts as one runbook record. kind optional qualifier drawn into the label chrome (display-only sugar). audience `any` — per the global catalog (`sem-audiences`); the runbook itself does no audience gating, the document profiles do. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("An operational runbook: preconditions, procedure and references in one container.")], [Type.atom("href"), Type.bitstring("/reference/sem-runbook/")], [Type.atom("id"), Type.bitstring("header-search-o-90")], [Type.atom("index"), Type.integer(90n)], [Type.atom("key"), Type.bitstring("search-sem-runbook")], [Type.atom("title"), Type.bitstring("sem-runbook")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-site-tree a site or file tree written as nested node elements. you nest bare node children with a path and optional label and kind. the same engine that reads sem-file-tree renders it, so both notations share one model. label per the global attribute catalog (conventions.md §2) mode node semtext tag element")], [Type.atom("hint"), Type.bitstring("A site or file tree written as nested node elements.")], [Type.atom("href"), Type.bitstring("/reference/sem-site-tree/")], [Type.atom("id"), Type.bitstring("header-search-o-91")], [Type.atom("index"), Type.integer(91n)], [Type.atom("key"), Type.bitstring("search-sem-site-tree")], [Type.atom("title"), Type.bitstring("sem-site-tree")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-source lets the reader flip between a section as it renders and the markup behind it. you put ordinary semtext inside. the reader sees the rendered result, then the exact source that produced it. made for documents that teach the vocabulary. view-as `html` (default) | `source`. the initial mode. mutable presentation: the toggle rewrites `data-view-as` at runtime (the authored bare attribute is left alone), and extraction ignores it (spec/extraction.md §5c). label (optional): a short caption rendered in the chrome. id per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("Lets the reader flip between a section as it renders and the markup behind it.")], [Type.atom("href"), Type.bitstring("/reference/sem-source/")], [Type.atom("id"), Type.bitstring("header-search-o-92")], [Type.atom("index"), Type.integer(92n)], [Type.atom("key"), Type.bitstring("search-sem-source")], [Type.atom("title"), Type.bitstring("sem-source")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-step one step in a procedure. you write the instruction as the text and set status to done, current, todo, or blocked. its place in the page is its order in the procedure. sem-step semtext tag element")], [Type.atom("hint"), Type.bitstring("One step in a procedure.")], [Type.atom("href"), Type.bitstring("/reference/sem-step/")], [Type.atom("id"), Type.bitstring("header-search-o-93")], [Type.atom("index"), Type.integer(93n)], [Type.atom("key"), Type.bitstring("search-sem-step")], [Type.atom("title"), Type.bitstring("sem-step")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-summary a summary container: the short version of what follows. everything you put inside is the record. the container labels it as a summary so skimmers and machines both know what it is. kind optional qualifier drawn into the label chrome (display-only sugar). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A summary container: the short version of what follows.")], [Type.atom("href"), Type.bitstring("/reference/sem-summary/")], [Type.atom("id"), Type.bitstring("header-search-o-94")], [Type.atom("index"), Type.integer(94n)], [Type.atom("key"), Type.bitstring("search-sem-summary")], [Type.atom("title"), Type.bitstring("sem-summary")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-table a table the reader can sort and filter — the table you write is the data. you write a normal html table. sorting and filtering only change what the reader sees; the markup stays the contract, so machines always read the same rows you wrote. data-value (optional, on `<td>`): the sort key for that cell when the visible text is not the key (`15 min` vs `900`). two numeric keys compare numerically; anything else compares as text, locale-aware. controls (optional): one of the comma flags `sort`, `filter`; unknown flags are ignored. sticky (boolean, optional): the header row sticks to the top of the scroll container. opting in also caps the element at `max-height: 24rem` so a long table scrolls inside itself — the stick needs an internal scroll container to engage, and without it a page-level table never gains one and the header would scroll away like any other row. css only — works with scripts off. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) audience per the global attribute catalog (conventions.md §2) table semtext tag element")], [Type.atom("hint"), Type.bitstring("A table the reader can sort and filter — the table you write is the data.")], [Type.atom("href"), Type.bitstring("/reference/sem-table/")], [Type.atom("id"), Type.bitstring("header-search-o-95")], [Type.atom("index"), Type.integer(95n)], [Type.atom("key"), Type.bitstring("search-sem-table")], [Type.atom("title"), Type.bitstring("sem-table")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-tag-attr one attribute row inside a sem-tag-def: name, type, required flag, default and description. the child of sem-tag-def. you write the attribute's name and type, add the required flag when it must be present, and the description text is what readers see in that row. semtext tag element")], [Type.atom("hint"), Type.bitstring("One attribute row inside a sem-tag-def: name, type, required flag, default and description.")], [Type.atom("href"), Type.bitstring("/reference/sem-tag-attr/")], [Type.atom("id"), Type.bitstring("header-search-o-96")], [Type.atom("index"), Type.integer(96n)], [Type.atom("key"), Type.bitstring("search-sem-tag-attr")], [Type.atom("title"), Type.bitstring("sem-tag-attr")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-tag-def documents one tag's contract: its attributes, types, defaults and child tags, as a card. the definition card for a markup tag. you write the tag name and one sem-tag-attr child per attribute; the page shows a tidy table and machines read the same fields back. the reference pages use it, so the vocabulary documents itself. tag (on `sem-tag-def`): required, string — the documented tag's name (backtick-free, strict tag shape). name (optional): string — human display name (\"note\") when it differs from the tag name. group (optional): free token — grouping label for reference indexes (`annotation`, `layout`, `data` …). children (optional): comma/space token list — the documented tag's child tags. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("Documents one tag's contract: its attributes, types, defaults and child tags, as a card.")], [Type.atom("href"), Type.bitstring("/reference/sem-tag-def/")], [Type.atom("id"), Type.bitstring("header-search-o-97")], [Type.atom("index"), Type.integer(97n)], [Type.atom("key"), Type.bitstring("search-sem-tag-def")], [Type.atom("title"), Type.bitstring("sem-tag-def")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-threat-model a threat-model container: assets, threats and mitigations. you author them inside as sections or list prose; the container adds the chrome, label and scope. it frames the analysis — it does not check it. kind optional methodology qualifier drawn into the label chrome (display-only sugar). scope free token naming the modelled boundary; drawn into the label chrome when present. id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A threat-model container: assets, threats and mitigations.")], [Type.atom("href"), Type.bitstring("/reference/sem-threat-model/")], [Type.atom("id"), Type.bitstring("header-search-o-98")], [Type.atom("index"), Type.integer(98n)], [Type.atom("key"), Type.bitstring("search-sem-threat-model")], [Type.atom("title"), Type.bitstring("sem-threat-model")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-tldr a summary block the reader can skim or skip. whatever you put inside is the whole record — the element adds nothing and hides nothing. it renders as a set-apart block so the gist is visible at a glance. semtext tag element")], [Type.atom("hint"), Type.bitstring("A summary block the reader can skim or skip.")], [Type.atom("href"), Type.bitstring("/reference/sem-tldr/")], [Type.atom("id"), Type.bitstring("header-search-o-99")], [Type.atom("index"), Type.integer(99n)], [Type.atom("key"), Type.bitstring("search-sem-tldr")], [Type.atom("title"), Type.bitstring("sem-tldr")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-tsg one troubleshooting entry: a symptom and its fix. you write the problem and the resolution inside; the entry stays ordinary readable text with javascript off. semtext tag element")], [Type.atom("hint"), Type.bitstring("One troubleshooting entry: a symptom and its fix.")], [Type.atom("href"), Type.bitstring("/reference/sem-tsg/")], [Type.atom("id"), Type.bitstring("header-search-o-100")], [Type.atom("index"), Type.integer(100n)], [Type.atom("key"), Type.bitstring("search-sem-tsg")], [Type.atom("title"), Type.bitstring("sem-tsg")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-tsgs a collection of troubleshooting entries. you wrap sem-tsg children in it. the collection is the record — the entries you wrote, in the order you wrote them. kind collection qualifier drawn into the label chrome (display-only sugar). id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext tag element")], [Type.atom("hint"), Type.bitstring("A collection of troubleshooting entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-tsgs/")], [Type.atom("id"), Type.bitstring("header-search-o-101")], [Type.atom("index"), Type.integer(101n)], [Type.atom("key"), Type.bitstring("search-sem-tsgs")], [Type.atom("title"), Type.bitstring("sem-tsgs")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-view one named perspective inside a sem-views tab set. the name attribute labels the tab; the content inside is that view of the subject. with javascript off every view shows, each under its name. semtext tag element")], [Type.atom("hint"), Type.bitstring("One named perspective inside a sem-views tab set.")], [Type.atom("href"), Type.bitstring("/reference/sem-view/")], [Type.atom("id"), Type.bitstring("header-search-o-102")], [Type.atom("index"), Type.integer(102n)], [Type.atom("key"), Type.bitstring("search-sem-view")], [Type.atom("title"), Type.bitstring("sem-view")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-views shows one subject several ways, with a tab bar to switch. you wrap sem-view children and name each one. readers switch by click, keyboard, or link. the content is never moved or rewritten — only which view shows changes. name required, unique within the container, human label. active boolean marker on the initially-visible view; **if no view carries it, the first view is active**. the shown view is tracked at runtime in `data-active` (the component mirrors an authored `active` there, then moves it on every switch); the authored attribute is never rewritten. id required **for enhancement, not only for deep links** — the handler selects `.sem-views[id]`, so a container without an id never upgrades and stays stacked (the js-off form) even with script running. also the deep-link head (`#deploy/argocd`); `kind`, `tags` global. semtext tag element")], [Type.atom("hint"), Type.bitstring("Shows one subject several ways, with a tab bar to switch.")], [Type.atom("href"), Type.bitstring("/reference/sem-views/")], [Type.atom("id"), Type.bitstring("header-search-o-103")], [Type.atom("index"), Type.integer(103n)], [Type.atom("key"), Type.bitstring("search-sem-views")], [Type.atom("title"), Type.bitstring("sem-views")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("sem-workflow an ordered workflow whose steps carry verification. you write one sem-step per step, like a procedure, plus a duration for the whole run. each step can carry a gate and check, and an if-no that says what to do when the check fails. label per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) id per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) duration sem-step semtext tag element")], [Type.atom("hint"), Type.bitstring("An ordered workflow whose steps carry verification.")], [Type.atom("href"), Type.bitstring("/reference/sem-workflow/")], [Type.atom("id"), Type.bitstring("header-search-o-104")], [Type.atom("index"), Type.integer(104n)], [Type.atom("key"), Type.bitstring("search-sem-workflow")], [Type.atom("title"), Type.bitstring("sem-workflow")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-annotate visitor comment threads embedded in the page, backed by the annotate service. the embed renders the cached threads snapshot; it is the one embed of the family with a live anonymous read. visitors pin comments on the page and the embed shows them in place. site the annotate site slug; query parameter on the live read; optional for a snapshot-only embed. page the page path the threads belong to; query parameter on the live read (the snapshot's `page` field should match); optional for a snapshot-only embed. endpoint the annotate api **base** (e.g. `https://annotate-srv.therobotlives.com/api/v1`); the element resolves the threads collection `<endpoint>/threads?site=<site>&page=<page>` — the path + query shape this contract defines, the annotate service owns the canonical shape. optional in snapshot mode. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("Visitor comment threads embedded in the page, backed by the annotate service.")], [Type.atom("href"), Type.bitstring("/reference/semext-annotate/")], [Type.atom("id"), Type.bitstring("header-search-o-105")], [Type.atom("index"), Type.integer(105n)], [Type.atom("key"), Type.bitstring("search-semext-annotate")], [Type.atom("title"), Type.bitstring("semext-annotate")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-docptr a doc-pointer card rendered from a cached snapshot. the snapshot mirrors the pointer registry so a page can cite a source location durably — the card survives line drift until a cli refresh re-snapshots it. marker full marker string (e.g. `〚🔧:uuid〛`); selects the entry whose marker matches. uuid the pointer's full uuid; the strongest selector. token the pointer's 4-glyph token; selects by token match against the entry's marker. file narrows selection to entries whose `file_path` equals this path (filter, applied after the identifier selectors). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("A doc-pointer card rendered from a cached snapshot.")], [Type.atom("href"), Type.bitstring("/reference/semext-docptr/")], [Type.atom("id"), Type.bitstring("header-search-o-106")], [Type.atom("index"), Type.integer(106n)], [Type.atom("key"), Type.bitstring("search-semext-docptr")], [Type.atom("title"), Type.bitstring("semext-docptr")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-media-prompt an authored media-generation prompt with an output cache region. the record is the prompt you write; the output region beside it is filled by the refresh cli, not the element. the element never fetches and never generates — it only reports the region's state. model the generation model slug (rendered in the params line; echoed verbatim). aspect the aspect token (rendered in the params line). assets-dir the directory the refresh cli writes relative asset paths into (rendered in the params line). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("An authored media-generation prompt with an output cache region.")], [Type.atom("href"), Type.bitstring("/reference/semext-media-prompt/")], [Type.atom("id"), Type.bitstring("header-search-o-107")], [Type.atom("index"), Type.integer(107n)], [Type.atom("key"), Type.bitstring("search-semext-media-prompt")], [Type.atom("title"), Type.bitstring("semext-media-prompt")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-sig-logs a signoz log-line snapshot with a link to open the query. the log lines you author are the record; the chrome builds an open in signoz anchor from the query, range and env you set. the snapshot is refreshed by the cli, never fetched at read time. query the signoz query expression (deep-link parameter; echoed verbatim, never parsed). range the time range token (deep-link parameter). env the environment token (deep-link parameter). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("A SigNoz log-line snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-logs/")], [Type.atom("id"), Type.bitstring("header-search-o-108")], [Type.atom("index"), Type.integer(108n)], [Type.atom("key"), Type.bitstring("search-semext-sig-logs")], [Type.atom("title"), Type.bitstring("semext-sig-logs")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-sig-metrics a signoz metrics snapshot with a link to open the query. the metrics table you author is the record; the chrome adds the deep link from your query parameters. nothing is fetched when the page is read. query the signoz query expression (deep-link parameter; echoed verbatim, never parsed). range the time range token (deep-link parameter). env the environment token (deep-link parameter). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("A SigNoz metrics snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-metrics/")], [Type.atom("id"), Type.bitstring("header-search-o-109")], [Type.atom("index"), Type.integer(109n)], [Type.atom("key"), Type.bitstring("search-semext-sig-metrics")], [Type.atom("title"), Type.bitstring("semext-sig-metrics")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-sig-synthetic-monitor a signoz synthetic-monitor definition card with a deep link. you author the monitor's expected definition; the card mirrors it and links to signoz. running monitors is a service surface this element deliberately does not touch. monitor the monitor's identity (deep-link parameter; echoed verbatim, never parsed). env the environment token (deep-link parameter). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("A SigNoz synthetic-monitor definition card with a deep link.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-synthetic-monitor/")], [Type.atom("id"), Type.bitstring("header-search-o-110")], [Type.atom("index"), Type.integer(110n)], [Type.atom("key"), Type.bitstring("search-semext-sig-synthetic-monitor")], [Type.atom("title"), Type.bitstring("semext-sig-synthetic-monitor")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-sig-traces a signoz trace-list snapshot with a link to open the query. the trace list you author is the record; the chrome adds the open in signoz anchor. the embed is cached and link-only — no client queries. query the signoz query expression (deep-link parameter; echoed verbatim, never parsed). range the time range token (deep-link parameter). env the environment token (deep-link parameter). id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("A SigNoz trace-list snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-traces/")], [Type.atom("id"), Type.bitstring("header-search-o-111")], [Type.atom("index"), Type.integer(111n)], [Type.atom("key"), Type.bitstring("search-semext-sig-traces")], [Type.atom("title"), Type.bitstring("semext-sig-traces")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-styleguide-theme one theme's token cards rendered from a cached snapshot. the card shows the theme name, key color swatches and a type sample, plus a link to preview the theme css at the src you set. refresh is the cli lane. theme the theme slug this card presents; matches the snapshot's theme slug when one is authored. src the theme css url for the preview link; must pass the shared source policy (src/data/load.ts: http(s) only, rendered as an href — never fetched by this element). omitting it omits the link. id per the global attribute catalog (conventions.md §2) kind per the global attribute catalog (conventions.md §2) tags per the global attribute catalog (conventions.md §2) semtext extension embed element")], [Type.atom("hint"), Type.bitstring("One theme's token cards rendered from a cached snapshot.")], [Type.atom("href"), Type.bitstring("/reference/semext-styleguide-theme/")], [Type.atom("id"), Type.bitstring("header-search-o-112")], [Type.atom("index"), Type.integer(112n)], [Type.atom("key"), Type.bitstring("search-semext-styleguide-theme")], [Type.atom("title"), Type.bitstring("semext-styleguide-theme")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText extensions")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-extensions")], [Type.atom("haystack"), Type.bitstring("semext-styleguide-themes the collection wrapper for theme token cards. it renders a summary line over its semext-styleguide-theme children. the snapshots are refreshed by the cli, not at read time. semext-styleguide-theme semtext extension embed element")], [Type.atom("hint"), Type.bitstring("The collection wrapper for theme token cards.")], [Type.atom("href"), Type.bitstring("/reference/semext-styleguide-themes/")], [Type.atom("id"), Type.bitstring("header-search-o-113")], [Type.atom("index"), Type.integer(113n)], [Type.atom("key"), Type.bitstring("search-semext-styleguide-themes")], [Type.atom("title"), Type.bitstring("semext-styleguide-themes")]]), Type.map([[Type.atom("group"), Type.bitstring("SemText elements")], [Type.atom("group_id"), Type.bitstring("header-search-g-semtext-elements")], [Type.atom("haystack"), Type.bitstring("statement the claim side of a fact — what is asserted. you write the statement as the child of a sem-fact. its pair, the conclusion, draws the takeaway. plain text, no attributes needed. semtext tag element")], [Type.atom("hint"), Type.bitstring("The claim side of a fact — what is asserted.")], [Type.atom("href"), Type.bitstring("/reference/statement/")], [Type.atom("id"), Type.bitstring("header-search-o-114")], [Type.atom("index"), Type.integer(114n)], [Type.atom("key"), Type.bitstring("search-statement")], [Type.atom("title"), Type.bitstring("statement")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext view doc.sem.html cli command read a document — prints the whole document as plain text: every record with its id and attributes.")], [Type.atom("hint"), Type.bitstring("Read a document — prints the whole document as plain text: every record with its id and attributes.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-115")], [Type.atom("index"), Type.integer(115n)], [Type.atom("key"), Type.bitstring("search-cli-semtext view doc.sem.html")], [Type.atom("title"), Type.bitstring("semtext view doc.sem.html")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext outline doc.sem.html cli command the block tree — one line per block with its stable id in brackets; --depth trims, --json for machines.")], [Type.atom("hint"), Type.bitstring("The block tree — one line per block with its stable id in brackets; --depth trims, --json for machines.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-116")], [Type.atom("index"), Type.integer(116n)], [Type.atom("key"), Type.bitstring("search-cli-semtext outline doc.sem.html")], [Type.atom("title"), Type.bitstring("semtext outline doc.sem.html")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext filter doc.sem.html --type sem-fact cli command select records — matching blocks as normalised html; filter by type, attr, text, id, kind, tag, audience or selector.")], [Type.atom("hint"), Type.bitstring("Select records — matching blocks as normalised HTML; filter by type, attr, text, id, kind, tag, audience or selector.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-117")], [Type.atom("index"), Type.integer(117n)], [Type.atom("key"), Type.bitstring("search-cli-semtext filter doc.sem.html --type sem-fact")], [Type.atom("title"), Type.bitstring("semtext filter doc.sem.html --type sem-fact")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext expand doc.sem.html <id> cli command one block in full — the on-demand counterpart to a collapsed outline or filtered result.")], [Type.atom("hint"), Type.bitstring("One block in full — the on-demand counterpart to a collapsed outline or filtered result.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-118")], [Type.atom("index"), Type.integer(118n)], [Type.atom("key"), Type.bitstring("search-cli-semtext expand doc.sem.html <id>")], [Type.atom("title"), Type.bitstring("semtext expand doc.sem.html <id>")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext format doc.sem.html --text cli command normalise a document — rewrites it in normal form; --text plain text, --json machine-readable.")], [Type.atom("hint"), Type.bitstring("Normalise a document — rewrites it in normal form; --text plain text, --json machine-readable.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-119")], [Type.atom("index"), Type.integer(119n)], [Type.atom("key"), Type.bitstring("search-cli-semtext format doc.sem.html --text")], [Type.atom("title"), Type.bitstring("semtext format doc.sem.html --text")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext tui doc.sem.html cli command interactive terminal ui — j/k move, enter expands, / searches, r shows raw source.")], [Type.atom("hint"), Type.bitstring("Interactive terminal UI — j/k move, Enter expands, / searches, r shows raw source.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-120")], [Type.atom("index"), Type.integer(120n)], [Type.atom("key"), Type.bitstring("search-cli-semtext tui doc.sem.html")], [Type.atom("title"), Type.bitstring("semtext tui doc.sem.html")]]), Type.map([[Type.atom("group"), Type.bitstring("CLI commands")], [Type.atom("group_id"), Type.bitstring("header-search-g-cli-commands")], [Type.atom("haystack"), Type.bitstring("semtext-validate doc.sem.html cli command check a document — validates against the spec schema per line; exits 0 when clean.")], [Type.atom("hint"), Type.bitstring("Check a document — validates against the spec schema per line; exits 0 when clean.")], [Type.atom("href"), Type.bitstring("/docs/#cli-commands")], [Type.atom("id"), Type.bitstring("header-search-o-121")], [Type.atom("index"), Type.integer(121n)], [Type.atom("key"), Type.bitstring("search-cli-semtext-validate doc.sem.html")], [Type.atom("title"), Type.bitstring("semtext-validate doc.sem.html")]])])], [Type.atom("index_count"), Type.integer(122n)], [Type.atom("open"), Type.atom("false")], [Type.atom("query"), Type.bitstring("")], [Type.atom("rows"), Type.list([])], [Type.atom("shown"), Type.bitstring("")]])]])]])], [Type.bitstring("layout"), Type.map([[Type.atom("module"), Type.atom("Elixir.SemtextWeb.Hologram.Layouts.SiteLayout")], [Type.atom("struct"), Type.map([[Type.atom("__struct__"), Type.atom("Elixir.Hologram.Component")], [Type.atom("emitted_context"), Type.map([])], [Type.atom("next_action"), Type.atom("nil")], [Type.atom("next_command"), Type.atom("nil")], [Type.atom("next_page"), Type.atom("nil")], [Type.atom("state"), Type.map([])]])]])], [Type.bitstring("page"), Type.map([[Type.atom("module"), Type.atom("Elixir.SemtextWeb.Hologram.Pages.ReferenceElementPage")], [Type.atom("struct"), Type.map([[Type.atom("__struct__"), Type.atom("Elixir.Hologram.Component")], [Type.atom("emitted_context"), Type.map([[Type.tuple([Type.atom("Elixir.Hologram.Runtime"), Type.atom("csrf_token")]), Type.bitstring("GldCCWxcKTxBCRtnSl0IMQxGE1saDBsir94c3jOV8lKQ81xha5AlyguW")], [Type.tuple([Type.atom("Elixir.Hologram.Runtime"), Type.atom("initial_page?")]), Type.atom("false")], [Type.tuple([Type.atom("Elixir.Hologram.Runtime"), Type.atom("instance_id")]), Type.bitstring("d3193be0-45e3-4844-a092-0100fc9fb2cd")], [Type.tuple([Type.atom("Elixir.Hologram.Runtime"), Type.atom("page_digest")]), Type.bitstring("9bdf10a7db32f1daaa23f484eadd8a7c")], [Type.tuple([Type.atom("Elixir.Hologram.Runtime"), Type.atom("page_mounted?")]), Type.atom("true")]])], [Type.atom("next_action"), Type.atom("nil")], [Type.atom("next_command"), Type.atom("nil")], [Type.atom("next_page"), Type.atom("nil")], [Type.atom("state"), Type.map([[Type.atom("bucket_label"), Type.bitstring("")], [Type.atom("children"), Type.list([])], [Type.atom("description"), Type.bitstring("The embed renders the cached threads snapshot; it is the one embed of the family with a live anonymous read. Visitors pin comments on the page and the embed shows them in place.")], [Type.atom("family_label"), Type.bitstring("SemText Extensions")], [Type.atom("family_pill"), Type.bitstring("SemText Extensions element")], [Type.atom("found"), Type.atom("true")], [Type.atom("gap_note"), Type.atom("false")], [Type.atom("group"), Type.atom("nil")], [Type.atom("groups"), Type.list([Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("")], [Type.atom("href"), Type.bitstring("/docs/")], [Type.atom("key"), Type.bitstring("cli")], [Type.atom("label"), Type.bitstring("CLI commands")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("")], [Type.atom("href"), Type.bitstring("/editor/")], [Type.atom("key"), Type.bitstring("editor")], [Type.atom("label"), Type.bitstring("Try the editor →")]])])], [Type.atom("title"), Type.bitstring("Guides")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("")], [Type.atom("href"), Type.bitstring("/reference/")], [Type.atom("key"), Type.bitstring("reference")], [Type.atom("label"), Type.bitstring("Tag reference")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("")], [Type.atom("href"), Type.bitstring("/reference/all")], [Type.atom("key"), Type.bitstring("reference-all")], [Type.atom("label"), Type.bitstring("All tags")]])])], [Type.atom("title"), Type.bitstring("Reference")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-enhanced-document the required root wrapper around a semtext document.")], [Type.atom("href"), Type.bitstring("/reference/sem-enhanced-document")], [Type.atom("key"), Type.bitstring("ref-sem-enhanced-document")], [Type.atom("label"), Type.bitstring("sem-enhanced-document")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-reader reading tools for a long document: an outline, a progress bar, and controls for text size and theme.")], [Type.atom("href"), Type.bitstring("/reference/sem-reader")], [Type.atom("key"), Type.bitstring("ref-sem-reader")], [Type.atom("label"), Type.bitstring("sem-reader")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-audiences names the reader groups a document knows about, so each reader sees the parts meant for them.")], [Type.atom("href"), Type.bitstring("/reference/sem-audiences")], [Type.atom("key"), Type.bitstring("ref-sem-audiences")], [Type.atom("label"), Type.bitstring("sem-audiences")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-profile names one reader group inside a sem-audiences block.")], [Type.atom("href"), Type.bitstring("/reference/sem-profile")], [Type.atom("key"), Type.bitstring("ref-sem-profile")], [Type.atom("label"), Type.bitstring("sem-profile")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent describes one ai agent inside the document: its name, a short bio, and its instructions.")], [Type.atom("href"), Type.bitstring("/reference/agent")], [Type.atom("key"), Type.bitstring("ref-agent")], [Type.atom("label"), Type.bitstring("agent")]])])], [Type.atom("title"), Type.bitstring("Document & structure")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-md a block written in markdown that the browser turns into html.")], [Type.atom("href"), Type.bitstring("/reference/sem-md")], [Type.atom("key"), Type.bitstring("ref-sem-md")], [Type.atom("label"), Type.bitstring("sem-md")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-note a callout: a short piece of prose set beside the main text.")], [Type.atom("href"), Type.bitstring("/reference/sem-note")], [Type.atom("key"), Type.bitstring("ref-sem-note")], [Type.atom("label"), Type.bitstring("sem-note")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-tldr a summary block the reader can skim or skip.")], [Type.atom("href"), Type.bitstring("/reference/sem-tldr")], [Type.atom("key"), Type.bitstring("ref-sem-tldr")], [Type.atom("label"), Type.bitstring("sem-tldr")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-code a code listing with a file name, a language, and marked lines.")], [Type.atom("href"), Type.bitstring("/reference/sem-code")], [Type.atom("key"), Type.bitstring("ref-sem-code")], [Type.atom("label"), Type.bitstring("sem-code")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-browser draws a browser-style window around a live semtext document.")], [Type.atom("href"), Type.bitstring("/reference/sem-browser")], [Type.atom("key"), Type.bitstring("ref-sem-browser")], [Type.atom("label"), Type.bitstring("sem-browser")]])])], [Type.atom("title"), Type.bitstring("Prose & code")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-details a group of passages whose key words can be hidden for recall practice.")], [Type.atom("href"), Type.bitstring("/reference/sem-details")], [Type.atom("key"), Type.bitstring("ref-sem-details")], [Type.atom("label"), Type.bitstring("sem-details")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-detail one passage of prose with parts that can be hidden for self-testing.")], [Type.atom("href"), Type.bitstring("/reference/sem-detail")], [Type.atom("key"), Type.bitstring("ref-sem-detail")], [Type.atom("label"), Type.bitstring("sem-detail")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("highlight prose with parts the reader can hide to test their recall.")], [Type.atom("href"), Type.bitstring("/reference/highlight")], [Type.atom("key"), Type.bitstring("ref-highlight")], [Type.atom("label"), Type.bitstring("highlight")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-reveal a question the reader clicks to reveal the answer.")], [Type.atom("href"), Type.bitstring("/reference/sem-reveal")], [Type.atom("key"), Type.bitstring("ref-sem-reveal")], [Type.atom("label"), Type.bitstring("sem-reveal")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-source lets the reader flip between a section as it renders and the markup behind it.")], [Type.atom("href"), Type.bitstring("/reference/sem-source")], [Type.atom("key"), Type.bitstring("ref-sem-source")], [Type.atom("label"), Type.bitstring("sem-source")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-views shows one subject several ways, with a tab bar to switch.")], [Type.atom("href"), Type.bitstring("/reference/sem-views")], [Type.atom("key"), Type.bitstring("ref-sem-views")], [Type.atom("label"), Type.bitstring("sem-views")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-view one named perspective inside a sem-views tab set.")], [Type.atom("href"), Type.bitstring("/reference/sem-view")], [Type.atom("key"), Type.bitstring("ref-sem-view")], [Type.atom("label"), Type.bitstring("sem-view")]])])], [Type.atom("title"), Type.bitstring("Disclosure & views")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-facts a group of facts the reader can flip through as cards, a quiz, or plain prose.")], [Type.atom("href"), Type.bitstring("/reference/sem-facts")], [Type.atom("key"), Type.bitstring("ref-sem-facts")], [Type.atom("label"), Type.bitstring("sem-facts")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-fact one fact: a statement, its conclusion, and optionally what would be wrong to believe.")], [Type.atom("href"), Type.bitstring("/reference/sem-fact")], [Type.atom("key"), Type.bitstring("ref-sem-fact")], [Type.atom("label"), Type.bitstring("sem-fact")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("statement the claim side of a fact — what is asserted.")], [Type.atom("href"), Type.bitstring("/reference/statement")], [Type.atom("key"), Type.bitstring("ref-statement")], [Type.atom("label"), Type.bitstring("statement")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("conclusion the takeaway side of a fact — what the statement means.")], [Type.atom("href"), Type.bitstring("/reference/conclusion")], [Type.atom("key"), Type.bitstring("ref-conclusion")], [Type.atom("label"), Type.bitstring("conclusion")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("incorrect-statement a wrong version of a fact, shown so readers can spot the error.")], [Type.atom("href"), Type.bitstring("/reference/incorrect-statement")], [Type.atom("key"), Type.bitstring("ref-incorrect-statement")], [Type.atom("label"), Type.bitstring("incorrect-statement")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-question a question with answer choices, for self-testing.")], [Type.atom("href"), Type.bitstring("/reference/sem-question")], [Type.atom("key"), Type.bitstring("ref-sem-question")], [Type.atom("label"), Type.bitstring("sem-question")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-option one answer choice in a question.")], [Type.atom("href"), Type.bitstring("/reference/sem-option")], [Type.atom("key"), Type.bitstring("ref-sem-option")], [Type.atom("label"), Type.bitstring("sem-option")]])])], [Type.atom("title"), Type.bitstring("Facts & recall")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-table a table the reader can sort and filter — the table you write is the data.")], [Type.atom("href"), Type.bitstring("/reference/sem-table")], [Type.atom("key"), Type.bitstring("ref-sem-table")], [Type.atom("label"), Type.bitstring("sem-table")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-site-tree a site or file tree written as nested node elements.")], [Type.atom("href"), Type.bitstring("/reference/sem-site-tree")], [Type.atom("key"), Type.bitstring("ref-sem-site-tree")], [Type.atom("label"), Type.bitstring("sem-site-tree")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-file-tree a file listing written as an indented tree inside a pre block.")], [Type.atom("href"), Type.bitstring("/reference/sem-file-tree")], [Type.atom("key"), Type.bitstring("ref-sem-file-tree")], [Type.atom("label"), Type.bitstring("sem-file-tree")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-data-visualizer the container that holds data sets, joins, and queries, and shows the results.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-visualizer")], [Type.atom("key"), Type.bitstring("ref-sem-data-visualizer")], [Type.atom("label"), Type.bitstring("sem-data-visualizer")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-data-source one named set of data inside a data visualizer.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-source")], [Type.atom("key"), Type.bitstring("ref-sem-data-source")], [Type.atom("label"), Type.bitstring("sem-data-source")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-data-join combines two named data sets on one shared column, like a database join.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-join")], [Type.atom("key"), Type.bitstring("ref-sem-data-join")], [Type.atom("label"), Type.bitstring("sem-data-join")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-data-query a question asked of a data set, written in a small, safe sql-like language.")], [Type.atom("href"), Type.bitstring("/reference/sem-data-query")], [Type.atom("key"), Type.bitstring("ref-sem-data-query")], [Type.atom("label"), Type.bitstring("sem-data-query")]])])], [Type.atom("title"), Type.bitstring("Data & tables")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-chronology a timeline: dated events shown in the order they happened.")], [Type.atom("href"), Type.bitstring("/reference/sem-chronology")], [Type.atom("key"), Type.bitstring("ref-sem-chronology")], [Type.atom("label"), Type.bitstring("sem-chronology")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-event one dated event on a timeline.")], [Type.atom("href"), Type.bitstring("/reference/sem-event")], [Type.atom("key"), Type.bitstring("ref-sem-event")], [Type.atom("label"), Type.bitstring("sem-event")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-procedure an ordered list of steps, each marked with where it stands.")], [Type.atom("href"), Type.bitstring("/reference/sem-procedure")], [Type.atom("key"), Type.bitstring("ref-sem-procedure")], [Type.atom("label"), Type.bitstring("sem-procedure")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-workflow an ordered workflow whose steps carry verification.")], [Type.atom("href"), Type.bitstring("/reference/sem-workflow")], [Type.atom("key"), Type.bitstring("ref-sem-workflow")], [Type.atom("label"), Type.bitstring("sem-workflow")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-step one step in a procedure.")], [Type.atom("href"), Type.bitstring("/reference/sem-step")], [Type.atom("key"), Type.bitstring("ref-sem-step")], [Type.atom("label"), Type.bitstring("sem-step")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-progress a progress bar for one number between 0 and 1.")], [Type.atom("href"), Type.bitstring("/reference/sem-progress")], [Type.atom("key"), Type.bitstring("ref-sem-progress")], [Type.atom("label"), Type.bitstring("sem-progress")]])])], [Type.atom("title"), Type.bitstring("Sequences & progress")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-howto a how-to guide container: a named guide with free contents.")], [Type.atom("href"), Type.bitstring("/reference/sem-howto")], [Type.atom("key"), Type.bitstring("ref-sem-howto")], [Type.atom("label"), Type.bitstring("sem-howto")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-kb a knowledge-base article: the content you write inside is the article.")], [Type.atom("href"), Type.bitstring("/reference/sem-kb")], [Type.atom("key"), Type.bitstring("ref-sem-kb")], [Type.atom("label"), Type.bitstring("sem-kb")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-runbook an operational runbook: preconditions, procedure and references in one container.")], [Type.atom("href"), Type.bitstring("/reference/sem-runbook")], [Type.atom("key"), Type.bitstring("ref-sem-runbook")], [Type.atom("label"), Type.bitstring("sem-runbook")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-faqs a collection of faq entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-faqs")], [Type.atom("key"), Type.bitstring("ref-sem-faqs")], [Type.atom("label"), Type.bitstring("sem-faqs")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-faq one faq entry: the asked question and its authored answer.")], [Type.atom("href"), Type.bitstring("/reference/sem-faq")], [Type.atom("key"), Type.bitstring("ref-sem-faq")], [Type.atom("label"), Type.bitstring("sem-faq")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-tsgs a collection of troubleshooting entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-tsgs")], [Type.atom("key"), Type.bitstring("ref-sem-tsgs")], [Type.atom("label"), Type.bitstring("sem-tsgs")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-tsg one troubleshooting entry: a symptom and its fix.")], [Type.atom("href"), Type.bitstring("/reference/sem-tsg")], [Type.atom("key"), Type.bitstring("ref-sem-tsg")], [Type.atom("label"), Type.bitstring("sem-tsg")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-changelogs the collection wrapper for changelog entries.")], [Type.atom("href"), Type.bitstring("/reference/sem-changelogs")], [Type.atom("key"), Type.bitstring("ref-sem-changelogs")], [Type.atom("label"), Type.bitstring("sem-changelogs")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-changelog a changelog: dated entries describing what changed.")], [Type.atom("href"), Type.bitstring("/reference/sem-changelog")], [Type.atom("key"), Type.bitstring("ref-sem-changelog")], [Type.atom("label"), Type.bitstring("sem-changelog")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-guard-rails a collection of guard rails.")], [Type.atom("href"), Type.bitstring("/reference/sem-guard-rails")], [Type.atom("key"), Type.bitstring("ref-sem-guard-rails")], [Type.atom("label"), Type.bitstring("sem-guard-rails")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-guard-rail one guard rail: a rule the reader should not cross.")], [Type.atom("href"), Type.bitstring("/reference/sem-guard-rail")], [Type.atom("key"), Type.bitstring("ref-sem-guard-rail")], [Type.atom("label"), Type.bitstring("sem-guard-rail")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-plan a plan container: the reasoning and the steps of a solution.")], [Type.atom("href"), Type.bitstring("/reference/sem-plan")], [Type.atom("key"), Type.bitstring("ref-sem-plan")], [Type.atom("label"), Type.bitstring("sem-plan")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-requirement a requirement statement with a status and priority.")], [Type.atom("href"), Type.bitstring("/reference/sem-requirement")], [Type.atom("key"), Type.bitstring("ref-sem-requirement")], [Type.atom("label"), Type.bitstring("sem-requirement")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-rubric a scoring rubric container: criteria against levels.")], [Type.atom("href"), Type.bitstring("/reference/sem-rubric")], [Type.atom("key"), Type.bitstring("ref-sem-rubric")], [Type.atom("label"), Type.bitstring("sem-rubric")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-eval an evaluation spec: the inputs, expected outputs and criteria in one container.")], [Type.atom("href"), Type.bitstring("/reference/sem-eval")], [Type.atom("key"), Type.bitstring("ref-sem-eval")], [Type.atom("label"), Type.bitstring("sem-eval")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-philosophy a principles container: the beliefs or rules a project runs on.")], [Type.atom("href"), Type.bitstring("/reference/sem-philosophy")], [Type.atom("key"), Type.bitstring("ref-sem-philosophy")], [Type.atom("label"), Type.bitstring("sem-philosophy")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-summary a summary container: the short version of what follows.")], [Type.atom("href"), Type.bitstring("/reference/sem-summary")], [Type.atom("key"), Type.bitstring("ref-sem-summary")], [Type.atom("label"), Type.bitstring("sem-summary")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-threat-model a threat-model container: assets, threats and mitigations.")], [Type.atom("href"), Type.bitstring("/reference/sem-threat-model")], [Type.atom("key"), Type.bitstring("ref-sem-threat-model")], [Type.atom("label"), Type.bitstring("sem-threat-model")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-mockup a ui mockup container holding text or html.")], [Type.atom("href"), Type.bitstring("/reference/sem-mockup")], [Type.atom("key"), Type.bitstring("ref-sem-mockup")], [Type.atom("label"), Type.bitstring("sem-mockup")]])])], [Type.atom("title"), Type.bitstring("Knowledge & documents")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("sem-properties a list of key–value pairs, shown as a tidy definition grid.")], [Type.atom("href"), Type.bitstring("/reference/sem-properties")], [Type.atom("key"), Type.bitstring("ref-sem-properties")], [Type.atom("label"), Type.bitstring("sem-properties")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-property one key–value pair in a properties grid.")], [Type.atom("href"), Type.bitstring("/reference/sem-property")], [Type.atom("key"), Type.bitstring("ref-sem-property")], [Type.atom("label"), Type.bitstring("sem-property")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-references a numbered list of sources the document cites.")], [Type.atom("href"), Type.bitstring("/reference/sem-references")], [Type.atom("key"), Type.bitstring("ref-sem-references")], [Type.atom("label"), Type.bitstring("sem-references")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-reference one numbered entry in a reference list.")], [Type.atom("href"), Type.bitstring("/reference/sem-reference")], [Type.atom("key"), Type.bitstring("ref-sem-reference")], [Type.atom("label"), Type.bitstring("sem-reference")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-tag-def documents one tag's contract: its attributes, types, defaults and child tags, as a card.")], [Type.atom("href"), Type.bitstring("/reference/sem-tag-def")], [Type.atom("key"), Type.bitstring("ref-sem-tag-def")], [Type.atom("label"), Type.bitstring("sem-tag-def")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-tag-attr one attribute row inside a sem-tag-def: name, type, required flag, default and description.")], [Type.atom("href"), Type.bitstring("/reference/sem-tag-attr")], [Type.atom("key"), Type.bitstring("ref-sem-tag-attr")], [Type.atom("label"), Type.bitstring("sem-tag-attr")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-api-call documents one api call's contract: method, endpoint, status and its parameters, as a card.")], [Type.atom("href"), Type.bitstring("/reference/sem-api-call")], [Type.atom("key"), Type.bitstring("ref-sem-api-call")], [Type.atom("label"), Type.bitstring("sem-api-call")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("sem-api-param one parameter row inside a sem-api-call: name, where it lives, type and description.")], [Type.atom("href"), Type.bitstring("/reference/sem-api-param")], [Type.atom("key"), Type.bitstring("ref-sem-api-param")], [Type.atom("label"), Type.bitstring("sem-api-param")]])])], [Type.atom("title"), Type.bitstring("Definitions & citations")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("semext-annotate visitor comment threads embedded in the page, backed by the annotate service.")], [Type.atom("href"), Type.bitstring("/reference/semext-annotate")], [Type.atom("key"), Type.bitstring("ref-semext-annotate")], [Type.atom("label"), Type.bitstring("semext-annotate")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-docptr a doc-pointer card rendered from a cached snapshot.")], [Type.atom("href"), Type.bitstring("/reference/semext-docptr")], [Type.atom("key"), Type.bitstring("ref-semext-docptr")], [Type.atom("label"), Type.bitstring("semext-docptr")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-media-prompt an authored media-generation prompt with an output cache region.")], [Type.atom("href"), Type.bitstring("/reference/semext-media-prompt")], [Type.atom("key"), Type.bitstring("ref-semext-media-prompt")], [Type.atom("label"), Type.bitstring("semext-media-prompt")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-sig-logs a signoz log-line snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-logs")], [Type.atom("key"), Type.bitstring("ref-semext-sig-logs")], [Type.atom("label"), Type.bitstring("semext-sig-logs")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-sig-metrics a signoz metrics snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-metrics")], [Type.atom("key"), Type.bitstring("ref-semext-sig-metrics")], [Type.atom("label"), Type.bitstring("semext-sig-metrics")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-sig-synthetic-monitor a signoz synthetic-monitor definition card with a deep link.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-synthetic-monitor")], [Type.atom("key"), Type.bitstring("ref-semext-sig-synthetic-monitor")], [Type.atom("label"), Type.bitstring("semext-sig-synthetic-monitor")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-sig-traces a signoz trace-list snapshot with a link to open the query.")], [Type.atom("href"), Type.bitstring("/reference/semext-sig-traces")], [Type.atom("key"), Type.bitstring("ref-semext-sig-traces")], [Type.atom("label"), Type.bitstring("semext-sig-traces")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-styleguide-theme one theme's token cards rendered from a cached snapshot.")], [Type.atom("href"), Type.bitstring("/reference/semext-styleguide-theme")], [Type.atom("key"), Type.bitstring("ref-semext-styleguide-theme")], [Type.atom("label"), Type.bitstring("semext-styleguide-theme")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("semext-styleguide-themes the collection wrapper for theme token cards.")], [Type.atom("href"), Type.bitstring("/reference/semext-styleguide-themes")], [Type.atom("key"), Type.bitstring("ref-semext-styleguide-themes")], [Type.atom("label"), Type.bitstring("semext-styleguide-themes")]])])], [Type.atom("title"), Type.bitstring("SemText extensions")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-acceptance-criteria a given/when/then criteria list for a ticket or story.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-acceptance-criteria")], [Type.atom("key"), Type.bitstring("ref-agent-kit-acceptance-criteria")], [Type.atom("label"), Type.bitstring("agent-kit-acceptance-criteria")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-agent-persona an agent persona card: who the agent is and how it behaves.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-agent-persona")], [Type.atom("key"), Type.bitstring("ref-agent-kit-agent-persona")], [Type.atom("label"), Type.bitstring("agent-kit-agent-persona")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-artifact a typed artifact card: code or text produced by the work.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-artifact")], [Type.atom("key"), Type.bitstring("ref-agent-kit-artifact")], [Type.atom("label"), Type.bitstring("agent-kit-artifact")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-asset a media asset card with a caption.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-asset")], [Type.atom("key"), Type.bitstring("ref-agent-kit-asset")], [Type.atom("label"), Type.bitstring("agent-kit-asset")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-board a kanban-style board laid out over ticket references.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-board")], [Type.atom("key"), Type.bitstring("ref-agent-kit-board")], [Type.atom("label"), Type.bitstring("agent-kit-board")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-bug a bug ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-bug")], [Type.atom("key"), Type.bitstring("ref-agent-kit-bug")], [Type.atom("label"), Type.bitstring("agent-kit-bug")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-chatroom a chatroom transcript card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-chatroom")], [Type.atom("key"), Type.bitstring("ref-agent-kit-chatroom")], [Type.atom("label"), Type.bitstring("agent-kit-chatroom")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-cucumber a gherkin spec card: the feature source shown as written.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-cucumber")], [Type.atom("key"), Type.bitstring("ref-agent-kit-cucumber")], [Type.atom("label"), Type.bitstring("agent-kit-cucumber")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-custom-assert a list of custom assertions, each an expression and an expectation.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-custom-assert")], [Type.atom("key"), Type.bitstring("ref-agent-kit-custom-assert")], [Type.atom("label"), Type.bitstring("agent-kit-custom-assert")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-cypress a cypress spec card: the test source shown as written.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-cypress")], [Type.atom("key"), Type.bitstring("ref-agent-kit-cypress")], [Type.atom("label"), Type.bitstring("agent-kit-cypress")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-epic an epic ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-epic")], [Type.atom("key"), Type.bitstring("ref-agent-kit-epic")], [Type.atom("label"), Type.bitstring("agent-kit-epic")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-issue an issue ticket card with org, project and state.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-issue")], [Type.atom("key"), Type.bitstring("ref-agent-kit-issue")], [Type.atom("label"), Type.bitstring("agent-kit-issue")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-organization an organization reference card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-organization")], [Type.atom("key"), Type.bitstring("ref-agent-kit-organization")], [Type.atom("label"), Type.bitstring("agent-kit-organization")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-project a project reference card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-project")], [Type.atom("key"), Type.bitstring("ref-agent-kit-project")], [Type.atom("label"), Type.bitstring("agent-kit-project")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-review a review card: comments and a verdict.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-review")], [Type.atom("key"), Type.bitstring("ref-agent-kit-review")], [Type.atom("label"), Type.bitstring("agent-kit-review")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-sub-task a sub-task ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-sub-task")], [Type.atom("key"), Type.bitstring("ref-agent-kit-sub-task")], [Type.atom("label"), Type.bitstring("agent-kit-sub-task")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-task a task ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-task")], [Type.atom("key"), Type.bitstring("ref-agent-kit-task")], [Type.atom("label"), Type.bitstring("agent-kit-task")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-test-case a test-case card: steps and the expectation.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-test-case")], [Type.atom("key"), Type.bitstring("ref-agent-kit-test-case")], [Type.atom("label"), Type.bitstring("agent-kit-test-case")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-test-suite a test-suite card with per-branch rows.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-test-suite")], [Type.atom("key"), Type.bitstring("ref-agent-kit-test-suite")], [Type.atom("label"), Type.bitstring("agent-kit-test-suite")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-ticket-ref an inline reference to a ticket.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-ticket-ref")], [Type.atom("key"), Type.bitstring("ref-agent-kit-ticket-ref")], [Type.atom("label"), Type.bitstring("agent-kit-ticket-ref")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-user-persona a user persona card: who the product serves.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-user-persona")], [Type.atom("key"), Type.bitstring("ref-agent-kit-user-persona")], [Type.atom("label"), Type.bitstring("agent-kit-user-persona")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("agent-kit-user-story a user story ticket card.")], [Type.atom("href"), Type.bitstring("/reference/agent-kit-user-story")], [Type.atom("key"), Type.bitstring("ref-agent-kit-user-story")], [Type.atom("label"), Type.bitstring("agent-kit-user-story")]])])], [Type.atom("title"), Type.bitstring("Agent Kit elements")]]), Type.map([[Type.atom("items"), Type.list([Type.map([[Type.atom("data_ref"), Type.bitstring("npl-agent describes one ai agent: its name, type, and how it should behave.")], [Type.atom("href"), Type.bitstring("/reference/npl-agent")], [Type.atom("key"), Type.bitstring("ref-npl-agent")], [Type.atom("label"), Type.bitstring("npl-agent")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-artifact shows a piece of work an agent produced, like code or a report, with a title and notes.")], [Type.atom("href"), Type.bitstring("/reference/npl-artifact")], [Type.atom("key"), Type.bitstring("ref-npl-artifact")], [Type.atom("label"), Type.bitstring("npl-artifact")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-cot shows the steps of a chain of thought, folded up until the reader opens them.")], [Type.atom("href"), Type.bitstring("/reference/npl-cot")], [Type.atom("key"), Type.bitstring("ref-npl-cot")], [Type.atom("label"), Type.bitstring("npl-cot")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-critique shows a review of one thing from one point of view: strengths, weaknesses, and a verdict.")], [Type.atom("href"), Type.bitstring("/reference/npl-critique")], [Type.atom("key"), Type.bitstring("ref-npl-critique")], [Type.atom("label"), Type.bitstring("npl-critique")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-declaration shows which version of a rules document you are reading.")], [Type.atom("href"), Type.bitstring("/reference/npl-declaration")], [Type.atom("key"), Type.bitstring("ref-npl-declaration")], [Type.atom("label"), Type.bitstring("npl-declaration")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-directive marks a short instruction inside a sentence, so it stands out from the prose.")], [Type.atom("href"), Type.bitstring("/reference/npl-directive")], [Type.atom("key"), Type.bitstring("ref-npl-directive")], [Type.atom("label"), Type.bitstring("npl-directive")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-example a sample element that shows how npl-* elements are built.")], [Type.atom("href"), Type.bitstring("/reference/npl-example")], [Type.atom("key"), Type.bitstring("ref-npl-example")], [Type.atom("label"), Type.bitstring("npl-example")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-flag one setting a reader can switch, shown as a labelled row.")], [Type.atom("href"), Type.bitstring("/reference/npl-flag")], [Type.atom("key"), Type.bitstring("ref-npl-flag")], [Type.atom("label"), Type.bitstring("npl-flag")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-flags a group of settings shown as clickable rows.")], [Type.atom("href"), Type.bitstring("/reference/npl-flags")], [Type.atom("key"), Type.bitstring("ref-npl-flags")], [Type.atom("label"), Type.bitstring("npl-flags")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-hormones shows seven drive levels — like momentum, tension, and curiosity — as bars.")], [Type.atom("href"), Type.bitstring("/reference/npl-hormones")], [Type.atom("key"), Type.bitstring("ref-npl-hormones")], [Type.atom("label"), Type.bitstring("npl-hormones")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-intent shows what a piece of work is meant to achieve: the goal, the scope, and the expected outcomes.")], [Type.atom("href"), Type.bitstring("/reference/npl-intent")], [Type.atom("key"), Type.bitstring("ref-npl-intent")], [Type.atom("label"), Type.bitstring("npl-intent")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-mindread shows what one party thinks another party believes or feels.")], [Type.atom("href"), Type.bitstring("/reference/npl-mindread")], [Type.atom("key"), Type.bitstring("ref-npl-mindread")], [Type.atom("label"), Type.bitstring("npl-mindread")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-mode lists the thinking styles an agent uses, one chip per style.")], [Type.atom("href"), Type.bitstring("/reference/npl-mode")], [Type.atom("key"), Type.bitstring("ref-npl-mode")], [Type.atom("label"), Type.bitstring("npl-mode")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-mood shows a mood with an emoji, plus an optional note on its tone.")], [Type.atom("href"), Type.bitstring("/reference/npl-mood")], [Type.atom("key"), Type.bitstring("ref-npl-mood")], [Type.atom("label"), Type.bitstring("npl-mood")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-poa shows a plan as a decision tree, plus the reasons each path was weighed.")], [Type.atom("href"), Type.bitstring("/reference/npl-poa")], [Type.atom("key"), Type.bitstring("ref-npl-poa")], [Type.atom("label"), Type.bitstring("npl-poa")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-ref looks back at a finished turn: what went well, what to improve, and how it was checked.")], [Type.atom("href"), Type.bitstring("/reference/npl-ref")], [Type.atom("key"), Type.bitstring("ref-npl-ref")], [Type.atom("label"), Type.bitstring("npl-ref")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-rubric a scoring table: each row is a criterion with a weight and a score, plus a total.")], [Type.atom("href"), Type.bitstring("/reference/npl-rubric")], [Type.atom("key"), Type.bitstring("ref-npl-rubric")], [Type.atom("label"), Type.bitstring("npl-rubric")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-section a labelled section for any npl prompt block.")], [Type.atom("href"), Type.bitstring("/reference/npl-section")], [Type.atom("key"), Type.bitstring("ref-npl-section")], [Type.atom("label"), Type.bitstring("npl-section")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-thought a thought bubble: short related ideas grouped under one type.")], [Type.atom("href"), Type.bitstring("/reference/npl-thought")], [Type.atom("key"), Type.bitstring("ref-npl-thought")], [Type.atom("label"), Type.bitstring("npl-thought")]]), Type.map([[Type.atom("data_ref"), Type.bitstring("npl-vos shows a persona's inner state: id, ego, superego, and mood, before a reply.")], [Type.atom("href"), Type.bitstring("/reference/npl-vos")], [Type.atom("key"), Type.bitstring("ref-npl-vos")], [Type.atom("label"), Type.bitstring("npl-vos")]])])], [Type.atom("title"), Type.bitstring("NPL elements")]])])], [Type.atom("has_children"), Type.atom("false")], [Type.atom("has_examples"), Type.atom("true")], [Type.atom("is_sem_md"), Type.atom("false")], [Type.atom("missing"), Type.list([])], [Type.atom("name"), Type.bitstring("semext-annotate")], [Type.atom("no_options_note"), Type.bitstring("No options beyond the global attribute catalog are stated for this tag.")], [Type.atom("options_in"), Type.bitstring("")], [Type.atom("options_in_href"), Type.bitstring("")], [Type.atom("page_title"), Type.bitstring("<semext-annotate> — SemText reference")], [Type.atom("primary"), Type.map([[Type.atom("anchor"), Type.bitstring("primary")], [Type.atom("aria_label"), Type.bitstring("Authored semext-annotate example")], [Type.atom("chrome_label"), Type.bitstring("")], [Type.atom("code"), Type.bitstring("<semext-annotate\n id=\"page-comments\"\n site=\"semtext-demo\"\n page=\"/demo/semext.html\"\n org=\"noizu\"\n project=\"annotate\"\n key=\"semtext-demo:/demo/semext.html\"\n endpoint=\"https://annotate-srv.therobotlives.com/api/v1\"\n last-refreshed=\"2026-10-17T09:14:00Z\"\n status=\"fresh\"\n>\n <article class=\"semext-annotate-thread\" data-status=\"open\">\n <strong>Anchor moved?</strong> — tyna, 2026-10-17\n <p>tyna — the §3 anchor jumped after the last push.</p>\n </article>\n <script type=\"application/json\">\n { \"site\": \"semtext-demo\", \"page\": \"/demo/semext.html\", \"threads\": [] }\n </script>\n</semext-annotate>")], [Type.atom("copy_js"), Type.bitstring("navigator.clipboard.writeText(\"<semext-annotate\\n id=\\\"page-comments\\\"\\n site=\\\"semtext-demo\\\"\\n page=\\\"/demo/semext.html\\\"\\n org=\\\"noizu\\\"\\n project=\\\"annotate\\\"\\n key=\\\"semtext-demo:/demo/semext.html\\\"\\n endpoint=\\\"https://annotate-srv.therobotlives.com/api/v1\\\"\\n last-refreshed=\\\"2026-10-17T09:14:00Z\\\"\\n status=\\\"fresh\\\"\\n>\\n <article class=\\\"semext-annotate-thread\\\" data-status=\\\"open\\\">\\n <strong>Anchor moved?</strong> — tyna, 2026-10-17\\n <p>tyna — the §3 anchor jumped after the last push.</p>\\n </article>\\n <script type=\\\"application/json\\\">\\n { \\\"site\\\": \\\"semtext-demo\\\", \\\"page\\\": \\\"/demo/semext.html\\\", \\\"threads\\\": [] }\\n </script>\\n</semext-annotate>\")")], [Type.atom("filename"), Type.bitstring("semext-annotate.html")], [Type.atom("kind"), Type.atom("viewer")], [Type.atom("lines"), Type.list([Type.map([[Type.atom("n"), Type.integer(1n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring("<semext-annotate"), Type.bitstring("tok-type")])])]]), Type.map([[Type.atom("n"), Type.integer(2n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("i"), Type.bitstring("")]), Type.list([Type.bitstring("d"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"page-comments\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(3n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("i"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"semtext-demo\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(4n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("p"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("g"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"/demo/semext.html\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(5n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring("g"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"noizu\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(6n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("p"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("j"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("c"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"annotate\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(7n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("k"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("y"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"semtext-demo:/demo/semext.html\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(8n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("d"), Type.bitstring("")]), Type.list([Type.bitstring("p"), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("i"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"https://annotate-srv.therobotlives.com/api/v1\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(9n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("l"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("-"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("f"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("d"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"2026-10-17T09:14:00Z\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(10n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("u"), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("="), Type.bitstring("")]), Type.list([Type.bitstring("\"fresh\""), Type.bitstring("tok-str")])])]]), Type.map([[Type.atom("n"), Type.integer(11n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(">"), Type.bitstring("")])])]]), Type.map([[Type.atom("n"), Type.integer(12n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("<article class=\"semext-annotate-thread\" data-status=\"open\">"), Type.bitstring("tok-type")])])]]), Type.map([[Type.atom("n"), Type.integer(13n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("<strong>"), Type.bitstring("tok-type")]), Type.list([Type.bitstring("A"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("c"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("m"), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("v"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("d"), Type.bitstring("")]), Type.list([Type.bitstring("?"), Type.bitstring("")]), Type.list([Type.bitstring("</strong>"), Type.bitstring("tok-type")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("—"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("y"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring(","), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("2"), Type.bitstring("")]), Type.list([Type.bitstring("0"), Type.bitstring("")]), Type.list([Type.bitstring("2"), Type.bitstring("")]), Type.list([Type.bitstring("6"), Type.bitstring("")]), Type.list([Type.bitstring("-"), Type.bitstring("")]), Type.list([Type.bitstring("1"), Type.bitstring("")]), Type.list([Type.bitstring("0"), Type.bitstring("")]), Type.list([Type.bitstring("-"), Type.bitstring("")]), Type.list([Type.bitstring("1"), Type.bitstring("")]), Type.list([Type.bitstring("7"), Type.bitstring("")])])]]), Type.map([[Type.atom("n"), Type.integer(14n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("<p>"), Type.bitstring("tok-type")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("y"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("—"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("§"), Type.bitstring("")]), Type.list([Type.bitstring("3"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("n"), Type.bitstring("")]), Type.list([Type.bitstring("c"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("o"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("j"), Type.bitstring("")]), Type.list([Type.bitstring("u"), Type.bitstring("")]), Type.list([Type.bitstring("m"), Type.bitstring("")]), Type.list([Type.bitstring("p"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("d"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("f"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring("r"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("e"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("l"), Type.bitstring("")]), Type.list([Type.bitstring("a"), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("t"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("p"), Type.bitstring("")]), Type.list([Type.bitstring("u"), Type.bitstring("")]), Type.list([Type.bitstring("s"), Type.bitstring("")]), Type.list([Type.bitstring("h"), Type.bitstring("")]), Type.list([Type.bitstring("."), Type.bitstring("")]), Type.list([Type.bitstring("</p>"), Type.bitstring("tok-type")])])]]), Type.map([[Type.atom("n"), Type.integer(15n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("</article>"), Type.bitstring("tok-type")])])]]), Type.map([[Type.atom("n"), Type.integer(16n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("<script type=\"application/json\">"), Type.bitstring("tok-kw")])])]]), Type.map([[Type.atom("n"), Type.integer(17n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("{"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("\"site\""), Type.bitstring("tok-str")]), Type.list([Type.bitstring(":"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("\"semtext-demo\""), Type.bitstring("tok-str")]), Type.list([Type.bitstring(","), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("\"page\""), Type.bitstring("tok-str")]), Type.list([Type.bitstring(":"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("\"/demo/semext.html\""), Type.bitstring("tok-str")]), Type.list([Type.bitstring(","), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("\"threads\""), Type.bitstring("tok-str")]), Type.list([Type.bitstring(":"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("["), Type.bitstring("")]), Type.list([Type.bitstring("]"), Type.bitstring("")]), Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("}"), Type.bitstring("")])])]]), Type.map([[Type.atom("n"), Type.integer(18n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring(" "), Type.bitstring("")]), Type.list([Type.bitstring("</script>"), Type.bitstring("tok-kw")])])]]), Type.map([[Type.atom("n"), Type.integer(19n)], [Type.atom("toks"), Type.list([Type.list([Type.bitstring("</semext-annotate>"), Type.bitstring("tok-type")])])]])])], [Type.atom("render_note"), Type.bitstring("No shipped runtime for this element — the authored example renders as plain HTML.")], [Type.atom("renderable"), Type.atom("false")], [Type.atom("save_js"), Type.bitstring("var b=new Blob([\"<semext-annotate\\n id=\\\"page-comments\\\"\\n site=\\\"semtext-demo\\\"\\n page=\\\"/demo/semext.html\\\"\\n org=\\\"noizu\\\"\\n project=\\\"annotate\\\"\\n key=\\\"semtext-demo:/demo/semext.html\\\"\\n endpoint=\\\"https://annotate-srv.therobotlives.com/api/v1\\\"\\n last-refreshed=\\\"2026-10-17T09:14:00Z\\\"\\n status=\\\"fresh\\\"\\n>\\n <article class=\\\"semext-annotate-thread\\\" data-status=\\\"open\\\">\\n <strong>Anchor moved?</strong> — tyna, 2026-10-17\\n <p>tyna — the §3 anchor jumped after the last push.</p>\\n </article>\\n <script type=\\\"application/json\\\">\\n { \\\"site\\\": \\\"semtext-demo\\\", \\\"page\\\": \\\"/demo/semext.html\\\", \\\"threads\\\": [] }\\n </script>\\n</semext-annotate>\"],{type:\"text/html;charset=utf-8\"}),u=URL.createObjectURL(b),a=document.createElement(\"a\");a.href=u;a.download=\"semext-annotate.html\";document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(u)")], [Type.atom("spec_json"), Type.bitstring("{\"classForm\":false,\"files\":[],\"html\":\"<semext-annotate\\n id=\\\"page-comments\\\"\\n site=\\\"semtext-demo\\\"\\n page=\\\"/demo/semext.html\\\"\\n org=\\\"noizu\\\"\\n project=\\\"annotate\\\"\\n key=\\\"semtext-demo:/demo/semext.html\\\"\\n endpoint=\\\"https://annotate-srv.therobotlives.com/api/v1\\\"\\n last-refreshed=\\\"2026-10-17T09:14:00Z\\\"\\n status=\\\"fresh\\\"\\n>\\n <article class=\\\"semext-annotate-thread\\\" data-status=\\\"open\\\">\\n <strong>Anchor moved?</strong> — tyna, 2026-10-17\\n <p>tyna — the §3 anchor jumped after the last push.</p>\\n </article>\\n <script type=\\\"application/json\\\">\\n { \\\"site\\\": \\\"semtext-demo\\\", \\\"page\\\": \\\"/demo/semext.html\\\", \\\"threads\\\": [] }\\n </script>\\n</semext-annotate>\",\"lazy\":false,\"renderable\":false,\"themeCss\":[\"/semtext/themes/_vocabulary.css\",\"/semtext/themes/minimal-tech-light.css\"],\"wire\":true}")]])], [Type.atom("promptlingo_href"), Type.bitstring("")], [Type.atom("slug"), Type.bitstring("semext-annotate")], [Type.atom("source_ref"), Type.bitstring("spec/schema/semext/annotate.md")], [Type.atom("summary"), Type.bitstring("Visitor comment threads embedded in the page, backed by the annotate service.")], [Type.atom("tag_attrs"), Type.list([Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("the annotate site slug; query parameter on the live read; optional for a snapshot-only embed.")], [Type.atom("name"), Type.bitstring("site")], [Type.atom("required"), Type.atom("false")], [Type.atom("type"), Type.bitstring("string")]]), Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("the page path the threads belong to; query parameter on the live read (the snapshot's `page` field should match); optional for a snapshot-only embed.")], [Type.atom("name"), Type.bitstring("page")], [Type.atom("required"), Type.atom("false")], [Type.atom("type"), Type.bitstring("string")]]), Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("the annotate API **base** (e.g. `https://annotate-srv.therobotlives.com/api/v1`); the element resolves the threads collection `<endpoint>/threads?site=<site>&page=<page>` — the path + query shape THIS contract defines, the annotate service owns the canonical shape. Optional in snapshot mode.")], [Type.atom("name"), Type.bitstring("endpoint")], [Type.atom("required"), Type.atom("false")], [Type.atom("type"), Type.bitstring("string")]]), Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("per the global attribute catalog (conventions.md §2)")], [Type.atom("name"), Type.bitstring("id")], [Type.atom("required"), Type.atom("nil")], [Type.atom("type"), Type.atom("nil")]]), Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("per the global attribute catalog (conventions.md §2)")], [Type.atom("name"), Type.bitstring("kind")], [Type.atom("required"), Type.atom("nil")], [Type.atom("type"), Type.atom("nil")]]), Type.map([[Type.atom("allowed"), Type.atom("nil")], [Type.atom("default"), Type.atom("nil")], [Type.atom("description"), Type.bitstring("per the global attribute catalog (conventions.md §2)")], [Type.atom("name"), Type.bitstring("tags")], [Type.atom("required"), Type.atom("nil")], [Type.atom("type"), Type.atom("nil")]])])], [Type.atom("variants"), Type.list([])]])]])]])], [Type.bitstring("site_user_menu"), Type.map([[Type.atom("module"), Type.atom("Elixir.SemtextWeb.Hologram.Components.Auth.UserMenu")], [Type.atom("struct"), Type.map([[Type.atom("__struct__"), Type.atom("Elixir.Hologram.Component")], [Type.atom("emitted_context"), Type.map([])], [Type.atom("next_action"), Type.atom("nil")], [Type.atom("next_command"), Type.atom("nil")], [Type.atom("next_page"), Type.atom("nil")], [Type.atom("state"), Type.map([[Type.atom("github_enabled"), Type.atom("false")], [Type.atom("user"), Type.atom("nil")]])]])]])]]), pageModule: Type.atom("Elixir.SemtextWeb.Hologram.Pages.ReferenceElementPage"), pageParams: Type.map([[Type.atom("element"), Type.bitstring("semext-annotate")]]), selfEchoes: Type.list([]), subReceiptAdds: Type.list([]), subReceiptDrops: Type.list([]) }; }; </script> <script async src="/hologram/runtime-9e0caaea744d61b6629645678b57ae6b.js"></script> <script async src="/hologram/page-9bdf10a7db32f1daaa23f484eadd8a7c.js"></script> </head> <body class="docs-bg min-h-screen antialiased"> <a class="skip-link" href="#main">Skip to docs</a> <header class="sticky top-0 z-40 border-b border-white/10 bg-slateink/85 backdrop-blur-md"> <div class="mx-auto flex h-16 max-w-docs items-center justify-between gap-4 px-4 sm:px-6"> <a href="/#main" class="flex items-center gap-2.5 font-mono text-sm font-semibold tracking-tight text-ink sm:text-base"> <span class="brand-mark" aria-hidden="true">∑</span> <span>Sem<span class="text-violet-soft">Text</span></span> </a> <nav aria-label="Primary" class="flex items-center gap-4 text-sm sm:gap-6"> <a href="/#try" class="hidden min-h-11 items-center font-mono text-ink-mute hover:text-ink sm:inline-flex">See it work</a> <a href="/reference/" class="hidden min-h-11 items-center font-mono text-ink-mute hover:text-ink sm:inline-flex">Reference</a> <a href="/spec/semtext.html" class="hidden min-h-11 items-center font-mono text-ink-mute hover:text-ink sm:inline-flex">Spec</a> <a href="/#start" class="hidden min-h-11 items-center font-mono text-ink-mute hover:text-ink sm:inline-flex">Get started</a> <div class="sem-search relative hidden sm:block"> <div class="sem-search-js relative"> <label for="header-search-input" class="sr-only">Search tags and CLI commands</label> <input id="header-search-input" type="text" role="combobox" autocomplete="off" aria-expanded="false" aria-controls="header-search-listbox" aria-autocomplete="list" placeholder="Search tags & CLI — press /" value class="w-44 rounded-md border border-white/15 bg-white/5 px-2.5 py-1.5 font-mono text-xs text-ink placeholder:text-ink-faint focus:w-56 focus:border-white/40 focus:outline-none md:w-56 md:focus:w-72" /> </div> </div> <div class="sg-user-menu"> </div> <a href="https://therobotlives.com" class="hidden min-h-11 items-center font-medium text-violet-soft underline-offset-4 hover:underline sm:inline-flex">The Robot Lives</a> <div class="relative sm:hidden"> <button type="button" data-sem-menu-toggle aria-expanded="false" aria-controls="header-menu-panel" aria-label="Open menu" class="inline-flex min-h-11 min-w-11 items-center justify-center rounded-md border border-white/15 font-mono text-ink hover:border-white/40"> <span aria-hidden="true">≡</span> </button> </div> </nav> </div> </header> <div class="mx-auto flex w-full max-w-docs gap-10 px-4 pb-24 pt-12 sm:px-6"> <aside class="hidden w-52 shrink-0 lg:block"> <nav aria-label="Docs" class="docs-nav sticky top-24 flex flex-col gap-7"> <div> <p class="g-nav-title">Guides</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/docs/" data-ref class="g-nav-link"> CLI commands </a> </li> <li> <a href="/editor/" data-ref class="g-nav-link"> Try the editor → </a> </li> </ul> </div> <div> <p class="g-nav-title">Reference</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/" data-ref class="g-nav-link"> Tag reference </a> </li> <li> <a href="/reference/all" data-ref class="g-nav-link"> All tags </a> </li> </ul> </div> <div> <p class="g-nav-title">Document & structure</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-enhanced-document" data-ref="sem-enhanced-document the required root wrapper around a semtext document." class="g-nav-link"> sem-enhanced-document </a> </li> <li> <a href="/reference/sem-reader" data-ref="sem-reader reading tools for a long document: an outline, a progress bar, and controls for text size and theme." class="g-nav-link"> sem-reader </a> </li> <li> <a href="/reference/sem-audiences" data-ref="sem-audiences names the reader groups a document knows about, so each reader sees the parts meant for them." class="g-nav-link"> sem-audiences </a> </li> <li> <a href="/reference/sem-profile" data-ref="sem-profile names one reader group inside a sem-audiences block." class="g-nav-link"> sem-profile </a> </li> <li> <a href="/reference/agent" data-ref="agent describes one ai agent inside the document: its name, a short bio, and its instructions." class="g-nav-link"> agent </a> </li> </ul> </div> <div> <p class="g-nav-title">Prose & code</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-md" data-ref="sem-md a block written in markdown that the browser turns into html." class="g-nav-link"> sem-md </a> </li> <li> <a href="/reference/sem-note" data-ref="sem-note a callout: a short piece of prose set beside the main text." class="g-nav-link"> sem-note </a> </li> <li> <a href="/reference/sem-tldr" data-ref="sem-tldr a summary block the reader can skim or skip." class="g-nav-link"> sem-tldr </a> </li> <li> <a href="/reference/sem-code" data-ref="sem-code a code listing with a file name, a language, and marked lines." class="g-nav-link"> sem-code </a> </li> <li> <a href="/reference/sem-browser" data-ref="sem-browser draws a browser-style window around a live semtext document." class="g-nav-link"> sem-browser </a> </li> </ul> </div> <div> <p class="g-nav-title">Disclosure & views</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-details" data-ref="sem-details a group of passages whose key words can be hidden for recall practice." class="g-nav-link"> sem-details </a> </li> <li> <a href="/reference/sem-detail" data-ref="sem-detail one passage of prose with parts that can be hidden for self-testing." class="g-nav-link"> sem-detail </a> </li> <li> <a href="/reference/highlight" data-ref="highlight prose with parts the reader can hide to test their recall." class="g-nav-link"> highlight </a> </li> <li> <a href="/reference/sem-reveal" data-ref="sem-reveal a question the reader clicks to reveal the answer." class="g-nav-link"> sem-reveal </a> </li> <li> <a href="/reference/sem-source" data-ref="sem-source lets the reader flip between a section as it renders and the markup behind it." class="g-nav-link"> sem-source </a> </li> <li> <a href="/reference/sem-views" data-ref="sem-views shows one subject several ways, with a tab bar to switch." class="g-nav-link"> sem-views </a> </li> <li> <a href="/reference/sem-view" data-ref="sem-view one named perspective inside a sem-views tab set." class="g-nav-link"> sem-view </a> </li> </ul> </div> <div> <p class="g-nav-title">Facts & recall</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-facts" data-ref="sem-facts a group of facts the reader can flip through as cards, a quiz, or plain prose." class="g-nav-link"> sem-facts </a> </li> <li> <a href="/reference/sem-fact" data-ref="sem-fact one fact: a statement, its conclusion, and optionally what would be wrong to believe." class="g-nav-link"> sem-fact </a> </li> <li> <a href="/reference/statement" data-ref="statement the claim side of a fact — what is asserted." class="g-nav-link"> statement </a> </li> <li> <a href="/reference/conclusion" data-ref="conclusion the takeaway side of a fact — what the statement means." class="g-nav-link"> conclusion </a> </li> <li> <a href="/reference/incorrect-statement" data-ref="incorrect-statement a wrong version of a fact, shown so readers can spot the error." class="g-nav-link"> incorrect-statement </a> </li> <li> <a href="/reference/sem-question" data-ref="sem-question a question with answer choices, for self-testing." class="g-nav-link"> sem-question </a> </li> <li> <a href="/reference/sem-option" data-ref="sem-option one answer choice in a question." class="g-nav-link"> sem-option </a> </li> </ul> </div> <div> <p class="g-nav-title">Data & tables</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-table" data-ref="sem-table a table the reader can sort and filter — the table you write is the data." class="g-nav-link"> sem-table </a> </li> <li> <a href="/reference/sem-site-tree" data-ref="sem-site-tree a site or file tree written as nested node elements." class="g-nav-link"> sem-site-tree </a> </li> <li> <a href="/reference/sem-file-tree" data-ref="sem-file-tree a file listing written as an indented tree inside a pre block." class="g-nav-link"> sem-file-tree </a> </li> <li> <a href="/reference/sem-data-visualizer" data-ref="sem-data-visualizer the container that holds data sets, joins, and queries, and shows the results." class="g-nav-link"> sem-data-visualizer </a> </li> <li> <a href="/reference/sem-data-source" data-ref="sem-data-source one named set of data inside a data visualizer." class="g-nav-link"> sem-data-source </a> </li> <li> <a href="/reference/sem-data-join" data-ref="sem-data-join combines two named data sets on one shared column, like a database join." class="g-nav-link"> sem-data-join </a> </li> <li> <a href="/reference/sem-data-query" data-ref="sem-data-query a question asked of a data set, written in a small, safe sql-like language." class="g-nav-link"> sem-data-query </a> </li> </ul> </div> <div> <p class="g-nav-title">Sequences & progress</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-chronology" data-ref="sem-chronology a timeline: dated events shown in the order they happened." class="g-nav-link"> sem-chronology </a> </li> <li> <a href="/reference/sem-event" data-ref="sem-event one dated event on a timeline." class="g-nav-link"> sem-event </a> </li> <li> <a href="/reference/sem-procedure" data-ref="sem-procedure an ordered list of steps, each marked with where it stands." class="g-nav-link"> sem-procedure </a> </li> <li> <a href="/reference/sem-workflow" data-ref="sem-workflow an ordered workflow whose steps carry verification." class="g-nav-link"> sem-workflow </a> </li> <li> <a href="/reference/sem-step" data-ref="sem-step one step in a procedure." class="g-nav-link"> sem-step </a> </li> <li> <a href="/reference/sem-progress" data-ref="sem-progress a progress bar for one number between 0 and 1." class="g-nav-link"> sem-progress </a> </li> </ul> </div> <div> <p class="g-nav-title">Knowledge & documents</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-howto" data-ref="sem-howto a how-to guide container: a named guide with free contents." class="g-nav-link"> sem-howto </a> </li> <li> <a href="/reference/sem-kb" data-ref="sem-kb a knowledge-base article: the content you write inside is the article." class="g-nav-link"> sem-kb </a> </li> <li> <a href="/reference/sem-runbook" data-ref="sem-runbook an operational runbook: preconditions, procedure and references in one container." class="g-nav-link"> sem-runbook </a> </li> <li> <a href="/reference/sem-faqs" data-ref="sem-faqs a collection of faq entries." class="g-nav-link"> sem-faqs </a> </li> <li> <a href="/reference/sem-faq" data-ref="sem-faq one faq entry: the asked question and its authored answer." class="g-nav-link"> sem-faq </a> </li> <li> <a href="/reference/sem-tsgs" data-ref="sem-tsgs a collection of troubleshooting entries." class="g-nav-link"> sem-tsgs </a> </li> <li> <a href="/reference/sem-tsg" data-ref="sem-tsg one troubleshooting entry: a symptom and its fix." class="g-nav-link"> sem-tsg </a> </li> <li> <a href="/reference/sem-changelogs" data-ref="sem-changelogs the collection wrapper for changelog entries." class="g-nav-link"> sem-changelogs </a> </li> <li> <a href="/reference/sem-changelog" data-ref="sem-changelog a changelog: dated entries describing what changed." class="g-nav-link"> sem-changelog </a> </li> <li> <a href="/reference/sem-guard-rails" data-ref="sem-guard-rails a collection of guard rails." class="g-nav-link"> sem-guard-rails </a> </li> <li> <a href="/reference/sem-guard-rail" data-ref="sem-guard-rail one guard rail: a rule the reader should not cross." class="g-nav-link"> sem-guard-rail </a> </li> <li> <a href="/reference/sem-plan" data-ref="sem-plan a plan container: the reasoning and the steps of a solution." class="g-nav-link"> sem-plan </a> </li> <li> <a href="/reference/sem-requirement" data-ref="sem-requirement a requirement statement with a status and priority." class="g-nav-link"> sem-requirement </a> </li> <li> <a href="/reference/sem-rubric" data-ref="sem-rubric a scoring rubric container: criteria against levels." class="g-nav-link"> sem-rubric </a> </li> <li> <a href="/reference/sem-eval" data-ref="sem-eval an evaluation spec: the inputs, expected outputs and criteria in one container." class="g-nav-link"> sem-eval </a> </li> <li> <a href="/reference/sem-philosophy" data-ref="sem-philosophy a principles container: the beliefs or rules a project runs on." class="g-nav-link"> sem-philosophy </a> </li> <li> <a href="/reference/sem-summary" data-ref="sem-summary a summary container: the short version of what follows." class="g-nav-link"> sem-summary </a> </li> <li> <a href="/reference/sem-threat-model" data-ref="sem-threat-model a threat-model container: assets, threats and mitigations." class="g-nav-link"> sem-threat-model </a> </li> <li> <a href="/reference/sem-mockup" data-ref="sem-mockup a ui mockup container holding text or html." class="g-nav-link"> sem-mockup </a> </li> </ul> </div> <div> <p class="g-nav-title">Definitions & citations</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/sem-properties" data-ref="sem-properties a list of key–value pairs, shown as a tidy definition grid." class="g-nav-link"> sem-properties </a> </li> <li> <a href="/reference/sem-property" data-ref="sem-property one key–value pair in a properties grid." class="g-nav-link"> sem-property </a> </li> <li> <a href="/reference/sem-references" data-ref="sem-references a numbered list of sources the document cites." class="g-nav-link"> sem-references </a> </li> <li> <a href="/reference/sem-reference" data-ref="sem-reference one numbered entry in a reference list." class="g-nav-link"> sem-reference </a> </li> <li> <a href="/reference/sem-tag-def" data-ref="sem-tag-def documents one tag's contract: its attributes, types, defaults and child tags, as a card." class="g-nav-link"> sem-tag-def </a> </li> <li> <a href="/reference/sem-tag-attr" data-ref="sem-tag-attr one attribute row inside a sem-tag-def: name, type, required flag, default and description." class="g-nav-link"> sem-tag-attr </a> </li> <li> <a href="/reference/sem-api-call" data-ref="sem-api-call documents one api call's contract: method, endpoint, status and its parameters, as a card." class="g-nav-link"> sem-api-call </a> </li> <li> <a href="/reference/sem-api-param" data-ref="sem-api-param one parameter row inside a sem-api-call: name, where it lives, type and description." class="g-nav-link"> sem-api-param </a> </li> </ul> </div> <div> <p class="g-nav-title">SemText extensions</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/semext-annotate" data-ref="semext-annotate visitor comment threads embedded in the page, backed by the annotate service." aria-current="page" class="g-nav-link is-active"> semext-annotate </a> </li> <li> <a href="/reference/semext-docptr" data-ref="semext-docptr a doc-pointer card rendered from a cached snapshot." class="g-nav-link"> semext-docptr </a> </li> <li> <a href="/reference/semext-media-prompt" data-ref="semext-media-prompt an authored media-generation prompt with an output cache region." class="g-nav-link"> semext-media-prompt </a> </li> <li> <a href="/reference/semext-sig-logs" data-ref="semext-sig-logs a signoz log-line snapshot with a link to open the query." class="g-nav-link"> semext-sig-logs </a> </li> <li> <a href="/reference/semext-sig-metrics" data-ref="semext-sig-metrics a signoz metrics snapshot with a link to open the query." class="g-nav-link"> semext-sig-metrics </a> </li> <li> <a href="/reference/semext-sig-synthetic-monitor" data-ref="semext-sig-synthetic-monitor a signoz synthetic-monitor definition card with a deep link." class="g-nav-link"> semext-sig-synthetic-monitor </a> </li> <li> <a href="/reference/semext-sig-traces" data-ref="semext-sig-traces a signoz trace-list snapshot with a link to open the query." class="g-nav-link"> semext-sig-traces </a> </li> <li> <a href="/reference/semext-styleguide-theme" data-ref="semext-styleguide-theme one theme's token cards rendered from a cached snapshot." class="g-nav-link"> semext-styleguide-theme </a> </li> <li> <a href="/reference/semext-styleguide-themes" data-ref="semext-styleguide-themes the collection wrapper for theme token cards." class="g-nav-link"> semext-styleguide-themes </a> </li> </ul> </div> <div> <p class="g-nav-title">Agent Kit elements</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/agent-kit-acceptance-criteria" data-ref="agent-kit-acceptance-criteria a given/when/then criteria list for a ticket or story." class="g-nav-link"> agent-kit-acceptance-criteria </a> </li> <li> <a href="/reference/agent-kit-agent-persona" data-ref="agent-kit-agent-persona an agent persona card: who the agent is and how it behaves." class="g-nav-link"> agent-kit-agent-persona </a> </li> <li> <a href="/reference/agent-kit-artifact" data-ref="agent-kit-artifact a typed artifact card: code or text produced by the work." class="g-nav-link"> agent-kit-artifact </a> </li> <li> <a href="/reference/agent-kit-asset" data-ref="agent-kit-asset a media asset card with a caption." class="g-nav-link"> agent-kit-asset </a> </li> <li> <a href="/reference/agent-kit-board" data-ref="agent-kit-board a kanban-style board laid out over ticket references." class="g-nav-link"> agent-kit-board </a> </li> <li> <a href="/reference/agent-kit-bug" data-ref="agent-kit-bug a bug ticket card." class="g-nav-link"> agent-kit-bug </a> </li> <li> <a href="/reference/agent-kit-chatroom" data-ref="agent-kit-chatroom a chatroom transcript card." class="g-nav-link"> agent-kit-chatroom </a> </li> <li> <a href="/reference/agent-kit-cucumber" data-ref="agent-kit-cucumber a gherkin spec card: the feature source shown as written." class="g-nav-link"> agent-kit-cucumber </a> </li> <li> <a href="/reference/agent-kit-custom-assert" data-ref="agent-kit-custom-assert a list of custom assertions, each an expression and an expectation." class="g-nav-link"> agent-kit-custom-assert </a> </li> <li> <a href="/reference/agent-kit-cypress" data-ref="agent-kit-cypress a cypress spec card: the test source shown as written." class="g-nav-link"> agent-kit-cypress </a> </li> <li> <a href="/reference/agent-kit-epic" data-ref="agent-kit-epic an epic ticket card." class="g-nav-link"> agent-kit-epic </a> </li> <li> <a href="/reference/agent-kit-issue" data-ref="agent-kit-issue an issue ticket card with org, project and state." class="g-nav-link"> agent-kit-issue </a> </li> <li> <a href="/reference/agent-kit-organization" data-ref="agent-kit-organization an organization reference card." class="g-nav-link"> agent-kit-organization </a> </li> <li> <a href="/reference/agent-kit-project" data-ref="agent-kit-project a project reference card." class="g-nav-link"> agent-kit-project </a> </li> <li> <a href="/reference/agent-kit-review" data-ref="agent-kit-review a review card: comments and a verdict." class="g-nav-link"> agent-kit-review </a> </li> <li> <a href="/reference/agent-kit-sub-task" data-ref="agent-kit-sub-task a sub-task ticket card." class="g-nav-link"> agent-kit-sub-task </a> </li> <li> <a href="/reference/agent-kit-task" data-ref="agent-kit-task a task ticket card." class="g-nav-link"> agent-kit-task </a> </li> <li> <a href="/reference/agent-kit-test-case" data-ref="agent-kit-test-case a test-case card: steps and the expectation." class="g-nav-link"> agent-kit-test-case </a> </li> <li> <a href="/reference/agent-kit-test-suite" data-ref="agent-kit-test-suite a test-suite card with per-branch rows." class="g-nav-link"> agent-kit-test-suite </a> </li> <li> <a href="/reference/agent-kit-ticket-ref" data-ref="agent-kit-ticket-ref an inline reference to a ticket." class="g-nav-link"> agent-kit-ticket-ref </a> </li> <li> <a href="/reference/agent-kit-user-persona" data-ref="agent-kit-user-persona a user persona card: who the product serves." class="g-nav-link"> agent-kit-user-persona </a> </li> <li> <a href="/reference/agent-kit-user-story" data-ref="agent-kit-user-story a user story ticket card." class="g-nav-link"> agent-kit-user-story </a> </li> </ul> </div> <div> <p class="g-nav-title">NPL elements</p> <ul class="mt-1.5 flex flex-col" role="list"> <li> <a href="/reference/npl-agent" data-ref="npl-agent describes one ai agent: its name, type, and how it should behave." class="g-nav-link"> npl-agent </a> </li> <li> <a href="/reference/npl-artifact" data-ref="npl-artifact shows a piece of work an agent produced, like code or a report, with a title and notes." class="g-nav-link"> npl-artifact </a> </li> <li> <a href="/reference/npl-cot" data-ref="npl-cot shows the steps of a chain of thought, folded up until the reader opens them." class="g-nav-link"> npl-cot </a> </li> <li> <a href="/reference/npl-critique" data-ref="npl-critique shows a review of one thing from one point of view: strengths, weaknesses, and a verdict." class="g-nav-link"> npl-critique </a> </li> <li> <a href="/reference/npl-declaration" data-ref="npl-declaration shows which version of a rules document you are reading." class="g-nav-link"> npl-declaration </a> </li> <li> <a href="/reference/npl-directive" data-ref="npl-directive marks a short instruction inside a sentence, so it stands out from the prose." class="g-nav-link"> npl-directive </a> </li> <li> <a href="/reference/npl-example" data-ref="npl-example a sample element that shows how npl-* elements are built." class="g-nav-link"> npl-example </a> </li> <li> <a href="/reference/npl-flag" data-ref="npl-flag one setting a reader can switch, shown as a labelled row." class="g-nav-link"> npl-flag </a> </li> <li> <a href="/reference/npl-flags" data-ref="npl-flags a group of settings shown as clickable rows." class="g-nav-link"> npl-flags </a> </li> <li> <a href="/reference/npl-hormones" data-ref="npl-hormones shows seven drive levels — like momentum, tension, and curiosity — as bars." class="g-nav-link"> npl-hormones </a> </li> <li> <a href="/reference/npl-intent" data-ref="npl-intent shows what a piece of work is meant to achieve: the goal, the scope, and the expected outcomes." class="g-nav-link"> npl-intent </a> </li> <li> <a href="/reference/npl-mindread" data-ref="npl-mindread shows what one party thinks another party believes or feels." class="g-nav-link"> npl-mindread </a> </li> <li> <a href="/reference/npl-mode" data-ref="npl-mode lists the thinking styles an agent uses, one chip per style." class="g-nav-link"> npl-mode </a> </li> <li> <a href="/reference/npl-mood" data-ref="npl-mood shows a mood with an emoji, plus an optional note on its tone." class="g-nav-link"> npl-mood </a> </li> <li> <a href="/reference/npl-poa" data-ref="npl-poa shows a plan as a decision tree, plus the reasons each path was weighed." class="g-nav-link"> npl-poa </a> </li> <li> <a href="/reference/npl-ref" data-ref="npl-ref looks back at a finished turn: what went well, what to improve, and how it was checked." class="g-nav-link"> npl-ref </a> </li> <li> <a href="/reference/npl-rubric" data-ref="npl-rubric a scoring table: each row is a criterion with a weight and a score, plus a total." class="g-nav-link"> npl-rubric </a> </li> <li> <a href="/reference/npl-section" data-ref="npl-section a labelled section for any npl prompt block." class="g-nav-link"> npl-section </a> </li> <li> <a href="/reference/npl-thought" data-ref="npl-thought a thought bubble: short related ideas grouped under one type." class="g-nav-link"> npl-thought </a> </li> <li> <a href="/reference/npl-vos" data-ref="npl-vos shows a persona's inner state: id, ego, superego, and mood, before a reply." class="g-nav-link"> npl-vos </a> </li> </ul> </div> </nav> </aside> <div class="min-w-0 flex-1"> <main id="main"> <p class="g-eyebrow">Reference · SemText Extensions</p> <h1 class="mt-2 text-3xl font-semibold tracking-tight text-ink sm:text-4xl"> <code class="font-mono"><semext-annotate></code> </h1> <p class="mt-3 max-w-3xl text-xs font-normal uppercase tracking-wide text-ink-faint"> <span class="ref-family-pill">SemText Extensions element</span> </p> <p class="mt-2 max-w-3xl text-sm leading-6 text-ink-mute">The embed renders the cached threads snapshot; it is the one embed of the family with a live anonymous read. Visitors pin comments on the page and the embed shows them in place.</p> <div class="ref-attrs-wrap mt-5 max-w-3xl"> <sem-tag-def tag="semext-annotate"> Visitor comment threads embedded in the page, backed by the annotate service. The embed renders the cached threads snapshot; it is the one embed of the family with a live anonymous read. Visitors pin comments on the page and the embed shows them in place. <sem-tag-attr name="site" type="string">the annotate site slug; query parameter on the live read; optional for a snapshot-only embed.</sem-tag-attr> <sem-tag-attr name="page" type="string">the page path the threads belong to; query parameter on the live read (the snapshot's `page` field should match); optional for a snapshot-only embed.</sem-tag-attr> <sem-tag-attr name="endpoint" type="string">the annotate API **base** (e.g. `https://annotate-srv.therobotlives.com/api/v1`); the element resolves the threads collection `<endpoint>/threads?site=<site>&page=<page>` — the path + query shape THIS contract defines, the annotate service owns the canonical shape. Optional in snapshot mode.</sem-tag-attr> <sem-tag-attr name="id">per the global attribute catalog (conventions.md §2)</sem-tag-attr> <sem-tag-attr name="kind">per the global attribute catalog (conventions.md §2)</sem-tag-attr> <sem-tag-attr name="tags">per the global attribute catalog (conventions.md §2)</sem-tag-attr> </sem-tag-def> </div> <section aria-labelledby="example-h" class="mt-8"> <h2 id="example-h" class="g-nav-title">Example</h2> <div id="example-primary" class="mt-3"> <div id="example-primary" class="ref-example"> <figure class="code-window ref-viewer" aria-label="Authored semext-annotate example"> <div class="code-chrome"> <span class="dot" aria-hidden="true"></span> <span class="ref-chrome-title">semext-annotate.html</span> <span class="ref-actions"> <button type="button" class="ref-action" aria-label="Copy code" title="Copy"> Copy </button> <button type="button" class="ref-action" aria-label="Save semext-annotate.html" title="Save"> Save </button> </span> <span class="ref-view-pills" role="group" aria-label="View mode"> <button type="button" class="ref-view-pill" aria-pressed="true"> split </button> <button type="button" class="ref-view-pill" aria-pressed="false"> source </button> <button type="button" class="ref-view-pill" aria-pressed="false"> render </button> </span> </div> <div class="ref-view-body is-split"> <div class="ref-source-col"> <div class="ref-pane-tag">source</div> <div class="code-content"> <div class="code-line"> <span class="code-line-no">1</span> <span class="code-line-text"><span class="tok-type"><semext-annotate</span></span> </div> <div class="code-line"> <span class="code-line-no">2</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">i</span><span class="tok-plain">d</span><span class="tok-plain">=</span><span class="tok-str">"page-comments"</span></span> </div> <div class="code-line"> <span class="code-line-no">3</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">s</span><span class="tok-plain">i</span><span class="tok-plain">t</span><span class="tok-plain">e</span><span class="tok-plain">=</span><span class="tok-str">"semtext-demo"</span></span> </div> <div class="code-line"> <span class="code-line-no">4</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">p</span><span class="tok-plain">a</span><span class="tok-plain">g</span><span class="tok-plain">e</span><span class="tok-plain">=</span><span class="tok-str">"/demo/semext.html"</span></span> </div> <div class="code-line"> <span class="code-line-no">5</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">o</span><span class="tok-plain">r</span><span class="tok-plain">g</span><span class="tok-plain">=</span><span class="tok-str">"noizu"</span></span> </div> <div class="code-line"> <span class="code-line-no">6</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">p</span><span class="tok-plain">r</span><span class="tok-plain">o</span><span class="tok-plain">j</span><span class="tok-plain">e</span><span class="tok-plain">c</span><span class="tok-plain">t</span><span class="tok-plain">=</span><span class="tok-str">"annotate"</span></span> </div> <div class="code-line"> <span class="code-line-no">7</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">k</span><span class="tok-plain">e</span><span class="tok-plain">y</span><span class="tok-plain">=</span><span class="tok-str">"semtext-demo:/demo/semext.html"</span></span> </div> <div class="code-line"> <span class="code-line-no">8</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">e</span><span class="tok-plain">n</span><span class="tok-plain">d</span><span class="tok-plain">p</span><span class="tok-plain">o</span><span class="tok-plain">i</span><span class="tok-plain">n</span><span class="tok-plain">t</span><span class="tok-plain">=</span><span class="tok-str">"https://annotate-srv.therobotlives.com/api/v1"</span></span> </div> <div class="code-line"> <span class="code-line-no">9</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">l</span><span class="tok-plain">a</span><span class="tok-plain">s</span><span class="tok-plain">t</span><span class="tok-plain">-</span><span class="tok-plain">r</span><span class="tok-plain">e</span><span class="tok-plain">f</span><span class="tok-plain">r</span><span class="tok-plain">e</span><span class="tok-plain">s</span><span class="tok-plain">h</span><span class="tok-plain">e</span><span class="tok-plain">d</span><span class="tok-plain">=</span><span class="tok-str">"2026-10-17T09:14:00Z"</span></span> </div> <div class="code-line"> <span class="code-line-no">10</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">s</span><span class="tok-plain">t</span><span class="tok-plain">a</span><span class="tok-plain">t</span><span class="tok-plain">u</span><span class="tok-plain">s</span><span class="tok-plain">=</span><span class="tok-str">"fresh"</span></span> </div> <div class="code-line"> <span class="code-line-no">11</span> <span class="code-line-text"><span class="tok-plain">></span></span> </div> <div class="code-line"> <span class="code-line-no">12</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-type"><article class="semext-annotate-thread" data-status="open"></span></span> </div> <div class="code-line"> <span class="code-line-no">13</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-type"><strong></span><span class="tok-plain">A</span><span class="tok-plain">n</span><span class="tok-plain">c</span><span class="tok-plain">h</span><span class="tok-plain">o</span><span class="tok-plain">r</span><span class="tok-plain"> </span><span class="tok-plain">m</span><span class="tok-plain">o</span><span class="tok-plain">v</span><span class="tok-plain">e</span><span class="tok-plain">d</span><span class="tok-plain">?</span><span class="tok-type"></strong></span><span class="tok-plain"> </span><span class="tok-plain">—</span><span class="tok-plain"> </span><span class="tok-plain">t</span><span class="tok-plain">y</span><span class="tok-plain">n</span><span class="tok-plain">a</span><span class="tok-plain">,</span><span class="tok-plain"> </span><span class="tok-plain">2</span><span class="tok-plain">0</span><span class="tok-plain">2</span><span class="tok-plain">6</span><span class="tok-plain">-</span><span class="tok-plain">1</span><span class="tok-plain">0</span><span class="tok-plain">-</span><span class="tok-plain">1</span><span class="tok-plain">7</span></span> </div> <div class="code-line"> <span class="code-line-no">14</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-type"><p></span><span class="tok-plain">t</span><span class="tok-plain">y</span><span class="tok-plain">n</span><span class="tok-plain">a</span><span class="tok-plain"> </span><span class="tok-plain">—</span><span class="tok-plain"> </span><span class="tok-plain">t</span><span class="tok-plain">h</span><span class="tok-plain">e</span><span class="tok-plain"> </span><span class="tok-plain">§</span><span class="tok-plain">3</span><span class="tok-plain"> </span><span class="tok-plain">a</span><span class="tok-plain">n</span><span class="tok-plain">c</span><span class="tok-plain">h</span><span class="tok-plain">o</span><span class="tok-plain">r</span><span class="tok-plain"> </span><span class="tok-plain">j</span><span class="tok-plain">u</span><span class="tok-plain">m</span><span class="tok-plain">p</span><span class="tok-plain">e</span><span class="tok-plain">d</span><span class="tok-plain"> </span><span class="tok-plain">a</span><span class="tok-plain">f</span><span class="tok-plain">t</span><span class="tok-plain">e</span><span class="tok-plain">r</span><span class="tok-plain"> </span><span class="tok-plain">t</span><span class="tok-plain">h</span><span class="tok-plain">e</span><span class="tok-plain"> </span><span class="tok-plain">l</span><span class="tok-plain">a</span><span class="tok-plain">s</span><span class="tok-plain">t</span><span class="tok-plain"> </span><span class="tok-plain">p</span><span class="tok-plain">u</span><span class="tok-plain">s</span><span class="tok-plain">h</span><span class="tok-plain">.</span><span class="tok-type"></p></span></span> </div> <div class="code-line"> <span class="code-line-no">15</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-type"></article></span></span> </div> <div class="code-line"> <span class="code-line-no">16</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-kw"><script type="application/json"></span></span> </div> <div class="code-line"> <span class="code-line-no">17</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-plain">{</span><span class="tok-plain"> </span><span class="tok-str">"site"</span><span class="tok-plain">:</span><span class="tok-plain"> </span><span class="tok-str">"semtext-demo"</span><span class="tok-plain">,</span><span class="tok-plain"> </span><span class="tok-str">"page"</span><span class="tok-plain">:</span><span class="tok-plain"> </span><span class="tok-str">"/demo/semext.html"</span><span class="tok-plain">,</span><span class="tok-plain"> </span><span class="tok-str">"threads"</span><span class="tok-plain">:</span><span class="tok-plain"> </span><span class="tok-plain">[</span><span class="tok-plain">]</span><span class="tok-plain"> </span><span class="tok-plain">}</span></span> </div> <div class="code-line"> <span class="code-line-no">18</span> <span class="code-line-text"><span class="tok-plain"> </span><span class="tok-kw"></script></span></span> </div> <div class="code-line"> <span class="code-line-no">19</span> <span class="code-line-text"><span class="tok-type"></semext-annotate></span></span> </div> </div> </div> <div class="ref-render-col"> <div class="ref-pane-tag">render</div> <div class="ref-render-note-pane" data-sem-render-note>No shipped runtime for this element — the authored example renders as plain HTML.</div> </div> </div> </figure> </div> </div> </section> <p class="mt-4 text-xs text-ink-faint"> Source: <code class="font-mono">spec/schema/semext/annotate.md</code> </p> </main> </div> </div> <footer class="border-t border-white/10 bg-slateink"> <div class="mx-auto max-w-docs px-4 py-10 sm:px-6"> <noizu-footer-brand class="mt-0" align="start" style="text-align: left; --noizu-footer-brand-fg: var(--mute); --noizu-footer-brand-brand-color: var(--accent-soft); --noizu-footer-brand-size: 0.875rem"></noizu-footer-brand> <p class="mt-1 font-mono text-xs text-ink-faint"> © 2026 Noizu Labs, Inc. </p> <script type="module" src="https://cdn.derobot.is/tobor-kit/sha-0e5a20e04fefcb400f9f395795c438a7312f27ec/components/footer-brand/noizu-footer-brand.js"></script> </div> </footer> <script type="module" src="https://cdn.derobot.is/tobor-kit/latest/annotate.js"></script> <noizu-page-comments site="semtext" api-base="https://annotate-srv.therobotlives.com"></noizu-page-comments> </body> </html>