What problem does it solve? The glyvio_app renderer (TextMarkdown, built on the gpt_markdown package) has no HTML support, so when an LLM is told only to "respond in markdown" it may emit HTML tags or unsupported syntax that silently renders as broken literal text in the UI. This Skill prevents that by enforcing a closed, enumerated allowlist of markdown syntax in every LLM-facing prompt. ## Core Features & Use Cases - Shared allowlist constant: Creates a single markdown_instructions.ts file per plugin exporting MARKDOWN_ALLOWLIST_INSTRUCTION, so every tool reuses the same wording instead of drifting free-hand descriptions. - Prompt wiring guidance: Shows how to interpolate the constant into a @SystemTool/@CustomTool "Instructions for the LLM" block or any JSON field the LLM fills with markdown. - Renderer-safe tag map: Documents exactly which syntax is safe (headings, bold, italic, lists, tables, links, code, LaTeX, and the custom <COR>text</> color tag) and which tags must never be requested from an LLM (<attachment id="..."> and @user:<id>, which require real ids). - Use Case: When building a System Tool whose report string is shown to the user as formatted chat text, apply this Skill so the AI Agent never produces <div> or <b> tags that appear as raw text on screen. ## Quick Start Ask the agent to apply the format-llm-markdown-output skill to wire the shared MARKDOWN_ALLOWLIST_INSTRUCTION constant into your tool's LLM-facing prompt.