Skip to content
Development
Skill

/harden

Applies NIST/CWE security hardening to Python and Rust code. Use when auditing code for vulnerabilities or proposing concrete security remediations.

From plugin
claude-night-market
343200 skills60 agents162 commands1 MCP

Claude Code

$ npx -y skills add athola/claude-night-market --skill harden --agent claude-code

SKILL.md

harden.SKILL.md
name: harden
description: Applies NIST/CWE security hardening to Python and Rust code. Use when auditing code for vulnerabilities or proposing concrete security remediations.
globs: "**/*.{py,rs,toml,yaml,yml,sh}"
alwaysApply: false
category: security
tags:
- security
- hardening
- nist
- supply-chain
- python
- rust
- cwe
tools: []
provides:
  governance:
  - hardening-report
  - remediation-proposal
  security:
  - vuln-detection
  - hardening-posture
usage_patterns:
- security-hardening
- quarterly-posture-audit
- pre-release-security-gate
complexity: advanced
estimated_tokens: 1100
progressive_loading: true
dependencies:
- pensive:safety-critical-patterns
- pensive:rust-review
- pensive:bug-review
- pensive:tiered-audit
- pensive:blast-radius
- leyline:supply-chain-advisory
- leyline:authentication-patterns
- leyline:content-sanitization
- abstract:hook-authoring
- imbue:proof-of-work
- imbue:review-core
- imbue:structured-output
modules:
- modules/nist-controls.md
- modules/python-checks.md
- modules/rust-checks.md
- modules/cross-cutting.md
- modules/frontier-checks.md
- modules/proposal-shape.md

Harden Codebase Skill

Active security hardening: scan the existing repository for vulnerabilities and forward-facing threats, then propose concrete remediations the user can approve, defer, or file.

This skill is the engine behind `/harden`. It complements the Claude Code built-in `/security-review` (which scans the pending diff) by sweeping the whole repository against citation-backed checks rather than line-level review of in-flight code.

When To Use

  • Quarterly security-posture audits.
  • Before tagging a release that touches sensitive code paths.
  • After a published advisory affects the language ecosystem.
  • When onboarding a new repository and want a baseline.
  • After integrating a new dependency or upstream service.

When NOT To Use

  • Pending-diff review on a single PR. Use `/security-review`.
  • Architecture-level threat modeling. Use `attune:war-room`

with a security-focused panel.

  • Cryptographic protocol review. The skill flags suspect crypto

but does not propose protocol fixes (specialist work).

  • One-off bug hunting. Use `pensive:bug-review`.

Required Progress Items

1. `harden:discovery`: inventory languages, build files, hooks, CI workflows 2. `harden:scan-python`: run python-checks.md detectors when Python is present 3. `harden:scan-rust`: run rust-checks.md detectors when Rust is present 4. `harden:scan-cross-cutting`: run cross-cutting.md detectors (deps, secrets, SBOM, CI) 5. `harden:scan-frontier`: run frontier-checks.md (PQC, LLM supply chain, sandboxing) 6. `harden:nist-mapping`: map findings to NIST SSDF practices 7. `harden:proposals`: for each finding above the threshold, draft a concrete remediation per `modules/proposal-shape.md` 8. `harden:approval-gate`: present proposals to the user for apply / file / defer / reject 9. `harden:apply-and-validate`: apply approved proposals as discrete commits, re-run gates, capture evidence 10. `harden:findings-verified`: citations confirmed by `citation_verifier.py` 11. `harden:report`: write `reviews/harden-<date>.md` and optionally post to Discussions

Progressive Loading

Load modules based on what the discovery step finds.

| Detected | Load | |----------|------| | Python files (`*.py`, `pyproject.toml`) | `modules/python-checks.md` | | Rust files (`*.rs`, `Cargo.toml`) | `modules/rust-checks.md` | | Any | `modules/nist-controls.md` (citation backbone) | | Any | `modules/cross-cutting.md` (deps, secrets, CI) | | LLM SDK use (`anthropic`, `openai`), MCP server, post-quantum surface | `modules/frontier-checks.md` | | Any with proposals enabled | `modules/proposal-shape.md` |

The module hub keeps the SKILL.md itself under the `estimated_tokens: 1100` budget. Detail lives in the modules.

Core Workflow

Phase 1: Discovery

Inventory the repo without modifying anything:

# Languages and build files
find . -type f \( -name '*.py' -o -name '*.rs' -o -name '*.sh' \) \
  | head -200 > /tmp/harden-langs.txt

# Build manifests
ls pyproject.toml Cargo.toml package.json go.mod 2>/dev/null

# CI workflows and pre-commit
ls .github/workflows/ .pre-commit-config.yaml 2>/dev/null

# Hooks and Dockerfiles
find . -path ./node_modules -prune -o -type f \
  \( -name 'hooks.json' -o -name 'Dockerfile*' \) -print

Dispatch `/discovery-prefilter` if the repo has > 5000 source files to bound the scan.

Phase 2: Citation-backed scan

For each detected language, load the matching module and run its detector list. Each detector outputs findings with the schema defined in `modules/proposal-shape.md`. The citation column is mandatory: a finding without a NIST/CWE reference is downgraded to "advisory" and not eligible for active proposal.

Phase 3: NIST mapping

Group findings by SSDF practice (PW.4, PW.8, RV.1, etc.) and CWE ID. The mapping table lives in `modules/nist-controls.md`. The report's executive summary references SSDF practice coverage so the audit is comparable across runs.

Phase 4: Proposal generation

For each finding above the configured severity threshold, draft a concrete remediation per `modules/proposal-shape.md`:

  • Specific files and lines touched
  • Diff or config snippet (not "consider doing X")
  • Blast-radius assessment via `pensive:blast-radius`
  • Reversal plan: how to revert if the change breaks behavior
  • Test that should pass after the change

Phase 5: Approval gate

Present proposals one at a time via `AskUserQuestion`. Default options: **apply**, **file as issue**, **defer to backlog**, **reject**. Auto-apply is opt-in via the `--auto-apply` flag and respects a per-finding severity threshold.

Phase 6: Apply and validate

Apply each approved proposal as a discrete commit:

git add <touched files>
git commit -m "harden: <finding-id> <one-line summary>"

After each apply, re-run the project gates:

make t
Read more
@athola
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

343200 skills60 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
343
Star history of athola/claude-night-market on GitHub, a chart by star-history.com

Other skills on claude-night-market.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about harden.

Which coding agents can use harden?
harden installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.