Override built-in Markstream node renderers and add trusted custom tags. Use when Codex needs to apply `setCustomComponents`, keep overrides scoped with `customId`, map override keys like `image`, `code_block`, `mermaid`, or `link`, or wire `customHtmlTags` and nested renderers for tags such as `thinking`.
Use this skill when the task is to change how Markstream renders specific nodes or custom tags.
Read references/patterns.md before choosing an override strategy.
built-in override: replace an existing renderer such as image, link, code_block, mermaid, d2, or inline_code.custom tag: support trusted HTML-like tags such as thinking.parser-level: requires token transforms or AST reshaping. Only then should you leave this skill and use low-level parser hooks.setCustomComponents(customId, mapping) instead of global mappings whenever practical.customId or custom-id to the renderer instance.image, link, inline_code, mermaid) are easier than container nodes (heading, paragraph, list_item).mermaid, not code_block.node.content with a nested renderer.node, loading, indexKey, customId, and isDark.removeCustomComponents(customId) when the scope is no longer needed.customHtmlTags plus scoped custom components before parser hooks.docs/guide/component-overrides.mddocs/guide/custom-components.mddocs/guide/components.mddocs/guide/advanced.md