shell-review について
shell-review は、シェルスクリプトの正確性、安全性、移植性を監査するスキルです。終了コードや構造などを順に確認し、根拠付きの指摘と引用検証を求めます。
主な機能
- 01終了コード処理の監査
- 02移植性と安全性の確認
- 03スクリプト構造の確認
- 04指摘の根拠を記録
- 05指摘の引用を検証
活用シーン
- 01CI/CD パイプラインスクリプトのレビュー
- 02Git フックやラッパーの監査
- 03ビルド自動化スクリプトの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill shell-reviewインストール後、Claude Code で/shell-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
modules/exit-codes.mdportability.mdsafety-patterns.mdstructure-patterns.md詳細
Shell スクリプトのレビュー
Shell スクリプトの正確性、安全性、移植性を監査します。
検証
レビュー後、shellcheck <script> を実行し、修正によって特定した問題が解決されたことを検証します。
テスト
pytest plugins/pensive/tests/skills/test_shell_review.py -v を実行して、レビューのパターンを検証します。
クイックスタート
/shell-review path/to/script.sh
使用する場面
- CI/CD パイプラインのスクリプト
- Git フックのスクリプト
- ラッパースクリプト(run-*.sh)
- ビルド自動化スクリプト
- コミット前フックの実装
使用しない場面
- Shell 以外のスクリプト(Python、JS など)
- レビューが不要なワンライナーコマンド
必須の TodoWrite 項目
shell-review:context-mappedshell-review:exit-codes-checkedshell-review:portability-checkedshell-review:safety-patterns-verifiedshell-review:structure-checkedshell-review:evidence-loggedshell-review:findings-verified
ワークフロー
ステップ 1:コンテキストを把握する(shell-review:context-mapped)
Shell スクリプトを特定します:
# Find shell scripts
find . -not -path "*/.venv/*" -not -path "*/__pycache__/*" \
-not -path "*/node_modules/*" -not -path "*/.git/*" \
-name "*.sh" -type f | head -20
# Check shebangs
rg -l "^#!/" scripts/ hooks/ 2>/dev/null | head -10
# fallback: grep -l "^#!/" scripts/ hooks/ 2>/dev/null | head -10
以下を記録します:
- スクリプトの目的と実行される状況
- 統合ポイント(make、pre-commit、CI)
- 想定される入力と出力
ステップ 2:終了コードを監査する(shell-review:exit-codes-checked)
@include modules/exit-codes.md
ステップ 3:移植性を確認する(shell-review:portability-checked)
@include modules/portability.md
ステップ 4:安全性のパターンを確認する(shell-review:safety-patterns-verified)
@include modules/safety-patterns.md
ステップ 5:構造のパターンを確認する(shell-review:structure-checked)
@include modules/structure-patterns.md
ステップ 6:証拠を記録する(shell-review:evidence-logged)
imbue:proof-of-work を使用し、ファイルと行番号を参照して指摘事項を記録します。
以下を要約します:
- 重大な問題(失敗の隠蔽、セキュリティリスク)
- 主な問題(移植性、保守性)
- 軽微な問題(スタイル、ドキュメント)
出力形式
## Summary
Shell script review findings
## Scripts Reviewed
- [list with line counts]
## Exit Code Issues
### [E1] Pipeline masks failure
- Location: script.sh:42
- Anchor: `verbatim source text at file:line`
- Pattern: `cmd | grep` loses exit code
- Fix: Use pipefail or capture separately
## Portability Issues
[cross-platform concerns]
## Safety Issues
[unquoted variables, missing set flags]
## Recommendation
Approve / Approve with actions / Block
指摘事項の根拠を検証する(shell-review:findings-verified)
指摘事項を .review/findings.json に書き込み、引用検証ツール
(Skill(imbue:review-core) のステップ 5)を実行して、検証ツールが却下したものは削除するか UNVERIFIED とラベル付けします。
完了条件
- 終了コードの伝播を検証済み(パイプラインで
pipefailまたは値の取得とチェックを確認) - 移植性に関する問題を記録済み(
#!/bin/shスクリプト内の Bash 固有構文にフラグを付与) - 安全性のパターンを検証済み(echo を使用しない、変数を波括弧で囲む、
:?展開、サブシェル内での cd、basename/dirname を使用しない) - 構造のパターンを検証済み(ライブラリと実行可能ファイルの区別、main の呼び出し、プリアンブル、依存関係チェック、shfmt によるフォーマット)
-
imbue:proof-of-workを使い、ファイルと行番号を参照して証拠を記録済み - 報告するすべての指摘事項に
Locationと逐語的なAnchorがあり、citation_verifier.py(終了コード0)で確認済み、または未検証の指摘事項を削除するかUNVERIFIEDとラベル付け済み
コメント
Markdown 対応