本文へ移動
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.

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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

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

srid/haskell-flake2402026年10月4日 更新

do

無料

Do a task end-to-end — implement, PR, CI loop, ship

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

srid/haskell-flake2402026年10月4日 更新

elegance

無料

Iteratively study and apply elegant coding patterns. Each iteration - understand the code, research what simple and elegant code looks like, apply learnings, verify with CI. Use as a standalone refactoring pass or when the user asks to make code more elegant, simple, or idiomatic.

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

srid/haskell-flake2402026年10月4日 更新

forge-pr

無料

Write engaging PR titles and descriptions for any forge (GitHub today; Bitbucket planned). Use when creating or updating PRs. Avoids boring bullet lists; uses narrative paragraphs with bold/italic for emphasis.

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

srid/haskell-flake2402026年10月4日 更新

hickey

無料

Evaluate code (especially LLM-generated) for structural simplicity using Rich Hickey's "Simple Made Easy" framework. Use this skill whenever reviewing a PR, diff, or code snippet for accidental complexity — particularly when the code was generated by an AI coding assistant and line-by-line review isn't feasible. Also use when the user asks about complecting, simplicity vs. easiness, structural coupling, or concept deduplication. Trigger on phrases like "is this simple", "does this complect", "review for complexity", "structural analysis", or any reference to Hickey, Simple Made Easy, or grey-box review.

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

srid/haskell-flake2402026年10月4日 更新

lowy

無料

Evaluate architecture and module boundaries for volatility-based decomposition using Juval Lowy's framework (from "Righting Software", building on Parnas 1972). Use when reviewing module splits, service boundaries, new abstractions, or any decomposition decision. Trigger on phrases like "where should this boundary be", "how to split this", "module boundaries", "encapsulate change", "volatility", or references to Lowy, Parnas, or "Righting Software". Complements /hickey (interleaved concerns) with a different lens (change encapsulation).

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

srid/haskell-flake2402026年10月4日 更新

srid のスキルをすべて見る

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