richlander/markout/markout-output-formats
Claude Code and agent skill by richlander/markout
- community
Checking that the SKILL.md file is still in the repository.
Use when you need output other than default Markdown — plain text / Unicode, ANSI terminal (Spectre), pretty aligned tables, or TSV/JSONL exports — or when one model must serve several formats from a single render path (a CLI `--format` switch). Also covers semantic inline code that renders as Markdown code spans but decodes to plain text in TSV/JSONL. Pick the format with a formatter + MarkoutWriterOptions; never hand-build TSV/JSONL. Don't decompile the assembly or web-search the API — the mu…
Install
npx vskill@latest install richlander/markout/markout-output-formatsSKILL.md
Output formats — one model, many formats
Default Serialize(...) emits Markdown. Pass a formatter (and optional MarkoutWriterOptions) to get other formats. The anti-pattern is per-format string building (string.Join("\t", ...)); let Markout project the same model to each format so columns/headers stay consistent.
Required setup
Markout has no reflection fallback. Every report needs a partial context registering each model type and a Serialize call that passes it. [MarkoutSerializable] is optional customization, not a prerequisite for registration.
Formatters
Markout.Ansi.Spectre is a separate NuGet package; Markdown/plain/table/TSV/JSONL need only Markout.
Graph sections become Markdown edge tables by default. Select a Markdown graph mode to embed the same graph as a rooted text tree or Mermaid without rebuilding it:
TableFormatter modes + writer options
TableFormatter + MarkoutWriterOptions.TableMode selects the tabular shape:
MarkoutTableMode.Pretty— columns aligned to a uniform start position.MarkoutTableMode.Tsv— stablesnake_caseheaders; never emits embedded tabs/newlines in cells.MarkoutTableMode.Jsonl— one record per row, carrying only that row's keys (heterogeneous).MaxItems = Ncaps every table to N rows. Presentation and TSV output append
... and {count} more; JSONL omits the notice because every line must remain a data record. Apply the cap only to presentation options when TSV/JSONL exports must remain complete. (Or cap a property with [MarkoutMaxItems(3)] and an optional EllipsisFormat.)
For rows produced incrementally, use the table stream on MarkoutWriter:
With TableFormatter, TSV and JSONL rows reach the destination before WriteTableEnd. Pretty tables wait until the end to calculate column widths. Tail row windows and table ordering can also require buffering inside Markout.
Central multi-format dispatch (the CLI --format pattern)
Route one model through one method so every command gets every format for free:
If a format needs byte-exact output (e.g. a verbatim packet), bypass Markout for that one case and keep Markout for the structured formats — don't try to force it.
Format promises (rely on these)
- Markdown table cells normalize
|to|(not\|). - TSV uses stable
snake_caseheaders and never embeds tabs/newlines in cells. - Pretty renders the same projection as TSV, aligned.
Format-neutral inline code
Store code-like values with semantic <code>...</code> tags. XML-escape angle brackets inside the tags:
Markdown renders code spans such as ` Result<T> Parse<T>(string value) . Pretty, TSV, and JSONL remove the tags, decode the entities, and emit plain text. Do not store raw backticks or use [MarkoutDisplayFormat("{0}")]`; that hard-codes Markdown into the model.
JSONL must still go through Markout:
Do not substitute System.Text.Json: it does not apply Markout's table projection, stable property names, or semantic-tag decoding.
Guardrails
- One model → many formats; never hand-assemble TSV/JSONL rows.
- Reach for
IncludeSections/IncludeDescriptionto trim exports rather than a second model. - Spectre/ANSI needs the
Markout.Ansi.Spectrepackage; the rest do not.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/markout-output-formats/SKILL.md
Popularity
- Repository stars
- 10
- Repository forks
- 1
- 7-day trend score
- 12
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/richlander/markout/markout-output-formats)