plan-viewer は今、自分のパソコンの設定ファイルのあちこちにバラバラに置いてある。具体的には、スキル定義(AIへの指示書)、自動チェックの仕組み、サーバーの3つが別々の場所に散らばっている状態。
このままだと自分しか使えない。Claude Code のプラグイン(拡張機能パッケージ)として1つのフォルダにまとめれば、他のユーザーも使えるようになる。
設計方針は「今必要なものだけ作る」(YAGNI)と「とにかくシンプルに」(KISS)。余計な機能は後回しにして、まず動くものを公開することを優先する。
v1.0(今回): GitHub に公開 → claude --plugin-dir でローカル利用。これは公式にサポートされた「単一セッション向け」の方法。
v1.1以降: Marketplace(プラグインの配布ストア)に登録して、claude plugin install plan-viewer で永続インストール可能にする。
プランをCodexにレビューさせた結果、8件の指摘を受けた。うち5件を採用、3件を却下した:
採用した指摘:
uname ベースに変更(よりポータブル)却下した指摘:
--plugin-dir は公式ドキュメントに明記あり--plugin-dir が非推奨 → 誤り。公式に「単一セッション向け」として記載あり新しく作るリポジトリ(プロジェクトフォルダ)の中身はこうなる:
.claude-plugin/plugin.json — マニフェスト(プラグインの名刺。名前・バージョン・中身の一覧を記載)
skills/ — AIへの指示書。HTML生成ルール、デザイン定義など
hooks/ — 自動チェックの仕組み。「plan完了前にHTMLを作りましたか?」と確認するフック
scripts/ — スマホからアクセスするためのサーバー
commands/ — /plan-viewer:setup や /plan-viewer:serve で使えるコマンド
assets/ — アイコンやPWA設定ファイル
plugin.json を置く。ライセンスはMIT(誰でも自由に使ってOK)。uname ベースのOS判定に書き換えてLinuxでも動くようにする。保存先フォルダも環境変数(パソコンの設定値)で変更可能に。さらにフックの完全な設定定義(JSON)をプランに明記して、実装時のブレをなくす。/plan-viewer:setup(初期設定)と /plan-viewer:serve(サーバー起動)の2つのコマンドを作る。初期設定の実処理は scripts/setup.sh に集約し、コマンド文書はその呼び出しだけにする。これにより環境差による手順のブレを防ぐ。| 判断ポイント | 決定 | 理由 |
|---|---|---|
| 保存先フォルダ | 環境変数で変更可能、初期値は ~/plan-viewer/ | 全プロジェクト横断で一覧表示するため、プロジェクトごとではなくホーム直下 |
| サーバー | プラグインに同梱 | 49行・外部ライブラリなし。分ける理由がない |
| 自動チェック | デフォルトで有効 | plan-viewerの核心機能。設定しないと誰も使わない |
| 多言語対応 | しない(日本語のみ) | 今は不要。必要になってから対応すればいい(YAGNI) |
claude --plugin-dir ~/plan-viewer-plugin でプラグイン起動し、plan mode → HTMLが正しく生成されるか/plan-viewer:setup → scripts/setup.sh が実行され、アイコンなどが正しくコピーされるかゼロ依存がカギ — plan-viewer は外部ライブラリを一切使っていない。Python標準ライブラリだけのサーバー、インラインCSS/JSだけのHTML。この「何もインストールしなくていい」特性がプラグイン化と相性がいい。
スキル分割で効率化 — 800行を5ファイルに分けることで、AIが毎回全部読む必要がなくなる。HTML生成時はテンプレートだけ、色を変えたいときはパレットだけ参照すればいい。
段階移行でリスク回避 — Codex のレビューで指摘された「移行の破壊的リスク」に対応。バックアップ → 並行稼働 → 段階削除の3フェーズで、いつでもロールバック(元に戻す)できる。
MIT ライセンス — 最も自由度が高いオープンソースライセンス。誰でも使える・改変できる・商用利用もOK。