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 self-contradictiongit 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/self-contradiction)<a href="https://agentmods.dev/skills/s977043/river-review/self-contradiction"><img src="https://agentmods.dev/badge/skills/s977043/river-review/self-contradiction/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/self-contradiction"><img src="https://agentmods.dev/badge/skills/s977043/river-review/self-contradiction.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.00059 | $0.01690 |
| Opus 5 | $0.00030 | $0.00845 |
| Sonnet 5 | $0.00012 | $0.00338 |
| Haiku 4.5 | $0.00006 | $0.00169 |
Grade A, and why
Self-Contradiction Detector 自己矛盾検出 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pattern declaration
Primary pattern: Reviewer Secondary patterns: Inversion Why: 宣言(declarative phrase)と実装の突合はチェックリスト型だが、宣言が差分に存在しない変更では実行を止めるゲートが必要
Goal / 目的
- ファイル/スキル/ドキュメントが「規則 X を守れ」と宣言した直後・同じファイル内で 規則 X を破っている パターンを検出する。
- Pre-mortem(失敗シナリオ)や Logic Torturing(論理の穴)では捉えにくい、「宣言」と「実装」の乖離 に特化する。
Non-goals / 扱わないこと
- 個別の論理的整合性の検証(
logic-torturingの役割)。 - 攻撃経路の分析(
war-gameの役割)。 - 規則そのものの妥当性判断(規則が正しいか否かではなく、宣言と実装が一致するかを見る)。
Pre-execution Gate / 実行前ゲート
このスキルは以下の条件がすべて満たされない限り NO_REVIEW を返す。
- 差分に宣言的フレーズ(「〜しない」「禁止」「必ず〜する」「don't」「never」「MUST」「always」等)が含まれている、またはそれを含む既存ファイルへの変更である
- inputContext に diff または fullFile が含まれている
ゲート不成立時の出力: NO_REVIEW: self-contradiction — 宣言的フレーズが検出されない
False-positive guards / 抑制条件
- 宣言が「例外を明示している」場合(「ただし X の場合を除く」)で、実装がその例外条件に該当するなら抑制。
- 宣言がコメントアウトされた旧仕様や、引用ブロック(「悪い例」として提示されたコード)の場合は抑制。
- 宣言と実装が別の対象を指している(同名だがスコープが異なる)場合は抑制。
Rule / ルール
検出ロジック
- 宣言の抽出: 差分・対象ファイルから declarative phrase を抽出する。
- 禁止形: 「〜しない」「〜してはいけない」「禁止」「避ける」「don't」「never」「avoid」「MUST NOT」
- 義務形: 「必ず〜する」「〜すること」「MUST」「always」「required」
- 対象の特定: 各宣言が何を規律しているか(参照形式・命名・依存方向・出力形式等)を1文で言語化する。
- 実装との突合: 同一ファイル、次いで隣接/関連ファイルの本文・コードを走査し、宣言に違反する箇所を探す。
- 乖離の報告: 宣言の位置と違反の位置を両方
<file>:<line>で示す。
制約
- 検出は最大 5 件。乖離が明白で影響の大きいものを優先。
- 各指摘には「宣言」「宣言位置」「違反位置」「乖離の説明」を必ず含める。
- 宣言が差分外にあっても、違反が差分内にあれば指摘可能(逆も可)。ただし両方とも差分外の場合は対象外。
Evidence / 根拠の取り方
- 宣言と違反は必ず両方の
<file>:<line>を示し、推測ではなく実際の行に紐づける。 - 「規則 X」を引用し、違反箇所がどう X に反するかを具体的に説明する。
Output / 出力フォーマット
すべて日本語。
(self-contradiction):1: [要約] 最も重大な宣言と実装の乖離は〈1文〉
<file>:<line>: [自己矛盾1] <タイトル>
宣言: 「<規則 X の引用>」(<file>:<宣言の行>)
違反: <宣言に反する実装の説明>(<file>:<違反の行>)
乖離: <なぜ宣言と矛盾するか>
Fix: <宣言に合わせるか宣言を改めるか、最小限の修正>
<file>:<line>: [自己矛盾2] ...
Good / Bad Examples
Good
sub-supervisor.md:38: [自己矛盾] 章番号参照禁止を宣言した直後に章番号参照を使用
宣言: 「章番号参照ではなくファイル単位で参照する」(sub-supervisor.md:17)
違反: 本文で `SKILL §2.1` / `§4` と章番号参照を使用 (sub-supervisor.md:38,68,85)
乖離: L17 の宣言と同一ファイル L38 以降の実装が真逆
Fix: `SKILL §2.1` を該当ファイルパス参照に置換、または L17 の宣言を実態に合わせて緩和
What ships with it
2 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.
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.
- 6d ago First seen · 120 lines · 59 tokens per session scan A 61d2818031b7
Self-Contradiction Detector 自己矛盾検出 is a skill published in the GitHub repository s977043/river-review (3 stars, last pushed today), licensed MIT. It adds 59 tokens to every session and 1,690 once invoked, about $0.0003 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
code-gauntlet
Prefer this skill for code review requests — it runs a multi-agent pipeline with blind challenge verification for high-confidence results. Trigger for ANY of these situations: (1) user says "review" in the context of code, PRs, MRs, branches, diffs, or changes, (2) user references a PR/MR number and wants feedback or…
logic-health
Sweep a directory, module, or full codebase for logic correctness and produce a scored health dashboard with systemic patterns. Trigger when the user requests a health view — "audit the whole codebase", "health check", "health overview", "logic health overview", "audit src/", "audit auth and payments modules", "where…
logic-diff
Compare two code versions for semantic equivalence via semi-formal tracing of both versions side-by-side. Trigger when the user shares a refactor, rewrite, migration, or A/B implementation and wants to confirm behavior is unchanged — "did I break anything", "is this equivalent", "are these equivalent", "semantically…
omnicheck-gitlab
Use when checking if MR review findings have been applied — verifies both OmniForge-generated and human reviewer comments against the current diff, posts nudge replies on unaddressed threads.
omnicheck-github
Use when checking if PR review findings have been applied — verifies both OmniForge-generated and human reviewer comments against the current diff, posts nudge replies on unaddressed threads.
omnicreate-gitlab
Use when creating a GitLab merge request (OmniForge). Auto-populates title and description from commits, supports draft MRs, labels, assignees, reviewers, and issue linking.