Skip to content
Back to skills

River Review Code

ASecurity

一般コード品質のレビューエージェント。デフォルトのフォールバック先。 可読性、保守性、型安全性、ロギング等の個別スキルへルーティングする。

  • 4 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 2, 2026
developmenttypescriptgonextjstestingcode-reviewapifrontendsecurityperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add s977043/river-review --skill river-review-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of River Review Code?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for River Review Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/s977043-river-review-code/badge)](https://www.skillsdirectory.com/skills/s977043-river-review-code)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: river-review-code
name: river-review-code
description: |
  一般コード品質のレビューエージェント。デフォルトのフォールバック先。
  可読性、保守性、型安全性、ロギング等の個別スキルへルーティングする。
category: midstream
phase: [midstream]
severity: minor
applyTo:
  # ルーティング先(typescript-strict / typescript-nullcheck / type-driven-design /
  # logging-observability / altitude-generalization / closure-scope-retention)の
  # applyTo 包含検査 warning 解消(#1508 系)。scripts/**・runners/** はこのリポジトリ
  # 自身に実在する自己参照ギャップ(#1494/#1500 と同型)、app/lib/packages/** は
  # #1500 の precedent 準拠。
  - 'src/**/*.{ts,tsx,js,jsx,mjs,cjs}'
  - 'app/**/*.{ts,tsx,js,jsx,mjs,cjs}'
  - 'lib/**/*.{ts,tsx,js,jsx,mjs,cjs}'
  - 'packages/**/*.{ts,tsx,js,jsx,mjs,cjs}'
  - 'scripts/**/*.{ts,tsx,js,jsx,mjs,cjs}'
  - 'runners/**/*.{ts,tsx,js,jsx,mjs,cjs}'
inputContext: [diff, fullFile]
outputKind: [findings, actions]
tags: [code-quality, default, entry, routing]
version: 0.1.0
license: MIT
---

# Code Quality Review(一般コード品質レビュー)

コードの可読性、保守性、型安全性を検証する。他の専門エージェントに該当しない場合のデフォルトフォールバック先。

## When to Use / いつ使うか

- 一般的なコード変更のレビュー時
- 他の専門エージェント(architecture, security, performance, testing)に該当しない場合
- コード品質の総合的なチェックが必要な場合

## Routing / ルーティング

| キーワード                 | スキルID                         | 説明                         |
| -------------------------- | -------------------------------- | ---------------------------- |
| 型, TypeScript, strict     | `typescript-strict`              | TypeScript strict モード準拠 |
| null, undefined, optional  | `typescript-nullcheck`           | null 安全性チェック          |
| 非同期, await, Promise     | `async-correctness`              | 非同期処理の正しさ検証       |
| 型駆動, 設計               | `type-driven-design`             | 型駆動設計                   |
| ログ, 監視                 | `logging-observability`          | ロギング・可観測性           |
| 自動化, 境界               | `review-automation-boundary`     | レビュー自動化の境界         |
| コメント, トリアージ       | `review-comment-triage`          | レビューコメント分類         |
| 幻覚的参照, 実在確認       | `hallucinated-reference`         | 新規参照の実在確認           |
| 簡素化, 整理, simplify     | SIMPLIFY 観点(本 skill 内)     | 品質クリーンアップ4観点      |
| 破壊的操作, undo, 回復支援 | UX-SAFEGUARD 観点(本 skill 内) | 操作の安全装置2観点          |

> UI/コンポーネント系のルーティング(a11y, デザインシステム, Next.js App Router 境界等)は `river-review-frontend` に一元化済み(#1462)。本ルーターからは移設し、二重発火を避けている。

### デフォルト動作

- キーワード指定なし → 以下のヒューリスティクスで判定:
  - `.ts`/`.tsx`ファイル → TypeScript strict + nullチェック
  - コンポーネントファイル → `river-review-frontend` も参照(a11y・デザインシステム観点は frontend 側が担当)
  - 設定ファイル → 型駆動設計チェック

## Checklist / チェックリスト

一般コードレビューでは以下を確認する:

### 可読性

- 関数・変数の命名が意図を表現しているか
- 意図を伝えない広すぎる名前(`data` / `info` / `manager` / `handler` / `util` / `current`)、共有されていない略語、同一概念の別名(または別概念の同名)がないか
- 関数の責務が単一か
- ネストが深すぎないか(3段以内。深い場合は guard clause で平坦化を提案)
- マジックナンバー・マジックストリングがないか

### 保守性

- DRY原則にしたがっているか(ただし過度な抽象化を避ける)
- 変更の影響範囲が限定的か
- 依存方向が正しいか
- カプセル化リークがないか: オブジェクト内部へ深く手を伸ばすコード(`a.b.c.type === 'x'`)、値オブジェクトから primitive を取り出して外部で分岐、getter による内部状態の露出。Tell-Don't-Ask(例: `user.subscription.plan.type === 'premium'` より `user.isPremium()`)を推奨する(Law of Demeter)

### 型安全性

- `any`の使用が最小限か
- 型ガードが適切か
- null/undefinedの扱いが安全か
- 型検査対象外の JSDoc 型変更: `scripts/` などで `unknown` を `any` へ緩める提案は直接行わない。境界判断が必要なときだけ owner skill `existing-pattern-conformance` を skill ID で解決し、その False-positive guards / fixtures に従う。owner を解決できない場合は推測せず、この境界判断をスキップする。

### エラーハンドリング

- エラーを握り潰していないか
- エラーメッセージが十分な情報を含むか
- リカバリー可能なエラーと不可能なエラーの区別
- 防衛的フォールバックの分界: config / registry などの内部不変条件へ fallback を足す提案はしない。外部 IO / 環境境界では defensive handling を確認する。詳細判断が必要なときだけ owner skill `nullability-contract` を skill ID で解決し、その False-positive guards / fixtures に従う。owner を解決できない場合は推測せず、この境界判断をスキップする。

## Execution Flow / 実行フロー

```text
1. ファイル種別の判定
   ├─ .ts/.tsxファイル → TypeScript strict + nullチェックを選択
   ├─ コンポーネントファイル → river-review-frontend も参照(a11y・デザインシステム観点)
   ├─ 設定ファイル → 型駆動設計チェックを選択
   └─ キーワード指定あり → 該当スキルを直接選択
      (SIMPLIFY / UX-SAFEGUARD 観点のキーワード該当時は本 skill 内で実行。キーワードは ROUTING.md を参照)

2. スキルの実行
   ├─ typescript-strict: strictモード準拠
   ├─ typescript-nullcheck: null安全性
   ├─ async-correctness: 非同期処理の正しさ
   ├─ type-driven-design: 型駆動設計
   ├─ logging-observability: ロギング・可観測性
   ├─ review-automation-boundary: レビュー自動化の境界
   └─ hallucinated-reference: 新規参照の実在確認

3. 統合
   ├─ 重複する指摘の除去
   └─ Checklistに基づく一般品質チェックの補完
```

## Multi-perspective Execution / 多観点実行(旧 agent-code-review から統合)

複数観点を横断するレビューでは、以下の順で差分を走査し findings を統合する。

| 順序 | 観点           | 実行ルール                                                             |
| ---- | -------------- | ---------------------------------------------------------------------- |
| 1    | セキュリティ   | Critical finding 検出時: 以降の観点も実行するが、Critical を先頭に出力 |
| 2    | パフォーマンス | ホットパス外の変更のみの場合はスキップ可                               |
| 3    | 品質・設計     | 常に実行                                                               |
| 4    | テスト網羅性   | テストファイルが差分に含まれない場合も、対象コードのテスト有無を確認   |

観点間の重要度比較: 異なる観点の findings が同一箇所を指す場合、severity が異なれば高い方を採用(もう一方は補足として併記)、同じなら security > performance > quality > testing の順で先に記載する。

出力件数の制約: 1 PR あたり最大 15 件(超過分は severity 降順で切り捨て、切り捨て件数を末尾に記載)。同一ファイルへの同一観点の指摘は最大 3 件にグルーピングする。

判定の手がかり:

- `catch` ブロック内の空文、`// TODO` → security / quality
- `O(n*m)` パターン、ループ内の DB / API コール → performance
- `any` 型、型アサーション(`as`)、未使用 import → quality
- 新規 export 関数にテストファイル内の対応する `describe` / `test` がない → testing

## Output Format / 出力形式

```text
<file>:<line>: <message>
```

- **Finding**: 何が問題か(1文)
- **Impact**: 何が困るか(短く)
- **Fix**: 次の一手(最小の修正案)

## 他スキルとの関係

| スキル                      | 関係 | 棲み分け                                                                                            |
| --------------------------- | ---- | --------------------------------------------------------------------------------------------------- |
| `river-review-architecture` | 補完 | code は「ミクロ品質」、architecture は「マクロ設計」                                                |
| `river-review-testing`      | 補完 | code は「プロダクションコード」、testing は「テストコード」                                         |
| `river-review-performance`  | 補完 | code は「可読性」、performance は「実行効率」                                                       |
| `river-review-frontend`     | 補完 | code は「一般コード品質」、frontend は「UI 固有の懸念」。UI 系ルートは frontend へ移設済み(#1462) |

## References

- [ROUTING.md](./references/ROUTING.md): 詳細なルーティングルール
- [SIMPLIFY.md](./references/SIMPLIFY.md): 品質クリーンアップ4観点の実行手順と委譲表
- [UX-SAFEGUARD.md](./references/UX-SAFEGUARD.md): 操作の安全装置2観点(破壊的操作の確認・取り消し / 入力エラーの回復支援)の実行手順と委譲表

Files in this skill

  • SKILL.md10 KB
  • references/ROUTING.md6.7 KB
  • references/SIMPLIFY.md9.3 KB
  • references/UX-SAFEGUARD.md6.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.