跳到正文
cccskills
免费在 GitHub 公开

findings-ledger

Use when recording, tallying, or triaging stochastic review findings — the append-only JSONL ledger where Tier 2 (advisory, unevidenced) reviewer output goes instead of blocking language. Triggers on "log this finding", "ledger add", "tally the findings", "triage findings", "is this finding recurring", "retire this noise", or whenever a reviewer produces an unevidenced concern that should be measured for recurrence rather than chased. For the review itself see code-review-and-quality or skill-library-review; for verifying formal claims with deterministic evidence see adversarial-claims-reviewer.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(5)

  • SKILL.md8.9 KB
  • references/install-paths.md2.4 KB
  • references/ledger-format.md15.1 KB
  • scripts/ledger.py23.1 KB
  • scripts/test_ledger.py24.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Findings Ledger

Stochastic judgment proposes; deterministic verification disposes (tier doctrine: review-tiers — .claude/rules/review-tiers.md). This skill is the proposes side's inbox: a single append-only JSONL at .claude/ledger/findings.jsonl where Tier 2 findings accumulate fingerprinted, so the same defect reported twice across runs collides to one entry — deterministically when the reviewer passes a --category, heuristically on claim wording when it doesn't — and recurrence across independent runs — not rhetoric — decides what gets investigated.

The ledger file

  • Location: .claude/ledger/findings.jsonl, one JSON event per line.
  • Append-only. Status transitions are new events for the same fingerprint; prior lines are never mutated. Current status = the fingerprint's most recent event.
  • Gitignored by default (machine-local noise). Team-shared mode, two options: (a) commit ledger.py export --out <path> output — one line per fingerprint with category, file, count and first/last seen, no claim text — to any tracked path outside .claude/ledger/; no .gitignore change needed. file and symbol are still reviewer-supplied free text and get committed, so review the export before pushing. (b) Commit the raw ledger: in .gitignore, replace the .claude/ledger/ line with .claude/ledger/*.lock (the lock sidecar stays local). Append-only + stable ordering keeps either diff reviewable.
  • CI runners don't persist it. Appends made during a CI job vanish with the runner — and CI must never push the ledger back to the repo. Upload the run's findings as a build artifact and harvest locally instead; patterns in references/ledger-format.md.

Entry fields: fingerprint, fingerprint_scheme (1 = text, 2 = structured; absent on pre-#279 entries, read as 1), category and symbol (or null), file, claim, tier, source, run_id, date, evidence (path or null), status (NEW | RECURRING | INVESTIGATING | PROMOTED | RETIRED-NOISE). Full schema, lifecycle, and fingerprint-normalization limits: references/ledger-format.md.

Commands

All via scripts/ledger.py (python3, stdlib only; exit 0 = ok, 2 = setup/usage error; output ordering is deterministic). Resolve the script path first — references/install-paths.md:

PROJ="${CLAUDE_PROJECT_DIR:-.}"
# 1. Repo checkout
LEDGER="$PROJ/.claude/skills/findings-ledger/scripts/ledger.py"
# 2. Project Codex install
[ -f "$LEDGER" ] || LEDGER="$PROJ/.agents/skills/findings-ledger/scripts/ledger.py"
# 3. Global Claude Code install
[ -f "$LEDGER" ] || LEDGER="$HOME/.claude/skills/findings-ledger/scripts/ledger.py"
# 4. Global Codex install
[ -f "$LEDGER" ] || LEDGER="$HOME/.agents/skills/findings-ledger/scripts/ledger.py"

python3 "$LEDGER" add \
  --file <path> --claim "<one sentence>" --tier 2 \
  --source <agent-name> --run-id <id> [--evidence <path>] \
  [--category <[ns/]kebab-slug> [--symbol <function|heading|key>]]

python3 "$LEDGER" tally
python3 "$LEDGER" triage [--threshold 2] [--age-days 14]
python3 "$LEDGER" promote <fingerprint> [--status INVESTIGATING] [--evidence <path>]
python3 "$LEDGER" retire <fingerprint>
python3 "$LEDGER" export --out <path>
  • add computes the fingerprint (see Categories below) and labels a sighting RECURRING only when an earlier sighting came from a different --run-id; a repeat within the same run stays NEW. A --tier 1 finding without --evidence is demoted to tier 2 automatically — the tier rule, enforced. Control characters (newline, tab, …) in --file, --category or --symbol are rejected.
  • Recurrence counts distinct run ids, not raw sightings — an agent repeating itself within one run cannot cross the threshold alone.
  • triage lists fingerprints at/over the recurrence threshold as promotion candidates, and still-NEW single-run findings older than the age cutoff as retire-as-noise candidates. The /triage-findings command (repo-local maintainer tooling; not shipped by the installer) wraps this and proposes a ratchet target per candidate; the human disposes.
  • promote refuses to record PROMOTED without --evidence — a promotion is its encoded check.
  • export writes the deduplicated per-fingerprint summary (sorted, byte-deterministic JSONL) to --out, and refuses any --out inside the ledger's directory.

Categories (structured fingerprints)

Two reviewers rarely phrase one defect the same way, so text fingerprints rarely recur. Pass --category and the fingerprint becomes sha256("v2" + normalized file path + category + symbol) — claim wording no longer matters, and paraphrases collide.

  • --category — a short kebab-case slug naming the defect class, optionally under one namespace (slop/unused-dep). Lowercased; anything that isn't [ns/]slug with each part [a-z0-9]+(-[a-z0-9]+)* is rejected. Seed vocabulary — prefer these, coin a new slug when none fits:

    SlugUse for
    fail-openerror/missing input path that grants or proceeds instead of denying
    missing-validationuser input reaches a sink unchecked
    missing-ci-wiringa test/check exists but CI never runs it
    missing-testbehavior change with no test exercising it
    stale-docdocs contradict the current code
    broken-referencelink, path or cross-reference that does not resolve
    vague-routingskill/agent description too unspecific to route on
    dead-codeunreachable or unused code/config
    secret-exposurecredential or token logged, committed or leaked

    Reviewer vocabulary (slop/*, security/*, used by code-reviewer and security-reviewer): references/ledger-format.md.

  • --symbol (optional, requires --category) — the function, heading, or config key the finding is about. Backticks and a trailing () are stripped, so `check_token()`, `check_token`(), check_token () and check_token match. Omit it for file-level findings.

  • Without --category, add uses the legacy text fingerprint (scheme 1), unchanged — existing entries keep their identity. A scheme 1 and a scheme 2 sighting of the same defect get different fingerprints, so stick to one scheme per defect.

Reviewers should pass both whenever the finding names a defect class and a location, reusing the same slug for the same class across runs:

python3 "$LEDGER" add --file src/auth.py --tier 2 --source code-reviewer \
  --run-id pr-281 --category fail-open --symbol check_token \
  --claim "check_token returns True when the verifier raises"

The ratchet

A recurring fingerprint is a candidate to leave the stochastic layer forever: investigate → encode as a scripts/validate.sh rule (Tier 0) or an exit-nonzero evidence script (Tier 1) → promote with the encoded check as --evidence → no LLM ever re-litigates it. Singles nobody re-reports get retired. The ratchet only turns toward lower variance.

Related skills

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when adversarially reviewing a document that makes formal or technical claims — math derivations, physics papers, statistical analyses, benchmark reports, whitepapers. Inventories every equation and quantitative claim, verifies each AS NAMED in the text (never a paraphrase or a neighboring statement), and classifies VERIFIED / REFUTED / UNVERIFIABLE / VACUOUS. Triggers on "check this paper", "verify these claims", "is this derivation right", "review this proof", "audit this benchmark", "does the math hold up". For source-code review see code-review-and-quality; for skill/agent library audits see skill-library-review; for content quality scoring see content-ops.

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

Run Karpathy-style autoresearch optimization on any content. Generates 50+ variants, scores with a 5-expert simulated panel, evolves winners through multiple rounds, outputs optimized version + full experiment log. Use when optimizing landing pages, email sequences, ad copy, headlines, form pages, CTA text, or any conversion-focused content. Triggers on "optimize this page", "run autoresearch", "score these variants", "A/B test this copy".

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

Tests in real browsers. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data via Chrome DevTools MCP.

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

Conducts multi-axis code review across correctness, readability, architecture, security, and performance. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Triggers on "review my PR", "review this diff", "code review", "review this changeset", "is this ready to merge", "pre-merge review".

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

Estimate the full development cost of an existing codebase from lines of code, architectural complexity, and team-composition overhead. Use for 'how much would this cost to build', 'what did this codebase cost', development-cost or build-cost estimates, calendar-time estimates, and Claude/AI ROI on a delivered codebase. Estimates by measured LOC and complexity, not by ticket volume.

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

Auto-assembles a domain-specific expert panel (7–10 experts), scores any content or strategy artifact against a typed rubric, and iterates until the aggregate hits 90+ (max 3 rounds). Use as a quality gate on copy, email sequences, landing-page drafts, strategy docs, charts, titles, or recruiting evaluations — or when another skill needs a final review gate on its output. Triggers on "expert panel this", "score this", "rate these variants", "quality check this", "panel review", "expert score", "evaluate this copy/strategy/page". For variant generation and multi-round conversion optimization see autoresearch; for live-URL CRO auditing see conversion-ops; for the scripted content-production pipeline see content-pipeline.

中文简介正在准备中。当前显示原文说明。

LazyIsEfficient/agentic-os172026年10月22日 更新

查看 LazyIsEfficient 的全部技能

报告此技能的问题