MakingHCPChartSkill でHCP図をSVG出力する方法

· · HCP, Codex, SVG, Python, 設計

HCPチャートとは

HCPチャートは、処理の流れを階層構造で記述する表現方法です。

  • 左側(浅い階層):達成したい目的(What)
  • 右側(深い階層):具体的な手段や詳細(How)
  • 最上位(レベル0):全体の目的ラベル

このルールに従うだけで、設計の意図と実装の詳細がひと目でわかります。

なぜHCPチャートが便利か

従来の手書きの図には、以下の問題がありました。

  • 図と仕様書の内容がズレる
  • 分岐や階層があいまいになる
  • Gitでの差分レビューがしづらい

HCPチャートは HCP-DSL(テキスト)からSVG画像を自動生成 するため、同じ入力から常に同じ図が得られます。CIやコードレビューにも組み込めます。

リポジトリの構成

対象リポジトリ: https://github.com/gomurin0428/MakingHCPChartSkill

ファイル 役割
SKILL.md スキルの使い方と制約
hcp_render_svg.py JSON入力を検証しSVGを生成する本体
references/ サンプル入出力とSVG例
hcp_xml_to_svg.py 旧バージョン(非推奨)

10分ハンズオン

1. リポジトリを取得

git clone https://github.com/gomurin0428/MakingHCPChartSkill.git
cd MakingHCPChartSkill

2. スキルをローカルCodexに配置

Copy-Item -Recurse -Force .\hcp-chart-svg-v2 "$HOME\.codex\skills\hcp-chart-svg-v2"

3. SVGレスポンスを生成

python .\hcp-chart-svg-v2\scripts\hcp_render_svg.py `
  --input .\hcp-chart-svg-v2\references\example-gcd-request.json `
  --output .\hcp-chart-svg-v2\references\example-gcd-response.json `
  --pretty

4. SVGを取り出す

$r = Get-Content -Raw .\hcp-chart-svg-v2\references\example-gcd-response.json | ConvertFrom-Json
$r.svg | Set-Content -NoNewline -Encoding utf8 .\hcp-chart-svg-v2\references\example-gcd.svg

注意点

  • renderAllModules=true のときは module を指定できません
  • diagnostics にエラーがあるとSVGは空になります

HCP-DSLの書き方(例)

以下はGCD(最大公約数)を求める処理のDSLです。

\module main
リクエストを受け取り前提を確認する
    入力JSONの必須項目を検証する
DSLを解析して構造化する
    モジュールと階層を解釈する
    diagnostics を収集する
診断結果に応じて応答経路を選ぶ
    \fork error が存在するか
        \true はい
            空の SVG 系ペイロードを返す
        \false いいえ
            描画対象モジュールを決定する
            \fork renderAllModules が true か
                \true はい
                    全モジュールの SVG を生成する
                \false いいえ
                    単一モジュールの SVG を生成する
結果を呼び出し元へ返す

まとめ

  • HCPチャートは図=仕様として管理できるのが最大の強み
  • 同じ入力から同じ出力が得られるので、CI/CDやレビューと相性が良い
  • 普段の処理仕様を1つHCP-DSLで書いてみると導入効果が実感しやすい

参考リンク

関連する記事

同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。

Windows × Codex の文字化け防止ガイド

Windows で Codex に日本語ファイルを扱わせると文字化け事故が起きやすい原因を整理し、読み込み前の確認、保存条件、再読込検証、AGENTS.md への常設ルールまで、現場で再利用できる指示テンプレートを提示します。

記事を読む

未想定例外発生時の対応判断フロー

想定していない例外が発生したとき、アプリを終了すべきか継続すべきかを判断するための実用的な指針をまとめた記事です。失敗単位、共有状態、外部副作用、ネイティブ境界の観点から3段階の選択肢と判断表で整理し、設計判断に直接使えます。

記事を読む

Windowsアプリのセキュリティチェックリスト

WPF・WinForms・WinUI・C++・C# など Windows アプリ開発で最低限外したくないセキュリティ項目を、権限・署名・秘密情報・通信・入力・DLL・ログの観点でチェックリスト化し、リリース前に何を確認すべきか整理した記事です。

記事を読む

関連トピック

このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。

このテーマがつながるサービス

この記事は次のサービスページにつながります。近い入口からご覧ください。

ブログ一覧に戻る