mcpField
S
shell-review

shell-review

github.com/atholaテスト・品質343144 回インストール1 日前に更新
リポジトリ

shell-review について

shell-review は、シェルスクリプトの正確性、安全性、移植性を監査するスキルです。終了コードや構造などを順に確認し、根拠付きの指摘と引用検証を求めます。

主な機能

  1. 01終了コード処理の監査
  2. 02移植性と安全性の確認
  3. 03スクリプト構造の確認
  4. 04指摘の根拠を記録
  5. 05指摘の引用を検証

活用シーン

  1. 01CI/CD パイプラインスクリプトのレビュー
  2. 02Git フックやラッパーの監査
  3. 03ビルド自動化スクリプトの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/athola/claude-night-market --skill shell-review

インストール後、Claude Code で/shell-reviewを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

modules/
exit-codes.md
portability.md
safety-patterns.md
structure-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 項目

  1. shell-review:context-mapped
  2. shell-review:exit-codes-checked
  3. shell-review:portability-checked
  4. shell-review:safety-patterns-verified
  5. shell-review:structure-checked
  6. shell-review:evidence-logged
  7. shell-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 とラベル付け済み

コメント