Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
品質ゲート(lint・型チェック・テスト)を実行し、必須ゲート通過を機械可読な結果で返す。Triggers on: '/quality-check', '品質チェック', 'QCして', 'quality gate'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
プロジェクトの 自動修正 → lint → 型チェック → テスト を順に実行し、必須ゲート(Lint・型チェック・テストのパス)を通します。結果は人間向けサマリーと、呼び出し元が判定に使える機械可読な形式の両方で返します。
必須ゲートにはこのほか「セルフレビュー」「CI」も含まれますが、本スキルはそのうち自動実行できる Lint / 型チェック / テストを担います。
<!-- 正本: docs/plugin-path-conventions.md -->スクリプトの実行形(重要・本スキルが実行する全スクリプト共通): 本スキルはプラグインとして配布されるため、実行するスクリプト(
quality-check-runner)はユーザーのプロジェクトroot ではなく、プラグイン配下にある。スクリプトを実行する際は必ず PATH 上のランチャー経由でclaude-harness-run <スクリプト名>の形式(パス・バージョン・引用符を付けない。この形だけがBash(claude-harness-run:*)の1行で allowlist できる)を用い、相対パスscripts/<スクリプト名>.shでは呼び出さないこと。claude-harness-run: command not foundになった場合のみbash "<プラグインルート>/scripts/<スクリプト名>.sh"にフォールバックする(パスは引用符で囲む。プラグインルートはスキル起動時の「Base directory for this skill」から解決した絶対パス。${CLAUDE_PLUGIN_ROOT}は表記上のプレースホルダであり環境変数ではない)。フォールバックした場合はユーザーにランチャー導入を案内すること。
単独コマンドとして実行する(重要・全スクリプト共通): 各スクリプトは上記の形のまま、シェル変数へ代入せず(
RESULT=$(…)としない)、同じ Bash 呼び出しに後続コマンドを繋げない(; echo "$RESULT"やjq … <<<"$RESULT"を続けない)こと。ローカル変数を展開する後続コマンドがあると、permission の静的解析が「解析不能」と判定して allowlist 到達前に拒否され、headless 実行が止まる(実測済み)。stdout の JSON と exit code は Bash ツールの実行結果からそのまま読む。
CLAUDE.md および package.json 等から、以下のコマンドを特定する(意味理解が必要なため LLM が行う):
渡せるコマンドの形(重要): 手順2のスクリプトはコマンドをシェルに渡さず直接実行する(Issue #223。Bash(claude-harness-run:*) の allow が、ランチャーへ直接渡す文字列で settings.json の deny を迂回する経路にならないようにするため)。したがって:
; && || | > $(…) ` クォート グロブ)。CLAUDE.md に npm run lint && npm run lint:css のように書かれていてもそのまま渡さない。プロジェクト側の1コマンド(package.json の scripts / Makefile のターゲット)に該当するものがあればそれを渡し、無ければそのゲートは省略して未実行として報告する(繋げるために自分でシェル構文を組み立てない)scripts/config/command-allowlist.txt)に載っている実行系だけ。npm run … / pytest / cargo test などは通り、rm / curl / bash は通らない。bundle exec / uv run / python3 -m / npx --no は実行対象も一覧に載っている必要がある(bundle exec rspec は可、bundle exec rm -rf / は不可)。cargo run / go run / node <ファイル> / cargo install のように呼び出し側が実行対象を指名する形も通らないclaude-harness-run --env KEY=VALUE … で渡す(KEY=V cmd の前置形は使えない)契約に反するコマンドを渡すと、手順2はどのゲートも実行せずに exit 4 で拒否し、理由と書き直し方を stderr に出す。
該当するコマンドが存在しないものは省略する(手順2のスクリプトが「スキップ」として扱い、失敗とはしない)。ただし lint / 型チェック / テストのいずれも特定できなかった場合、手順2は result: "skip"(exit 3)を返す。pass に読み替えず、未検証として報告する(手順2・手順3)。
自動修正の事前適用 → lint → 型チェック → テストの順序実行、exit code に基づく gates.*.status 判定、機械可読 JSON の構築は、決定的な処理として scripts/quality-check-runner.sh に切り出されている。
claude-harness-run quality-check-runner \
--auto-fix "<auto-fixコマンド1>" \
--auto-fix "<auto-fixコマンド2>" \
--lint "<リントコマンド>" \
--typecheck "<型チェックコマンド>" \
--test "<テストコマンド>"
--auto-fix/--lint/--typecheck/--test フラグごと省略する(0個以上の --auto-fix を検出順に指定。--lint/--typecheck/--test は1回のみ指定可)実行結果の解釈(品質結果と実行エラーを混同しない): 品質判定に使ってよいのは stdout が妥当な JSON としてパースできた場合だけ。次の順で判定する:
quality-check-runner が起動される前に終了。exit 69 = プラグインルート/実行系を解決できない、66 = target が見つからない、64 = 引数不正、command not found = ランチャー未導入)。この場合は上記注記のフォールバック形を試し、ランチャー導入をユーザーに案内する2 = jq 不在、exit 1 + 空 stdout = CLI引数不正、exit 4 = コマンドの形が契約に反する〈シェル構文を含む/allowlist に無い実行系〉)4 の場合は品質 fail ではない。stderr の指示に従い、手順1へ戻ってそのプロジェクトの1コマンドを特定し直して再実行する。書き直せない場合はそのゲートを省略した実行に切り替え、省略した事実を手順3で報告する(シェル構文を自分で組み立て直したり、bash -c 等の別経路で実行して回避したりしない——それは塞いだ迂回路を再び開くことになる)result が pass なら 0、fail なら 1、skip なら 3
result と exit code が食い違う場合は実行エラー扱いとし、暗黙に pass へ倒さないresult: "skip"(exit 3)はゲートが1つも実行されなかった状態。品質 fail ではないが、pass にも読み替えない。手順1でコマンドを取りこぼしていたなら特定し直して再実行し、それでも skip なら未検証(⊘ SKIP)として手順3で報告する(総合判定を PASS にしない)出力 JSON のフィールド定義と件数抽出の仕様の正本は、プラグイン配下の scripts/specs/quality-check-runner.md(ここには複製しない)。**cwd 起点の相対パス scripts/specs/quality-check-runner.md では導入先プロジェクトの同名ファイルを誤って参照しうるため、Read する場合はスキル起動時の「Base directory for this skill」を起点に <base>/../../scripts/specs/quality-check-runner.md として解決すること。
手順2で得た stdout の JSON({result, auto_fix, gates})を、機械可読な結果として最後にそのまま出力する(呼び出し元のスキル/エージェントが判定に使う)。result が "skip" の場合もそのまま出力し、"pass" に書き換えない。
あわせて gates.* の内容から人間向けサマリー(✅ パス / ❌ 失敗 / ⊘ スキップ)を組み立てて提示する:
## 品質ゲートチェック結果
### 自動修正 (適用された場合)
- {auto_fix.summary}
| チェック | 結果 | 詳細 |
|---------|------|------|
| リント | ✅/❌/⊘ | errors, warnings |
| 型チェック | ✅/❌/⊘ | errors |
| テスト | ✅/❌/⊘ | passed/failed/skipped |
### 総合判定: ✅ PASS / ❌ FAIL / ⊘ SKIP(ゲート未実行)
gates.*.status が fail のゲートがある場合:
--- <gate>: <cmd> --- 区切り)からエラー内容を分析自律実行コンテキスト(feature-implementer などのサブエージェント呼び出し)では、呼び出し元が機械可読な結果を見て修正ループを管理する。
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
調査(read-only)または雑務(workspace-write)をCodexへ委譲し、結論をJSONで受け取る。Triggers on: '/codex-task', 'Codexで調べて', 'Codexにやらせて', 'Codexへ委譲'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Conventional Commits形式でコミットする。Triggers on: '/commit', 'コミットして', 'commit changes'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
恒常的な設計決定を ADR として記録する(退役する機能仕様から ADR 昇格の要否を判定するモードを併せ持つ)。定常フローの必須ステップではなく、必要時に呼ぶ。Triggers on: '/create-adr', 'ADRを書いて', '設計判断を記録', 'ADR昇格を判定'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
仕様(チケットの完了条件・受入基準)からE2Eテストを実装する(非対話)。Triggers on: '/create-e2e', 'E2Eテストを書いて', 'E2Eテストを追加して'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
機能仕様ドキュメントから要件チケットを作成する、または親要件チケットを実装チケット群に分解する。Triggers on: '/create-ticket', 'チケットを作成', 'Issueを作って', 'create ticket', '実装チケットに分解'
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.