cli-forge-scaffold について
cli-forge-scaffoldは、承認済みのcli-plan.ymlからRust CLIの基本プロジェクトを生成します。CLI設計が確定したプロジェクト向けに、同梱テンプレートを展開し、Cargoのビルド、Lint、フォーマット、テストを実行します。
主な機能
- 01承認済みcli-plan.ymlに基づくテンプレート展開
- 02Rust CLIの構成と基本ファイルの作成
- 03未解決テンプレートプレースホルダーの確認
- 04Cargoビルド、Clippy、フォーマット、テストの実行
- 05スキャフォールドレシートの生成
活用シーン
- 01承認済みCLIプランからのプロジェクト作成
- 02一貫したRust CLIの基本構成の初期化
- 03引き継ぎ前の生成プロジェクト検証
- 04生成結果と延期機能の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bytelandtechnology/ cli-forge --skill cli-forge-scaffoldインストール後、Claude Code で/cli-forge-scaffoldを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
planning-brief.mdcontracts/scaffold-receipt.yml.tplinstructions/new.mdtemplates/Cargo.toml.tplcli_test.rs.tplcontext.rs.tpldot-gitignore.tplhelp.rs.tpllib.rs.tplmain.rs.tplREADME.md.tplSKILL.md.tpl詳細
cli-forge Scaffold
作業内容がベースラインテンプレートから新しい Rust CLI Skill プロジェクトを作成することであり、詳細な CLI 契約(Plan)がすでに明示的に定義され、承認されている場合は、このステージを使用します。
目的
承認済みの cli-plan.yml と正式なテンプレートを使用して、新しいスキルのベースラインコードベースを生成します。
このステージでは設計上の決定は行わず、Plan ステージで提示された設計図に厳密に従います。
公式参照先
開始条件
| # | 確認項目 | 参照元 |
|---|---|---|
| 1 | cli-plan.yml が存在し、承認済みである | Plan stage |
| 2 | skill_name が判明している | Plan stage |
| 3 | 対象プロジェクトのディレクトリが存在しない | ファイルシステム |
必須入力
skill_name- 承認済みの
cli-plan.yml - 任意の
author、version、rust_edition
ワークフロー
./instructions/new.mdに記載された事前チェックを実行します。スキル名を必須とし、cli-plan.ymlを確認し、既存のディレクトリへの上書きを拒否します。- ディレクトリ構造を作成します。
cli-plan.ymlと手順ファイルの定義に厳密に従って./templates/のテンプレートを展開し、インストールに安全なdot-*リソースのエイリアスを、本来のドット始まりの出力パスに戻します。- 未解決の
{{token}}プレースホルダーが残っていないことを確認します。 - 生成されたプロジェクトのルートから、必須の検証コマンドを実行します。
cargo buildcargo clippy -- -D warningscargo fmt --checkcargo test
- 生成されたパッケージのレイアウトが、文書化された範囲内に収まっていることを確認します。ベースラインで生成されるファイルに、機能固有のサポートファイルを加えたものが対象です。リポジトリ管理の CI ワークフローとリリーススクリプトは、Publish までは生成プロジェクトの外部に置きます。
./contracts/scaffold-receipt.yml.tplのテンプレートを使用して.cli-forge/scaffold-receipt.ymlを生成します。
成果物
- 新しい Rust CLI パッケージのディレクトリ
.cli-forge/scaffold-receipt.yml
完了条件
| # | 確認項目 |
|---|---|
| 1 | すべてのテンプレートが展開され、未解決のトークンがない |
| 2 | cargo build が成功する |
| 3 | cargo clippy -- -D warnings が成功する |
| 4 | cargo fmt --check が成功する |
| 5 | cargo test が成功する |
| 6 | scaffold-receipt.yml が生成されている |
ガードレール
- このステージでは、同梱された
./templates/ディレクトリのテンプレートのみを使用します。このスキルパッケージの外部にあるスキャフォールド用テンプレートを参照してはいけません。 ./templates/内のdot-*リソース名は、インストールに安全なエイリアスとしてのみ扱います。生成物では、本来のドット始まりのファイル名に戻す必要があります。- プロジェクト構造や依存関係を独自に決めてはいけません。すべて
cli-plan.ymlに基づいていなければなりません。 - スキャフォールドのベースラインで生成されるのは、動作するワンショット CLI のみです。任意機能(
repl、stream、daemon)はベースラインには含まれず、ベースラインプロジェクトの検証後に Extend ステージ(../cli-forge-extend/SKILL.md)で追加する必要があります。cli-plan.ymlでいずれかの機能がin_scopeと指定されている場合は、ベースラインの生成を進め、延期する機能をscaffold-receipt.ymlのdeferred_capabilitiesに記録し、次に Extend ステージが必要となる機能をユーザーに伝えます。 - Cargo の検証手順のいずれかが失敗した場合は、ワークフローを停止し、作業を引き継ぐ前にスキャフォールドされたファイルを修正します。
次のステップ
scaffold-receipt.yml に延期された機能が記載されている場合は、引き継ぐ前に
AskUserQuestion を使用して確認してください。延期された機能ごとに、すぐに拡張を実行するかどうかを尋ねてください。ユーザーが承認した場合は、延期された機能ごとに順番に拡張を実行してください。ユーザーが辞退した場合は、代わりに各機能に対する正確な
/cli-forge-extend の呼び出し方法を列挙してください(instructions/new.md の「機能の延期」を参照)。それ以外の場合は、
../cli-forge-validate/SKILL.md
に進み、コンプライアンスルール一式を実行してください。