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 RickyTong1/audit-harness --skill audit-endgit clone --depth 1 https://github.com/RickyTong1/audit-harnessWrote 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/rickytong1/audit-harness/audit-end)<a href="https://agentmods.dev/skills/rickytong1/audit-harness/audit-end"><img src="https://agentmods.dev/badge/skills/rickytong1/audit-harness/audit-end/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/rickytong1/audit-harness/audit-end"><img src="https://agentmods.dev/badge/skills/rickytong1/audit-harness/audit-end.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Agent Snooping · line 40 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
- high Tool Misuse · line 135 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00063 | $0.01252 |
| Opus 5 | $0.00032 | $0.00626 |
| Sonnet 5 | $0.00013 | $0.00250 |
| Haiku 4.5 | $0.00006 | $0.00125 |
Grade A, and why
audit-end 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 10d 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 — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/end — 审计会话结束 + 完整性检查
触发方式
/end
执行步骤
1. 确定当前 session
读取 .claude/runs/.current_session 获取 session_id。
如果文件不存在:
- 检查是否有
auto_session(Stop hook 自动创建的) - 如果有,使用最近的 auto session
- 如果没有,提示用户"当前没有活跃的审计会话"
2. 收集审计数据
不是"扫描对话历史"——Skill 无法访问对话历史。 实际数据来源是 hooks 已经收集好的文件:
来源 1: .claude/runs/audit_buffer.jsonl
→ PostToolUse hook 自动记录的 Write/Edit/Bash 操作
→ 每条包含 timestamp, tool, files, detail
来源 2: .claude/runs/audit_pending.jsonl
→ Claude 主动写入的 [AUDIT] 块(JSON 格式)
→ 每条包含 batch, action, input, output
来源 3: .claude/runs/{session_id}/audit_trail.jsonl
→ Stop hook 已归档的历史记录(之前轮次的 buffer + pending)
汇总步骤:
- 读取
audit_buffer.jsonl和audit_pending.jsonl中的剩余数据(Stop hook 可能还没来得及归档最后一轮) - 追加到
.claude/runs/{session_id}/audit_trail.jsonl - 清空 buffer 和 pending
3. 提取用户修正
在 audit_trail.jsonl 和 audit_pending.jsonl 中搜索 user_correction 类型的记录。如果本次会话中有用户纠正 Claude 的判断,标记为高优先级恢复项并写入 audit_trail:
{
"record_type": "conversation",
"action_type": "user_correction",
"priority": "critical_for_recovery",
"original_claim": "Claude 的原始判断",
"correction": "用户的修正",
"principle_extracted": "提取的通用原则",
"persisted_to": ["写入了哪些文件"]
}
4. 审计完整性检查
从 audit_trail.jsonl 和 audit_buffer.jsonl 中提取信息执行检查:
| 检查项 | 数据源 | 通过条件 | 失败处理 |
|---|---|---|---|
| 有审计记录 | audit_trail.jsonl 行数 | > 0 | ⚠️ "审计性为 0" |
| 文件修改有记录 | audit_trail 中 tool=Write/Edit 的条目 | 每个修改过的文件都有记录 | ⚠️ 列出未审计的文件 |
| Prompt 修改有验证 | audit_trail 中含 "prompt" 的条目 | 必须有包含 "回归测试" 或 "10000" 的条目 | ❌ "Prompt 修改未验证" |
| Prompt 修改有 Harness 日志 | L1 附录 D | 已更新 | ⚠️ 提醒补充 |
| 用户修正已持久化 | user_correction 条目 | 已写入 CLAUDE.md 或文档 | ⚠️ 提醒持久化 |
输出格式:
=== 会话审计检查 ===
会话: {session_id}
任务: {session.json 中的 task}
时长: {start → end}
[✅] 审计记录: {N} 条
[✅] 文件修改已记录 ({M} 个文件)
[⚠️] L1 附录 D 需要更新
[✅] 用户修正已持久化 (2 条)
Record 统计:
工具操作: {tool_use 记录数} 条
[AUDIT] 块: {pending 记录数} 条
user_correction: {修正记录数} 条
5. 生成会话总结
写入 .claude/runs/{session_id}/session_summary.md:
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.
- 10d ago First seen · 143 lines · 63 tokens per session scan A d03b44f50e52
audit-end is a skill published in the GitHub repository RickyTong1/audit-harness (472 stars, last pushed 3mo ago), licensed MIT. It adds 63 tokens to every session and 1,252 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-30.
Other skills, from other repositories
specification-writing
A workflow for writing complete patent specifications from patent claims and an invention disclosure. It adapts the document to a chosen jurisdiction, such as the US, Europe, or China.
regulatory-research-fallback
Fallback workflow for regulatory research when web extraction tools fail on government PDFs.
x-scorecard
OpenSSF Scorecard for assessing open source project security. Check security best practices and compliance. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill for installation options). see x-cmd skill for installation.
memstack-business-gdpr
Use this skill when the user says 'GDPR', 'data protection', 'privacy compliance', 'DPA', 'DSAR', 'data subject request', 'cookie consent', 'privacy audit', 'CCPA', or asks 'do I need GDPR for this repo'. Scans the repository to detect what personal data is collected, classifies sensitivity, determines whether GDPR…
gesellschaftsrechtliche-satzungen-agb
Für Gesellschaftsrechtliche Satzungen AGB Abgrenzung: ordnet Norm, Beweislast und Gegenargument; Ergebnis: Prüfprodukt mit Risiko und nächstem Schritt. Fachgebiet: AGB-Recht-Prüfer. Route: gesellschaftsrechtliche-satzungen-agb.
nda-review
Use when the user uploads or pastes a non-disclosure agreement and asks for review, redline, risk assessment, or a recommendation on whether to sign. Identifies missing standard protections, one-sided or unusual provisions, and operational issues; produces a structured report with severity ratings and citations to…