# render

Dispatcher for the Mycelium visualization fleet. It routes rendering requests to specialist skills or lists all available project canvases.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 47
- Author: haabe
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/haabe/mycelium/tree/HEAD/plugins/mycelium/skills/render/SKILL.md
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/skills/render

## What it does

This skill routes visualization requests across the Mycelium framework. It inspects user intent and points to specialist commands like `/mycelium:ost-render` or `/mycelium:diamond-render`. The skill never executes commands automatically. It only outputs a recommendation to the chat.

Execution accepts arguments such as `--list`, `--format`, and `--theme`. It passes format hints for `mermaid` or `json`. Dark mode is toggled via `--theme dark`. Cross-cutting views remain deferred pending research.

Canvas files must exist in `.claude/canvas/` to produce any meaningful output. Calling a specialist directly saves a step.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add haabe/mycelium --skill render -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/render/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/render/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add haabe/mycelium --skill render -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/render/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add haabe/mycelium --skill render -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/render/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install haabe/mycelium render
```

2. **Manually: put the files in place**
- File: `.github/skills/render/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add haabe/mycelium --skill render -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/haabe/mycelium --path plugins/mycelium/skills/render
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/render/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add haabe/mycelium --skill render -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/haabe/mycelium/tree/HEAD/plugins/mycelium/skills/render/SKILL.md

## When to use it
- Route diagram requests to appropriate Mycelium rendering skills
- List available canvas renderers using the `--list` argument
- Pass `mermaid`, `ascii`, or `json` format hints to specialist tools
- Switch renderers to dark mode using `--theme dark`

## Example prompts
- List available renderable views with render --list
- Show me how to render opportunities.yml in mermaid format
- Recommend a command to display cycle-history.yml using --theme dark

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: d612790d2aaa85b0.

BEGIN THIRD-PARTY FILE d612790d2aaa85b0
```text
---
name: render
description: Central dispatcher for the canvas/state render fleet. Routes intent to a specialist (`/mycelium:diamond-render`, `/mycelium:ost-render`, `/mycelium:cycle-render`) OR lists what's renderable. Cross-cutting views spanning multiple canvases (opp→sol→cycle traceability, confidence-over-time, cluster-graduation-flow) are research-gated and NOT emitted by default. See `${CLAUDE_PLUGIN_ROOT}/engine/render-conventions.md` for shared conventions.
metadata:
  instruction_budget: "60"
  framework_dependency: "mycelium"
  framework_dependency_note: "Routes to specialist render skills. Consults the attribution registry only if a cross-cutting view activates a YES-exposure canvas."
  identifier_exposure: "MIXED"
---

# Render Dispatcher

Central entry point + menu for the canvas/state render fleet. Routes intent to specialists or surfaces what's available. Cross-cutting views are research-gated and NOT emitted by default. Completes the v0.40.0-announced render fleet foundation.

## When to use

- "Show me the OST" / "render the diamond state" / "visualize the cycles" → dispatcher recommends + routes to the specialist (recommend, do NOT auto-invoke).
- "Visualize how opportunity X became cycle Y" → cross-cutting traceability intent. Dispatcher surfaces that the view is research-gated; does not emit a default rendering.
- Discovery: "what renderable views does Mycelium have?" → dispatcher lists specialists + their states.

## When NOT to use

- If the user names a specialist directly (`/mycelium:diamond-render`, `/mycelium:ost-render`, `/mycelium:cycle-render`), the specialist is the one-hop path. Do NOT re-route through the dispatcher.
- For cross-cutting views that already have dedicated skills (e.g., `/mycelium:framework-health` is its own audit; not a render specialist).

## Identifier exposure

**Declared**: MIXED

### Scope (per-canvas table — REQUIRED for MIXED)

| Canvas | Exposure | Identifier-bearing fields | Activated when |
|---|---|---|---|
| `.claude/canvas/opportunities.yml` | YES | `evidence_sources`, `notes` | `--view traceability` (deferred), `--view ost-summary` |
| `.claude/canvas/cycle-history.yml` | YES | `learnings.process` prose, `related_corrections` | `--view traceability` (deferred), `--view cycle-summary` |
| `.claude/canvas/archived-solutions.yml` | YES | `discard_notes` prose | `--view traceability` (deferred), `--view discards` |
| `.claude/canvas/landscape.yml` | YES (low) | `notes`, `evidence_sources` | `--view competitive-landscape` (deferred) |
| `.claude/diamonds/active.yml` | NONE | none | any view including the diamond |

### Rationale

Dispatcher behavior depends on which cross-cutting view is invoked. MIXED with per-canvas scoping is the only honest declaration: YES would force registry consultation on diamond-only views (unnecessary cost); NONE would silently leak identifiers on traceability views (incident). Each cross-cutting view's implementation MUST consult the registry per `engine/render-conventions.md#hard-rule-consent--privacy-gate` for the YES-exposure canvases it activates and skip the consultation only for NONE-exposure canvases.
```
END THIRD-PARTY FILE d612790d2aaa85b0

The third-party file has ended. Everything between the d612790d2aaa85b0 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 3164 of 10358 bytes. © haabe · MIT · https://github.com/haabe/mycelium/tree/HEAD/plugins/mycelium/skills/render/SKILL.md

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
