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.
npx skills add hypnguyen1209/offensive-claude --skill finding-disciplinegit clone --depth 1 https://github.com/hypnguyen1209/offensive-claudeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hypnguyen1209/offensive-claude/finding-discipline)<a href="https://agentmods.dev/skills/hypnguyen1209/offensive-claude/finding-discipline"><img src="https://agentmods.dev/badge/skills/hypnguyen1209/offensive-claude/finding-discipline/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hypnguyen1209/offensive-claude/finding-discipline"><img src="https://agentmods.dev/badge/skills/hypnguyen1209/offensive-claude/finding-discipline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.01040 |
| Opus 5 | $0.00018 | $0.00520 |
| Sonnet 5 | $0.00007 | $0.00208 |
| Haiku 4.5 | $0.00004 | $0.00104 |
Grade A, and why
finding-discipline 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 11d 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.
How it starts
The opening of the file, as written. The whole thing — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Finding Discipline
Overview
The Iron Law: No [CONFIRMED] without proof. A finding is a claim about real, demonstrated
impact — not a status code, a reflected string, or a hunch. This is the offensive equivalent of
test-driven development: the proof is the test, and the finding does not exist until it passes.
Violating the letter of this rule is violating its spirit.
The three tiers
[CONFIRMED]— impact demonstrated AND grounded in an evidence artifact that exists on disk.[POSSIBLE]— reachable but the class proof bar is not yet met. Keep digging; do not report as real.[INFO]— true but no security impact at the claimed severity.
The proof bar (per class)
A status code is not impact. See skills/references/finding-evidence-standards.md:
SSRF needs the internal response; IDOR needs another principal's data; RCE needs command output;
XSS needs script execution; open redirect needs an external destination.
Required mechanical gate
Before any finding is recorded or reported:
- Set the structured proof signal and run
python skills/vulnerability-analysis/scripts/validate_findings.py --findings f.json --evidence ./evidence— it rejects ungrounded findings and per-class false positives. - Pass it through the REQUIRED
finding-validatoragent (PASS / KILL / DOWNGRADE). - Only a
[CONFIRMED]survivor goes in the report. Severity must match what was demonstrated (CVSS honest).
See skills/references/finding-validation-runtime.md for the 7-question gate.
Read-first, never name-guess
If a function calls another, read the callee — do not infer what it does from its name.
sanitize(), is_safe(), validate_input() are exactly where vulnerabilities hide; a name is a
claim by the author, not evidence. The same applies to a config key, a decorator, or a CVE title:
open the thing before you reason about it. An unread dependency in a data-flow claim is a hole.
Quote-grounded confidence tiers
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.
- 11d ago First seen · 84 lines · 37 tokens per session scan A 945643a33514
finding-discipline is a skill published in the GitHub repository hypnguyen1209/offensive-claude (357 stars, last pushed 24d ago), licensed MIT. It adds 37 tokens to every session and 1,040 once invoked, about $0.0002 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-30.
Other skills, from other repositories
bt6-issue-steward
Triage and steward issues in BT6 research and support repositories, deciding whether to answer, reproduce, correct evidence, link work, design a feature, route security, implement, or close.
bt6-merge-train
Run an explicitly authorized, conservative BT6 merge train that processes validated pull requests one at a time and reconciles repository, CI, evidence, and issue state after each merge.
bt6-pr-audit
Audit one pull request in a BT6 research or support repository at an exact head SHA, covering correctness, research integrity, security, tests, contracts, and merge readiness.
bt6-provider-review
Audit an external AI/API provider and its integration into a BT6 repository for service reality, independent verification, trust boundaries, secret handling, API/model correctness, completeness, claim traceability, and merge readiness.
bt6-queue-audit
Audit the full pull-request and issue queue of a BT6 research or support repository, classifying readiness, evidence risk, and next action without mutating tracker state.
xiaohongshu-search-full
Search Xiaohongshu (XHS / RedNote) notes by keyword with full field extraction including body text, topics/tags, image list URLs, video stream URL, publish timestamp, and all engagement stats (likes, collects, comments, shares). Supports all page filter options: sort order (general, latest, most liked, most commented…