vantage-md 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -2645,7 +2645,12 @@ export declare function resolveLinks(html: string, options?: ResolveLinkOptions)
2645
2645
  * Every rule stated here should be one a checker can enforce or a renderer
2646
2646
  * actually cares about — if a line is neither, it does not belong.
2647
2647
  */
2648
- export declare const STYLE_GUIDE = "## Markdown style guide (for Vantage viewer)\n\nWhen writing or updating markdown documents that will be viewed in Vantage, follow these conventions:\n\n### Structure\n- Use headings (## and ###) to organize content — they become navigable outline anchors.\n- Keep paragraphs focused and concise. Break up dense text with subheadings, lists, or tables.\n\n### Links and cross-references\n- **Relative paths only**: Always link relative to the *current file's directory*:\n - Sibling in same folder: `[Other Doc](./other-doc.md)` or `[Other Doc](other-doc.md)`\n - Subdirectory: `[Design Doc](./design/auth.md)`\n - Parent / sibling folder: `[Overview](../overview.md)` or `[Spec](../specs/api.md)`\n- **Never use leading slashes**:\n - ❌ `[Doc](/docs/guide.md)` (breaks web routing and multi-repo scoping)\n - ✅ `[Doc](../docs/guide.md)` or `[Doc](./guide.md)`\n- **Never use absolute filesystem paths or URI schemes**:\n - ❌ `file:///workspace/docs/guide.md`, `/workspace/docs/guide.md`, `C:\\...`\n - ✅ `[Doc](./guide.md)` or `[Doc](../guide.md)`\n- **Always include the file extension**: Use `.md`, `.ts`, `.go`, etc. (e.g. `[Model](model.go)`).\n- **Line anchors and ranges**:\n - Link to specific lines: `[Handler](../server/api.go#L42)` or `[Range](../server/api.go#L42-L58)`\n - Same-file line anchor: `[See lines](#L10-L25)`\n - Vantage scrolls to and highlights the target lines.\n- **Section anchors**:\n - Same doc: `[Usage](#usage)`\n - Cross-doc: `[Architecture](../overview.md#system-architecture)`\n - Anchor slugs are lowercase, hyphenated, and punctuation-stripped.\n- **Backticks in links**: Place backticks inside the link label, not around the markdown link syntax:\n - ✅ `[`config.json`](./config.json)` or `[config.json](./config.json)`\n - ❌ ``[config.json](./config.json)``\n\n### Frontmatter (Metadata)\n- Include structured metadata at the very top of docs delimited by `---` (YAML) or `+++` (TOML). Vantage renders this as a metadata card:\n```yaml\n---\ntitle: \"Feature Specification\"\nauthor: \"Agent\"\ndate: 2026-08-15\nstatus: in-review # draft | in-review | accepted | deprecated\ntags: [architecture, backend, api]\nsummary: \"Brief description of the document purpose.\"\nvantage:\n status-chip: true # show `status` as a chip above the metadata card\n---\n```\n- **Nothing may sit above the opening delimiter** — not a blank line, not an editorial comment, not a `<!-- vantage: … -->` directive. Frontmatter is recognized only at the very first byte of the file (in Vantage, on GitHub, and in every other reader), so one line above it turns the whole block into body text: a horizontal rule followed by a heading made of the raw keys, with every field lost. `vantage-check` reports it as `frontmatter/not-at-top`.\n- **`vantage:` is Vantage's own reserved key.** It holds chrome that belongs to the file rather than to a section, it never shows up in the metadata card, and every other renderer ignores it. One key today: `status-chip`.\n- **Prefer `status-chip: true`**, which shows the document's own `status:` and therefore cannot disagree with it. A literal `status-chip: accepted` is accepted too, but it is a second value that goes stale on its own — `vantage-check` reports the disagreement.\n- The chip's vocabulary is `status`'s, exactly: `draft | in-review | accepted | deprecated`, lowercase. `Draft` renders no chip at all, silently.\n\n### Planning documents: `stage`, `next`, `depends-on`\n- **Vantage reads a repository's plans as a set.** A document whose frontmatter has `status` or `stage`, or that carries a `question` directive (or an `oq`, the name it replaces), is a *planning document*, and Vantage shows its state (status, stage, open questions) in a badge beside every link to it. So write each fact once, in the document it belongs to, and link to it everywhere else: a copied status or count is the one that goes stale.\n- Three top-level keys beside `status` hold the rest of a document's planning state. They are facts about the file, so they sit at the top level, never under `vantage:`:\n```yaml\n---\ntitle: \"Payload bootstrap\"\nstatus: in-review\nstage: DESIGN\nnext: \"Rule OQ-B2 — the install step waits on it\"\ndepends-on:\n - pypi-distribution.md\n - ../plans/rollout.md#OQ-R1\n---\n```\n- **`stage` is one word from the repository's own vocabulary**, the words `[planning.stages]` declares (below), spelled exactly as declared: matching is case-sensitive, so `Decided` is not `DECIDED`. `vantage-check` reports a word outside them as `planning/stage-vocabulary`.\n- **Frontmatter is the stage's one home.** Do not repeat the word in a prose `**Status:**` line: that is a second copy, and no tool can read or check it. Keep the prose line, where a document has one, for the date and the why.\n- **`next` is the next step, on one line of plain text.** A bare `OQ-` id in it links to this document's question of that id, so name the question rather than paraphrasing it.\n- **`depends-on` lists what the document waits on**: relative paths, resolved like links, each optionally ending in `#OQ-…` to name one question. A single path may stand on its own. A target that does not exist, lies outside the repository, or does not contain the id is an error (`planning/depends-on-missing`).\n- **Never a `priority` key.** A priority only means something relative to the others, so it lives in an ordered list, a roadmap, and not in each document.\n- **A roadmap is ordered links.** Every `roadmap.md` Vantage reads is a roadmap, in any directory, unless `[planning]` lists the roadmaps instead; one in a hidden directory, matched by `.vantageignore`, or ruled out by `include` or `exclude` is not read, and so is not a roadmap. Each entry is a link to a document or a question, then a one-clause reason for its place; the badge beside the link carries the rest, so never copy a status, a stage or a count into it. Prose beneath an entry holds only what has no other home, such as what would unblock it. A bare link to a document *routes* every question in it into the roadmap's order, and a link to one question's `#OQ-…` anchor routes that question; a link to any other heading routes nothing. A question is routed when any roadmap routes it, and with `planning/unrouted` turned on, `vantage-check` reports an open question no roadmap routes.\n- **`[planning]` in `.vantage.toml`** says which files are read, which of them are roadmaps, and what each stage word means. Every key is optional:\n```toml\n[planning]\n# roadmap = [\"roadmap.md\", \"docs/plans/roadmap.md\"] # absent: every roadmap.md\nexclude = [\"docs/gallery/**\"] # gitignore syntax; every .md is included by default\n\n[planning.stages] # each word maps to open | ready | built | done\nDESIGN = \"open\"\nDECIDED = \"ready\"\nBUILT = \"built\"\nSUPERSEDED = \"done\"\n```\n- **Each stage word maps to one of four roles**, which is what the word means to Vantage: `open` is still being decided, `ready` is decided and not built, `built` is built, and `done` is no longer a live proposal, so its questions leave every list of what needs a ruling. `vantage-check index` prints those lists.\n- **To ask a human for the rulings a piece of work needs, hand them a filtered planning page.** In the checkout their Vantage serves, name the work's documents from the root with a leading `/`: the design, its `-plan.md` if one exists, and what its `depends-on` names. Run `vantage-check index --filter 'path:/<design> path:/<plan> is:open'`, and give the human the `Planning page:` line: they press `/` on their planning page and paste it, or type the filter text into its Filter box. Once you have applied their answers, the same command lists what is still open.\n- **Never change `target`.** A `target = \"X.Y\"` line at the top of `.vantage.toml` names the oldest Vantage release the repository's readers use, and only a human edits it. A `vantage-check` older than the target refuses to run and names the release it needs: run that release, and leave the target as it is.\n\n### Mermaid diagrams\n- Use ```mermaid code blocks for flowcharts, sequence diagrams, and architecture diagrams. Vantage provides interactive zoom, pan, dark/light theme adaptation, and SVG export.\n- **Quote labels with special characters**: Always quote node labels containing parentheses, brackets, or colons to prevent syntax errors:\n```mermaid\nflowchart TD\n client[\"Client (React SPA)\"] -->|WebSocket| srv[\"Vantage Server (Go)\"]\n srv --> git[\"Git CLI (git diff)\"]\n```\n\n### Inline SVG (needs Vantage 0.8 or later)\n- **Inline `<svg>` is a capability, not notation: it needs Vantage 0.8 or later.** GitHub, every other renderer and Vantage before 0.8 drop the drawing and leave the words of its `<text>` elements behind as loose text, so keep `<text>` to short labels a reader can bear to see as loose words.\n- **Name the drawing with `aria-label` on the `<svg>`, never with `<title>` or `<desc>`.** Vantage 0.8 removes both, so they name nothing there, and every other reader prints them: Vantage before 0.8 as loose words, GitHub with the tags.\n- **Pair every inline drawing with a fallback block**: a `<!-- vantage: fallback -->` directive above the block that stands in for the drawing. Vantage 0.8 and later never show that block; every other reader drops the comment and shows it. Say what the drawing shows and that it needs Vantage 0.8 or later, and link a copy of it committed as a file where there is one (`[the drawing](diagram.svg)`). The block is a paragraph, a list, a quote, a code block, a table or a `<div>`; Vantage shows a raw `<img>`, `<figure>` or `<details>` there, so wrap one in a `<div>`.\n- **Wrap the drawing in a `<div>` on a line of its own, with no blank line anywhere inside it**, and give it a `width`, a `height` and a `viewBox`. Paint with `fill`/`stroke` set to `currentColor` or a hex color, so it reads in light and dark mode.\n```markdown\n<div>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"40\" viewBox=\"0 0 120 40\" role=\"img\" aria-label=\"Two boxes joined by an arrow\">\n <rect x=\"1\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n <path d=\"M45 20 H75 M68 14 L75 20 L68 26\" fill=\"none\" stroke=\"currentColor\"/>\n <rect x=\"79\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n</svg>\n</div>\n\n<!-- vantage: fallback -->\n\nTwo boxes joined by an arrow. This drawing needs Vantage 0.8 or later.\n```\n- **For a document read mostly on GitHub**, commit the drawing as a file and embed it with `![alt](diagram.svg)` instead, which every renderer shows.\n\n### Code blocks and diffs\n- Always tag fenced code blocks with language identifiers (`ts`, `go`, `python`, `bash`, `json`, `yaml`, `diff`, `sql`, etc.) for syntax highlighting.\n- For proposed code modifications, use ```diff blocks with `+` and `-` prefixes:\n```diff\n-const oldUrl = \"/api/v1\";\n+const newUrl = \"/api/v2\";\n```\n\n### Callouts and alerts\n- Use GitHub-style blockquote callouts for notes, tips, and warnings:\n> [!NOTE]\n> Background context or helpful explanation.\n\n> [!TIP]\n> Best practice advice or optimization suggestions.\n\n> [!IMPORTANT]\n> Key requirements or crucial information.\n\n> [!WARNING]\n> Urgent caution, breaking changes, or potential pitfalls.\n\n> [!CAUTION]\n> High-risk actions that could cause data loss or security issues.\n\n### Vantage directives (optional, and Vantage-only)\n\nVantage reads a few styling hints from ordinary HTML comments. Every other renderer — GitHub included — drops them, so a document has to read exactly the same without them: directives decorate, they never carry meaning. One goes on a line of its own, with a blank line after it, and applies to the block that follows:\n\n```markdown\n<!-- vantage: section tone=warning badge=stale -->\n\n## Migration path\n\nThe steps below predate the rewrite.\n```\n\n- **Four names to write**: `section` (the heading and everything under it), `block` (the one block after it), `question` (one Open Question, in any state; see Open questions below), `fallback` (the one block after it, which Vantage 0.8 and later never show; see Inline SVG above). `fallback` takes no keys, and withholds only a paragraph, a list, a quote, a code block, a table, a rule or a `<div>`, never a heading. A fifth, `oq`, is the name `question` replaces (below).\n- **The keys and values are a closed set**: `tone` = `note | tip | important | warning | caution | muted`; `emphasis` = `strong | normal | quiet`; `badge` = `draft | stale | blocked | done | wip`; `collapsed` = `true | false`. Name a *tone*, never a color — the theme decides what a warning looks like, in light mode, in dark mode, and in print.\n- **Use them sparingly.** One or two per document, on the sections that genuinely differ. A document where everything is toned says nothing, and a rainbow one is harder to read than a plain one.\n- **Anything outside those sets is silently ignored** — nothing breaks, and nothing styles either. Run `vantage-check` on the document: the `vantage/*` rules are the only thing that will ever tell you a directive did nothing.\n- **Always close the comment with `-->`.** Never `--!>`, and never leave it open: Markdown reads every line below an unclosed `<!--` as part of the comment, and the whole rest of the document vanishes from the page. For the same reason `-->` cannot appear *inside* a value — it ends the comment early and spills the remainder into the page as literal text.\n- **In a list, indent the directive inside the item**, with blank lines around it (below). At the start of a line between two items it ends the list and starts a second one, which changes the numbering and the spacing in every renderer — the one thing a directive must never do.\n- **A question's id is `OQ-` then an optional short uppercase prefix then digits** — `OQ-9`, `OQ-TP6`, `OQ-A03`. The prefix is what keeps ids distinct once one document references another's questions, so use one in both whenever they cross-reference. `vantage-check` reports anything outside that shape as `vantage/oq-id-format`, and the same id twice in one document as `vantage/oq-id-duplicate` — both are silent otherwise, because the id becomes the block's anchor and a refused or duplicated one simply goes nowhere.\n- **A reference is a link, or it is a lie.** An `OQ-` id, a `§N` section number and a filename all read like pointers, and written as bare prose none of them can be followed or checked — which is exactly why a stale one is never caught. Link the question to its anchor (`[OQ-4](#OQ-4)`, or the Decision Ledger once it is compacted), the section to its heading, the filename to the file. `vantage-check` reports all three (`ref/*`) as errors, and checks that the link points at the thing the reference names rather than merely at something. Writing a specimen rather than a reference? Put it in a fenced block, which the rules never read.\n\n### Open questions\nA question a document leaves for a human to rule on is an *Open Question*, written in a numbered list under a heading of its own.\n\n- **Write each question in its parts, never as one run-together paragraph.** Vantage lays a question out by these parts: the contents column and the planning page's card show its title as the question, and the card shows the leaning as the leaning and the Answer as the answer, so a part run into another one is read as neither. Each part is a block of its own, with a blank line before it:\n 1. **The title line**: the status marker, the id and the question itself in bold, saying what is being decided: `💬 **OQ-9: Where does a job go when it re-enters the queue?**`.\n 2. **The context**, in short paragraphs: only what a ruling needs. Background, history and cross-references belong in the document's own sections, linked from the question.\n 3. **The options as a list**, one item each, when there are options to choose between.\n 4. **`_Leaning:_` as a paragraph of its own**: which option, and why, in a sentence or two.\n 5. **`**Answer:**` as a paragraph of its own**, with the ruling below it once there is one.\n\n```markdown\n## Open Questions\n\n1. 💬 **OQ-9: Where does a job go when it re-enters the queue?**\n\n A job that fails its checks leaves the queue and comes back once it is fixed. What merged while it was out may change what it does.\n\n - **A — The back of the queue.** It waits its turn again.\n - **B — Its old place.** It skips ahead of what joined since.\n\n <!-- vantage: question id=OQ-9 leaning=\"A — the back of the queue: the fix might interact with what merged while it was out.\" -->\n\n _Leaning:_ A. The fix might interact with what merged while it was out.\n\n **Answer:**\n\n > _(empty — fill in when decided)_\n\n2. 🔒 **OQ-10: How large is the retry budget?**\n\n <!-- vantage: question id=OQ-10 -->\n\n Waits on the load test, so there is no leaning to state yet.\n```\n\n- **The marker is the question's state**: 💬 open (💬 🤷 when it is a matter of preference), 🔒 blocked on something upstream that has to happen first, ✅ answered. Review mode offers a one-click **Take this leaning** on an open question, and on nothing else.\n- **Every question gets a `question` directive**, `<!-- vantage: question id=OQ-9 leaning=\"…\" -->`, in every state, indented into its list item on a line of its own directly above the `_Leaning:_` paragraph, or above another of its paragraphs when it states no leaning. The directive is what makes it a question to Vantage: it gives the question its `#OQ-9` anchor, and Vantage's planning index (its model of a repository's plans) reads a question from nothing else, so without one nothing counts it, badges it or lists it as waiting. It goes when the question is compacted into the Decision Ledger, and not before.\n- **Changing a question's state changes its marker and nothing else.** Mark it 🔒 when it cannot be answered yet, and ✅ once it is decided; the directive stays as it is, its `leaning` included, which nothing offers to take once the question is not open.\n- **Every open question with a stated leaning restates it as the directive's `leaning`.** The convention's prose — the emoji, the `OQ-N` id, the `_Leaning:_` line, the fill-in `**Answer:**` — produces no button on its own, and writing it and stopping there is the most common way the button goes missing: the questions look complete, review mode is on, and there is nothing to click. `vantage-check` reports an open question with a `_Leaning:_` and no directive as an error (`vantage/oq-missing`). An open question with no leaning yet takes the directive without `leaning`, so the planning index still counts it; until it states one, its button files the literal text \"Take the stated leaning.\"\n- **A `leaning` restates the leaning; it is never \"yes\".** The one-click button in review mode files that text as a review comment, and the comment is all the agent reading it has — nobody remembers which button was clicked. `leaning=\"Yes\"` beside a two-branch question is a support ticket.\n- **Keep the text below the title short.** The planning page shows each question as a card that leads with the title and shows only the first few lines of the rest, so a question buried in a paragraph of background is one the reviewer has to dig for. `vantage-check` warns when a question's text, not counting its `_Leaning:_` paragraph and its `**Answer:**`, runs past 120 words (`planning/question-length`), and when a leaning shares a paragraph with other text (`vantage/question-layout`); a repository can raise the limit with `max-words`, or turn either rule off, under `[check.rules]`.\n- **Enumerate with a list, never inline.** A question's options, or any three steps or parts, go in a Markdown list, one item per line, rather than run together in one sentence as `(a) … (b) … (c)`, where a reader has to find where each one starts. `vantage-check` warns on a paragraph that runs three or more together (`prose/inline-list`).\n- **Write a question as a list item.** Outside a list, a question runs from the block its directive lands on through the blocks after it, up to the next heading (for a question written as a heading, the next one of its level or higher), the next rule or the next question, so whatever prose follows it before then is read as part of it. There the directive goes above the question's title, since every viewer reads the question's marker from the block it lands on: a directive below the bold title lands on the block after it, which carries no marker, so every viewer reads the question as open. `vantage-check` reports that as `vantage/question-name`.\n- **`oq` is the name `question` replaces.** Vantage keeps reading `<!-- vantage: oq id=OQ-9 leaning=\"…\" -->` as it always has, and `vantage-check` warns on it (`vantage/oq-deprecated`) with the `question` to write instead, keys unchanged. Vantage before 0.8 drops `question` whole, so a reader still on 0.7 gets no one-click answer and no anchor on a question written with it, and misreads nothing. So keep an `oq` on an open question unless you know every reader of the repository is on 0.8 or later. A repository whose readers are still on 0.7 says so with a `target` before 0.8, such as `target = \"0.7\"`: there an open question takes `oq`, new ones included, and `vantage-check` asks for `oq` rather than `question` on one. **Never put `oq` on a 🔒 or ✅ question**: every Vantage before 0.8 offers the one-click button on every `oq`, whatever its marker says, and on a question with no leaning it files the literal text \"Take the stated leaning.\" `vantage-check` reports that as an error (`vantage/question-name`).\n\n### Tables, task lists, and math\n- **Tables**: Use standard markdown tables for structured comparisons and schemas.\n- **Task lists**: Use `- [ ]` and `- [x]` for actionable checklists and status tracking.\n- **LaTeX Math**: Use `$$...$$` for *all* KaTeX math — display blocks (`$$` alone on its own lines) and inline alike (`$$E = mc^2$$` mid-sentence).\n - Single dollars are **not** math delimiters: `$HOME` and `$100` stay literal, so prose and shell snippets are safe to write as-is.\n";
2648
+ /**
2649
+ * Shared by the style guide and every review clipboard payload. These are
2650
+ * authoring instructions, not a claim that the checker measures agent latency.
2651
+ */
2652
+ export declare const ANSWER_PROCESSING_GUIDE = "### Record rulings before downstream work\n\nVantage derives planning state from saved Markdown. Pending review comments can show an answer waiting on the agent, but an agent reply does not settle the question in the document; replying first can make it need the human again.\n\n- **Record a clear ruling first**, in the checkout Vantage serves, before launching or continuing downstream work based on it. Do not wait for a larger rewrite, implementation, independent review, a full test suite, or a commit. A saved edit in another worktree does not update this interface.\n- **Finish a small, coherent document update.** Fold the ruling into the body it governs, then compact the settled question into a Decision Ledger row retaining its exact ID, decision, date, and a link to the governing section. Remove the question's directive only with that compaction; repair inbound Markdown links to its former anchor in the same update. Keep question-specific `depends-on` fragments when the ledger retains their IDs. Preserve the decision, not the discarded options and leaning.\n- **Keep unfinished work visible.** A decision is not evidence that it has been implemented. Update `status`, `stage`, `next`, and dependencies only as warranted; do not claim `accepted` while any question remains unanswered, including blocked ones, or use a `done` stage to hide work. A clarification request is not a ruling: reply without closing the question. For a partial answer, record the settled part and retain a narrower open question with its directive.\n- **Save each coherent update promptly**, rather than waiting for every document in the batch. The coordinator records rulings before handing those documents to a writer. Do not overwrite another writer's changes; if the served checkout is unavailable or the edit conflicts, report that obstacle explicitly instead of claiming the interface has updated.\n- **Then check the affected documents and deliver the comment responses.** Deliver responses for recorded rulings promptly, without waiting for downstream work or the rest of the batch. A response says what was recorded and what remains unbuilt. Do not claim the question is settled while its document is still open. Missing checker tooling does not justify postponing the saved update. Vantage cannot verify from prose alone that a ruling was incorporated correctly or enforce this ordering on an external agent.\n";
2653
+ export declare const STYLE_GUIDE = "## Markdown style guide (for Vantage viewer)\n\nWhen writing or updating markdown documents that will be viewed in Vantage, follow these conventions:\n\n### Structure\n- Use headings (## and ###) to organize content — they become navigable outline anchors.\n- Keep paragraphs focused and concise. Break up dense text with subheadings, lists, or tables.\n\n### Links and cross-references\n- **Relative paths only**: Always link relative to the *current file's directory*:\n - Sibling in same folder: `[Other Doc](./other-doc.md)` or `[Other Doc](other-doc.md)`\n - Subdirectory: `[Design Doc](./design/auth.md)`\n - Parent / sibling folder: `[Overview](../overview.md)` or `[Spec](../specs/api.md)`\n- **Never use leading slashes**:\n - ❌ `[Doc](/docs/guide.md)` (breaks web routing and multi-repo scoping)\n - ✅ `[Doc](../docs/guide.md)` or `[Doc](./guide.md)`\n- **Never use absolute filesystem paths or URI schemes**:\n - ❌ `file:///workspace/docs/guide.md`, `/workspace/docs/guide.md`, `C:\\...`\n - ✅ `[Doc](./guide.md)` or `[Doc](../guide.md)`\n- **Always include the file extension**: Use `.md`, `.ts`, `.go`, etc. (e.g. `[Model](model.go)`).\n- **Line anchors and ranges**:\n - Link to specific lines: `[Handler](../server/api.go#L42)` or `[Range](../server/api.go#L42-L58)`\n - Same-file line anchor: `[See lines](#L10-L25)`\n - Vantage scrolls to and highlights the target lines.\n- **Section anchors**:\n - Same doc: `[Usage](#usage)`\n - Cross-doc: `[Architecture](../overview.md#system-architecture)`\n - Anchor slugs are lowercase, hyphenated, and punctuation-stripped.\n- **Backticks in links**: Place backticks inside the link label, not around the markdown link syntax:\n - ✅ `[`config.json`](./config.json)` or `[config.json](./config.json)`\n - ❌ ``[config.json](./config.json)``\n\n### Frontmatter (Metadata)\n- Include structured metadata at the very top of docs delimited by `---` (YAML) or `+++` (TOML). Vantage renders this as a metadata card:\n```yaml\n---\ntitle: \"Feature Specification\"\nauthor: \"Agent\"\ndate: 2026-08-15\nstatus: in-review # draft | in-review | accepted | deprecated\ntags: [architecture, backend, api]\nsummary: \"Brief description of the document purpose.\"\nvantage:\n status-chip: true # show `status` as a chip above the metadata card\n---\n```\n- **Nothing may sit above the opening delimiter** — not a blank line, not an editorial comment, not a `<!-- vantage: … -->` directive. Frontmatter is recognized only at the very first byte of the file (in Vantage, on GitHub, and in every other reader), so one line above it turns the whole block into body text: a horizontal rule followed by a heading made of the raw keys, with every field lost. `vantage-check` reports it as `frontmatter/not-at-top`.\n- **`vantage:` is Vantage's own reserved key.** It holds chrome that belongs to the file rather than to a section, it never shows up in the metadata card, and every other renderer ignores it. One key today: `status-chip`.\n- **Prefer `status-chip: true`**, which shows the document's own `status:` and therefore cannot disagree with it. A literal `status-chip: accepted` is accepted too, but it is a second value that goes stale on its own — `vantage-check` reports the disagreement.\n- The chip's vocabulary is `status`'s, exactly: `draft | in-review | accepted | deprecated`, lowercase. `Draft` renders no chip at all, silently.\n\n### Planning documents: `stage`, `next`, `depends-on`\n- **Vantage reads a repository's plans as a set.** A document whose frontmatter has `status` or `stage`, or that carries a `question` directive (or an `oq`, the name it replaces), is a *planning document*, and Vantage shows its state (status, stage, open questions) in a badge beside every link to it. So write each fact once, in the document it belongs to, and link to it everywhere else: a copied status or count is the one that goes stale.\n- Three top-level keys beside `status` hold the rest of a document's planning state. They are facts about the file, so they sit at the top level, never under `vantage:`:\n```yaml\n---\ntitle: \"Payload bootstrap\"\nstatus: in-review\nstage: DESIGN\nnext: \"Rule OQ-B2 — the install step waits on it\"\ndepends-on:\n - pypi-distribution.md\n - ../plans/rollout.md#OQ-R1\n---\n```\n- **`stage` is one word from the repository's own vocabulary**, the words `[planning.stages]` declares (below), spelled exactly as declared: matching is case-sensitive, so `Decided` is not `DECIDED`. `vantage-check` reports a word outside them as `planning/stage-vocabulary`.\n- **Frontmatter is the stage's one home.** Do not repeat the word in a prose `**Status:**` line: that is a second copy, and no tool can read or check it. Keep the prose line, where a document has one, for the date and the why.\n- **`next` is the next step, on one line of plain text.** A bare `OQ-` id in it links to this document's question of that id, so name the question rather than paraphrasing it.\n- **`depends-on` lists what the document waits on**: relative paths, resolved like links, each optionally ending in `#OQ-…` to name one question. A single path may stand on its own. A target that does not exist, lies outside the repository, or does not contain the id is an error (`planning/depends-on-missing`).\n- **Never a `priority` key.** A priority only means something relative to the others, so it lives in an ordered list, a roadmap, and not in each document.\n- **A roadmap is ordered links.** Every `roadmap.md` Vantage reads is a roadmap, in any directory, unless `[planning]` lists the roadmaps instead; one in a hidden directory, matched by `.vantageignore`, or ruled out by `include` or `exclude` is not read, and so is not a roadmap. Each entry is a link to a document or a question, then a one-clause reason for its place; the badge beside the link carries the rest, so never copy a status, a stage or a count into it. Prose beneath an entry holds only what has no other home, such as what would unblock it. A bare link to a document *routes* every question in it into the roadmap's order, and a link to one question's `#OQ-…` anchor routes that question; a link to any other heading routes nothing. A question is routed when any roadmap routes it, and with `planning/unrouted` turned on, `vantage-check` reports an open question no roadmap routes.\n- **`[planning]` in `.vantage.toml`** says which files are read, which of them are roadmaps, and what each stage word means. Every key is optional:\n```toml\n[planning]\n# roadmap = [\"roadmap.md\", \"docs/plans/roadmap.md\"] # absent: every roadmap.md\nexclude = [\"docs/gallery/**\"] # gitignore syntax; every .md is included by default\n\n[planning.stages] # each word maps to open | ready | built | done\nDESIGN = \"open\"\nDECIDED = \"ready\"\nBUILT = \"built\"\nSUPERSEDED = \"done\"\n```\n- **Each stage word maps to one of four roles**, which is what the word means to Vantage: `open` is still being decided, `ready` is decided and not built, `built` is built, and `done` is no longer a live proposal, so its questions leave every list of what needs a ruling. `vantage-check index` prints those lists.\n- **To ask a human for the rulings a piece of work needs, hand them a filtered planning page.** In the checkout their Vantage serves, name the work's documents from the root with a leading `/`: the design, its `-plan.md` if one exists, and what its `depends-on` names. Run `vantage-check index --filter 'path:/<design> path:/<plan> is:open'`, and give the human the `Planning page:` line: they press `/` on their planning page and paste it, or type the filter text into its Filter box. Once you have applied their answers, the same command lists what is still open.\n- **Never change `target`.** A `target = \"X.Y\"` line at the top of `.vantage.toml` names the oldest Vantage release the repository's readers use, and only a human edits it. A `vantage-check` older than the target refuses to run and names the release it needs: run that release, and leave the target as it is.\n\n### Mermaid diagrams\n- Use ```mermaid code blocks for flowcharts, sequence diagrams, and architecture diagrams. Vantage provides interactive zoom, pan, dark/light theme adaptation, and SVG export.\n- **Quote labels with special characters**: Always quote node labels containing parentheses, brackets, or colons to prevent syntax errors:\n```mermaid\nflowchart TD\n client[\"Client (React SPA)\"] -->|WebSocket| srv[\"Vantage Server (Go)\"]\n srv --> git[\"Git CLI (git diff)\"]\n```\n\n### Inline SVG (needs Vantage 0.8 or later)\n- **Inline `<svg>` is a capability, not notation: it needs Vantage 0.8 or later.** GitHub, every other renderer and Vantage before 0.8 drop the drawing and leave the words of its `<text>` elements behind as loose text, so keep `<text>` to short labels a reader can bear to see as loose words.\n- **Name the drawing with `aria-label` on the `<svg>`, never with `<title>` or `<desc>`.** Vantage 0.8 removes both, so they name nothing there, and every other reader prints them: Vantage before 0.8 as loose words, GitHub with the tags.\n- **Pair every inline drawing with a fallback block**: a `<!-- vantage: fallback -->` directive above the block that stands in for the drawing. Vantage 0.8 and later never show that block; every other reader drops the comment and shows it. Say what the drawing shows and that it needs Vantage 0.8 or later, and link a copy of it committed as a file where there is one (`[the drawing](diagram.svg)`). The block is a paragraph, a list, a quote, a code block, a table or a `<div>`; Vantage shows a raw `<img>`, `<figure>` or `<details>` there, so wrap one in a `<div>`.\n- **Wrap the drawing in a `<div>` on a line of its own, with no blank line anywhere inside it**, and give it a `width`, a `height` and a `viewBox`. Paint with `fill`/`stroke` set to `currentColor` or a hex color, so it reads in light and dark mode.\n```markdown\n<div>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"40\" viewBox=\"0 0 120 40\" role=\"img\" aria-label=\"Two boxes joined by an arrow\">\n <rect x=\"1\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n <path d=\"M45 20 H75 M68 14 L75 20 L68 26\" fill=\"none\" stroke=\"currentColor\"/>\n <rect x=\"79\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n</svg>\n</div>\n\n<!-- vantage: fallback -->\n\nTwo boxes joined by an arrow. This drawing needs Vantage 0.8 or later.\n```\n- **For a document read mostly on GitHub**, commit the drawing as a file and embed it with `![alt](diagram.svg)` instead, which every renderer shows.\n\n### Code blocks and diffs\n- Always tag fenced code blocks with language identifiers (`ts`, `go`, `python`, `bash`, `json`, `yaml`, `diff`, `sql`, etc.) for syntax highlighting.\n- For proposed code modifications, use ```diff blocks with `+` and `-` prefixes:\n```diff\n-const oldUrl = \"/api/v1\";\n+const newUrl = \"/api/v2\";\n```\n\n### Callouts and alerts\n- Use GitHub-style blockquote callouts for notes, tips, and warnings:\n> [!NOTE]\n> Background context or helpful explanation.\n\n> [!TIP]\n> Best practice advice or optimization suggestions.\n\n> [!IMPORTANT]\n> Key requirements or crucial information.\n\n> [!WARNING]\n> Urgent caution, breaking changes, or potential pitfalls.\n\n> [!CAUTION]\n> High-risk actions that could cause data loss or security issues.\n\n### Vantage directives (optional, and Vantage-only)\n\nVantage reads a few styling hints from ordinary HTML comments. Every other renderer — GitHub included — drops them, so a document has to read exactly the same without them: directives decorate, they never carry meaning. One goes on a line of its own, with a blank line after it, and applies to the block that follows:\n\n```markdown\n<!-- vantage: section tone=warning badge=stale -->\n\n## Migration path\n\nThe steps below predate the rewrite.\n```\n\n- **Four names to write**: `section` (the heading and everything under it), `block` (the one block after it), `question` (one Open Question, in any state; see Open questions below), `fallback` (the one block after it, which Vantage 0.8 and later never show; see Inline SVG above). `fallback` takes no keys, and withholds only a paragraph, a list, a quote, a code block, a table, a rule or a `<div>`, never a heading. A fifth, `oq`, is the name `question` replaces (below).\n- **The keys and values are a closed set**: `tone` = `note | tip | important | warning | caution | muted`; `emphasis` = `strong | normal | quiet`; `badge` = `draft | stale | blocked | done | wip`; `collapsed` = `true | false`. Name a *tone*, never a color — the theme decides what a warning looks like, in light mode, in dark mode, and in print.\n- **Use them sparingly.** One or two per document, on the sections that genuinely differ. A document where everything is toned says nothing, and a rainbow one is harder to read than a plain one.\n- **Anything outside those sets is silently ignored** — nothing breaks, and nothing styles either. Run `vantage-check` on the document: the `vantage/*` rules are the only thing that will ever tell you a directive did nothing.\n- **Always close the comment with `-->`.** Never `--!>`, and never leave it open: Markdown reads every line below an unclosed `<!--` as part of the comment, and the whole rest of the document vanishes from the page. For the same reason `-->` cannot appear *inside* a value — it ends the comment early and spills the remainder into the page as literal text.\n- **In a list, indent the directive inside the item**, with blank lines around it (below). At the start of a line between two items it ends the list and starts a second one, which changes the numbering and the spacing in every renderer — the one thing a directive must never do.\n- **A question's id is `OQ-` then an optional short uppercase prefix then digits** — `OQ-9`, `OQ-TP6`, `OQ-A03`. The prefix is what keeps ids distinct once one document references another's questions, so use one in both whenever they cross-reference. `vantage-check` reports anything outside that shape as `vantage/oq-id-format`, and the same id twice in one document as `vantage/oq-id-duplicate` — both are silent otherwise, because the id becomes the block's anchor and a refused or duplicated one simply goes nowhere.\n- **A reference is a link, or it is a lie.** An `OQ-` id, a `§N` section number and a filename all read like pointers, and written as bare prose none of them can be followed or checked — which is exactly why a stale one is never caught. Link the question to its anchor (`[OQ-4](#OQ-4)`, or the Decision Ledger once it is compacted), the section to its heading, the filename to the file. `vantage-check` reports all three (`ref/*`) as errors, and checks that the link points at the thing the reference names rather than merely at something. Writing a specimen rather than a reference? Put it in a fenced block, which the rules never read.\n\n### Open questions\nA question a document leaves for a human to rule on is an *Open Question*, written in a numbered list under a heading of its own.\n\n- **Write each question in its parts, never as one run-together paragraph.** Vantage lays a question out by these parts: the contents column and the planning page's card show its title as the question, and the card shows the leaning as the leaning and the Answer as the answer, so a part run into another one is read as neither. Each part is a block of its own, with a blank line before it:\n 1. **The title line**: the status marker, the id and the question itself in bold, saying what is being decided: `💬 **OQ-9: Where does a job go when it re-enters the queue?**`.\n 2. **The context**, in short paragraphs: only what a ruling needs. Background, history and cross-references belong in the document's own sections, linked from the question.\n 3. **The options as a list**, one item each, when there are options to choose between.\n 4. **`_Leaning:_` as a paragraph of its own**: which option, and why, in a sentence or two.\n 5. **`**Answer:**` as a paragraph of its own**, with the ruling below it once there is one.\n\n```markdown\n## Open Questions\n\n1. 💬 **OQ-9: Where does a job go when it re-enters the queue?**\n\n A job that fails its checks leaves the queue and comes back once it is fixed. What merged while it was out may change what it does.\n\n - **A — The back of the queue.** It waits its turn again.\n - **B — Its old place.** It skips ahead of what joined since.\n\n <!-- vantage: question id=OQ-9 leaning=\"A — the back of the queue: the fix might interact with what merged while it was out.\" -->\n\n _Leaning:_ A. The fix might interact with what merged while it was out.\n\n **Answer:**\n\n > _(empty — fill in when decided)_\n\n2. 🔒 **OQ-10: How large is the retry budget?**\n\n <!-- vantage: question id=OQ-10 -->\n\n Waits on the load test, so there is no leaning to state yet.\n```\n\n- **The marker is the question's state**: 💬 open (💬 🤷 when it is a matter of preference), 🔒 blocked on something upstream that has to happen first, ✅ answered. Review mode offers a one-click **Take this leaning** on an open question, and on nothing else.\n- **Every question gets a `question` directive**, `<!-- vantage: question id=OQ-9 leaning=\"…\" -->`, in every state, indented into its list item on a line of its own directly above the `_Leaning:_` paragraph, or above another of its paragraphs when it states no leaning. The directive is what makes it a question to Vantage: it gives the question its `#OQ-9` anchor, and Vantage's planning index (its model of a repository's plans) reads a question from nothing else, so without one nothing counts it, badges it or lists it as waiting. It goes when the question is compacted into the Decision Ledger, and not before.\n- **Changing a question's state changes its marker and nothing else.** Mark it 🔒 when it cannot be answered yet, and ✅ once it is decided; the directive stays as it is, its `leaning` included, which nothing offers to take once the question is not open.\n- **Every open question with a stated leaning restates it as the directive's `leaning`.** The convention's prose — the emoji, the `OQ-N` id, the `_Leaning:_` line, the fill-in `**Answer:**` — produces no button on its own, and writing it and stopping there is the most common way the button goes missing: the questions look complete, review mode is on, and there is nothing to click. `vantage-check` reports an open question with a `_Leaning:_` and no directive as an error (`vantage/oq-missing`). An open question with no leaning yet takes the directive without `leaning`, so the planning index still counts it; until it states one, its button files the literal text \"Take the stated leaning.\"\n- **A `leaning` restates the leaning; it is never \"yes\".** The one-click button in review mode files that text as a review comment, and the comment is all the agent reading it has — nobody remembers which button was clicked. `leaning=\"Yes\"` beside a two-branch question is a support ticket.\n- **Keep the text below the title short.** The planning page shows each question as a card that leads with the title and shows only the first few lines of the rest, so a question buried in a paragraph of background is one the reviewer has to dig for. `vantage-check` warns when a question's text, not counting its `_Leaning:_` paragraph and its `**Answer:**`, runs past 120 words (`planning/question-length`), and when a leaning shares a paragraph with other text (`vantage/question-layout`); a repository can raise the limit with `max-words`, or turn either rule off, under `[check.rules]`.\n- **Enumerate with a list, never inline.** A question's options, or any three steps or parts, go in a Markdown list, one item per line, rather than run together in one sentence as `(a) … (b) … (c)`, where a reader has to find where each one starts. `vantage-check` warns on a paragraph that runs three or more together (`prose/inline-list`).\n- **Write a question as a list item.** Outside a list, a question runs from the block its directive lands on through the blocks after it, up to the next heading (for a question written as a heading, the next one of its level or higher), the next rule or the next question, so whatever prose follows it before then is read as part of it. There the directive goes above the question's title, since every viewer reads the question's marker from the block it lands on: a directive below the bold title lands on the block after it, which carries no marker, so every viewer reads the question as open. `vantage-check` reports that as `vantage/question-name`.\n- **`oq` is the name `question` replaces.** Vantage keeps reading `<!-- vantage: oq id=OQ-9 leaning=\"…\" -->` as it always has, and `vantage-check` warns on it (`vantage/oq-deprecated`) with the `question` to write instead, keys unchanged. Vantage before 0.8 drops `question` whole, so a reader still on 0.7 gets no one-click answer and no anchor on a question written with it, and misreads nothing. So keep an `oq` on an open question unless you know every reader of the repository is on 0.8 or later. A repository whose readers are still on 0.7 says so with a `target` before 0.8, such as `target = \"0.7\"`: there an open question takes `oq`, new ones included, and `vantage-check` asks for `oq` rather than `question` on one. **Never put `oq` on a 🔒 or ✅ question**: every Vantage before 0.8 offers the one-click button on every `oq`, whatever its marker says, and on a question with no leaning it files the literal text \"Take the stated leaning.\" `vantage-check` reports that as an error (`vantage/question-name`).\n\n### Record rulings before downstream work\n\nVantage derives planning state from saved Markdown. Pending review comments can show an answer waiting on the agent, but an agent reply does not settle the question in the document; replying first can make it need the human again.\n\n- **Record a clear ruling first**, in the checkout Vantage serves, before launching or continuing downstream work based on it. Do not wait for a larger rewrite, implementation, independent review, a full test suite, or a commit. A saved edit in another worktree does not update this interface.\n- **Finish a small, coherent document update.** Fold the ruling into the body it governs, then compact the settled question into a Decision Ledger row retaining its exact ID, decision, date, and a link to the governing section. Remove the question's directive only with that compaction; repair inbound Markdown links to its former anchor in the same update. Keep question-specific `depends-on` fragments when the ledger retains their IDs. Preserve the decision, not the discarded options and leaning.\n- **Keep unfinished work visible.** A decision is not evidence that it has been implemented. Update `status`, `stage`, `next`, and dependencies only as warranted; do not claim `accepted` while any question remains unanswered, including blocked ones, or use a `done` stage to hide work. A clarification request is not a ruling: reply without closing the question. For a partial answer, record the settled part and retain a narrower open question with its directive.\n- **Save each coherent update promptly**, rather than waiting for every document in the batch. The coordinator records rulings before handing those documents to a writer. Do not overwrite another writer's changes; if the served checkout is unavailable or the edit conflicts, report that obstacle explicitly instead of claiming the interface has updated.\n- **Then check the affected documents and deliver the comment responses.** Deliver responses for recorded rulings promptly, without waiting for downstream work or the rest of the batch. A response says what was recorded and what remains unbuilt. Do not claim the question is settled while its document is still open. Missing checker tooling does not justify postponing the saved update. Vantage cannot verify from prose alone that a ruling was incorporated correctly or enforce this ordering on an external agent.\n\n### Tables, task lists, and math\n- **Tables**: Use standard markdown tables for structured comparisons and schemas.\n- **Task lists**: Use `- [ ]` and `- [x]` for actionable checklists and status tracking.\n- **LaTeX Math**: Use `$$...$$` for *all* KaTeX math — display blocks (`$$` alone on its own lines) and inline alike (`$$E = mc^2$$` mid-sentence).\n - Single dollars are **not** math delimiters: `$HOME` and `$100` stay literal, so prose and shell snippets are safe to write as-is.\n";
2649
2654
  //#endregion
2650
2655
  export { type DirectivePair, type DirectiveParse, type DirectiveVocabulary, type DocStatus, type FrontmatterFormat, type FrontmatterProblem, type KeyTable, type KeyVocabulary, type MalformedDirective, type ParsedDirective, type ParsedFrontmatter, type Pipeline, type PipelineOptions, type RenderMermaidOptions, type RenderOptions, type RenderResult, type ResolveLinkOptions, type VantageAlert, type VantageFrontmatter, type VantageFrontmatterIssue, type VantageOqStatus, type VantageQuestionName, rehypeSourceLines, rehypeVantageAnchors, rehypeVantageDirectives };
2651
2656
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/renderMarkdown.ts","../../../node_modules/@types/hast/index.d.ts","../src/rehypeVantageAlerts.ts","../src/rehypeSourceLines.ts","../src/rehypeVantageDirectives.ts","../src/rehypeVantageAnchors.ts","../src/vantageDirectives.ts","../src/remarkPlugins.ts","../src/pipeline.ts","../src/scrollToLineAnchor.ts","../src/lineAnchor.ts","../src/frontmatter.ts","../src/vantageFrontmatter.ts","../src/sanitize.ts","../src/renderMermaidBlocks.ts","../src/mermaidTheme.ts","../src/resolveLinks.ts","../src/styleGuide.ts"],"x_google_ignoreList":[0,1,3],"mappings":"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A;EACA;EACA;EACA,sBAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;EACL,KAAK;EACL,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX,UAAU;EACV;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN;EACA;EACA;EACA;EACA,qBAAqB;EACrB,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC,sEAAsE;;;;;;;;;KAW/D,iBAAiB,wBAAwB;;;;;;UAOpC;EACb,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;KASE,cAAc,qBAAqB;;;;;;;;;UAU9B;EACb,SAAS;EACT,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;UAsDO,aAAa;;;;EAI1B,OAAO;;;;;;;;;UAUM,gBAAgB;;;;EAI7B;;;;;;;;;UAUa,eAAe;;;;EAI5B,UAAU;;;;;;UAQG,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA;;;;EAIA,YAAY;;;;EAIZ,UAAU;;;;;EAKV,UAAU;;;;EAIV,OAAO;;;;;UAMM,oBAAoB;;;;;;;;UASpB,aAAa;;;;EAI1B;;;;EAIA,UAAU;;;;EAIV,OAAO;;;;;UAMM,iBAAiB;;;;UAKjB,aAAa;;;;EAI1B;;;;EAIA,OAAO;;;;;UAMM,iBAAiB;;;;;;;;;;;;qBC92BrB;KAQD,uBAAuB;;qBAUtB,cAAc,SAAS,OAAO;;;;;;;;;;;;;;wBA+C3B,wBACN,MAAM;;;UCtEC;;;;;;;EAOf;;cAkBI,mBAAmB,QAAQ,4BAA4B;;;cCyevD,yBAAyB,WAAW;;;iBC5gBlB,yBACd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCHH;;;;;;;;;;;;;;;;;;;;qBAqBA;;;;;;;;;;;;;;;;;;;;;;;;;qBAgCA;;KAGD,8BAA8B;;wBAG1B,oBAAoB,eAAe,QAAQ;;;;;;;qBAU9C;;qBAGA;;;;;;;;qBASA;;;;;;qBAOA;;;;;;;;qBASA;;qBAUA;;qBAGA;;;;;;;;;;;qBAkBA;;;;;;;;;;qBAWA;;;;;;;;;;;;;;;;;;;;;qBA0GA;;;;;;;;;;;;;;;;;;;;;qBA+CA;;;;;;;;;KAUD,+BAA+B;;;;;;;;qBAS9B,yBAAyB,SACpC,OAAO;;;;;;;;wBAcO,gBAAgB,eAAe;;;;;;;;;;;;wBAkB/B,mBAAmB,QAAQ;;KAK/B;;KAGA,WAAW,SAAS,eAAe;;KAGnC,sBAAsB,SAChC,eAAe;;;;;;;;;;;;;;;;;;;;;qBA8BJ,sBAAsB;UAoElB;EACf;;EAEA;;EAEA;;EAEA;EACA;;UAGe;EACf;EACA;;EAEA;;;EAGA,OAAO;;;UAIQ;EACf;;EAEA;;EAEA;;KAGU,iBAAiB,kBAAkB;;;;;;;;wBA6B/B,mBAAmB;;;;;;;;;wBAwCnB,sBAAsB,kBAAkB;;;;;;;;;wBC9iBxC,mBACd,UAAS,kBACR;;;UC0Bc;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;UAGe;EACf,eAAe;EACf,eAAe;;;;;;;;;;;;;;wBA4ED,cAAc,UAAS,kBAAuB;;;;;;;;;;;;wBCxI9C,0BAA0B,WAAW;;;;;;;;wBAarC,mBACd,WAAW,aACX;;;;;;;;;;;;;;;;wBCfc,gBACd;EACG;EAAe;;;;;;;;KCRR;;;;;;;;;;;;;;;;UAiBK;EACf;;EAEA;EACA;EACA;EACA;;UAGe;EACf,aAAa;EACb;EACA,QAAQ;;;;;;;;;;EAUR;;;;;;EAMA,UAAU;;;;;;wBAOI,iBAAiB,kBAAkB;;;;;;;;;;;;;;qBC1BtC;KAOD,oBAAoB;;qBAGnB;;;;;;;;;;qBAWA,kBAAkB,SAC7B,OAAO,mBAAmB;;;;;;;;KAehB;EACN;EAAqB;;EACrB;EAAqB;;EACrB;EAAmB;EAAa;EAAgB;;EAChD;EAA4B;;EAC5B;EAA+B,MAAM;EAAW;;UAErC;;EAEf,aAAa;;EAEb,QAAQ;;;wBAWM,YAAY,iBAAiB,SAAS;;;;;;;wBAsBtC,uBACd,aAAa,0BACZ;;;KChGE,gBAAgB;qBAuVR,YAAU;;;;;;;;;;;;;qBAgVV,gBAAgB;;;;;;;;;;;;;;;;UCrqBZ;;EAEf;;EAEA,WAAW,cAAc,OAAO;;;;;;;;;;;;;;;;;;;wBAoBZ,oBACpB,WAAW,aACX,UAAS,uBACR;;;;;;;;qBCNU;;;;;;;;;;;;;qBAcA;;wBAGG;;;;;;;;;;UCrDC;;EAEf;;;;;;EAMA,YAAY,cAAc;;EAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2Bc,aACd,cACA,UAAS;;;;;;;;;;;;;;;;;;;;qBC7BE"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/renderMarkdown.ts","../../../node_modules/@types/hast/index.d.ts","../src/rehypeVantageAlerts.ts","../src/rehypeSourceLines.ts","../src/rehypeVantageDirectives.ts","../src/rehypeVantageAnchors.ts","../src/vantageDirectives.ts","../src/remarkPlugins.ts","../src/pipeline.ts","../src/scrollToLineAnchor.ts","../src/lineAnchor.ts","../src/frontmatter.ts","../src/vantageFrontmatter.ts","../src/sanitize.ts","../src/renderMermaidBlocks.ts","../src/mermaidTheme.ts","../src/resolveLinks.ts","../src/styleGuide.ts"],"x_google_ignoreList":[0,1,3],"mappings":"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A;EACA;EACA;EACA,sBAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;EACL,KAAK;EACL,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX,UAAU;EACV;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN;EACA;EACA;EACA;EACA,qBAAqB;EACrB,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC,sEAAsE;;;;;;;;;KAW/D,iBAAiB,wBAAwB;;;;;;UAOpC;EACb,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;KASE,cAAc,qBAAqB;;;;;;;;;UAU9B;EACb,SAAS;EACT,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;UAsDO,aAAa;;;;EAI1B,OAAO;;;;;;;;;UAUM,gBAAgB;;;;EAI7B;;;;;;;;;UAUa,eAAe;;;;EAI5B,UAAU;;;;;;UAQG,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA;;;;EAIA,YAAY;;;;EAIZ,UAAU;;;;;EAKV,UAAU;;;;EAIV,OAAO;;;;;UAMM,oBAAoB;;;;;;;;UASpB,aAAa;;;;EAI1B;;;;EAIA,UAAU;;;;EAIV,OAAO;;;;;UAMM,iBAAiB;;;;UAKjB,aAAa;;;;EAI1B;;;;EAIA,OAAO;;;;;UAMM,iBAAiB;;;;;;;;;;;;qBC92BrB;KAQD,uBAAuB;;qBAUtB,cAAc,SAAS,OAAO;;;;;;;;;;;;;;wBA+C3B,wBACN,MAAM;;;UCtEC;;;;;;;EAOf;;cAkBI,mBAAmB,QAAQ,4BAA4B;;;cCyevD,yBAAyB,WAAW;;;iBC5gBlB,yBACd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCHH;;;;;;;;;;;;;;;;;;;;qBAqBA;;;;;;;;;;;;;;;;;;;;;;;;;qBAgCA;;KAGD,8BAA8B;;wBAG1B,oBAAoB,eAAe,QAAQ;;;;;;;qBAU9C;;qBAGA;;;;;;;;qBASA;;;;;;qBAOA;;;;;;;;qBASA;;qBAUA;;qBAGA;;;;;;;;;;;qBAkBA;;;;;;;;;;qBAWA;;;;;;;;;;;;;;;;;;;;;qBA0GA;;;;;;;;;;;;;;;;;;;;;qBA+CA;;;;;;;;;KAUD,+BAA+B;;;;;;;;qBAS9B,yBAAyB,SACpC,OAAO;;;;;;;;wBAcO,gBAAgB,eAAe;;;;;;;;;;;;wBAkB/B,mBAAmB,QAAQ;;KAK/B;;KAGA,WAAW,SAAS,eAAe;;KAGnC,sBAAsB,SAChC,eAAe;;;;;;;;;;;;;;;;;;;;;qBA8BJ,sBAAsB;UAoElB;EACf;;EAEA;;EAEA;;EAEA;EACA;;UAGe;EACf;EACA;;EAEA;;;EAGA,OAAO;;;UAIQ;EACf;;EAEA;;EAEA;;KAGU,iBAAiB,kBAAkB;;;;;;;;wBA6B/B,mBAAmB;;;;;;;;;wBAwCnB,sBAAsB,kBAAkB;;;;;;;;;wBC9iBxC,mBACd,UAAS,kBACR;;;UC0Bc;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;UAGe;EACf,eAAe;EACf,eAAe;;;;;;;;;;;;;;wBA4ED,cAAc,UAAS,kBAAuB;;;;;;;;;;;;wBCxI9C,0BAA0B,WAAW;;;;;;;;wBAarC,mBACd,WAAW,aACX;;;;;;;;;;;;;;;;wBCfc,gBACd;EACG;EAAe;;;;;;;;KCRR;;;;;;;;;;;;;;;;UAiBK;EACf;;EAEA;EACA;EACA;EACA;;UAGe;EACf,aAAa;EACb;EACA,QAAQ;;;;;;;;;;EAUR;;;;;;EAMA,UAAU;;;;;;wBAOI,iBAAiB,kBAAkB;;;;;;;;;;;;;;qBC1BtC;KAOD,oBAAoB;;qBAGnB;;;;;;;;;;qBAWA,kBAAkB,SAC7B,OAAO,mBAAmB;;;;;;;;KAehB;EACN;EAAqB;;EACrB;EAAqB;;EACrB;EAAmB;EAAa;EAAgB;;EAChD;EAA4B;;EAC5B;EAA+B,MAAM;EAAW;;UAErC;;EAEf,aAAa;;EAEb,QAAQ;;;wBAWM,YAAY,iBAAiB,SAAS;;;;;;;wBAsBtC,uBACd,aAAa,0BACZ;;;KChGE,gBAAgB;qBAuVR,YAAU;;;;;;;;;;;;;qBAgVV,gBAAgB;;;;;;;;;;;;;;;;UCrqBZ;;EAEf;;EAEA,WAAW,cAAc,OAAO;;;;;;;;;;;;;;;;;;;wBAoBZ,oBACpB,WAAW,aACX,UAAS,uBACR;;;;;;;;qBCNU;;;;;;;;;;;;;qBAcA;;wBAGG;;;;;;;;;;UCrDC;;EAEf;;;;;;EAMA,YAAY,cAAc;;EAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2Bc,aACd,cACA,UAAS;;;;;;;;;;;;;;;;;;;;;;;;qBCzBE;qBAWA"}
package/dist/index.d.ts CHANGED
@@ -2645,7 +2645,12 @@ export declare function resolveLinks(html: string, options?: ResolveLinkOptions)
2645
2645
  * Every rule stated here should be one a checker can enforce or a renderer
2646
2646
  * actually cares about — if a line is neither, it does not belong.
2647
2647
  */
2648
- export declare const STYLE_GUIDE = "## Markdown style guide (for Vantage viewer)\n\nWhen writing or updating markdown documents that will be viewed in Vantage, follow these conventions:\n\n### Structure\n- Use headings (## and ###) to organize content — they become navigable outline anchors.\n- Keep paragraphs focused and concise. Break up dense text with subheadings, lists, or tables.\n\n### Links and cross-references\n- **Relative paths only**: Always link relative to the *current file's directory*:\n - Sibling in same folder: `[Other Doc](./other-doc.md)` or `[Other Doc](other-doc.md)`\n - Subdirectory: `[Design Doc](./design/auth.md)`\n - Parent / sibling folder: `[Overview](../overview.md)` or `[Spec](../specs/api.md)`\n- **Never use leading slashes**:\n - ❌ `[Doc](/docs/guide.md)` (breaks web routing and multi-repo scoping)\n - ✅ `[Doc](../docs/guide.md)` or `[Doc](./guide.md)`\n- **Never use absolute filesystem paths or URI schemes**:\n - ❌ `file:///workspace/docs/guide.md`, `/workspace/docs/guide.md`, `C:\\...`\n - ✅ `[Doc](./guide.md)` or `[Doc](../guide.md)`\n- **Always include the file extension**: Use `.md`, `.ts`, `.go`, etc. (e.g. `[Model](model.go)`).\n- **Line anchors and ranges**:\n - Link to specific lines: `[Handler](../server/api.go#L42)` or `[Range](../server/api.go#L42-L58)`\n - Same-file line anchor: `[See lines](#L10-L25)`\n - Vantage scrolls to and highlights the target lines.\n- **Section anchors**:\n - Same doc: `[Usage](#usage)`\n - Cross-doc: `[Architecture](../overview.md#system-architecture)`\n - Anchor slugs are lowercase, hyphenated, and punctuation-stripped.\n- **Backticks in links**: Place backticks inside the link label, not around the markdown link syntax:\n - ✅ `[`config.json`](./config.json)` or `[config.json](./config.json)`\n - ❌ ``[config.json](./config.json)``\n\n### Frontmatter (Metadata)\n- Include structured metadata at the very top of docs delimited by `---` (YAML) or `+++` (TOML). Vantage renders this as a metadata card:\n```yaml\n---\ntitle: \"Feature Specification\"\nauthor: \"Agent\"\ndate: 2026-08-15\nstatus: in-review # draft | in-review | accepted | deprecated\ntags: [architecture, backend, api]\nsummary: \"Brief description of the document purpose.\"\nvantage:\n status-chip: true # show `status` as a chip above the metadata card\n---\n```\n- **Nothing may sit above the opening delimiter** — not a blank line, not an editorial comment, not a `<!-- vantage: … -->` directive. Frontmatter is recognized only at the very first byte of the file (in Vantage, on GitHub, and in every other reader), so one line above it turns the whole block into body text: a horizontal rule followed by a heading made of the raw keys, with every field lost. `vantage-check` reports it as `frontmatter/not-at-top`.\n- **`vantage:` is Vantage's own reserved key.** It holds chrome that belongs to the file rather than to a section, it never shows up in the metadata card, and every other renderer ignores it. One key today: `status-chip`.\n- **Prefer `status-chip: true`**, which shows the document's own `status:` and therefore cannot disagree with it. A literal `status-chip: accepted` is accepted too, but it is a second value that goes stale on its own — `vantage-check` reports the disagreement.\n- The chip's vocabulary is `status`'s, exactly: `draft | in-review | accepted | deprecated`, lowercase. `Draft` renders no chip at all, silently.\n\n### Planning documents: `stage`, `next`, `depends-on`\n- **Vantage reads a repository's plans as a set.** A document whose frontmatter has `status` or `stage`, or that carries a `question` directive (or an `oq`, the name it replaces), is a *planning document*, and Vantage shows its state (status, stage, open questions) in a badge beside every link to it. So write each fact once, in the document it belongs to, and link to it everywhere else: a copied status or count is the one that goes stale.\n- Three top-level keys beside `status` hold the rest of a document's planning state. They are facts about the file, so they sit at the top level, never under `vantage:`:\n```yaml\n---\ntitle: \"Payload bootstrap\"\nstatus: in-review\nstage: DESIGN\nnext: \"Rule OQ-B2 — the install step waits on it\"\ndepends-on:\n - pypi-distribution.md\n - ../plans/rollout.md#OQ-R1\n---\n```\n- **`stage` is one word from the repository's own vocabulary**, the words `[planning.stages]` declares (below), spelled exactly as declared: matching is case-sensitive, so `Decided` is not `DECIDED`. `vantage-check` reports a word outside them as `planning/stage-vocabulary`.\n- **Frontmatter is the stage's one home.** Do not repeat the word in a prose `**Status:**` line: that is a second copy, and no tool can read or check it. Keep the prose line, where a document has one, for the date and the why.\n- **`next` is the next step, on one line of plain text.** A bare `OQ-` id in it links to this document's question of that id, so name the question rather than paraphrasing it.\n- **`depends-on` lists what the document waits on**: relative paths, resolved like links, each optionally ending in `#OQ-…` to name one question. A single path may stand on its own. A target that does not exist, lies outside the repository, or does not contain the id is an error (`planning/depends-on-missing`).\n- **Never a `priority` key.** A priority only means something relative to the others, so it lives in an ordered list, a roadmap, and not in each document.\n- **A roadmap is ordered links.** Every `roadmap.md` Vantage reads is a roadmap, in any directory, unless `[planning]` lists the roadmaps instead; one in a hidden directory, matched by `.vantageignore`, or ruled out by `include` or `exclude` is not read, and so is not a roadmap. Each entry is a link to a document or a question, then a one-clause reason for its place; the badge beside the link carries the rest, so never copy a status, a stage or a count into it. Prose beneath an entry holds only what has no other home, such as what would unblock it. A bare link to a document *routes* every question in it into the roadmap's order, and a link to one question's `#OQ-…` anchor routes that question; a link to any other heading routes nothing. A question is routed when any roadmap routes it, and with `planning/unrouted` turned on, `vantage-check` reports an open question no roadmap routes.\n- **`[planning]` in `.vantage.toml`** says which files are read, which of them are roadmaps, and what each stage word means. Every key is optional:\n```toml\n[planning]\n# roadmap = [\"roadmap.md\", \"docs/plans/roadmap.md\"] # absent: every roadmap.md\nexclude = [\"docs/gallery/**\"] # gitignore syntax; every .md is included by default\n\n[planning.stages] # each word maps to open | ready | built | done\nDESIGN = \"open\"\nDECIDED = \"ready\"\nBUILT = \"built\"\nSUPERSEDED = \"done\"\n```\n- **Each stage word maps to one of four roles**, which is what the word means to Vantage: `open` is still being decided, `ready` is decided and not built, `built` is built, and `done` is no longer a live proposal, so its questions leave every list of what needs a ruling. `vantage-check index` prints those lists.\n- **To ask a human for the rulings a piece of work needs, hand them a filtered planning page.** In the checkout their Vantage serves, name the work's documents from the root with a leading `/`: the design, its `-plan.md` if one exists, and what its `depends-on` names. Run `vantage-check index --filter 'path:/<design> path:/<plan> is:open'`, and give the human the `Planning page:` line: they press `/` on their planning page and paste it, or type the filter text into its Filter box. Once you have applied their answers, the same command lists what is still open.\n- **Never change `target`.** A `target = \"X.Y\"` line at the top of `.vantage.toml` names the oldest Vantage release the repository's readers use, and only a human edits it. A `vantage-check` older than the target refuses to run and names the release it needs: run that release, and leave the target as it is.\n\n### Mermaid diagrams\n- Use ```mermaid code blocks for flowcharts, sequence diagrams, and architecture diagrams. Vantage provides interactive zoom, pan, dark/light theme adaptation, and SVG export.\n- **Quote labels with special characters**: Always quote node labels containing parentheses, brackets, or colons to prevent syntax errors:\n```mermaid\nflowchart TD\n client[\"Client (React SPA)\"] -->|WebSocket| srv[\"Vantage Server (Go)\"]\n srv --> git[\"Git CLI (git diff)\"]\n```\n\n### Inline SVG (needs Vantage 0.8 or later)\n- **Inline `<svg>` is a capability, not notation: it needs Vantage 0.8 or later.** GitHub, every other renderer and Vantage before 0.8 drop the drawing and leave the words of its `<text>` elements behind as loose text, so keep `<text>` to short labels a reader can bear to see as loose words.\n- **Name the drawing with `aria-label` on the `<svg>`, never with `<title>` or `<desc>`.** Vantage 0.8 removes both, so they name nothing there, and every other reader prints them: Vantage before 0.8 as loose words, GitHub with the tags.\n- **Pair every inline drawing with a fallback block**: a `<!-- vantage: fallback -->` directive above the block that stands in for the drawing. Vantage 0.8 and later never show that block; every other reader drops the comment and shows it. Say what the drawing shows and that it needs Vantage 0.8 or later, and link a copy of it committed as a file where there is one (`[the drawing](diagram.svg)`). The block is a paragraph, a list, a quote, a code block, a table or a `<div>`; Vantage shows a raw `<img>`, `<figure>` or `<details>` there, so wrap one in a `<div>`.\n- **Wrap the drawing in a `<div>` on a line of its own, with no blank line anywhere inside it**, and give it a `width`, a `height` and a `viewBox`. Paint with `fill`/`stroke` set to `currentColor` or a hex color, so it reads in light and dark mode.\n```markdown\n<div>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"40\" viewBox=\"0 0 120 40\" role=\"img\" aria-label=\"Two boxes joined by an arrow\">\n <rect x=\"1\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n <path d=\"M45 20 H75 M68 14 L75 20 L68 26\" fill=\"none\" stroke=\"currentColor\"/>\n <rect x=\"79\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n</svg>\n</div>\n\n<!-- vantage: fallback -->\n\nTwo boxes joined by an arrow. This drawing needs Vantage 0.8 or later.\n```\n- **For a document read mostly on GitHub**, commit the drawing as a file and embed it with `![alt](diagram.svg)` instead, which every renderer shows.\n\n### Code blocks and diffs\n- Always tag fenced code blocks with language identifiers (`ts`, `go`, `python`, `bash`, `json`, `yaml`, `diff`, `sql`, etc.) for syntax highlighting.\n- For proposed code modifications, use ```diff blocks with `+` and `-` prefixes:\n```diff\n-const oldUrl = \"/api/v1\";\n+const newUrl = \"/api/v2\";\n```\n\n### Callouts and alerts\n- Use GitHub-style blockquote callouts for notes, tips, and warnings:\n> [!NOTE]\n> Background context or helpful explanation.\n\n> [!TIP]\n> Best practice advice or optimization suggestions.\n\n> [!IMPORTANT]\n> Key requirements or crucial information.\n\n> [!WARNING]\n> Urgent caution, breaking changes, or potential pitfalls.\n\n> [!CAUTION]\n> High-risk actions that could cause data loss or security issues.\n\n### Vantage directives (optional, and Vantage-only)\n\nVantage reads a few styling hints from ordinary HTML comments. Every other renderer — GitHub included — drops them, so a document has to read exactly the same without them: directives decorate, they never carry meaning. One goes on a line of its own, with a blank line after it, and applies to the block that follows:\n\n```markdown\n<!-- vantage: section tone=warning badge=stale -->\n\n## Migration path\n\nThe steps below predate the rewrite.\n```\n\n- **Four names to write**: `section` (the heading and everything under it), `block` (the one block after it), `question` (one Open Question, in any state; see Open questions below), `fallback` (the one block after it, which Vantage 0.8 and later never show; see Inline SVG above). `fallback` takes no keys, and withholds only a paragraph, a list, a quote, a code block, a table, a rule or a `<div>`, never a heading. A fifth, `oq`, is the name `question` replaces (below).\n- **The keys and values are a closed set**: `tone` = `note | tip | important | warning | caution | muted`; `emphasis` = `strong | normal | quiet`; `badge` = `draft | stale | blocked | done | wip`; `collapsed` = `true | false`. Name a *tone*, never a color — the theme decides what a warning looks like, in light mode, in dark mode, and in print.\n- **Use them sparingly.** One or two per document, on the sections that genuinely differ. A document where everything is toned says nothing, and a rainbow one is harder to read than a plain one.\n- **Anything outside those sets is silently ignored** — nothing breaks, and nothing styles either. Run `vantage-check` on the document: the `vantage/*` rules are the only thing that will ever tell you a directive did nothing.\n- **Always close the comment with `-->`.** Never `--!>`, and never leave it open: Markdown reads every line below an unclosed `<!--` as part of the comment, and the whole rest of the document vanishes from the page. For the same reason `-->` cannot appear *inside* a value — it ends the comment early and spills the remainder into the page as literal text.\n- **In a list, indent the directive inside the item**, with blank lines around it (below). At the start of a line between two items it ends the list and starts a second one, which changes the numbering and the spacing in every renderer — the one thing a directive must never do.\n- **A question's id is `OQ-` then an optional short uppercase prefix then digits** — `OQ-9`, `OQ-TP6`, `OQ-A03`. The prefix is what keeps ids distinct once one document references another's questions, so use one in both whenever they cross-reference. `vantage-check` reports anything outside that shape as `vantage/oq-id-format`, and the same id twice in one document as `vantage/oq-id-duplicate` — both are silent otherwise, because the id becomes the block's anchor and a refused or duplicated one simply goes nowhere.\n- **A reference is a link, or it is a lie.** An `OQ-` id, a `§N` section number and a filename all read like pointers, and written as bare prose none of them can be followed or checked — which is exactly why a stale one is never caught. Link the question to its anchor (`[OQ-4](#OQ-4)`, or the Decision Ledger once it is compacted), the section to its heading, the filename to the file. `vantage-check` reports all three (`ref/*`) as errors, and checks that the link points at the thing the reference names rather than merely at something. Writing a specimen rather than a reference? Put it in a fenced block, which the rules never read.\n\n### Open questions\nA question a document leaves for a human to rule on is an *Open Question*, written in a numbered list under a heading of its own.\n\n- **Write each question in its parts, never as one run-together paragraph.** Vantage lays a question out by these parts: the contents column and the planning page's card show its title as the question, and the card shows the leaning as the leaning and the Answer as the answer, so a part run into another one is read as neither. Each part is a block of its own, with a blank line before it:\n 1. **The title line**: the status marker, the id and the question itself in bold, saying what is being decided: `💬 **OQ-9: Where does a job go when it re-enters the queue?**`.\n 2. **The context**, in short paragraphs: only what a ruling needs. Background, history and cross-references belong in the document's own sections, linked from the question.\n 3. **The options as a list**, one item each, when there are options to choose between.\n 4. **`_Leaning:_` as a paragraph of its own**: which option, and why, in a sentence or two.\n 5. **`**Answer:**` as a paragraph of its own**, with the ruling below it once there is one.\n\n```markdown\n## Open Questions\n\n1. 💬 **OQ-9: Where does a job go when it re-enters the queue?**\n\n A job that fails its checks leaves the queue and comes back once it is fixed. What merged while it was out may change what it does.\n\n - **A — The back of the queue.** It waits its turn again.\n - **B — Its old place.** It skips ahead of what joined since.\n\n <!-- vantage: question id=OQ-9 leaning=\"A — the back of the queue: the fix might interact with what merged while it was out.\" -->\n\n _Leaning:_ A. The fix might interact with what merged while it was out.\n\n **Answer:**\n\n > _(empty — fill in when decided)_\n\n2. 🔒 **OQ-10: How large is the retry budget?**\n\n <!-- vantage: question id=OQ-10 -->\n\n Waits on the load test, so there is no leaning to state yet.\n```\n\n- **The marker is the question's state**: 💬 open (💬 🤷 when it is a matter of preference), 🔒 blocked on something upstream that has to happen first, ✅ answered. Review mode offers a one-click **Take this leaning** on an open question, and on nothing else.\n- **Every question gets a `question` directive**, `<!-- vantage: question id=OQ-9 leaning=\"…\" -->`, in every state, indented into its list item on a line of its own directly above the `_Leaning:_` paragraph, or above another of its paragraphs when it states no leaning. The directive is what makes it a question to Vantage: it gives the question its `#OQ-9` anchor, and Vantage's planning index (its model of a repository's plans) reads a question from nothing else, so without one nothing counts it, badges it or lists it as waiting. It goes when the question is compacted into the Decision Ledger, and not before.\n- **Changing a question's state changes its marker and nothing else.** Mark it 🔒 when it cannot be answered yet, and ✅ once it is decided; the directive stays as it is, its `leaning` included, which nothing offers to take once the question is not open.\n- **Every open question with a stated leaning restates it as the directive's `leaning`.** The convention's prose — the emoji, the `OQ-N` id, the `_Leaning:_` line, the fill-in `**Answer:**` — produces no button on its own, and writing it and stopping there is the most common way the button goes missing: the questions look complete, review mode is on, and there is nothing to click. `vantage-check` reports an open question with a `_Leaning:_` and no directive as an error (`vantage/oq-missing`). An open question with no leaning yet takes the directive without `leaning`, so the planning index still counts it; until it states one, its button files the literal text \"Take the stated leaning.\"\n- **A `leaning` restates the leaning; it is never \"yes\".** The one-click button in review mode files that text as a review comment, and the comment is all the agent reading it has — nobody remembers which button was clicked. `leaning=\"Yes\"` beside a two-branch question is a support ticket.\n- **Keep the text below the title short.** The planning page shows each question as a card that leads with the title and shows only the first few lines of the rest, so a question buried in a paragraph of background is one the reviewer has to dig for. `vantage-check` warns when a question's text, not counting its `_Leaning:_` paragraph and its `**Answer:**`, runs past 120 words (`planning/question-length`), and when a leaning shares a paragraph with other text (`vantage/question-layout`); a repository can raise the limit with `max-words`, or turn either rule off, under `[check.rules]`.\n- **Enumerate with a list, never inline.** A question's options, or any three steps or parts, go in a Markdown list, one item per line, rather than run together in one sentence as `(a) … (b) … (c)`, where a reader has to find where each one starts. `vantage-check` warns on a paragraph that runs three or more together (`prose/inline-list`).\n- **Write a question as a list item.** Outside a list, a question runs from the block its directive lands on through the blocks after it, up to the next heading (for a question written as a heading, the next one of its level or higher), the next rule or the next question, so whatever prose follows it before then is read as part of it. There the directive goes above the question's title, since every viewer reads the question's marker from the block it lands on: a directive below the bold title lands on the block after it, which carries no marker, so every viewer reads the question as open. `vantage-check` reports that as `vantage/question-name`.\n- **`oq` is the name `question` replaces.** Vantage keeps reading `<!-- vantage: oq id=OQ-9 leaning=\"…\" -->` as it always has, and `vantage-check` warns on it (`vantage/oq-deprecated`) with the `question` to write instead, keys unchanged. Vantage before 0.8 drops `question` whole, so a reader still on 0.7 gets no one-click answer and no anchor on a question written with it, and misreads nothing. So keep an `oq` on an open question unless you know every reader of the repository is on 0.8 or later. A repository whose readers are still on 0.7 says so with a `target` before 0.8, such as `target = \"0.7\"`: there an open question takes `oq`, new ones included, and `vantage-check` asks for `oq` rather than `question` on one. **Never put `oq` on a 🔒 or ✅ question**: every Vantage before 0.8 offers the one-click button on every `oq`, whatever its marker says, and on a question with no leaning it files the literal text \"Take the stated leaning.\" `vantage-check` reports that as an error (`vantage/question-name`).\n\n### Tables, task lists, and math\n- **Tables**: Use standard markdown tables for structured comparisons and schemas.\n- **Task lists**: Use `- [ ]` and `- [x]` for actionable checklists and status tracking.\n- **LaTeX Math**: Use `$$...$$` for *all* KaTeX math — display blocks (`$$` alone on its own lines) and inline alike (`$$E = mc^2$$` mid-sentence).\n - Single dollars are **not** math delimiters: `$HOME` and `$100` stay literal, so prose and shell snippets are safe to write as-is.\n";
2648
+ /**
2649
+ * Shared by the style guide and every review clipboard payload. These are
2650
+ * authoring instructions, not a claim that the checker measures agent latency.
2651
+ */
2652
+ export declare const ANSWER_PROCESSING_GUIDE = "### Record rulings before downstream work\n\nVantage derives planning state from saved Markdown. Pending review comments can show an answer waiting on the agent, but an agent reply does not settle the question in the document; replying first can make it need the human again.\n\n- **Record a clear ruling first**, in the checkout Vantage serves, before launching or continuing downstream work based on it. Do not wait for a larger rewrite, implementation, independent review, a full test suite, or a commit. A saved edit in another worktree does not update this interface.\n- **Finish a small, coherent document update.** Fold the ruling into the body it governs, then compact the settled question into a Decision Ledger row retaining its exact ID, decision, date, and a link to the governing section. Remove the question's directive only with that compaction; repair inbound Markdown links to its former anchor in the same update. Keep question-specific `depends-on` fragments when the ledger retains their IDs. Preserve the decision, not the discarded options and leaning.\n- **Keep unfinished work visible.** A decision is not evidence that it has been implemented. Update `status`, `stage`, `next`, and dependencies only as warranted; do not claim `accepted` while any question remains unanswered, including blocked ones, or use a `done` stage to hide work. A clarification request is not a ruling: reply without closing the question. For a partial answer, record the settled part and retain a narrower open question with its directive.\n- **Save each coherent update promptly**, rather than waiting for every document in the batch. The coordinator records rulings before handing those documents to a writer. Do not overwrite another writer's changes; if the served checkout is unavailable or the edit conflicts, report that obstacle explicitly instead of claiming the interface has updated.\n- **Then check the affected documents and deliver the comment responses.** Deliver responses for recorded rulings promptly, without waiting for downstream work or the rest of the batch. A response says what was recorded and what remains unbuilt. Do not claim the question is settled while its document is still open. Missing checker tooling does not justify postponing the saved update. Vantage cannot verify from prose alone that a ruling was incorporated correctly or enforce this ordering on an external agent.\n";
2653
+ export declare const STYLE_GUIDE = "## Markdown style guide (for Vantage viewer)\n\nWhen writing or updating markdown documents that will be viewed in Vantage, follow these conventions:\n\n### Structure\n- Use headings (## and ###) to organize content — they become navigable outline anchors.\n- Keep paragraphs focused and concise. Break up dense text with subheadings, lists, or tables.\n\n### Links and cross-references\n- **Relative paths only**: Always link relative to the *current file's directory*:\n - Sibling in same folder: `[Other Doc](./other-doc.md)` or `[Other Doc](other-doc.md)`\n - Subdirectory: `[Design Doc](./design/auth.md)`\n - Parent / sibling folder: `[Overview](../overview.md)` or `[Spec](../specs/api.md)`\n- **Never use leading slashes**:\n - ❌ `[Doc](/docs/guide.md)` (breaks web routing and multi-repo scoping)\n - ✅ `[Doc](../docs/guide.md)` or `[Doc](./guide.md)`\n- **Never use absolute filesystem paths or URI schemes**:\n - ❌ `file:///workspace/docs/guide.md`, `/workspace/docs/guide.md`, `C:\\...`\n - ✅ `[Doc](./guide.md)` or `[Doc](../guide.md)`\n- **Always include the file extension**: Use `.md`, `.ts`, `.go`, etc. (e.g. `[Model](model.go)`).\n- **Line anchors and ranges**:\n - Link to specific lines: `[Handler](../server/api.go#L42)` or `[Range](../server/api.go#L42-L58)`\n - Same-file line anchor: `[See lines](#L10-L25)`\n - Vantage scrolls to and highlights the target lines.\n- **Section anchors**:\n - Same doc: `[Usage](#usage)`\n - Cross-doc: `[Architecture](../overview.md#system-architecture)`\n - Anchor slugs are lowercase, hyphenated, and punctuation-stripped.\n- **Backticks in links**: Place backticks inside the link label, not around the markdown link syntax:\n - ✅ `[`config.json`](./config.json)` or `[config.json](./config.json)`\n - ❌ ``[config.json](./config.json)``\n\n### Frontmatter (Metadata)\n- Include structured metadata at the very top of docs delimited by `---` (YAML) or `+++` (TOML). Vantage renders this as a metadata card:\n```yaml\n---\ntitle: \"Feature Specification\"\nauthor: \"Agent\"\ndate: 2026-08-15\nstatus: in-review # draft | in-review | accepted | deprecated\ntags: [architecture, backend, api]\nsummary: \"Brief description of the document purpose.\"\nvantage:\n status-chip: true # show `status` as a chip above the metadata card\n---\n```\n- **Nothing may sit above the opening delimiter** — not a blank line, not an editorial comment, not a `<!-- vantage: … -->` directive. Frontmatter is recognized only at the very first byte of the file (in Vantage, on GitHub, and in every other reader), so one line above it turns the whole block into body text: a horizontal rule followed by a heading made of the raw keys, with every field lost. `vantage-check` reports it as `frontmatter/not-at-top`.\n- **`vantage:` is Vantage's own reserved key.** It holds chrome that belongs to the file rather than to a section, it never shows up in the metadata card, and every other renderer ignores it. One key today: `status-chip`.\n- **Prefer `status-chip: true`**, which shows the document's own `status:` and therefore cannot disagree with it. A literal `status-chip: accepted` is accepted too, but it is a second value that goes stale on its own — `vantage-check` reports the disagreement.\n- The chip's vocabulary is `status`'s, exactly: `draft | in-review | accepted | deprecated`, lowercase. `Draft` renders no chip at all, silently.\n\n### Planning documents: `stage`, `next`, `depends-on`\n- **Vantage reads a repository's plans as a set.** A document whose frontmatter has `status` or `stage`, or that carries a `question` directive (or an `oq`, the name it replaces), is a *planning document*, and Vantage shows its state (status, stage, open questions) in a badge beside every link to it. So write each fact once, in the document it belongs to, and link to it everywhere else: a copied status or count is the one that goes stale.\n- Three top-level keys beside `status` hold the rest of a document's planning state. They are facts about the file, so they sit at the top level, never under `vantage:`:\n```yaml\n---\ntitle: \"Payload bootstrap\"\nstatus: in-review\nstage: DESIGN\nnext: \"Rule OQ-B2 — the install step waits on it\"\ndepends-on:\n - pypi-distribution.md\n - ../plans/rollout.md#OQ-R1\n---\n```\n- **`stage` is one word from the repository's own vocabulary**, the words `[planning.stages]` declares (below), spelled exactly as declared: matching is case-sensitive, so `Decided` is not `DECIDED`. `vantage-check` reports a word outside them as `planning/stage-vocabulary`.\n- **Frontmatter is the stage's one home.** Do not repeat the word in a prose `**Status:**` line: that is a second copy, and no tool can read or check it. Keep the prose line, where a document has one, for the date and the why.\n- **`next` is the next step, on one line of plain text.** A bare `OQ-` id in it links to this document's question of that id, so name the question rather than paraphrasing it.\n- **`depends-on` lists what the document waits on**: relative paths, resolved like links, each optionally ending in `#OQ-…` to name one question. A single path may stand on its own. A target that does not exist, lies outside the repository, or does not contain the id is an error (`planning/depends-on-missing`).\n- **Never a `priority` key.** A priority only means something relative to the others, so it lives in an ordered list, a roadmap, and not in each document.\n- **A roadmap is ordered links.** Every `roadmap.md` Vantage reads is a roadmap, in any directory, unless `[planning]` lists the roadmaps instead; one in a hidden directory, matched by `.vantageignore`, or ruled out by `include` or `exclude` is not read, and so is not a roadmap. Each entry is a link to a document or a question, then a one-clause reason for its place; the badge beside the link carries the rest, so never copy a status, a stage or a count into it. Prose beneath an entry holds only what has no other home, such as what would unblock it. A bare link to a document *routes* every question in it into the roadmap's order, and a link to one question's `#OQ-…` anchor routes that question; a link to any other heading routes nothing. A question is routed when any roadmap routes it, and with `planning/unrouted` turned on, `vantage-check` reports an open question no roadmap routes.\n- **`[planning]` in `.vantage.toml`** says which files are read, which of them are roadmaps, and what each stage word means. Every key is optional:\n```toml\n[planning]\n# roadmap = [\"roadmap.md\", \"docs/plans/roadmap.md\"] # absent: every roadmap.md\nexclude = [\"docs/gallery/**\"] # gitignore syntax; every .md is included by default\n\n[planning.stages] # each word maps to open | ready | built | done\nDESIGN = \"open\"\nDECIDED = \"ready\"\nBUILT = \"built\"\nSUPERSEDED = \"done\"\n```\n- **Each stage word maps to one of four roles**, which is what the word means to Vantage: `open` is still being decided, `ready` is decided and not built, `built` is built, and `done` is no longer a live proposal, so its questions leave every list of what needs a ruling. `vantage-check index` prints those lists.\n- **To ask a human for the rulings a piece of work needs, hand them a filtered planning page.** In the checkout their Vantage serves, name the work's documents from the root with a leading `/`: the design, its `-plan.md` if one exists, and what its `depends-on` names. Run `vantage-check index --filter 'path:/<design> path:/<plan> is:open'`, and give the human the `Planning page:` line: they press `/` on their planning page and paste it, or type the filter text into its Filter box. Once you have applied their answers, the same command lists what is still open.\n- **Never change `target`.** A `target = \"X.Y\"` line at the top of `.vantage.toml` names the oldest Vantage release the repository's readers use, and only a human edits it. A `vantage-check` older than the target refuses to run and names the release it needs: run that release, and leave the target as it is.\n\n### Mermaid diagrams\n- Use ```mermaid code blocks for flowcharts, sequence diagrams, and architecture diagrams. Vantage provides interactive zoom, pan, dark/light theme adaptation, and SVG export.\n- **Quote labels with special characters**: Always quote node labels containing parentheses, brackets, or colons to prevent syntax errors:\n```mermaid\nflowchart TD\n client[\"Client (React SPA)\"] -->|WebSocket| srv[\"Vantage Server (Go)\"]\n srv --> git[\"Git CLI (git diff)\"]\n```\n\n### Inline SVG (needs Vantage 0.8 or later)\n- **Inline `<svg>` is a capability, not notation: it needs Vantage 0.8 or later.** GitHub, every other renderer and Vantage before 0.8 drop the drawing and leave the words of its `<text>` elements behind as loose text, so keep `<text>` to short labels a reader can bear to see as loose words.\n- **Name the drawing with `aria-label` on the `<svg>`, never with `<title>` or `<desc>`.** Vantage 0.8 removes both, so they name nothing there, and every other reader prints them: Vantage before 0.8 as loose words, GitHub with the tags.\n- **Pair every inline drawing with a fallback block**: a `<!-- vantage: fallback -->` directive above the block that stands in for the drawing. Vantage 0.8 and later never show that block; every other reader drops the comment and shows it. Say what the drawing shows and that it needs Vantage 0.8 or later, and link a copy of it committed as a file where there is one (`[the drawing](diagram.svg)`). The block is a paragraph, a list, a quote, a code block, a table or a `<div>`; Vantage shows a raw `<img>`, `<figure>` or `<details>` there, so wrap one in a `<div>`.\n- **Wrap the drawing in a `<div>` on a line of its own, with no blank line anywhere inside it**, and give it a `width`, a `height` and a `viewBox`. Paint with `fill`/`stroke` set to `currentColor` or a hex color, so it reads in light and dark mode.\n```markdown\n<div>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"40\" viewBox=\"0 0 120 40\" role=\"img\" aria-label=\"Two boxes joined by an arrow\">\n <rect x=\"1\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n <path d=\"M45 20 H75 M68 14 L75 20 L68 26\" fill=\"none\" stroke=\"currentColor\"/>\n <rect x=\"79\" y=\"1\" width=\"40\" height=\"38\" fill=\"none\" stroke=\"currentColor\"/>\n</svg>\n</div>\n\n<!-- vantage: fallback -->\n\nTwo boxes joined by an arrow. This drawing needs Vantage 0.8 or later.\n```\n- **For a document read mostly on GitHub**, commit the drawing as a file and embed it with `![alt](diagram.svg)` instead, which every renderer shows.\n\n### Code blocks and diffs\n- Always tag fenced code blocks with language identifiers (`ts`, `go`, `python`, `bash`, `json`, `yaml`, `diff`, `sql`, etc.) for syntax highlighting.\n- For proposed code modifications, use ```diff blocks with `+` and `-` prefixes:\n```diff\n-const oldUrl = \"/api/v1\";\n+const newUrl = \"/api/v2\";\n```\n\n### Callouts and alerts\n- Use GitHub-style blockquote callouts for notes, tips, and warnings:\n> [!NOTE]\n> Background context or helpful explanation.\n\n> [!TIP]\n> Best practice advice or optimization suggestions.\n\n> [!IMPORTANT]\n> Key requirements or crucial information.\n\n> [!WARNING]\n> Urgent caution, breaking changes, or potential pitfalls.\n\n> [!CAUTION]\n> High-risk actions that could cause data loss or security issues.\n\n### Vantage directives (optional, and Vantage-only)\n\nVantage reads a few styling hints from ordinary HTML comments. Every other renderer — GitHub included — drops them, so a document has to read exactly the same without them: directives decorate, they never carry meaning. One goes on a line of its own, with a blank line after it, and applies to the block that follows:\n\n```markdown\n<!-- vantage: section tone=warning badge=stale -->\n\n## Migration path\n\nThe steps below predate the rewrite.\n```\n\n- **Four names to write**: `section` (the heading and everything under it), `block` (the one block after it), `question` (one Open Question, in any state; see Open questions below), `fallback` (the one block after it, which Vantage 0.8 and later never show; see Inline SVG above). `fallback` takes no keys, and withholds only a paragraph, a list, a quote, a code block, a table, a rule or a `<div>`, never a heading. A fifth, `oq`, is the name `question` replaces (below).\n- **The keys and values are a closed set**: `tone` = `note | tip | important | warning | caution | muted`; `emphasis` = `strong | normal | quiet`; `badge` = `draft | stale | blocked | done | wip`; `collapsed` = `true | false`. Name a *tone*, never a color — the theme decides what a warning looks like, in light mode, in dark mode, and in print.\n- **Use them sparingly.** One or two per document, on the sections that genuinely differ. A document where everything is toned says nothing, and a rainbow one is harder to read than a plain one.\n- **Anything outside those sets is silently ignored** — nothing breaks, and nothing styles either. Run `vantage-check` on the document: the `vantage/*` rules are the only thing that will ever tell you a directive did nothing.\n- **Always close the comment with `-->`.** Never `--!>`, and never leave it open: Markdown reads every line below an unclosed `<!--` as part of the comment, and the whole rest of the document vanishes from the page. For the same reason `-->` cannot appear *inside* a value — it ends the comment early and spills the remainder into the page as literal text.\n- **In a list, indent the directive inside the item**, with blank lines around it (below). At the start of a line between two items it ends the list and starts a second one, which changes the numbering and the spacing in every renderer — the one thing a directive must never do.\n- **A question's id is `OQ-` then an optional short uppercase prefix then digits** — `OQ-9`, `OQ-TP6`, `OQ-A03`. The prefix is what keeps ids distinct once one document references another's questions, so use one in both whenever they cross-reference. `vantage-check` reports anything outside that shape as `vantage/oq-id-format`, and the same id twice in one document as `vantage/oq-id-duplicate` — both are silent otherwise, because the id becomes the block's anchor and a refused or duplicated one simply goes nowhere.\n- **A reference is a link, or it is a lie.** An `OQ-` id, a `§N` section number and a filename all read like pointers, and written as bare prose none of them can be followed or checked — which is exactly why a stale one is never caught. Link the question to its anchor (`[OQ-4](#OQ-4)`, or the Decision Ledger once it is compacted), the section to its heading, the filename to the file. `vantage-check` reports all three (`ref/*`) as errors, and checks that the link points at the thing the reference names rather than merely at something. Writing a specimen rather than a reference? Put it in a fenced block, which the rules never read.\n\n### Open questions\nA question a document leaves for a human to rule on is an *Open Question*, written in a numbered list under a heading of its own.\n\n- **Write each question in its parts, never as one run-together paragraph.** Vantage lays a question out by these parts: the contents column and the planning page's card show its title as the question, and the card shows the leaning as the leaning and the Answer as the answer, so a part run into another one is read as neither. Each part is a block of its own, with a blank line before it:\n 1. **The title line**: the status marker, the id and the question itself in bold, saying what is being decided: `💬 **OQ-9: Where does a job go when it re-enters the queue?**`.\n 2. **The context**, in short paragraphs: only what a ruling needs. Background, history and cross-references belong in the document's own sections, linked from the question.\n 3. **The options as a list**, one item each, when there are options to choose between.\n 4. **`_Leaning:_` as a paragraph of its own**: which option, and why, in a sentence or two.\n 5. **`**Answer:**` as a paragraph of its own**, with the ruling below it once there is one.\n\n```markdown\n## Open Questions\n\n1. 💬 **OQ-9: Where does a job go when it re-enters the queue?**\n\n A job that fails its checks leaves the queue and comes back once it is fixed. What merged while it was out may change what it does.\n\n - **A — The back of the queue.** It waits its turn again.\n - **B — Its old place.** It skips ahead of what joined since.\n\n <!-- vantage: question id=OQ-9 leaning=\"A — the back of the queue: the fix might interact with what merged while it was out.\" -->\n\n _Leaning:_ A. The fix might interact with what merged while it was out.\n\n **Answer:**\n\n > _(empty — fill in when decided)_\n\n2. 🔒 **OQ-10: How large is the retry budget?**\n\n <!-- vantage: question id=OQ-10 -->\n\n Waits on the load test, so there is no leaning to state yet.\n```\n\n- **The marker is the question's state**: 💬 open (💬 🤷 when it is a matter of preference), 🔒 blocked on something upstream that has to happen first, ✅ answered. Review mode offers a one-click **Take this leaning** on an open question, and on nothing else.\n- **Every question gets a `question` directive**, `<!-- vantage: question id=OQ-9 leaning=\"…\" -->`, in every state, indented into its list item on a line of its own directly above the `_Leaning:_` paragraph, or above another of its paragraphs when it states no leaning. The directive is what makes it a question to Vantage: it gives the question its `#OQ-9` anchor, and Vantage's planning index (its model of a repository's plans) reads a question from nothing else, so without one nothing counts it, badges it or lists it as waiting. It goes when the question is compacted into the Decision Ledger, and not before.\n- **Changing a question's state changes its marker and nothing else.** Mark it 🔒 when it cannot be answered yet, and ✅ once it is decided; the directive stays as it is, its `leaning` included, which nothing offers to take once the question is not open.\n- **Every open question with a stated leaning restates it as the directive's `leaning`.** The convention's prose — the emoji, the `OQ-N` id, the `_Leaning:_` line, the fill-in `**Answer:**` — produces no button on its own, and writing it and stopping there is the most common way the button goes missing: the questions look complete, review mode is on, and there is nothing to click. `vantage-check` reports an open question with a `_Leaning:_` and no directive as an error (`vantage/oq-missing`). An open question with no leaning yet takes the directive without `leaning`, so the planning index still counts it; until it states one, its button files the literal text \"Take the stated leaning.\"\n- **A `leaning` restates the leaning; it is never \"yes\".** The one-click button in review mode files that text as a review comment, and the comment is all the agent reading it has — nobody remembers which button was clicked. `leaning=\"Yes\"` beside a two-branch question is a support ticket.\n- **Keep the text below the title short.** The planning page shows each question as a card that leads with the title and shows only the first few lines of the rest, so a question buried in a paragraph of background is one the reviewer has to dig for. `vantage-check` warns when a question's text, not counting its `_Leaning:_` paragraph and its `**Answer:**`, runs past 120 words (`planning/question-length`), and when a leaning shares a paragraph with other text (`vantage/question-layout`); a repository can raise the limit with `max-words`, or turn either rule off, under `[check.rules]`.\n- **Enumerate with a list, never inline.** A question's options, or any three steps or parts, go in a Markdown list, one item per line, rather than run together in one sentence as `(a) … (b) … (c)`, where a reader has to find where each one starts. `vantage-check` warns on a paragraph that runs three or more together (`prose/inline-list`).\n- **Write a question as a list item.** Outside a list, a question runs from the block its directive lands on through the blocks after it, up to the next heading (for a question written as a heading, the next one of its level or higher), the next rule or the next question, so whatever prose follows it before then is read as part of it. There the directive goes above the question's title, since every viewer reads the question's marker from the block it lands on: a directive below the bold title lands on the block after it, which carries no marker, so every viewer reads the question as open. `vantage-check` reports that as `vantage/question-name`.\n- **`oq` is the name `question` replaces.** Vantage keeps reading `<!-- vantage: oq id=OQ-9 leaning=\"…\" -->` as it always has, and `vantage-check` warns on it (`vantage/oq-deprecated`) with the `question` to write instead, keys unchanged. Vantage before 0.8 drops `question` whole, so a reader still on 0.7 gets no one-click answer and no anchor on a question written with it, and misreads nothing. So keep an `oq` on an open question unless you know every reader of the repository is on 0.8 or later. A repository whose readers are still on 0.7 says so with a `target` before 0.8, such as `target = \"0.7\"`: there an open question takes `oq`, new ones included, and `vantage-check` asks for `oq` rather than `question` on one. **Never put `oq` on a 🔒 or ✅ question**: every Vantage before 0.8 offers the one-click button on every `oq`, whatever its marker says, and on a question with no leaning it files the literal text \"Take the stated leaning.\" `vantage-check` reports that as an error (`vantage/question-name`).\n\n### Record rulings before downstream work\n\nVantage derives planning state from saved Markdown. Pending review comments can show an answer waiting on the agent, but an agent reply does not settle the question in the document; replying first can make it need the human again.\n\n- **Record a clear ruling first**, in the checkout Vantage serves, before launching or continuing downstream work based on it. Do not wait for a larger rewrite, implementation, independent review, a full test suite, or a commit. A saved edit in another worktree does not update this interface.\n- **Finish a small, coherent document update.** Fold the ruling into the body it governs, then compact the settled question into a Decision Ledger row retaining its exact ID, decision, date, and a link to the governing section. Remove the question's directive only with that compaction; repair inbound Markdown links to its former anchor in the same update. Keep question-specific `depends-on` fragments when the ledger retains their IDs. Preserve the decision, not the discarded options and leaning.\n- **Keep unfinished work visible.** A decision is not evidence that it has been implemented. Update `status`, `stage`, `next`, and dependencies only as warranted; do not claim `accepted` while any question remains unanswered, including blocked ones, or use a `done` stage to hide work. A clarification request is not a ruling: reply without closing the question. For a partial answer, record the settled part and retain a narrower open question with its directive.\n- **Save each coherent update promptly**, rather than waiting for every document in the batch. The coordinator records rulings before handing those documents to a writer. Do not overwrite another writer's changes; if the served checkout is unavailable or the edit conflicts, report that obstacle explicitly instead of claiming the interface has updated.\n- **Then check the affected documents and deliver the comment responses.** Deliver responses for recorded rulings promptly, without waiting for downstream work or the rest of the batch. A response says what was recorded and what remains unbuilt. Do not claim the question is settled while its document is still open. Missing checker tooling does not justify postponing the saved update. Vantage cannot verify from prose alone that a ruling was incorporated correctly or enforce this ordering on an external agent.\n\n### Tables, task lists, and math\n- **Tables**: Use standard markdown tables for structured comparisons and schemas.\n- **Task lists**: Use `- [ ]` and `- [x]` for actionable checklists and status tracking.\n- **LaTeX Math**: Use `$$...$$` for *all* KaTeX math — display blocks (`$$` alone on its own lines) and inline alike (`$$E = mc^2$$` mid-sentence).\n - Single dollars are **not** math delimiters: `$HOME` and `$100` stay literal, so prose and shell snippets are safe to write as-is.\n";
2649
2654
  //#endregion
2650
2655
  export { type DirectivePair, type DirectiveParse, type DirectiveVocabulary, type DocStatus, type FrontmatterFormat, type FrontmatterProblem, type KeyTable, type KeyVocabulary, type MalformedDirective, type ParsedDirective, type ParsedFrontmatter, type Pipeline, type PipelineOptions, type RenderMermaidOptions, type RenderOptions, type RenderResult, type ResolveLinkOptions, type VantageAlert, type VantageFrontmatter, type VantageFrontmatterIssue, type VantageOqStatus, type VantageQuestionName, rehypeSourceLines, rehypeVantageAnchors, rehypeVantageDirectives };
2651
2656
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/renderMarkdown.ts","../../../node_modules/@types/hast/index.d.ts","../src/rehypeVantageAlerts.ts","../src/rehypeSourceLines.ts","../src/rehypeVantageDirectives.ts","../src/rehypeVantageAnchors.ts","../src/vantageDirectives.ts","../src/remarkPlugins.ts","../src/pipeline.ts","../src/scrollToLineAnchor.ts","../src/lineAnchor.ts","../src/frontmatter.ts","../src/vantageFrontmatter.ts","../src/sanitize.ts","../src/renderMermaidBlocks.ts","../src/mermaidTheme.ts","../src/resolveLinks.ts","../src/styleGuide.ts"],"x_google_ignoreList":[0,1,3],"mappings":"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A;EACA;EACA;EACA,sBAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;EACL,KAAK;EACL,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX,UAAU;EACV;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN;EACA;EACA;EACA;EACA,qBAAqB;EACrB,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC,sEAAsE;;;;;;;;;KAW/D,iBAAiB,wBAAwB;;;;;;UAOpC;EACb,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;KASE,cAAc,qBAAqB;;;;;;;;;UAU9B;EACb,SAAS;EACT,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;UAsDO,aAAa;;;;EAI1B,OAAO;;;;;;;;;UAUM,gBAAgB;;;;EAI7B;;;;;;;;;UAUa,eAAe;;;;EAI5B,UAAU;;;;;;UAQG,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA;;;;EAIA,YAAY;;;;EAIZ,UAAU;;;;;EAKV,UAAU;;;;EAIV,OAAO;;;;;UAMM,oBAAoB;;;;;;;;UASpB,aAAa;;;;EAI1B;;;;EAIA,UAAU;;;;EAIV,OAAO;;;;;UAMM,iBAAiB;;;;UAKjB,aAAa;;;;EAI1B;;;;EAIA,OAAO;;;;;UAMM,iBAAiB;;;;;;;;;;;;qBC92BrB;KAQD,uBAAuB;;qBAUtB,cAAc,SAAS,OAAO;;;;;;;;;;;;;;wBA+C3B,wBACN,MAAM;;;UCtEC;;;;;;;EAOf;;cAkBI,mBAAmB,QAAQ,4BAA4B;;;cCyevD,yBAAyB,WAAW;;;iBC5gBlB,yBACd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCHH;;;;;;;;;;;;;;;;;;;;qBAqBA;;;;;;;;;;;;;;;;;;;;;;;;;qBAgCA;;KAGD,8BAA8B;;wBAG1B,oBAAoB,eAAe,QAAQ;;;;;;;qBAU9C;;qBAGA;;;;;;;;qBASA;;;;;;qBAOA;;;;;;;;qBASA;;qBAUA;;qBAGA;;;;;;;;;;;qBAkBA;;;;;;;;;;qBAWA;;;;;;;;;;;;;;;;;;;;;qBA0GA;;;;;;;;;;;;;;;;;;;;;qBA+CA;;;;;;;;;KAUD,+BAA+B;;;;;;;;qBAS9B,yBAAyB,SACpC,OAAO;;;;;;;;wBAcO,gBAAgB,eAAe;;;;;;;;;;;;wBAkB/B,mBAAmB,QAAQ;;KAK/B;;KAGA,WAAW,SAAS,eAAe;;KAGnC,sBAAsB,SAChC,eAAe;;;;;;;;;;;;;;;;;;;;;qBA8BJ,sBAAsB;UAoElB;EACf;;EAEA;;EAEA;;EAEA;EACA;;UAGe;EACf;EACA;;EAEA;;;EAGA,OAAO;;;UAIQ;EACf;;EAEA;;EAEA;;KAGU,iBAAiB,kBAAkB;;;;;;;;wBA6B/B,mBAAmB;;;;;;;;;wBAwCnB,sBAAsB,kBAAkB;;;;;;;;;wBC9iBxC,mBACd,UAAS,kBACR;;;UC0Bc;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;UAGe;EACf,eAAe;EACf,eAAe;;;;;;;;;;;;;;wBA4ED,cAAc,UAAS,kBAAuB;;;;;;;;;;;;wBCxI9C,0BAA0B,WAAW;;;;;;;;wBAarC,mBACd,WAAW,aACX;;;;;;;;;;;;;;;;wBCfc,gBACd;EACG;EAAe;;;;;;;;KCRR;;;;;;;;;;;;;;;;UAiBK;EACf;;EAEA;EACA;EACA;EACA;;UAGe;EACf,aAAa;EACb;EACA,QAAQ;;;;;;;;;;EAUR;;;;;;EAMA,UAAU;;;;;;wBAOI,iBAAiB,kBAAkB;;;;;;;;;;;;;;qBC1BtC;KAOD,oBAAoB;;qBAGnB;;;;;;;;;;qBAWA,kBAAkB,SAC7B,OAAO,mBAAmB;;;;;;;;KAehB;EACN;EAAqB;;EACrB;EAAqB;;EACrB;EAAmB;EAAa;EAAgB;;EAChD;EAA4B;;EAC5B;EAA+B,MAAM;EAAW;;UAErC;;EAEf,aAAa;;EAEb,QAAQ;;;wBAWM,YAAY,iBAAiB,SAAS;;;;;;;wBAsBtC,uBACd,aAAa,0BACZ;;;KChGE,gBAAgB;qBAuVR,YAAU;;;;;;;;;;;;;qBAgVV,gBAAgB;;;;;;;;;;;;;;;;UCrqBZ;;EAEf;;EAEA,WAAW,cAAc,OAAO;;;;;;;;;;;;;;;;;;;wBAoBZ,oBACpB,WAAW,aACX,UAAS,uBACR;;;;;;;;qBCNU;;;;;;;;;;;;;qBAcA;;wBAGG;;;;;;;;;;UCrDC;;EAEf;;;;;;EAMA,YAAY,cAAc;;EAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2Bc,aACd,cACA,UAAS;;;;;;;;;;;;;;;;;;;;qBC7BE"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/renderMarkdown.ts","../../../node_modules/@types/hast/index.d.ts","../src/rehypeVantageAlerts.ts","../src/rehypeSourceLines.ts","../src/rehypeVantageDirectives.ts","../src/rehypeVantageAnchors.ts","../src/vantageDirectives.ts","../src/remarkPlugins.ts","../src/pipeline.ts","../src/scrollToLineAnchor.ts","../src/lineAnchor.ts","../src/frontmatter.ts","../src/vantageFrontmatter.ts","../src/sanitize.ts","../src/renderMermaidBlocks.ts","../src/mermaidTheme.ts","../src/resolveLinks.ts","../src/styleGuide.ts"],"x_google_ignoreList":[0,1,3],"mappings":"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A;EACA;EACA;EACA,sBAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;EACf,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;EACL,KAAK;EACL,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX,UAAU;EACV;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN;EACA;EACA;EACA;EACA,qBAAqB;EACrB,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;EACA;EACA;EACA;EACA,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC,sEAAsE;;;;;;;;;KAW/D,iBAAiB,wBAAwB;;;;;;UAOpC;EACb,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;KASE,cAAc,qBAAqB;;;;;;;;;UAU9B;EACb,SAAS;EACT,SAAS;EACT,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;UAsDO,aAAa;;;;EAI1B,OAAO;;;;;;;;;UAUM,gBAAgB;;;;EAI7B;;;;;;;;;UAUa,eAAe;;;;EAI5B,UAAU;;;;;;UAQG,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA,OAAO;;;;;UAMM,oBAAoB;;;;UAKpB,gBAAgB;;;;EAI7B;;;;EAIA;;;;EAIA,YAAY;;;;EAIZ,UAAU;;;;;EAKV,UAAU;;;;EAIV,OAAO;;;;;UAMM,oBAAoB;;;;;;;;UASpB,aAAa;;;;EAI1B;;;;EAIA,UAAU;;;;EAIV,OAAO;;;;;UAMM,iBAAiB;;;;UAKjB,aAAa;;;;EAI1B;;;;EAIA,OAAO;;;;;UAMM,iBAAiB;;;;;;;;;;;;qBC92BrB;KAQD,uBAAuB;;qBAUtB,cAAc,SAAS,OAAO;;;;;;;;;;;;;;wBA+C3B,wBACN,MAAM;;;UCtEC;;;;;;;EAOf;;cAkBI,mBAAmB,QAAQ,4BAA4B;;;cCyevD,yBAAyB,WAAW;;;iBC5gBlB,yBACd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCHH;;;;;;;;;;;;;;;;;;;;qBAqBA;;;;;;;;;;;;;;;;;;;;;;;;;qBAgCA;;KAGD,8BAA8B;;wBAG1B,oBAAoB,eAAe,QAAQ;;;;;;;qBAU9C;;qBAGA;;;;;;;;qBASA;;;;;;qBAOA;;;;;;;;qBASA;;qBAUA;;qBAGA;;;;;;;;;;;qBAkBA;;;;;;;;;;qBAWA;;;;;;;;;;;;;;;;;;;;;qBA0GA;;;;;;;;;;;;;;;;;;;;;qBA+CA;;;;;;;;;KAUD,+BAA+B;;;;;;;;qBAS9B,yBAAyB,SACpC,OAAO;;;;;;;;wBAcO,gBAAgB,eAAe;;;;;;;;;;;;wBAkB/B,mBAAmB,QAAQ;;KAK/B;;KAGA,WAAW,SAAS,eAAe;;KAGnC,sBAAsB,SAChC,eAAe;;;;;;;;;;;;;;;;;;;;;qBA8BJ,sBAAsB;UAoElB;EACf;;EAEA;;EAEA;;EAEA;EACA;;UAGe;EACf;EACA;;EAEA;;;EAGA,OAAO;;;UAIQ;EACf;;EAEA;;EAEA;;KAGU,iBAAiB,kBAAkB;;;;;;;;wBA6B/B,mBAAmB;;;;;;;;;wBAwCnB,sBAAsB,kBAAkB;;;;;;;;;wBC9iBxC,mBACd,UAAS,kBACR;;;UC0Bc;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;EAOA;;UAGe;EACf,eAAe;EACf,eAAe;;;;;;;;;;;;;;wBA4ED,cAAc,UAAS,kBAAuB;;;;;;;;;;;;wBCxI9C,0BAA0B,WAAW;;;;;;;;wBAarC,mBACd,WAAW,aACX;;;;;;;;;;;;;;;;wBCfc,gBACd;EACG;EAAe;;;;;;;;KCRR;;;;;;;;;;;;;;;;UAiBK;EACf;;EAEA;EACA;EACA;EACA;;UAGe;EACf,aAAa;EACb;EACA,QAAQ;;;;;;;;;;EAUR;;;;;;EAMA,UAAU;;;;;;wBAOI,iBAAiB,kBAAkB;;;;;;;;;;;;;;qBC1BtC;KAOD,oBAAoB;;qBAGnB;;;;;;;;;;qBAWA,kBAAkB,SAC7B,OAAO,mBAAmB;;;;;;;;KAehB;EACN;EAAqB;;EACrB;EAAqB;;EACrB;EAAmB;EAAa;EAAgB;;EAChD;EAA4B;;EAC5B;EAA+B,MAAM;EAAW;;UAErC;;EAEf,aAAa;;EAEb,QAAQ;;;wBAWM,YAAY,iBAAiB,SAAS;;;;;;;wBAsBtC,uBACd,aAAa,0BACZ;;;KChGE,gBAAgB;qBAuVR,YAAU;;;;;;;;;;;;;qBAgVV,gBAAgB;;;;;;;;;;;;;;;;UCrqBZ;;EAEf;;EAEA,WAAW,cAAc,OAAO;;;;;;;;;;;;;;;;;;;wBAoBZ,oBACpB,WAAW,aACX,UAAS,uBACR;;;;;;;;qBCNU;;;;;;;;;;;;;qBAcA;;wBAGG;;;;;;;;;;UCrDC;;EAEf;;;;;;EAMA,YAAY,cAAc;;EAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2Bc,aACd,cACA,UAAS;;;;;;;;;;;;;;;;;;;;;;;;qBCzBE;qBAWA"}
package/dist/index.js CHANGED
@@ -2655,6 +2655,20 @@ function resolveLinks(html, options = {}) {
2655
2655
  * Every rule stated here should be one a checker can enforce or a renderer
2656
2656
  * actually cares about — if a line is neither, it does not belong.
2657
2657
  */
2658
+ /**
2659
+ * Shared by the style guide and every review clipboard payload. These are
2660
+ * authoring instructions, not a claim that the checker measures agent latency.
2661
+ */
2662
+ const ANSWER_PROCESSING_GUIDE = `### Record rulings before downstream work
2663
+
2664
+ Vantage derives planning state from saved Markdown. Pending review comments can show an answer waiting on the agent, but an agent reply does not settle the question in the document; replying first can make it need the human again.
2665
+
2666
+ - **Record a clear ruling first**, in the checkout Vantage serves, before launching or continuing downstream work based on it. Do not wait for a larger rewrite, implementation, independent review, a full test suite, or a commit. A saved edit in another worktree does not update this interface.
2667
+ - **Finish a small, coherent document update.** Fold the ruling into the body it governs, then compact the settled question into a Decision Ledger row retaining its exact ID, decision, date, and a link to the governing section. Remove the question's directive only with that compaction; repair inbound Markdown links to its former anchor in the same update. Keep question-specific \`depends-on\` fragments when the ledger retains their IDs. Preserve the decision, not the discarded options and leaning.
2668
+ - **Keep unfinished work visible.** A decision is not evidence that it has been implemented. Update \`status\`, \`stage\`, \`next\`, and dependencies only as warranted; do not claim \`accepted\` while any question remains unanswered, including blocked ones, or use a \`done\` stage to hide work. A clarification request is not a ruling: reply without closing the question. For a partial answer, record the settled part and retain a narrower open question with its directive.
2669
+ - **Save each coherent update promptly**, rather than waiting for every document in the batch. The coordinator records rulings before handing those documents to a writer. Do not overwrite another writer's changes; if the served checkout is unavailable or the edit conflicts, report that obstacle explicitly instead of claiming the interface has updated.
2670
+ - **Then check the affected documents and deliver the comment responses.** Deliver responses for recorded rulings promptly, without waiting for downstream work or the rest of the batch. A response says what was recorded and what remains unbuilt. Do not claim the question is settled while its document is still open. Missing checker tooling does not justify postponing the saved update. Vantage cannot verify from prose alone that a ruling was incorporated correctly or enforce this ordering on an external agent.
2671
+ `;
2658
2672
  const STYLE_GUIDE = `## Markdown style guide (for Vantage viewer)
2659
2673
 
2660
2674
  When writing or updating markdown documents that will be viewed in Vantage, follow these conventions:
@@ -2862,6 +2876,7 @@ A question a document leaves for a human to rule on is an *Open Question*, writt
2862
2876
  - **Write a question as a list item.** Outside a list, a question runs from the block its directive lands on through the blocks after it, up to the next heading (for a question written as a heading, the next one of its level or higher), the next rule or the next question, so whatever prose follows it before then is read as part of it. There the directive goes above the question's title, since every viewer reads the question's marker from the block it lands on: a directive below the bold title lands on the block after it, which carries no marker, so every viewer reads the question as open. \`vantage-check\` reports that as \`vantage/question-name\`.
2863
2877
  - **\`oq\` is the name \`question\` replaces.** Vantage keeps reading \`<!-- vantage: oq id=OQ-9 leaning="…" -->\` as it always has, and \`vantage-check\` warns on it (\`vantage/oq-deprecated\`) with the \`question\` to write instead, keys unchanged. Vantage before 0.8 drops \`question\` whole, so a reader still on 0.7 gets no one-click answer and no anchor on a question written with it, and misreads nothing. So keep an \`oq\` on an open question unless you know every reader of the repository is on 0.8 or later. A repository whose readers are still on 0.7 says so with a \`target\` before 0.8, such as \`target = "0.7"\`: there an open question takes \`oq\`, new ones included, and \`vantage-check\` asks for \`oq\` rather than \`question\` on one. **Never put \`oq\` on a \u{1F512} or \u2705 question**: every Vantage before 0.8 offers the one-click button on every \`oq\`, whatever its marker says, and on a question with no leaning it files the literal text "Take the stated leaning." \`vantage-check\` reports that as an error (\`vantage/question-name\`).
2864
2878
 
2879
+ ${ANSWER_PROCESSING_GUIDE}
2865
2880
  ### Tables, task lists, and math
2866
2881
  - **Tables**: Use standard markdown tables for structured comparisons and schemas.
2867
2882
  - **Task lists**: Use \`- [ ]\` and \`- [x]\` for actionable checklists and status tracking.
@@ -2869,6 +2884,6 @@ A question a document leaves for a human to rule on is an *Open Question*, writt
2869
2884
  - Single dollars are **not** math delimiters: \`$HOME\` and \`$100\` stay literal, so prose and shell snippets are safe to write as-is.
2870
2885
  `;
2871
2886
  //#endregion
2872
- export { ALERT_TITLES, COLOR_THEME_ATTRIBUTE, COLOR_THEME_SOURCE_ATTRIBUTE, DIRECTIVE_NAMES, DIRECTIVE_VOCABULARY, DOC_STATUSES, DOC_STATUS_TONES, SAFE_STYLE, STYLE_GUIDE, VANTAGE_ALERTS, VANTAGE_BADGES, VANTAGE_COLLAPSED, VANTAGE_EMPHASIS, VANTAGE_FRONTMATTER_KEYS, VANTAGE_LEANING_ATTRIBUTE, VANTAGE_OQ_ATTRIBUTE, VANTAGE_OQ_HOST_TARGETS, VANTAGE_OQ_STATUS, VANTAGE_OQ_STATUS_LABEL, VANTAGE_QUESTION_ATTRIBUTE, VANTAGE_QUESTION_NAMES, VANTAGE_QUESTION_SELECTOR, VANTAGE_RUNS, VANTAGE_SENTINEL, VANTAGE_TONES, buildPipeline, buildRemarkPlugins, clearLineAnchorHighlights, currentColorTheme, hasVantageSentinel, isDocStatus, isQuestionDirective, parseFrontmatter, parseLineAnchor, parseVantageDirective, questionOffersTake, readVantageFrontmatter, rehypeSourceLines, rehypeVantageAlerts, rehypeVantageAnchors, rehypeVantageDirectives, renderMarkdown, renderMermaidBlocks, resolveLinks, sanitizeSchema, scrollToLineAnchor, vantageOqStatus };
2887
+ export { ALERT_TITLES, ANSWER_PROCESSING_GUIDE, COLOR_THEME_ATTRIBUTE, COLOR_THEME_SOURCE_ATTRIBUTE, DIRECTIVE_NAMES, DIRECTIVE_VOCABULARY, DOC_STATUSES, DOC_STATUS_TONES, SAFE_STYLE, STYLE_GUIDE, VANTAGE_ALERTS, VANTAGE_BADGES, VANTAGE_COLLAPSED, VANTAGE_EMPHASIS, VANTAGE_FRONTMATTER_KEYS, VANTAGE_LEANING_ATTRIBUTE, VANTAGE_OQ_ATTRIBUTE, VANTAGE_OQ_HOST_TARGETS, VANTAGE_OQ_STATUS, VANTAGE_OQ_STATUS_LABEL, VANTAGE_QUESTION_ATTRIBUTE, VANTAGE_QUESTION_NAMES, VANTAGE_QUESTION_SELECTOR, VANTAGE_RUNS, VANTAGE_SENTINEL, VANTAGE_TONES, buildPipeline, buildRemarkPlugins, clearLineAnchorHighlights, currentColorTheme, hasVantageSentinel, isDocStatus, isQuestionDirective, parseFrontmatter, parseLineAnchor, parseVantageDirective, questionOffersTake, readVantageFrontmatter, rehypeSourceLines, rehypeVantageAlerts, rehypeVantageAnchors, rehypeVantageDirectives, renderMarkdown, renderMermaidBlocks, resolveLinks, sanitizeSchema, scrollToLineAnchor, vantageOqStatus };
2873
2888
 
2874
2889
  //# sourceMappingURL=index.js.map