Skip to content

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

Merged
ivanmkc merged 3 commits into
masterfrom
deprecate-terminal
Jul 5, 2026
Merged

Deprecate the terminal (Mermaid→ASCII) surface; make termchart viewer-first#230
ivanmkc merged 3 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.
…agram-recipes

Eval finding: agents pick skills by NAME, and tasks say 'termchart' — so Claude Code
never auto-activated the 'diagram-recipes' skill from a scenario prompt (skill-only,
no context files) and flew blind (1/5). A lean skill NAMED 'termchart' (the name that
matches user intent) that carries the pick-type + exact-JSON one-shot block and points
to diagram-recipes for depth fixes it WITHOUT renaming/removing diagram-recipes or
touching any AGENTS.md/CLAUDE.md. Measured skill-only via npx skills, no context files:
Claude Haiku 5/5 (activates the skill on all 5), Gemini 5/5, Claude Sonnet passing.
Replaces the now-deleted terminal 'termchart' skill; diagram-recipes stays the deep library.
@ivanmkc ivanmkc merged commit 4eeef5a into master Jul 5, 2026
5 checks passed
ivanmkc pushed a commit that referenced this pull request Jul 5, 2026
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