← stark AI DeveloperCONTENT HISTORY

Update to stark AI Developer

Snapshot Nov 9, 2026 · 00:38 UTC · version 1.23.0

Collection source: downloaded plugin package.

WHAT CHANGED

Instructions updated for visual-reports

Full description — Now says: reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save stark AI Developer and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Full description

Before

Oct 29, 2026 · 12:06 UTC

HTML reports with a guided topic sequence when the selected authoring and renderer path supports it; otherwise use the complete reading mode. Keep genuine comparisons together and preserve complete

After

Nov 9, 2026 · 00:38 UTC

reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline

Skill instructions

Before

Oct 29, 2026 · 12:06 UTC

HTML reports with a guided topic sequence when the selected authoring and renderer path supports it; otherwise use the complete reading mode. Keep genuine comparisons together and preserve complete HTML/Markdown/JSON exports. Use when ri...

After

Nov 9, 2026 · 00:38 UTC

reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks ...

Supporting files

Before

Oct 29, 2026 · 12:06 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":692},{"relative_path":"assets/completion-example.md","size_in_bytes":3259},{"relative_path":"assets/graphite-grain/configurator.html","size_in_bytes":18080},{"relative_path":"assets/...

After

Nov 9, 2026 · 00:38 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":779},{"relative_path":"assets/completion-example.md","size_in_bytes":3259},{"relative_path":"assets/graphite-grain/configurator.html","size_in_bytes":18080},{"relative_path":"assets/...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,11 +1,11 @@
 ---
 name: visual-reports
-description: Create and update visual HTML reports with a guided topic sequence when the selected authoring and renderer path supports it; otherwise use the complete reading mode. Keep genuine comparisons together and preserve complete HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.
+description: Create and update visual reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.
 license: Apache-2.0
 metadata:
   author: stark-ai-de
   category: engineering-workflows
-  version: "1.1.1"
+  version: "1.3.1"
 ---
 
 # Visual Reports
@@ -17,13 +17,13 @@
 needs an action, a decision or a summary before choosing the format. Preserve facts, evidence
 states, sources and decisive limitations. Do not invent quantities to fill charts.
 
-Use a guided topic sequence only when the selected authoring and renderer path
-actually supports it. The current renderer supports its existing `reading` mode and
-explicit `slides` blocks; ordinary sections are not converted to guided pages. For
-those reports, use the complete reading-mode output. Preserve explicitly requested
-layouts. Follow [the reading contract](references/report-contract.md#guided-reading-when-supported)
-before choosing blocks; it defines the supported fallback and exceptions for layouts
-and joint comparisons.
+Prefer a native interactive visualization as the primary view when the current host can invoke and display one that fully serves the report. Otherwise display the verified HTML report. Keep the same concise reader contract and complete HTML, Markdown and JSON exports from one validated snapshot in either case. Follow [presentation selection and fallback](references/report-contract.md#native-presentation-and-html-fallback).
+
+For v2 reports, the shared renderer starts with one guided topic at a time. Group
+related sections into topics; keep a meaningful diagram above concise points and
+keep genuine comparisons together. The author explicitly selects `reading` or
+`slides` when requested. Follow [the reading contract](references/report-contract.md#guided-reading-when-supported)
+for layout, accessible navigation and source fidelity.
 
 ## When to use
 
@@ -68,12 +68,11 @@
 2. Inspect source authority and evidence gaps. For a continuation, read the current
    model/revision and reuse its IDs, reviewed assets and sources. Keep consumer
    source registers authoritative; do not replace them for a presentation change.
-3. Set the topic sequence before selecting visuals. Check whether the selected authoring and renderer path supports guided topic
-   navigation. If it does, follow [the guided reading form](references/report-contract.md#guided-reading-when-supported)
-   on the first draft and group each topic's bullets and diagram together. Otherwise,
-   use the existing complete `reading` mode; do not invent a presentation field or
-   renderer behavior. Preserve explicit layout choices. Follow [layout and navigation](references/report-contract.md#guided-layout-and-navigation)
-   when that presentation is supported.
+3. Set the topic sequence before selecting visuals. Follow [the guided reading form](references/report-contract.md#guided-reading-when-supported)
+   on the first draft: group each topic's diagram and bullets in the documented
+   `topics` model and place a useful graphic before its explanations. Use a chart
+   only for actual quantitative data. Preserve explicitly requested layouts; `reading`
+   and authored `slides` remain available. Follow [layout and navigation](references/report-contract.md#guided-layout-and-navigation).
    Lead with the result or a real next action; a summary needs no invented task.
    Apply the self-contained ADHD writing profile when requested.
 4. Compose registered blocks freely. Use comparison matrices for common criteria,
@@ -87,10 +86,7 @@
    directory or a managed store with expected-base updates. Use the host's
    session-local visualization directory when provided. HTML remains readable
    offline without JavaScript. No per-report dependency installation or network.
-7. For requested visual delivery/iteration, reuse the session-owned preview and
-   browser tab where possible; start a loopback preview if needed. Verify the actual
-   URL and honor host browser-tool restrictions. Offer the desktop browser tab and
-   Microsoft Edge where available. New versions require Apply; unsaved drafts block replacement.
+7. Select and verify the primary presentation using [native presentation and HTML fallback](references/report-contract.md#native-presentation-and-html-fallback). If native is unsuitable, unavailable or unverified, display the HTML report through an actually verified host opening route. For requested visual delivery/iteration, reuse the session-owned preview and browser tab where possible; start a loopback preview if needed. Verify the actual URL and honor host browser-tool restrictions. Offer the desktop browser tab and Microsoft Edge where available. New versions require Apply; unsaved drafts block replacement.
 8. Keep exports, style and version controls in a closed, labeled footer toolbox,
    separate from report content. Check semantic duplication, fidelity, relevant
    interactions and delivery. Use the bounded owning tests
@@ -144,7 +140,7 @@
 
 ## Output format
 
-Deliver the verified preview/opening route plus standalone HTML and complete
+Deliver the verified native view when suitable, otherwise the verified HTML preview/opening route, plus standalone HTML and complete
 exports. State significant source gaps and actual verification limits. If files
 changed, include a concise verified affected-file tree with added/changed/moved/
 deleted/context labels and maintained/generated/local ownership as described in
@@ -152,7 +148,7 @@
 
 ## Completion criteria
 
-Confirm source fidelity, visible caveats, full exports and the actual opening route.
+Confirm source fidelity, visible caveats, full exports and the actual display or HTML opening route.
 Record unrun gates without implying they passed.
 
 ## Failure modes
Full technical diff · 3 changed fields

changed /description

BEFORE
"Create and update visual HTML reports with a guided topic sequence when the selected authoring and renderer path supports it; otherwise use the complete reading mode. Keep genuine comparisons together and preserve complete HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice."
AFTER
"Create and update visual reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice."

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 692
  },
  {
    "relative_path": "assets/completion-example.md",
    "size_in_bytes": 3259
  },
  {
    "relative_path": "assets/graphite-grain/configurator.html",
    "size_in_bytes": 18080
  },
  {
    "relative_path": "assets/graphite-grain/configurator.mjs",
    "size_in_bytes": 7036
  },
  {
    "relative_path": "assets/graphite-grain/relaxed.css",
    "size_in_bytes": 4343
  },
  {
    "relative_path": "assets/openai-icon.png",
    "size_in_bytes": 10528
  },
  {
    "relative_path": "assets/openai-icon.svg",
    "size_in_bytes": 318
  },
  {
    "relative_path": "assets/preview.js",
    "size_in_bytes": 3493
  },
  {
    "relative_path": "assets/report-recipes.mjs",
    "size_in_bytes": 19665
  },
  {
    "relative_path": "assets/report-runtime.css",
    "size_in_bytes": 10130
  },
  {
    "relative_path": "assets/report-runtime.js",
    "size_in_bytes": 20995
  },
  {
    "relative_path": "assets/report-shell.html",
    "size_in_bytes": 14431
  },
  {
    "relative_path": "assets/vendor/NOTICE.txt",
    "size_in_bytes": 114402
  },
  {
    "relative_path": "assets/vendor/generator.mjs",
    "size_in_bytes": 1773599
  },
  {
    "relative_path": "assets/vendor/icons.mjs",
    "size_in_bytes": 2263
  },
  {
    "relative_path": "assets/vendor/manifest.json",
    "size_in_bytes": 19360
  },
  {
    "relative_path": "references/comparisons.md",
    "size_in_bytes": 4966
  },
  {
    "relative_path": "references/filesystem-handoff.md",
    "size_in_bytes": 4775
  },
  {
    "relative_path": "references/managed-reports.md",
    "size_in_bytes": 5284
  },
  {
    "relative_path": "references/markdown-input.md",
    "size_in_bytes": 3510
  },
  {
    "relative_path": "references/model-v2.md",
    "size_in_bytes": 8906
  },
  {
    "relative_path": "references/renderer.md",
    "size_in_bytes": 25127
  },
  {
    "relative_path": "references/report-contract.md",
    "size_in_bytes": 30989
  },
  {
    "relative_path": "references/selection.md",
    "size_in_bytes": 5049
  },
  {
    "relative_path": "scripts/benchmark.mjs",
    "size_in_bytes": 2218
  },
  {
    "relative_path": "scripts/cache_icon.py",
    "size_in_bytes": 9410
  },
  {
    "relative_path": "scripts/export-assets.mjs",
    "size_in_bytes": 4151
  },
  {
    "relative_path": "scripts/lib/blocks-v2.mjs",
    "size_in_bytes": 22071
  },
  {
    "relative_path": "scripts/lib/cli.mjs",
    "size_in_bytes": 3818
  },
  {
    "relative_path": "scripts/lib/export-path.mjs",
    "size_in_bytes": 1684
  },
  {
    "relative_path": "scripts/lib/generator-entry.mjs",
    "size_in_bytes": 472
  },
  {
    "relative_path": "scripts/lib/markdown-input.mjs",
    "size_in_bytes": 9445
  },
  {
    "relative_path": "scripts/lib/preview.mjs",
    "size_in_bytes": 4977
  },
  {
    "relative_path": "scripts/lib/report-state.mjs",
    "size_in_bytes": 13729
  },
  {
    "relative_path": "scripts/lib/report-store.mjs",
    "size_in_bytes": 7141
  },
  {
    "relative_path": "scripts/lib/templates.mjs",
    "size_in_bytes": 4743
  },
  {
    "relative_path": "scripts/render-report.mjs",
    "size_in_bytes": 35463
  },
  {
    "relative_path": "tests/browser-delivery.mjs",
    "size_in_bytes": 25936
  },
  {
    "relative_path": "tests/browser-smoke.py",
    "size_in_bytes": 15887
  },
  {
    "relative_path": "tests/cache-icon.test.mjs",
    "size_in_bytes": 5077
  },
  {
    "relative_path": "tests/export-assets.test.mjs",
    "size_in_bytes": 5604
  },
  {
    "relative_path": "tests/render-report.test.mjs",
    "size_in_bytes": 13276
  },
  {
    "relative_path": "tests/report-state.test.mjs",
    "size_in_bytes": 11935
  },
  {
    "relative_path": "tests/v2.test.mjs",
    "size_in_bytes": 21600
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 779
  },
  {
    "relative_path": "assets/completion-example.md",
    "size_in_bytes": 3259
  },
  {
    "relative_path": "assets/graphite-grain/configurator.html",
    "size_in_bytes": 18080
  },
  {
    "relative_path": "assets/graphite-grain/configurator.mjs",
    "size_in_bytes": 7036
  },
  {
    "relative_path": "assets/graphite-grain/relaxed.css",
    "size_in_bytes": 4343
  },
  {
    "relative_path": "assets/openai-icon.png",
    "size_in_bytes": 10528
  },
  {
    "relative_path": "assets/openai-icon.svg",
    "size_in_bytes": 318
  },
  {
    "relative_path": "assets/preview.js",
    "size_in_bytes": 3493
  },
  {
    "relative_path": "assets/report-recipes.mjs",
    "size_in_bytes": 19665
  },
  {
    "relative_path": "assets/report-runtime.css",
    "size_in_bytes": 16744
  },
  {
    "relative_path": "assets/report-runtime.js",
    "size_in_bytes": 24505
  },
  {
    "relative_path": "assets/report-shell.html",
    "size_in_bytes": 14431
  },
  {
    "relative_path": "assets/vendor/NOTICE.txt",
    "size_in_bytes": 114402
  },
  {
    "relative_path": "assets/vendor/generator.mjs",
    "size_in_bytes": 1773599
  },
  {
    "relative_path": "assets/vendor/icons.mjs",
    "size_in_bytes": 2263
  },
  {
    "relative_path": "assets/vendor/manifest.json",
    "size_in_bytes": 19360
  },
  {
    "relative_path": "references/comparisons.md",
    "size_in_bytes": 4966
  },
  {
    "relative_path": "references/filesystem-handoff.md",
    "size_in_bytes": 4775
  },
  {
    "relative_path": "references/managed-reports.md",
    "size_in_bytes": 5284
  },
  {
    "relative_path": "references/markdown-input.md",
    "size_in_bytes": 4034
  },
  {
    "relative_path": "references/model-v2.md",
    "size_in_bytes": 10376
  },
  {
    "relative_path": "references/renderer.md",
    "size_in_bytes": 25109
  },
  {
    "relative_path": "references/report-contract.md",
    "size_in_bytes": 33856
  },
  {
    "relative_path": "references/selection.md",
    "size_in_bytes": 4955
  },
  {
    "relative_path": "scripts/benchmark.mjs",
    "size_in_bytes": 2218
  },
  {
    "relative_path": "scripts/cache_icon.py",
    "size_in_bytes": 9410
  },
  {
    "relative_path": "scripts/export-assets.mjs",
    "size_in_bytes": 4151
  },
  {
    "relative_path": "scripts/lib/blocks-v2.mjs",
    "size_in_bytes": 22199
  },
  {
    "relative_path": "scripts/lib/cli.mjs",
    "size_in_bytes": 3818
  },
  {
    "relative_path": "scripts/lib/export-path.mjs",
    "size_in_bytes": 1684
  },
  {
    "relative_path": "scripts/lib/generator-entry.mjs",
    "size_in_bytes": 472
  },
  {
    "relative_path": "scripts/lib/markdown-input.mjs",
    "size_in_bytes": 10062
  },
  {
    "relative_path": "scripts/lib/preview.mjs",
    "size_in_bytes": 4977
  },
  {
    "relative_path": "scripts/lib/report-state.mjs",
    "size_in_bytes": 13729
  },
  {
    "relative_path": "scripts/lib/report-store.mjs",
    "size_in_bytes": 7141
  },
  {
    "relative_path": "scripts/lib/templates.mjs",
    "size_in_bytes": 4771
  },
  {
    "relative_path": "scripts/render-report.mjs",
    "size_in_bytes": 41009
  },
  {
    "relative_path": "tests/browser-delivery.mjs",
    "size_in_bytes": 26007
  },
  {
    "relative_path": "tests/browser-smoke.py",
    "size_in_bytes": 15887
  },
  {
    "relative_path": "tests/browser-topics.mjs",
    "size_in_bytes": 21624
  },
  {
    "relative_path": "tests/cache-icon.test.mjs",
    "size_in_bytes": 5077
  },
  {
    "relative_path": "tests/export-assets.test.mjs",
    "size_in_bytes": 5604
  },
  {
    "relative_path": "tests/render-report.test.mjs",
    "size_in_bytes": 14636
  },
  {
    "relative_path": "tests/report-state.test.mjs",
    "size_in_bytes": 11935
  },
  {
    "relative_path": "tests/topics.test.mjs",
    "size_in_bytes": 6550
  },
  {
    "relative_path": "tests/v2.test.mjs",
    "size_in_bytes": 21600
  }
]

changed /skill_md_contents

BEFORE
"---\nname: visual-reports\ndescription: Create and update visual HTML reports with a guided topic sequence when the selected authoring and renderer path supports it; otherwise use the complete reading mode. Keep genuine comparisons together and preserve complete HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.\nlicense: Apache-2.0\nmetadata:\n  author: stark-ai-de\n  category: engineering-workflows\n  version: \"1.1.1\"\n---\n\n# Visual Reports\n\n## Goal\n\nMake the answer, decision or next action easy to find. Use the shared renderer,\nclear hierarchy, short lists and meaningful visuals. Identify whether the reader\nneeds an action, a decision or a summary before choosing the format. Preserve facts, evidence\nstates, sources and decisive limitations. Do not invent quantities to fill charts.\n\nUse a guided topic sequence only when the selected authoring and renderer path\nactually supports it. The current renderer supports its existing `reading` mode and\nexplicit `slides` blocks; ordinary sections are not converted to guided pages. For\nthose reports, use the complete reading-mode output. Preserve explicitly requested\nlayouts. Follow [the reading contract](references/report-contract.md#guided-reading-when-supported)\nbefore choosing blocks; it defines the supported fallback and exceptions for layouts\nand joint comparisons.\n\n## When to use\n\nUse reports for comparisons, multi-step plans, relationships and data-rich findings\nwithin the authorized answer. Keep tiny answers in chat.\n\n## When not to use\n\nDo not use for production application UI, unrelated artwork, external service\noperation or medical/clinical advice.\n\n## Workflow\n\n| Route                | Authorized outcome                                             | Read when selected                                                                                                                             |\n| -------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| Create or update     | Complete report from the same source snapshot                  | [Reader experience](references/report-contract.md#reader-experience), [selection](references/selection.md), [v2 model](references/model-v2.md) |\n| Preview and continue | Stable local URL, version history, explicit revision switching | [Managed reports](references/managed-reports.md)                                                                                               |\n| Present or prototype | Slides, opt-in motion or validated state simulation            | [Legacy blocks and 24 recipes](references/renderer.md)                                                                                         |\n| Edit locally         | Board, flags or prompt draft with separate export              | [Editor contract](references/renderer.md#browser-state-exports-and-safety)                                                                     |\n| Explore styles       | Current, balanced and calm previews with identical facts       | [Presentation](references/report-contract.md#presentation-and-styles)                                                                          |\n| Adopt preference     | Persist an explicitly selected style in ignored local state    | [Preference contract](references/report-contract.md#local-preference)                                                                          |\n\nFor clear intent, announce the route and proceed. For a bare invocation or options\nrequest, show the complete inventory; options alone authorize no execution.\nChoose a report automatically when it improves the authorized answer, especially\ncomparisons, relationships, multi-step plans or data-rich findings. Keep one fact\nor a short action in chat. Do not impose an interview or a chart-count quota.\n\n## Inputs to inspect\n\nInspect the reader question, authoritative sources, current model/revision, evidence\ngaps, reviewed assets, repository policy and explicitly selected preferences.\n\n### Work quickly from existing context\n\n1. Read [Reader experience](references/report-contract.md#reader-experience): distinguish information,\n   completed work, required action and conditional action. A compact labeled status\n   is enough; do not repeat it as a question, legend and introductory step.\n   Use `--templates` to select one of eight\n   purpose templates and five domain profiles. Read only the needed references,\n   profile requirements and examples. Do not load an external catalog per report.\n2. Inspect source authority and evidence gaps. For a continuation, read the current\n   model/revision and reuse its IDs, reviewed assets and sources. Keep consumer\n   source registers authoritative; do not replace them for a presentation change.\n3. Set the topic sequence before selecting visuals. Check whether the selected authoring and renderer path supports guided topic\n   navigation. If it does, follow [the guided reading form](references/report-contract.md#guided-reading-when-supported)\n   on the first draft and group each topic's bullets and diagram together. Otherwise,\n   use the existing complete `reading` mode; do not invent a presentation field or\n   renderer behavior. Preserve explicit layout choices. Follow [layout and navigation](references/report-contract.md#guided-layout-and-navigation)\n   when that presentation is supported.\n   Lead with the result or a real next action; a summary needs no invented task.\n   Apply the self-contained ADHD writing profile when requested.\n4. Compose registered blocks freely. Use comparison matrices for common criteria,\n   automatic diagrams for structure and data charts for quantities. Use labeled\n   bundled icons and verified product logos when they clarify the content.\n   Preserve units, scale, direction, nulls and status semantics.\n5. Render with `scripts/render-report.mjs`. JSON v2 is canonical; v1 remains\n   supported. Optional [Markdown input](references/markdown-input.md) compiles to\n   the same model. Do not execute MDX or infer evidence from typography.\n6. Produce HTML, full Markdown and JSON from one snapshot. Use an exclusive output\n   directory or a managed store with expected-base updates. Use the host's\n   session-local visualization directory when provided. HTML remains readable\n   offline without JavaScript. No per-report dependency installation or network.\n7. For requested visual delivery/iteration, reuse the session-owned preview and\n   browser tab where possible; start a loopback preview if needed. Verify the actual\n   URL and honor host browser-tool restrictions. Offer the desktop browser tab and\n   Microsoft Edge where available. New versions require Apply; unsaved drafts block replacement.\n8. Keep exports, style and version controls in a closed, labeled footer toolbox,\n   separate from report content. Check semantic duplication, fidelity, relevant\n   interactions and delivery. Use the bounded owning tests\n   when changing the renderer; ordinary report content changes need only the\n   relevant validation/visual checks. Report measured speed separately from model\n   generation, research, cold start and first asset retrieval.\n\n## Scripts\n\nFrom the skill directory, with Node.js:\n\n```sh\nnode scripts/render-report.mjs --templates\nnode scripts/render-report.mjs --starter comparison --profile software --id options\nnode scripts/render-report.mjs --input /absolute/report.md --output /absolute/new-report\nnode scripts/render-report.mjs --create /absolute/report-store --input /absolute/report.json\nnode scripts/render-report.mjs --update /absolute/report-store --input /absolute/report.json --base REVISION\nnode scripts/render-report.mjs --preview /absolute/report-store\nnode scripts/render-report.mjs --extract /absolute/report.html --section comparison\nnode scripts/render-report.mjs --gallery /absolute/new-gallery\n```\n\n`--current` and `--history` read a managed store. `--help` prints the full CLI.\n`node --test tests/*.test.mjs` validates the skill with temporary local fixtures.\n`node scripts/benchmark.mjs` measures the mixed fixture and enforces warm p95 < 1 s.\n`scripts/export-assets.mjs` exports only explicitly requested, committed,\ndigest-pinned consumer bundles; `--check` is read-only. It does not update pinned\nconsumers automatically.\n\n`scripts/cache_icon.py` fetches only an explicitly selected reviewed public asset\ninto an already ignored cache, with identity, source, retrieval date and digest.\nInspect it before embedding. The renderer never fetches assets. Original code is\nApache-2.0; bundled dependencies retain their [notices](assets/vendor/NOTICE.txt).\nNo external skill text is copied.\n\n## Safety rules\n\n- Unknown is not zero or absent. Planned is not delivered; fictional is not measured.\n  A healthy-sample fraction is not elapsed-time availability.\n- Browser filters never alter source exports. Local editor drafts never mutate\n  source files or external services. Export or explicitly discard before switching.\n- Motion is opt-in, stoppable and suppressed for reduced-motion preferences.\n- Generation and loopback preview do not authorize deployment, upload, production\n  mutations or permanent preference changes.\n- Treat markup and SVG as untrusted. Reject unsupported input with its field/line;\n  never delete data or fabricate values just to pass validation.\n- If a source or logo is unavailable, mark the gap and retain the readable name.\n  If a stale update fails, inspect the new current model and reconcile deliberately.\n- Keep caches, preferences, private sources and report stores out of commits.\n  No clinical, WCAG-compliance or universal host-compatibility claims from fixtures.\n\n## Output format\n\nDeliver the verified preview/opening route plus standalone HTML and complete\nexports. State significant source gaps and actual verification limits. If files\nchanged, include a concise verified affected-file tree with added/changed/moved/\ndeleted/context labels and maintained/generated/local ownership as described in\n[filesystem handoff](references/filesystem-handoff.md).\n\n## Completion criteria\n\nConfirm source fidelity, visible caveats, full exports and the actual opening route.\nRecord unrun gates without implying they passed.\n\n## Failure modes\n\nReject invalid input with field/line diagnostics. Reconcile stale bases before\nretrying. Preserve unsaved drafts and report blocked preview routes explicitly.\n\n## References\n\n[Reader experience](references/report-contract.md#reader-experience) owns intent, guided reading,\nsummary/action states, footer tooling and the ADHD writing profile. The same\ncontract owns the default topic sequence, optional tabbed presentation, shared\nalignment and content-sized pages without internal scrolling.\nThe [general report contract](references/report-contract.md) governs source\nfidelity and reader presentation. [Comparisons](references/comparisons.md) adds\nshared-criteria and evidence rules; [selection provenance](references/selection.md)\nrecords independent mdxcn-inspired choices and upstream references.\n"
AFTER
"---\nname: visual-reports\ndescription: Create and update visual reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.\nlicense: Apache-2.0\nmetadata:\n  author: stark-ai-de\n  category: engineering-workflows\n  version: \"1.3.1\"\n---\n\n# Visual Reports\n\n## Goal\n\nMake the answer, decision or next action easy to find. Use the shared renderer,\nclear hierarchy, short lists and meaningful visuals. Identify whether the reader\nneeds an action, a decision or a summary before choosing the format. Preserve facts, evidence\nstates, sources and decisive limitations. Do not invent quantities to fill charts.\n\nPrefer a native interactive visualization as the primary view when the current host can invoke and display one that fully serves the report. Otherwise display the verified HTML report. Keep the same concise reader contract and complete HTML, Markdown and JSON exports from one validated snapshot in either case. Follow [presentation selection and fallback](references/report-contract.md#native-presentation-and-html-fallback).\n\nFor v2 reports, the shared renderer starts with one guided topic at a time. Group\nrelated sections into topics; keep a meaningful diagram above concise points and\nkeep genuine comparisons together. The author explicitly selects `reading` or\n`slides` when requested. Follow [the reading contract](references/report-contract.md#guided-reading-when-supported)\nfor layout, accessible navigation and source fidelity.\n\n## When to use\n\nUse reports for comparisons, multi-step plans, relationships and data-rich findings\nwithin the authorized answer. Keep tiny answers in chat.\n\n## When not to use\n\nDo not use for production application UI, unrelated artwork, external service\noperation or medical/clinical advice.\n\n## Workflow\n\n| Route                | Authorized outcome                                             | Read when selected                                                                                                                             |\n| -------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| Create or update     | Complete report from the same source snapshot                  | [Reader experience](references/report-contract.md#reader-experience), [selection](references/selection.md), [v2 model](references/model-v2.md) |\n| Preview and continue | Stable local URL, version history, explicit revision switching | [Managed reports](references/managed-reports.md)                                                                                               |\n| Present or prototype | Slides, opt-in motion or validated state simulation            | [Legacy blocks and 24 recipes](references/renderer.md)                                                                                         |\n| Edit locally         | Board, flags or prompt draft with separate export              | [Editor contract](references/renderer.md#browser-state-exports-and-safety)                                                                     |\n| Explore styles       | Current, balanced and calm previews with identical facts       | [Presentation](references/report-contract.md#presentation-and-styles)                                                                          |\n| Adopt preference     | Persist an explicitly selected style in ignored local state    | [Preference contract](references/report-contract.md#local-preference)                                                                          |\n\nFor clear intent, announce the route and proceed. For a bare invocation or options\nrequest, show the complete inventory; options alone authorize no execution.\nChoose a report automatically when it improves the authorized answer, especially\ncomparisons, relationships, multi-step plans or data-rich findings. Keep one fact\nor a short action in chat. Do not impose an interview or a chart-count quota.\n\n## Inputs to inspect\n\nInspect the reader question, authoritative sources, current model/revision, evidence\ngaps, reviewed assets, repository policy and explicitly selected preferences.\n\n### Work quickly from existing context\n\n1. Read [Reader experience](references/report-contract.md#reader-experience): distinguish information,\n   completed work, required action and conditional action. A compact labeled status\n   is enough; do not repeat it as a question, legend and introductory step.\n   Use `--templates` to select one of eight\n   purpose templates and five domain profiles. Read only the needed references,\n   profile requirements and examples. Do not load an external catalog per report.\n2. Inspect source authority and evidence gaps. For a continuation, read the current\n   model/revision and reuse its IDs, reviewed assets and sources. Keep consumer\n   source registers authoritative; do not replace them for a presentation change.\n3. Set the topic sequence before selecting visuals. Follow [the guided reading form](references/report-contract.md#guided-reading-when-supported)\n   on the first draft: group each topic's diagram and bullets in the documented\n   `topics` model and place a useful graphic before its explanations. Use a chart\n   only for actual quantitative data. Preserve explicitly requested layouts; `reading`\n   and authored `slides` remain available. Follow [layout and navigation](references/report-contract.md#guided-layout-and-navigation).\n   Lead with the result or a real next action; a summary needs no invented task.\n   Apply the self-contained ADHD writing profile when requested.\n4. Compose registered blocks freely. Use comparison matrices for common criteria,\n   automatic diagrams for structure and data charts for quantities. Use labeled\n   bundled icons and verified product logos when they clarify the content.\n   Preserve units, scale, direction, nulls and status semantics.\n5. Render with `scripts/render-report.mjs`. JSON v2 is canonical; v1 remains\n   supported. Optional [Markdown input](references/markdown-input.md) compiles to\n   the same model. Do not execute MDX or infer evidence from typography.\n6. Produce HTML, full Markdown and JSON from one snapshot. Use an exclusive output\n   directory or a managed store with expected-base updates. Use the host's\n   session-local visualization directory when provided. HTML remains readable\n   offline without JavaScript. No per-report dependency installation or network.\n7. Select and verify the primary presentation using [native presentation and HTML fallback](references/report-contract.md#native-presentation-and-html-fallback). If native is unsuitable, unavailable or unverified, display the HTML report through an actually verified host opening route. For requested visual delivery/iteration, reuse the session-owned preview and browser tab where possible; start a loopback preview if needed. Verify the actual URL and honor host browser-tool restrictions. Offer the desktop browser tab and Microsoft Edge where available. New versions require Apply; unsaved drafts block replacement.\n8. Keep exports, style and version controls in a closed, labeled footer toolbox,\n   separate from report content. Check semantic duplication, fidelity, relevant\n   interactions and delivery. Use the bounded owning tests\n   when changing the renderer; ordinary report content changes need only the\n   relevant validation/visual checks. Report measured speed separately from model\n   generation, research, cold start and first asset retrieval.\n\n## Scripts\n\nFrom the skill directory, with Node.js:\n\n```sh\nnode scripts/render-report.mjs --templates\nnode scripts/render-report.mjs --starter comparison --profile software --id options\nnode scripts/render-report.mjs --input /absolute/report.md --output /absolute/new-report\nnode scripts/render-report.mjs --create /absolute/report-store --input /absolute/report.json\nnode scripts/render-report.mjs --update /absolute/report-store --input /absolute/report.json --base REVISION\nnode scripts/render-report.mjs --preview /absolute/report-store\nnode scripts/render-report.mjs --extract /absolute/report.html --section comparison\nnode scripts/render-report.mjs --gallery /absolute/new-gallery\n```\n\n`--current` and `--history` read a managed store. `--help` prints the full CLI.\n`node --test tests/*.test.mjs` validates the skill with temporary local fixtures.\n`node scripts/benchmark.mjs` measures the mixed fixture and enforces warm p95 < 1 s.\n`scripts/export-assets.mjs` exports only explicitly requested, committed,\ndigest-pinned consumer bundles; `--check` is read-only. It does not update pinned\nconsumers automatically.\n\n`scripts/cache_icon.py` fetches only an explicitly selected reviewed public asset\ninto an already ignored cache, with identity, source, retrieval date and digest.\nInspect it before embedding. The renderer never fetches assets. Original code is\nApache-2.0; bundled dependencies retain their [notices](assets/vendor/NOTICE.txt).\nNo external skill text is copied.\n\n## Safety rules\n\n- Unknown is not zero or absent. Planned is not delivered; fictional is not measured.\n  A healthy-sample fraction is not elapsed-time availability.\n- Browser filters never alter source exports. Local editor drafts never mutate\n  source files or external services. Export or explicitly discard before switching.\n- Motion is opt-in, stoppable and suppressed for reduced-motion preferences.\n- Generation and loopback preview do not authorize deployment, upload, production\n  mutations or permanent preference changes.\n- Treat markup and SVG as untrusted. Reject unsupported input with its field/line;\n  never delete data or fabricate values just to pass validation.\n- If a source or logo is unavailable, mark the gap and retain the readable name.\n  If a stale update fails, inspect the new current model and reconcile deliberately.\n- Keep caches, preferences, private sources and report stores out of commits.\n  No clinical, WCAG-compliance or universal host-compatibility claims from fixtures.\n\n## Output format\n\nDeliver the verified native view when suitable, otherwise the verified HTML preview/opening route, plus standalone HTML and complete\nexports. State significant source gaps and actual verification limits. If files\nchanged, include a concise verified affected-file tree with added/changed/moved/\ndeleted/context labels and maintained/generated/local ownership as described in\n[filesystem handoff](references/filesystem-handoff.md).\n\n## Completion criteria\n\nConfirm source fidelity, visible caveats, full exports and the actual display or HTML opening route.\nRecord unrun gates without implying they passed.\n\n## Failure modes\n\nReject invalid input with field/line diagnostics. Reconcile stale bases before\nretrying. Preserve unsaved drafts and report blocked preview routes explicitly.\n\n## References\n\n[Reader experience](references/report-contract.md#reader-experience) owns intent, guided reading,\nsummary/action states, footer tooling and the ADHD writing profile. The same\ncontract owns the default topic sequence, optional tabbed presentation, shared\nalignment and content-sized pages without internal scrolling.\nThe [general report contract](references/report-contract.md) governs source\nfidelity and reader presentation. [Comparisons](references/comparisons.md) adds\nshared-criteria and evidence rules; [selection provenance](references/selection.md)\nrecords independent mdxcn-inspired choices and upstream references.\n"
Full snapshot data
{
  "description": "Create and update visual reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 779
    },
    {
      "relative_path": "assets/completion-example.md",
      "size_in_bytes": 3259
    },
    {
      "relative_path": "assets/graphite-grain/configurator.html",
      "size_in_bytes": 18080
    },
    {
      "relative_path": "assets/graphite-grain/configurator.mjs",
      "size_in_bytes": 7036
    },
    {
      "relative_path": "assets/graphite-grain/relaxed.css",
      "size_in_bytes": 4343
    },
    {
      "relative_path": "assets/openai-icon.png",
      "size_in_bytes": 10528
    },
    {
      "relative_path": "assets/openai-icon.svg",
      "size_in_bytes": 318
    },
    {
      "relative_path": "assets/preview.js",
      "size_in_bytes": 3493
    },
    {
      "relative_path": "assets/report-recipes.mjs",
      "size_in_bytes": 19665
    },
    {
      "relative_path": "assets/report-runtime.css",
      "size_in_bytes": 16744
    },
    {
      "relative_path": "assets/report-runtime.js",
      "size_in_bytes": 24505
    },
    {
      "relative_path": "assets/report-shell.html",
      "size_in_bytes": 14431
    },
    {
      "relative_path": "assets/vendor/NOTICE.txt",
      "size_in_bytes": 114402
    },
    {
      "relative_path": "assets/vendor/generator.mjs",
      "size_in_bytes": 1773599
    },
    {
      "relative_path": "assets/vendor/icons.mjs",
      "size_in_bytes": 2263
    },
    {
      "relative_path": "assets/vendor/manifest.json",
      "size_in_bytes": 19360
    },
    {
      "relative_path": "references/comparisons.md",
      "size_in_bytes": 4966
    },
    {
      "relative_path": "references/filesystem-handoff.md",
      "size_in_bytes": 4775
    },
    {
      "relative_path": "references/managed-reports.md",
      "size_in_bytes": 5284
    },
    {
      "relative_path": "references/markdown-input.md",
      "size_in_bytes": 4034
    },
    {
      "relative_path": "references/model-v2.md",
      "size_in_bytes": 10376
    },
    {
      "relative_path": "references/renderer.md",
      "size_in_bytes": 25109
    },
    {
      "relative_path": "references/report-contract.md",
      "size_in_bytes": 33856
    },
    {
      "relative_path": "references/selection.md",
      "size_in_bytes": 4955
    },
    {
      "relative_path": "scripts/benchmark.mjs",
      "size_in_bytes": 2218
    },
    {
      "relative_path": "scripts/cache_icon.py",
      "size_in_bytes": 9410
    },
    {
      "relative_path": "scripts/export-assets.mjs",
      "size_in_bytes": 4151
    },
    {
      "relative_path": "scripts/lib/blocks-v2.mjs",
      "size_in_bytes": 22199
    },
    {
      "relative_path": "scripts/lib/cli.mjs",
      "size_in_bytes": 3818
    },
    {
      "relative_path": "scripts/lib/export-path.mjs",
      "size_in_bytes": 1684
    },
    {
      "relative_path": "scripts/lib/generator-entry.mjs",
      "size_in_bytes": 472
    },
    {
      "relative_path": "scripts/lib/markdown-input.mjs",
      "size_in_bytes": 10062
    },
    {
      "relative_path": "scripts/lib/preview.mjs",
      "size_in_bytes": 4977
    },
    {
      "relative_path": "scripts/lib/report-state.mjs",
      "size_in_bytes": 13729
    },
    {
      "relative_path": "scripts/lib/report-store.mjs",
      "size_in_bytes": 7141
    },
    {
      "relative_path": "scripts/lib/templates.mjs",
      "size_in_bytes": 4771
    },
    {
      "relative_path": "scripts/render-report.mjs",
      "size_in_bytes": 41009
    },
    {
      "relative_path": "tests/browser-delivery.mjs",
      "size_in_bytes": 26007
    },
    {
      "relative_path": "tests/browser-smoke.py",
      "size_in_bytes": 15887
    },
    {
      "relative_path": "tests/browser-topics.mjs",
      "size_in_bytes": 21624
    },
    {
      "relative_path": "tests/cache-icon.test.mjs",
      "size_in_bytes": 5077
    },
    {
      "relative_path": "tests/export-assets.test.mjs",
      "size_in_bytes": 5604
    },
    {
      "relative_path": "tests/render-report.test.mjs",
      "size_in_bytes": 14636
    },
    {
      "relative_path": "tests/report-state.test.mjs",
      "size_in_bytes": 11935
    },
    {
      "relative_path": "tests/topics.test.mjs",
      "size_in_bytes": 6550
    },
    {
      "relative_path": "tests/v2.test.mjs",
      "size_in_bytes": 21600
    }
  ],
  "name": "visual-reports",
  "skill_md_contents": "---\nname: visual-reports\ndescription: Create and update visual reports with optional native interaction, one guided topic at a time, useful diagrams, concise points, joint comparisons and complete offline HTML/Markdown/JSON exports. Use when richer output helps an authorized answer or the user asks for a visual report; keep small answers in chat. Not production application UI or clinical advice.\nlicense: Apache-2.0\nmetadata:\n  author: stark-ai-de\n  category: engineering-workflows\n  version: \"1.3.1\"\n---\n\n# Visual Reports\n\n## Goal\n\nMake the answer, decision or next action easy to find. Use the shared renderer,\nclear hierarchy, short lists and meaningful visuals. Identify whether the reader\nneeds an action, a decision or a summary before choosing the format. Preserve facts, evidence\nstates, sources and decisive limitations. Do not invent quantities to fill charts.\n\nPrefer a native interactive visualization as the primary view when the current host can invoke and display one that fully serves the report. Otherwise display the verified HTML report. Keep the same concise reader contract and complete HTML, Markdown and JSON exports from one validated snapshot in either case. Follow [presentation selection and fallback](references/report-contract.md#native-presentation-and-html-fallback).\n\nFor v2 reports, the shared renderer starts with one guided topic at a time. Group\nrelated sections into topics; keep a meaningful diagram above concise points and\nkeep genuine comparisons together. The author explicitly selects `reading` or\n`slides` when requested. Follow [the reading contract](references/report-contract.md#guided-reading-when-supported)\nfor layout, accessible navigation and source fidelity.\n\n## When to use\n\nUse reports for comparisons, multi-step plans, relationships and data-rich findings\nwithin the authorized answer. Keep tiny answers in chat.\n\n## When not to use\n\nDo not use for production application UI, unrelated artwork, external service\noperation or medical/clinical advice.\n\n## Workflow\n\n| Route                | Authorized outcome                                             | Read when selected                                                                                                                             |\n| -------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| Create or update     | Complete report from the same source snapshot                  | [Reader experience](references/report-contract.md#reader-experience), [selection](references/selection.md), [v2 model](references/model-v2.md) |\n| Preview and continue | Stable local URL, version history, explicit revision switching | [Managed reports](references/managed-reports.md)                                                                                               |\n| Present or prototype | Slides, opt-in motion or validated state simulation            | [Legacy blocks and 24 recipes](references/renderer.md)                                                                                         |\n| Edit locally         | Board, flags or prompt draft with separate export              | [Editor contract](references/renderer.md#browser-state-exports-and-safety)                                                                     |\n| Explore styles       | Current, balanced and calm previews with identical facts       | [Presentation](references/report-contract.md#presentation-and-styles)                                                                          |\n| Adopt preference     | Persist an explicitly selected style in ignored local state    | [Preference contract](references/report-contract.md#local-preference)                                                                          |\n\nFor clear intent, announce the route and proceed. For a bare invocation or options\nrequest, show the complete inventory; options alone authorize no execution.\nChoose a report automatically when it improves the authorized answer, especially\ncomparisons, relationships, multi-step plans or data-rich findings. Keep one fact\nor a short action in chat. Do not impose an interview or a chart-count quota.\n\n## Inputs to inspect\n\nInspect the reader question, authoritative sources, current model/revision, evidence\ngaps, reviewed assets, repository policy and explicitly selected preferences.\n\n### Work quickly from existing context\n\n1. Read [Reader experience](references/report-contract.md#reader-experience): distinguish information,\n   completed work, required action and conditional action. A compact labeled status\n   is enough; do not repeat it as a question, legend and introductory step.\n   Use `--templates` to select one of eight\n   purpose templates and five domain profiles. Read only the needed references,\n   profile requirements and examples. Do not load an external catalog per report.\n2. Inspect source authority and evidence gaps. For a continuation, read the current\n   model/revision and reuse its IDs, reviewed assets and sources. Keep consumer\n   source registers authoritative; do not replace them for a presentation change.\n3. Set the topic sequence before selecting visuals. Follow [the guided reading form](references/report-contract.md#guided-reading-when-supported)\n   on the first draft: group each topic's diagram and bullets in the documented\n   `topics` model and place a useful graphic before its explanations. Use a chart\n   only for actual quantitative data. Preserve explicitly requested layouts; `reading`\n   and authored `slides` remain available. Follow [layout and navigation](references/report-contract.md#guided-layout-and-navigation).\n   Lead with the result or a real next action; a summary needs no invented task.\n   Apply the self-contained ADHD writing profile when requested.\n4. Compose registered blocks freely. Use comparison matrices for common criteria,\n   automatic diagrams for structure and data charts for quantities. Use labeled\n   bundled icons and verified product logos when they clarify the content.\n   Preserve units, scale, direction, nulls and status semantics.\n5. Render with `scripts/render-report.mjs`. JSON v2 is canonical; v1 remains\n   supported. Optional [Markdown input](references/markdown-input.md) compiles to\n   the same model. Do not execute MDX or infer evidence from typography.\n6. Produce HTML, full Markdown and JSON from one snapshot. Use an exclusive output\n   directory or a managed store with expected-base updates. Use the host's\n   session-local visualization directory when provided. HTML remains readable\n   offline without JavaScript. No per-report dependency installation or network.\n7. Select and verify the primary presentation using [native presentation and HTML fallback](references/report-contract.md#native-presentation-and-html-fallback). If native is unsuitable, unavailable or unverified, display the HTML report through an actually verified host opening route. For requested visual delivery/iteration, reuse the session-owned preview and browser tab where possible; start a loopback preview if needed. Verify the actual URL and honor host browser-tool restrictions. Offer the desktop browser tab and Microsoft Edge where available. New versions require Apply; unsaved drafts block replacement.\n8. Keep exports, style and version controls in a closed, labeled footer toolbox,\n   separate from report content. Check semantic duplication, fidelity, relevant\n   interactions and delivery. Use the bounded owning tests\n   when changing the renderer; ordinary report content changes need only the\n   relevant validation/visual checks. Report measured speed separately from model\n   generation, research, cold start and first asset retrieval.\n\n## Scripts\n\nFrom the skill directory, with Node.js:\n\n```sh\nnode scripts/render-report.mjs --templates\nnode scripts/render-report.mjs --starter comparison --profile software --id options\nnode scripts/render-report.mjs --input /absolute/report.md --output /absolute/new-report\nnode scripts/render-report.mjs --create /absolute/report-store --input /absolute/report.json\nnode scripts/render-report.mjs --update /absolute/report-store --input /absolute/report.json --base REVISION\nnode scripts/render-report.mjs --preview /absolute/report-store\nnode scripts/render-report.mjs --extract /absolute/report.html --section comparison\nnode scripts/render-report.mjs --gallery /absolute/new-gallery\n```\n\n`--current` and `--history` read a managed store. `--help` prints the full CLI.\n`node --test tests/*.test.mjs` validates the skill with temporary local fixtures.\n`node scripts/benchmark.mjs` measures the mixed fixture and enforces warm p95 < 1 s.\n`scripts/export-assets.mjs` exports only explicitly requested, committed,\ndigest-pinned consumer bundles; `--check` is read-only. It does not update pinned\nconsumers automatically.\n\n`scripts/cache_icon.py` fetches only an explicitly selected reviewed public asset\ninto an already ignored cache, with identity, source, retrieval date and digest.\nInspect it before embedding. The renderer never fetches assets. Original code is\nApache-2.0; bundled dependencies retain their [notices](assets/vendor/NOTICE.txt).\nNo external skill text is copied.\n\n## Safety rules\n\n- Unknown is not zero or absent. Planned is not delivered; fictional is not measured.\n  A healthy-sample fraction is not elapsed-time availability.\n- Browser filters never alter source exports. Local editor drafts never mutate\n  source files or external services. Export or explicitly discard before switching.\n- Motion is opt-in, stoppable and suppressed for reduced-motion preferences.\n- Generation and loopback preview do not authorize deployment, upload, production\n  mutations or permanent preference changes.\n- Treat markup and SVG as untrusted. Reject unsupported input with its field/line;\n  never delete data or fabricate values just to pass validation.\n- If a source or logo is unavailable, mark the gap and retain the readable name.\n  If a stale update fails, inspect the new current model and reconcile deliberately.\n- Keep caches, preferences, private sources and report stores out of commits.\n  No clinical, WCAG-compliance or universal host-compatibility claims from fixtures.\n\n## Output format\n\nDeliver the verified native view when suitable, otherwise the verified HTML preview/opening route, plus standalone HTML and complete\nexports. State significant source gaps and actual verification limits. If files\nchanged, include a concise verified affected-file tree with added/changed/moved/\ndeleted/context labels and maintained/generated/local ownership as described in\n[filesystem handoff](references/filesystem-handoff.md).\n\n## Completion criteria\n\nConfirm source fidelity, visible caveats, full exports and the actual display or HTML opening route.\nRecord unrun gates without implying they passed.\n\n## Failure modes\n\nReject invalid input with field/line diagnostics. Reconcile stale bases before\nretrying. Preserve unsaved drafts and report blocked preview routes explicitly.\n\n## References\n\n[Reader experience](references/report-contract.md#reader-experience) owns intent, guided reading,\nsummary/action states, footer tooling and the ADHD writing profile. The same\ncontract owns the default topic sequence, optional tabbed presentation, shared\nalignment and content-sized pages without internal scrolling.\nThe [general report contract](references/report-contract.md) governs source\nfidelity and reader presentation. [Comparisons](references/comparisons.md) adds\nshared-criteria and evidence rules; [selection provenance](references/selection.md)\nrecords independent mdxcn-inspired choices and upstream references.\n"
}

SHA-256 of public snapshot: 7bc3d2e22d6d698596c5db26ad325190bc7040ca389186d4f4ed7dae41916b23