harden-finding

A workflow for turning a code-review finding into a lasting safeguard, such as a lint rule, type constraint, test, or documented convention.

In plain words
What is it for?
Use it after a review bot, gate, or manual reviewer reports an issue, especially when the issue has happened before. It also records the result in the project's hardening log.
Why use it?
It reduces the chance that the same problem will be fixed once and then return later.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/dsnger/dev-workflow-kit/harden-finding
Any agent
npx skills add dsnger/dev-workflow-kit --skill harden-finding
Clone the repo
git clone --depth 1 https://github.com/dsnger/dev-workflow-kit

Made for: Claude Code, Codex.

Per session 67 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,922 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00067 $0.02922
Opus 5 $0.00034 $0.01461
Sonnet 5 $0.00013 $0.00584
Haiku 4.5 $0.00007 $0.00292

Measured 2d ago against content hash 3c9a73999dfb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

harden-finding 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 2d 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.

plugins/dev-workflow/skills/harden-finding/SKILL.md · 194 lines

How it starts

The opening of the file, as written. The whole thing — 194 lines — stays where its author put it; the contents beside it link to each section on GitHub.

harden-finding

Overview

A review finding is only closed when the most deterministic tool that fits will catch it next time. What a deterministic tool can catch does not belong in the Codex gate. This skill takes one finding, hardens it at the right rung of the ladder, verifies, and records it in docs/hardening-log.md so recurrence is mechanical.

Target model: Claude via Claude Code. This skill is a prompt artifact and follows the checklist in docs/prompt-standards.md.

Project files this skill reads

Both are scaffolded by /dev-workflow:workflow-init. If one is missing, say so and offer to run that command — guessing a project's rungs or classes produces a log nobody can grep.

File What it supplies
AGENTS.md the invariants, and (under ## Commands) the project's real lint/typecheck/test/quality commands
docs/hardening-taxonomy.md the project's own fingerprint classes, extending the base classes below
docs/hardening-log.md the append-only ledger you grep and append to

When to use

  • A Gate A/B, PR-bot, or manual finding was raised and you want it permanently prevented, not just fixed once.
  • A finding feels familiar — the recurrence check tells you if it's been logged.

The ladder

Pick the rung that matches the finding's nature — not always the highest. The Where and Verify with columns name roles, not tools: resolve them to this project's actual config files and commands from AGENTS.md § Commands.

Rung Fits when Where Verify with
0 · already caught an existing required check already fails the gate on it note it, stop
1 · prose a convention/judgment call no tool can adjudicate AGENTS.md grep the rule is present, no contradiction
2 · lint a mechanical code pattern the project's linter/static-analysis config the project's lint command
3 · type expressible in the type system the project's type config / shared types the project's typecheck command
4 · test a behavioral / logic invariant the project's test suite, next to the code under test the project's test command
P · prompt-standard the finding is in a prompt artifact (skill, gate prompt, hook, command, agent definition) docs/prompt-standards.md checklist self-review

Read the full file on GitHub · 194 lines

Changes

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.

  1. 2d ago First seen · 194 lines · 67 tokens per session scan A 3c9a73999dfb

Subscribe to this mod's changes

harden-finding is a skill published in the GitHub repository dsnger/dev-workflow-kit (5 stars, last pushed 6d ago), licensed MIT. It adds 67 tokens to every session and 2,922 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-08-31.

Related

Other skills, from other repositories

ci-formats-review

Review SARIF, CodeClimate, compact, markdown, badge, and other CI-facing output formats for correctness and integrator expectations. Use when changes affect machine-consumed report formats or CI presentation layers.

fallow-rs/fallow · 45 tokens

coverage-loop

Iteratively improve Fallow Rust test coverage with cargo-llvm-cov, prioritizing meaningful untested behavior and preserving runtime correctness.

fallow-rs/fallow · 29 tokens

brooks-sweep

Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…

hyhmrright/brooks-lint · 178 tokens

llm-friendly-context

Clarifies inputs, outputs, success criteria, decisions, and unresolved conditions so downstream consumers can execute without guessing. Use when writing or revising LLM-facing prompts, handoffs, planning artifacts, reviews, reports, or generated instructions.

shinpr/claude-code-workflows · 52 tokens

ring:exploring-codebases

Exploring a codebase across phases: scopes the target, detects architecture, components, and layers, deep-dives each discovered perspective, then synthesizes findings into actionable guidance with file:line evidence. Use to understand how a feature or system works before planning changes, or to orient on an unfamiliar…

LerianStudio/ring · 91 tokens

bestie-features

Add BestieTemplate features (AGENTS.md, changelog, dependabot, pre-commit, lint workflow, testitem runner) to a Julia package with the bestie CLI — no Julia needed. Use when asked to add one of these files/setups to a package, or to see what BestieTemplate can add.

JuliaBesties/BestieTemplate.jl · 71 tokens