Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add s977043/river-review --skill nextjs-app-router-boundarygit clone --depth 1 https://github.com/s977043/river-reviewWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/s977043/river-review/nextjs-app-router-boundary)<a href="https://agentmods.dev/skills/s977043/river-review/nextjs-app-router-boundary"><img src="https://agentmods.dev/badge/skills/s977043/river-review/nextjs-app-router-boundary/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/s977043/river-review/nextjs-app-router-boundary"><img src="https://agentmods.dev/badge/skills/s977043/river-review/nextjs-app-router-boundary.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.00696 |
| Opus 5 | $0.00016 | $0.00348 |
| Sonnet 5 | $0.00006 | $0.00139 |
| Haiku 4.5 | $0.00003 | $0.00070 |
Grade A, and why
Next.js App Router Client/Server Boundary scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Goal / 目的
- App Router の Server Component でクライアント専用APIを誤って使うミスを減らす。
Non-goals / 扱わないこと
- 画面設計やUI/UXの是非。
- App Router 以外のフレームワーク構成。
- 非同期データ取得の最適化全般(別スキルの対象)。
False-positive guards / 抑制条件
- ファイル先頭に
use clientが明示されている場合は指摘しない。 - コメントで意図的な回避策が明記されている場合は慎重に扱う。
Rule / ルール
- Server Component で
useState/useEffect/useLayoutEffectを使わない。 - Server Component で
window/document/localStorage/sessionStorageを参照しない。
Evidence / 根拠の取り方
- 差分内にクライアント専用APIが直接登場していることを示す。
use clientの有無を併記し、境界違反である根拠を示す。
Heuristics / 判定の手がかり
use clientのないファイルで React Hooks や DOM API を使っている。window依存の処理が Server Component に残っている。
Actions / 改善案
use clientが必要な場合は、対象コンポーネントを分割してクライアント側へ移す。- DOM API が必要な処理をクライアント専用の子コンポーネントに閉じ込める。
Output / 出力
Finding:/Evidence:/Impact:/Fix:を含む短いメッセージにする。
評価指標(Evaluation)
- 合格基準: 境界違反が差分に紐づき、根拠と最小修正が説明されている。
- 不合格基準: 差分と無関係な指摘、根拠のない断定、抑制条件の無視。
人間に返す条件(Human Handoff)
- 設計意図が不明で解釈が分かれる場合は質問として返す。
- 大規模なコンポーネント分割が必要な場合は人間レビューへ返す。
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- eval/promptfoo.yaml 1.3 KB
- fixtures/01-usestate-in-server-component-happy.md 816 B
- fixtures/02-use-client-directive-false-positive.md 662 B
- golden/01-usestate-in-server-component-happy.md 743 B
- golden/02-use-client-directive-false-positive.md 300 B
- prompt/system.md 1.3 KB
- prompt/user.md 278 B
- README.md 275 B
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 66 lines · 32 tokens per session scan A af3fe3d20b9e
Next.js App Router Client/Server Boundary is a skill published in the GitHub repository s977043/river-review (3 stars, last pushed today), licensed MIT. It adds 32 tokens to every session and 696 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
fe-build
Implements frontend components and pages for React / Next.js / Vite SPA + TypeScript projects. Use when: starting implementation after feature.md or a spec is approved, writing components, building pages. Do NOT load for: writing specs, code review, bug analysis.
recipe-front-review
Reviews completed frontend implementation for governing-source compliance, scope economy, repository quality, and security, then applies user-approved React corrections.
spotpatch
A development workflow for React that connects a selected page element to its JSX or TSX source code and gathers context for review.
react-frontend
React, TypeScript, and Next.js patterns for frontend development. Use when building React components, managing state, fetching data, optimizing performance, or working with Next.js App Router. Covers React 18-19, hooks, Server Components, and type-safe patterns.
testing-react
Writes React/TypeScript tests using Vitest and React Testing Library. Use when "write react tests", "vitest", "component test", "hook test", "RTL", "testing library", "snapshot test", or testing React components, hooks, and utilities.
react-effects-audit
Use when auditing React or Next.js components for unnecessary or unsafe useEffect usage -- detects 9 anti-patterns from "You Might Not Need an Effect".