SlideFlow コマンド体系の設計考察
作成日: 2025-07-06
現在のコマンド体系(2025年1月更新)
基本構造
slideflow <command> [options] [path]
コマンド一覧
new <name>
- 新しいプレゼンテーションを作成preview [path]
- プレゼンテーションをプレビューai [options] [path]
- AI支援(包括的支援)build [format] [path]
- プレゼンテーションをビルドinfo [path]
- プレゼンテーション情報を表示list [path]
- 作成済みプレゼンテーションを一覧表示templates
- 利用可能なテンプレートを表示instructions
- AI指示書システムの状況確認help
- ヘルプを表示
AIコマンドの階層構造
包括的AI支援(ai
コマンド)
ai [path]
- 対話的フェーズ支援ai --quick <type> [path]
- 簡易支援(tech/business/academic)ai --phase <phase> [path]
- 特定フェーズ(planning/research/design/creation/review)ai --continue [path]
- 前回セッション継続ai deep-research
- 深層調査専門機能へ
AI深層調査機能(ai deep-research
サブコマンド)
ai deep-research init
- 調査環境初期化ai deep-research search [options] "query"
- AI Web検索--auto
,-a
- 自動実行モード(デフォルト:インタラクティブ)--timeout
,-t <秒>
- タイムアウト設定(デフォルト:300秒)
ai deep-research analyze <file>
- ドキュメント分析ai deep-research add-note "content"
- メモ追加ai deep-research add-source URL
- ソース追加ai deep-research list
- 調査内容一覧ai deep-research summary
- サマリー表示
現状の評価
👍 良い点
- 直感的なコマンド名
- 動詞ベースでわかりやすい(new, preview, build, list, info)
- Gitなど既存ツールの慣習に従っている
- 一貫したパス引数の扱い
- ほぼすべてのコマンドで
[path]
をオプション引数として受け付ける - デフォルトは現在のディレクトリ(
.
) - list と info の連携が良好
- ほぼすべてのコマンドで
- AIコマンドの柔軟性
- 段階的な支援レベル(対話的/クイック/フェーズ指定)
- オプションの組み合わせが論理的
- 国際化対応
- LANG環境変数による言語切り替え
- 日本語・英語の完全対応
改善提案
1. サブコマンド化の検討
現在のフラットな構造を、より組織的にできる可能性:
# 現在
slideflow ai --quick tech
slideflow ai --phase planning
# 提案(後方互換性を保ちつつ)
slideflow ai quick tech
slideflow ai phase planning
slideflow ai interactive # デフォルトの対話的モード
2. グローバルオプションの追加
slideflow --lang en list # 言語指定
slideflow --verbose build pdf # 詳細出力
slideflow --quiet preview # 静音モード
slideflow --config <file> new # 設定ファイル指定
3. コマンドのグループ化
論理的にグループ化してヘルプを理解しやすくする:
基本操作:
new プレゼンテーションを作成
list 既存プレゼンテーションを一覧表示
info プレゼンテーション情報を表示
開発・編集:
preview プレゼンテーションをプレビュー
build プレゼンテーションをビルド
AI支援:
ai AI支援機能
その他:
templates テンプレート一覧
instructions AI指示書システム状況
help ヘルプ表示
4. 新しいコマンドの提案
プレゼンテーション管理
# 削除
slideflow remove <name>
slideflow rm <name> # エイリアス
# コピー/移動
slideflow copy <source> <dest>
slideflow move <source> <dest>
slideflow mv <source> <dest> # エイリアス
# 名前変更(moveのシンプル版)
slideflow rename <old> <new>
エクスポート/インポート
# アーカイブ化
slideflow export <path> --format zip
slideflow export <path> --format tar.gz
# インポート
slideflow import <archive>
設定管理
# 設定の表示・変更
slideflow config --list
slideflow config --get <key>
slideflow config --set <key>=<value>
# 例
slideflow config --set default.template=academic
slideflow config --set preview.port=3000
バージョン管理連携
# Git連携
slideflow init --git # Git初期化も同時に行う
slideflow commit # 変更をコミット(コミットメッセージ自動生成)
5. パス引数の統一性向上
現在templates
とinstructions
はパス引数を取らないが、一貫性のために:
slideflow templates [path] # 特定ディレクトリのテンプレートを表示
slideflow instructions [path] # 特定プロジェクトの指示書を表示
実装優先度
高優先度(互換性を保ちつつすぐ実装可能)
- グローバルオプション
--lang
,--verbose
,--quiet
- 既存の動作に影響しない
- removeコマンド
- 基本的な管理機能として必要
- 実装が比較的簡単
- ヘルプのグループ化表示
- 視認性の向上
- 実装が簡単
中優先度(将来的な拡張)
- copy/moveコマンド
- プレゼンテーション管理の利便性向上
- configコマンド
- カスタマイズ性の向上
- renameコマンド
- moveの便利なショートカット
- サブコマンド化
- 後方互換性を保ちながら段階的に実装
低優先度(大規模な変更)
- export/import機能
- 共有・配布機能として有用だが複雑
- バージョン管理連携
- Git統合は便利だが実装が複雑
- プラグインシステム
- 拡張性は高いが設計が必要
設計原則
- シンプルさを保つ
- 基本的な操作は簡単に
- 高度な機能はオプションで
- 後方互換性
- 既存のコマンドは動作を維持
- 新機能は追加的に実装
- 一貫性
- すべてのコマンドで同じパターンを使用
- パス引数の扱いを統一
- 発見可能性
- ヘルプで機能が見つけやすい
- エラーメッセージが親切
まとめ
現在のSlideFlowのコマンド体系は基本的に良好で、シンプルさと機能性のバランスが取れています。提案した改善は、このバランスを保ちながら、より強力で使いやすいツールへと成長させることを目的としています。
実装は優先度に従って段階的に行い、常にユーザビリティとシンプルさを重視することが重要です。