本文へ移動
cccskills
無料GitHub で公開

fact-check

Audit code for correctness and rigor — logic errors, silent error swallowing, wishful thinking, and unjustified fallbacks. This is not a style review; it's a logic review. Use when you want a focused correctness audit separate from the full code-police pass.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Fact-Check

Audit code for correctness and rigor. This is not a style review — it's a logic review. Find places where the code lies to itself.

0. Determine Scope

Scope comes from $ARGUMENTS:

  • branch (default when $ARGUMENTS is empty) — audit only changes in the current branch/PR. Use git diff main...HEAD (or the appropriate base branch) to identify changed files and limit all subsequent steps to those files.
  • all — audit the whole codebase.
  • Anything else — treat the argument as the target itself (a file path, a diff range like origin/main...HEAD, or inline text/output to audit, e.g. when invoked by hickey to audit its own evaluation). Limit the audit to that target.

Do not use AskUserQuestion. This skill runs in a fork and is routinely invoked autonomously (e.g. from /do via hickey).

What to flag

1. Silent error swallowing

  • Bare try/except: pass, empty catch {}, || true hiding real failures.
  • Errors caught and logged but not propagated when callers depend on failure signals.
  • Result/Option/Maybe types silently defaulted without justification.

2. Inaccurate fallbacks

  • Default values that mask misconfiguration (e.g., falling back to "" or null when the real fix is to fail loud).
  • "Sensible defaults" that aren't actually sensible for the failure case.
  • Fallback paths that silently degrade correctness (e.g., returning stale data without indicating staleness).

3. Wishful thinking

  • Assumptions about input shape/type without validation at system boundaries.
  • Code that "can't fail" but actually can (network, filesystem, permissions).
  • Race conditions papered over with comments like "this should be fine".

4. Logic errors

  • Conditions that are always true/false.
  • Off-by-one errors, wrong comparison operators.
  • Variables shadowed or unused in a way that changes behavior.

5. Slow leaks

  • Collections that grow without bound, event handlers doing heavy work on every fire without debounce, watchers/listeners registered per-caller instead of shared, buffers sized to the full input when streaming would work.

Workflow

  1. Read the diff (or full files if scoped to whole codebase).
  2. For each changed file, read enough surrounding context to understand intent.
  3. List every finding with file, line, and a one-line explanation of the risk.
  4. For each finding, propose a concrete fix (code snippet or direction).
  5. If no issues found, say so — don't invent problems.

Principles

  • Fail loud over fail silent: Code should scream when something is wrong, not quietly do the wrong thing.
  • No wishful thinking: If it can fail, handle the failure explicitly.
  • Fallbacks must be justified: Every default/fallback needs a reason why that value is correct for the failure case, not just convenient.
  • Precision over coverage: Better to catch 3 real issues than flag 20 maybes.

Anti-patterns in YOUR review (strictly banned)

You are an LLM reviewing code. LLMs have a strong bias toward declaring code "acceptable" to avoid conflict. This command exists precisely to counteract that. Follow these rules absolutely:

  • NEVER talk yourself out of a finding. If you identified a problem, it IS a problem. Do not follow up with "However..." or "Verdict: acceptable tradeoff" or "practically safe." If the code has a bogus fallback, say so and propose a fix. Period.
  • NEVER use "theoretically X but practically Y" to dismiss. "Theoretically fragile but practically safe" is exactly the kind of wishful thinking this command is supposed to catch. If it's fragile, flag it and fix it.
  • NEVER issue a verdict of "no action needed" on a finding you just described. If it wasn't worth acting on, you shouldn't have listed it. Every finding you report MUST have a concrete fix.
  • NEVER end with reassurance. No "the logic is sound", no "the approach correctly targets the root cause", no "no other issues found" unless you genuinely found zero issues. Your job is to find problems, not to make the author feel good.
  • Assume the code is wrong until proven right. The default posture is skepticism, not charity. You are a prosecutor, not a defense attorney.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

be

無料

Modern, interactive alternative to `/do` — clarify intent up front, then take a task end-to-end with a serial AI review gauntlet (lens debate (lowy ⇄ hickey) → codex debate → simplify → code-police, each editing the branch in turn) → CI → evidence. ONLY invoke when the user explicitly types `/be` or `$be`; never auto-select from a natural-language request.

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

be-review

無料

Run /be's review gauntlet SERIALLY — /lens-debate (lowy ⇄ hickey), then /codex-debate, then /simplify, then code-police, each editing and committing on the live branch in turn. Use from /be §4, or when the user asks to "run the review gauntlet". Requires Claude Code's Skill tool.

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

ci

無料

Reference for the `odu` runner — how to invoke a full pipeline, a single recipe, or a platform-pinned node, and how to attach to a live run, from a project whose CI odu runs. Trigger when the user asks to "run CI", "run the pipeline", "re-run a check", to run named lanes or recipes (e.g. "run fmt and nix", "just the e2e lane", bare selectors like `fmt`/`nix`/`e2e`), or names a recipe by `<recipe>@<platform>`. This skill — not a repo's local `just ci` / `just <recipe>` — is how an odu-run request is served.

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

Review code for quality, simplicity, and common mistakes before declaring work complete.

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

Run an automated codex⇄Claude debate to consensus — no round cap, no deadlock exit. Two explicit subcommands. `review` (also the bare/back-compat default) — codex (reviewer) critiques the current diff and a Claude subagent (author) fixes/disputes, looping until they agree. `answer` — Claude and codex each answer a freeform prompt in parallel, then cross-check until they agree, and a unified answer is returned. Use when the user types `/codex-debate`, asks to "have codex review this", "run the codex debate", "review this PR with codex", "argue this with codex until you agree", or passes a question to "have Claude and codex debate/answer until they agree".

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

do

無料

Do a task end-to-end — implement, PR, CI loop, ship. ONLY invoke when the user explicitly types `/do` or `$do`; never auto-select from a natural-language request, even one that sounds like an end-to-end task.

日本語の概要は準備中です。原文の説明を表示しています。

srid/emanote9632026年7月26日 更新

srid のスキルをすべて見る

このスキルの問題を報告する