MakingHCPChartSkill でHCP図をSVG出力する方法
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で書いてみると導入効果が実感しやすい
参考リンク
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
例外処理の実践ルール【catchとログの判断基準】
深い helper での広い catch と各層の重複ログを避けるため、呼び出し階層のどこで例外を catch し、どこで主ログを出し、どこで結果化や回復を判断するかを実務観点で整理した解説記事です。
Windows × Codex の文字化け防止ガイド
Windows で Codex に日本語ファイルを扱わせると文字化け事故が起きやすい原因を整理し、読み込み前の確認、保存条件、再読込検証、AGENTS.md への常設ルールまで、現場で再利用できる指示テンプレートを提示します。
Windows待機処理はイベントを使え【15.6msポーリングの罠】
Windows の Sleep や timed wait は約15.6ms の clock 粒度に縛られ、思った精度が出ません。仕事到着や I/O 完了、停止要求は timer ポーリングではなく event 駆動で待つべき理由と、典型アンチパターンの直し方を整理します。
未想定例外発生時の対応判断フロー
想定していない例外が発生したとき、アプリを終了すべきか継続すべきかを判断するための実用的な指針をまとめた記事です。失敗単位、共有状態、外部副作用、ネイティブ境界の観点から3段階の選択肢と判断表で整理し、設計判断に直接使えます。
Windowsアプリのセキュリティチェックリスト
WPF・WinForms・WinUI・C++・C# など Windows アプリ開発で最低限外したくないセキュリティ項目を、権限・署名・秘密情報・通信・入力・DLL・ログの観点でチェックリスト化し、リリース前に何を確認すべきか整理した記事です。
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
技術相談・設計レビュー
改修方針、設計レビュー、既存資産の扱いを整理するための技術相談です。