clack について
clackは、Clackを使った堅牢で使いやすいCLIフローの構築を支援するスキルです。実装方針や入力検証、キャンセル処理を案内し、JSとTSのテンプレートも備えています。
主な機能
- 01@clack/promptsと@clack/coreの利用ガイド
- 02入力検証とキャンセル処理のパターン
- 03UXと信頼性に関する推奨事項
- 04JSとTSのCLIスキャフォールドテンプレート
活用シーン
- 01対話型コマンドラインフローの構築
- 02プロンプトへの安全なキャンセル処理の追加
- 03基本またはスピナー付きCLIの生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alexeira/ skills --skill clackインストール後、Claude Code で/clackを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/templates/basic-cli.mjsbasic-cli.tsspinner-cli.mjsspinner-cli.tsreferences/best-practices.mdcore-api.mdexamples.mdprompts-api.mdsources.mdscripts/scaffold-clack.sh詳細
Clack CLI スキル
Clack を使って、堅牢でユーザーフレンドリーな CLI フローを実装します。
次のワークフローに従ってください
- 実装対象を特定します。
- ほとんどの対話型 CLI フローには
@clack/promptsを使用します。 - 低レベルのプロンプト描画やライフサイクル制御には
@clack/coreを使用します。
- 関連するリファレンスだけを読み込みます。
- プロンプト中心のワークフロー:
references/prompts-api.md - 低レベル/コアの拡張作業:
references/core-api.md - UX と信頼性のレビュー:
references/best-practices.md - パターンの選択とひな形の作成:
references/examples.md - ソースリンクと鮮度の確認:
references/sources.md - ユーザーがスターターファイルをすぐに求めている場合は、
scripts/scaffold-clack.shを実行します。
- まず、最小限の実行可能な骨組みを作成します。
- インポート、
intro()、フローのロジック、outro()を含めます。 - ユーザーのランタイムに合わせたインストール/実行コマンドを追加します。
- 明示的な検証とキャンセル処理を備えたプロンプトを追加します。
- 制約に違反する可能性のある、ユーザーに提示するすべてのフィールドを検証します。
- 各プロンプトの結果を受け取った後、
isCancel(...)とcancel(...)を使ってキャンセルを処理します。
- UX を支援する関数を意図的に追加します。
- 構造化されたフィードバックには
log.*を使用します。 - 長時間実行される単一の操作には
spinner()を使用します。 - 要約や次のアクションには
note()を使用します。
- 非同期の複数ステップの処理には、タスク指向のパターンを使用します。
- 明確なステータス更新と簡潔なタスクタイトルを優先します。
- 成功/エラーメッセージは短く、次に取るべき行動が分かるものにします。
- 本番環境で使える回答に仕上げます。
- ユーザーから別途指定がない限り、断片ではなく、実行可能な完全なコードを提示します。
- 簡単な動作確認手順も含めます。
同梱リソース
-
scripts/scaffold-clack.sh -
厳選された JS または TS のテンプレートからスターター CLI を生成します。
-
使い方:
bash scripts/scaffold-clack.sh <target-dir> [basic|spinner] [js|ts] [auto|npm|pnpm|yarn|bun] -
assets/templates/basic-cli.mjs -
検証、キャンセル処理、要約ノートを含む基本的なプロンプトフローです。
-
assets/templates/spinner-cli.mjs -
プロンプトフローに、時間のかかる処理向けのスピナーによる実行パターンを加えたものです。
-
assets/templates/basic-cli.ts -
基本的なプロンプトフローの TypeScript 版です。
-
assets/templates/spinner-cli.ts -
スピナーフローの TypeScript 版です。
必ず守るルール
- 必ずキャンセルしても安全な処理経路を用意します。
- 入力が有効だと決めつけず、検証し、修正方法をその場で説明します。
- ステータスメッセージとエラーメッセージのトーンを統一します。
- プロンプトの階層を浅く保ち、複雑なフローはグループ化したステップに分割します。
- ユーザーの入力やエラーを減らすため、適切なデフォルト値を優先します。
最新情報に関する方針
- Clack の API は進化しているものとして扱います。
- 信頼できるリンク一覧として
references/sources.mdを使用します。 - ユーザーが最新の動作やバージョン固有の詳細を求めている場合は、仕上げる前に公式ドキュメントを再確認します。
- Web にアクセスできない場合は、その制約を明示し、このスキルで文書化されている API に従います。
コメント
Markdown 対応