Skip to content

Deprecate the terminal (Mermaid→ASCII) surface; make termchart viewer-first#230

Open
ivanmkc wants to merge 2 commits into
masterfrom
deprecate-terminal
Open

Deprecate the terminal (Mermaid→ASCII) surface; make termchart viewer-first#230
ivanmkc wants to merge 2 commits into
masterfrom
deprecate-terminal

Conversation

@ivanmkc

@ivanmkc ivanmkc commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Why

The agent-compat journey tests found coding agents (Claude/Gemini) misuse termchart because it
presents as a Mermaid-terminal tool: given "show this on the viewer", Claude activates the
termchart terminal skill ("render Mermaid → ASCII") and anchors on Mermaid types
(flowchart, erDiagram) — the wrong vocabulary for a rich viewer push (journey activation
stayed ~1/5). The Mermaid framing pervades termchart (the CLI --help tagline is literally
"deterministic Mermaid → ASCII/Unicode for terminals"). Decision: deprecate the terminal
surface and focus on the viewer.

What

Remove the agent-facing terminal surface (the parts that mis-activate)

  • Delete the termchart terminal skill (plugin/skills/termchart/) and the /termchart:diagram
    command (plugin/commands/diagram.md).
  • Demote mermaid to a last-resort fallback in the diagram-recipes decision guide; sequence
    diagrams now recommend rich flow (manual lifelines) with mermaid as a noted fallback.

Reframe viewer-first

  • plugin.json + marketplace.json: drop the "Mermaid→ASCII is the terminal fallback" line,
    reorder keywords viewer-first, bump plugin 0.14.0 → 0.15.0.
  • README.md, AGENTS.md, packages/cli/README.md: lead with the viewer; terminal sections
    marked deprecated (kept as reference).

Soft-deprecate the CLI render (kept working — no breaking change)

  • cli.ts: viewer-first --help tagline; termchart <file> / lint + render flags moved under
    a "Deprecated" heading; a one-line stderr deprecation notice on the render/lint path
    (stdout render output unchanged). render.ts/lint.ts + tests untouched.
  • packages/cli/package.json: softened description + viewer-first keywords (no npm version bump).

Core unchangedmermaid stays a valid viewer push type (rendered in-browser); this only
deprecates the terminal ASCII renderer.

Verification

  • Build clean (cli + viewer); cli tests 257 pass.
  • termchart --help → "push rich diagrams to a live viewer"; render/lint under "Deprecated".
  • printf 'graph LR\n A-->B' | termchart → still renders and prints the deprecation notice
    to stderr; stdout output unchanged.
  • push --type mermaid still accepted.
  • Plugin exposes only diagram-recipes / inbox-watch / scheduled-boards skills +
    /termchart:diagram-remote / /termchart:schedule-board commands.
  • No dangling references to the removed skill/command.

Follow-up (separate): re-run the agent-compat journey suite with the terminal skill gone to
confirm agents now activate diagram-recipes and journey activation rises.

…-first

The agent-compat journey tests showed coding agents anchor on Mermaid types
(flowchart/erDiagram) for viewer tasks because termchart presents as a
Mermaid-terminal tool — the 'termchart' terminal skill mis-activates and the CLI
--help tagline leads with 'Mermaid → ASCII for terminals'. Refocus on the viewer:

- Remove the agent-facing terminal surface: delete the 'termchart' terminal skill
  and the /termchart:diagram command (the bits that mis-activate). Demote 'mermaid'
  to a last-resort fallback in the diagram-recipes decision guide.
- Reframe viewer-first: plugin.json + marketplace.json (drop the 'terminal fallback'
  line, reorder keywords, bump plugin 0.14.0 -> 0.15.0); README/AGENTS/cli README lead
  with the viewer and mark terminal sections deprecated.
- Soft-deprecate the CLI render (kept working for backward compat): viewer-first
  --help tagline, render/lint + flags moved under 'Deprecated', and a one-line stderr
  deprecation notice on the render/lint path (stdout output unchanged).
- Core unchanged: 'mermaid' stays a valid viewer push type (mermaidErrors/validate).

Tests: cli 257 pass; render/lint still work + emit the notice; push --type mermaid
still accepted; plugin exposes only diagram-recipes/inbox-watch/scheduled-boards +
diagram-remote/schedule-board.
… + 'flow is JSON not mermaid')

Agent-compat eval showed agents pick the right --type but then bail to mermaid
because the JSON shapes live in separate files (flow.md etc.) they don't open, and
Claude has a strong 'flowchart = graph TB' prior. Put a 'Start here' block at the top
of the skill with the exact copy-pasteable JSON for flow/component/vegalite/panes and
an explicit 'content is JSON, never Mermaid graph syntax' rule. With this (and the guide
reaching the agent), Claude haiku/sonnet + Gemini one-shot 5/5 journey activation with
no error-correction hint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants