Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Plan Mode の `<proposed_plan>` を出す直前に、計画の段階・依存関係・検証観点を一時HTMLで視覚確認したい時に使う agent-internal skill。Use this agent-internal skill to create a temporary HTML preview for a plan just before presenting `<proposed_plan>`. plugin配布だけで発火し、ユーザーにCLI実行を求めず、agentが `plan-preview` CLIでセッション限定URLを作り、本文に自然に差し込む。Triggers: planをグラフィカルに見たい, planを図で確認したい, この計画をHTMLでプレビューして, 計画をHTMLで確認したい, graphical plan review, proposed_planをプレビューして, 計画URLを入れて, preview this plan as HTML, show this plan visually, graphical plan preview,
.claude/skills/hashgraph-online-plan-preview/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -36% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 93% | 0% |
Plan Mode で正式な <proposed_plan> を提示する直前に、同じ計画内容を一時HTML previewとして出す。
このskillは利用者が手でコマンドを打つためのものではない。agentが計画本文を組み立てた段階で plan-preview CLIを呼び、返却JSONの url を <proposed_plan> 内へ自然に入れる。
Plan Mode 中の計画確認プレビューは、このskillが優先入口になる。通常の最終HTML成果物を作る visual-html-renderer の document-model.json → render → validate → preview フローへ流さない。
Create a temporary visual preview for a Plan Mode proposal. The user should not run the CLI manually. The agent calls plan-preview, receives a session-scoped URL, and places that URL naturally inside the <proposed_plan> text. During Plan Mode, plan preview requests should route here instead of the final-artifact visual-html-renderer document-model flow.
<proposed_plan> 本文であり、previewは判断補助として扱う。plan-preview CLI、TTL付き一時ディレクトリ、Plan preview: <url> 行、失敗時の明示。<proposed_plan> 内に preview URL または Plan preview: unavailable (<reason>) を含める。Follow the language of the latest user request for progress updates, preview labels, and the surrounding plan text. 日本語の計画依頼には日本語で、英語の計画依頼には英語で返す。Plan preview: <url> の固定ラベルは互換性のため英語のまま使ってよい。
次のいずれかに当たる場合、このskillを使う。
preview this plan as HTML, show this plan visually, graphical plan preview, add a plan preview URL, preview the proposed plan のように求めている。Use this skill when the user asks for a graphical plan view, diagrammed plan, preview URL, preview this plan as HTML, show this plan visually, graphical plan preview, add a plan preview URL, or preview the proposed plan. During Plan Mode, use this skill for plan preview requests instead of visual-html-renderer. Also use it when the plan has phases, dependencies, parallel workers, verification layers, or risk branches that are hard to inspect as plain text.
visual-html-renderer を使う。reviewable-design-doc を使う。Do not use this skill for final HTML artifacts, reviewable design documents, comment ingestion, unrelated explainers, permanent publications, Notion posts, or diagrams that require external uploads.
agentは <proposed_plan> に入れる直前の計画全文を source_text にそのまま入れる。要約・並べ替え・削除・言い換えは禁止。 受理されるトップレベル key は title / source_text / diagrams だけ。source_text は必須。 diagrams は図が理解を助ける章だけに絞り、各図の after_heading は原文見出しのプレーンテキストと完全一致させる。
json{ "title": "Plan Preview", "source_text": "<proposed_plan> に出す計画本文 markdown 全文をそのまま", "diagrams": [ { "after_heading": "実装手順", "title": "処理フロー", "mermaid": "flowchart TD\n plan --> implementation" } ] }
外部画像URL、外部asset、機密情報、未確定のsecret値はpayloadに入れない。
Put the full markdown plan text that will appear in <proposed_plan> into source_text exactly as-is. Do not summarize, reorder, delete, or rephrase it for preview generation. The accepted top-level keys are only title, source_text, and diagrams; source_text is required. Use diagrams only for sections where a diagram helps comprehension, and make each after_heading exactly match the plain-text heading in the source plan. Do not include external image URLs, external assets, secrets, or unconfirmed secret values.
auto mode を既定にし、Tailscale IPv4 を検出できる場合は Tailscale URL を優先する。bashpython3 -m scripts.html_review_workbench.cli plan-preview --payload - --ttl 1800 --mode auto
url を <proposed_plan> 本文に入れる。推奨表記:textPlan preview: http://<tailscale-ip-or-127.0.0.1>:<port>/index.html
Codex sandbox内で Tailscale 検出に失敗する場合は、IPだけを先に取得して HTML_REVIEW_WORKBENCH_TAILSCALE_IP=<tailscale-ip> を渡してから plan-preview --mode auto を起動する。
textPlan preview: unavailable (<short reason>)
stop_command はagent用の後片付け手段であり、通常はユーザーに実行させない。TTLで自動終了する。Run the CLI from the renderer repo root. Pass the plan payload through standard input with python3 -m scripts.html_review_workbench.cli plan-preview --payload - --ttl 1800 --mode auto. On success, insert Plan preview: <url> into <proposed_plan>. On failure, do not block the plan; insert Plan preview: unavailable (<short reason>). The returned stop_command is for agent cleanup and normally should not be handed to the user.
<proposed_plan> のテキスト。previewだけに存在する項目を作らない。diagrams で指定した図だけ。実装範囲や約束をpreviewだけに追加しない。<proposed_plan> 自体は成立させる。The authoritative implementation plan is the <proposed_plan> text, not the preview alone. Do not add implementation scope that exists only in the preview. Place the URL where it helps review the plan. Do not shorten the plan to make preview generation easier. The HTML preview must show the same section structure and same content as the original plan. The only added content is the diagrams explicitly provided by the agent in diagrams. If preview generation fails, still produce the plan with the unavailable reason.
output/ やplugin cacheにpreview成果物を残さない。auto mode で Tailscale IPv4 を優先し、検出できない場合だけ 127.0.0.1 にfallbackする。Do not ask the user to run the CLI. Do not auto-add hooks before Plan Mode. Do not leave preview artifacts in output/ or plugin cache. Do not use external uploads. Prefer Tailscale IPv4 in auto mode and fall back to 127.0.0.1 only when needed. Do not treat the preview URL as the authoritative implementation plan.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 66,883 | 19,913 | -70% | 1 | 1 | 0% | 5,716 | 2,528 | -56% | 0 | 0 | — |
case-02 | fail→fail | 40,393 | 11,977 | -70% | 1 | 1 | 0% | 7,648 | 2,486 | -67% | 0 | 0 | — |
case-03 | fail→fail | 40,188 | 35,168 | -12% | 1 | 1 | 0% | 5,366 | 3,379 | -37% | 0 | 0 | — |
case-04 | fail→pass | 32,066 | 23,485 | -27% | 1 | 1 | 0% | 8,231 | 5,292 | -36% | 0 | 0 | — |
case-05 | fail→pass | 54,187 | 14,623 | -73% | 1 | 1 | 0% | 4,512 | 3,630 | -20% | 0 | 0 | — |
case-06 | pass→pass | 15,920 | 10,595 | -33% | 1 | 1 | 0% | 1,563 | 3,357 | +115% | 0 | 0 | — |
case-07 | fail→pass | 9,233 | 9,448 | +2% | 1 | 1 | 0% | 1,755 | 2,552 | +45% | 0 | 0 | — |
case-08 | fail→pass | 20,779 | 9,356 | -55% | 1 | 1 | 0% | 2,345 | 2,677 | +14% | 0 | 0 | — |
case-09 | fail→pass | 20,238 | 11,523 | -43% | 1 | 1 | 0% | 1,460 | 2,820 | +93% | 0 | 0 | — |
case-10 | fail→pass | 20,497 | 8,950 | -56% | 1 | 1 | 0% | 2,387 | 2,649 | +11% | 0 | 0 | — |
case-11 | fail→fail | 3,303 | 2,567 | -22% | 1 | 1 | 0% | 487 | 2,324 | +377% | 0 | 0 | — |
case-12 | fail→pass | 19,630 | 3,127 | -84% | 1 | 1 | 0% | 2,695 | 2,406 | -11% | 0 | 0 | — |
case-13 | fail→fail | 20,242 | 8,206 | -59% | 1 | 1 | 0% | 2,536 | 2,502 | -1% | 0 | 0 | — |
case-14 | pass→pass | 18,147 | 10,326 | -43% | 1 | 1 | 0% | 1,878 | 2,752 | +47% | 0 | 0 | — |
case-15 | fail→pass | 16,748 | 11,092 | -34% | 1 | 1 | 0% | 1,249 | 2,902 | +132% | 0 | 0 | — |
case-16 | fail→pass | 11,118 | 3,985 | -64% | 1 | 1 | 0% | 1,829 | 2,651 | +45% | 0 | 0 | — |
case-17 | fail→pass | 14,090 | 7,975 | -43% | 1 | 1 | 0% | 2,228 | 2,493 | +12% | 0 | 0 | — |
case-18 | pass→pass | 12,671 | 2,858 | -77% | 1 | 1 | 0% | 1,045 | 2,489 | +138% | 0 | 0 | — |
case-19 | pass→fail | 12,085 | 5,785 | -52% | 1 | 1 | 0% | 951 | 2,763 | +191% | 0 | 0 | — |
case-20 | fail→pass | 14,776 | 25,982 | +76% | 1 | 1 | 0% | 1,519 | 2,613 | +72% | 0 | 0 | — |
case-21 | fail→pass | 20,075 | 12,850 | -36% | 1 | 1 | 0% | 2,341 | 2,948 | +26% | 0 | 0 | — |
case-22 | fail→pass | 23,328 | 9,623 | -59% | 1 | 1 | 0% | 3,655 | 2,329 | -36% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 19 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.