refactor(agents): skill-scanner detection rules move to knowledge

The seven-category signal lists in agents/skill-scanner-agent.md move to
knowledge/skill-threat-patterns.md § Detection Rules. The agent keeps its
procedure, severity table, verdict logic and output format, plus a pointer,
and now says to report an unreadable knowledge file instead of scanning from
memory (a remembered subset reports clean for rules it never applied).

Chose the existing file over a new one because every command that invokes
the agent (scan, audit, clean, plugin-audit) already passes
<plugin-root>/knowledge/skill-threat-patterns.md explicitly; a new file would
have needed four command edits to reach the agent at all.

Why (v8.1.0 AV surface): a clean SKILL.md was quarantined as
Trojan:Script/Wacatac.H!ml; a quarantine on agents/*.md breaks the installed
plugin, not just a clone. Move measured lossless: the only line-level
differences are the two intended rewrites and headings.

Also in this commit, rewritten as descriptions or with a <shell>
placeholder for the interpreter (no technique removed):
- posture-assessor-agent: hook-coverage item and override phrases
- deep-scan-synthesizer-agent: example decoded message
- commands/red-team.md: scenario table cell
- knowledge/*.md: 15 runnable download-into-shell one-liners, the
  "Decodes to" line first; fenced examples keep their exact shape with
  <shell>, prose and tables become sentences.

Probe (e): 8 -> 3 (the three left are hook-script lines behind the
path guard). knowledge: 17 -> 2 (attack-scenarios.json, the red-team
simulator's input; left on purpose). claude plugin validate . passes;
agent frontmatter untouched, all six agents parse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-22 14:11:15 +02:00
commit 965b1d9bca
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
8 changed files with 231 additions and 208 deletions

View file

@ -177,7 +177,7 @@ or hooks self-modification).
- `git push --force` to `main`/`master`
- `DROP TABLE`, `DELETE FROM` without `WHERE`
- `format`, `mkfs`
- `curl | sh` or `wget | bash` (remote code execution via pipe)
- remote content piped into a shell (`curl` or `wget` output into `sh` or `bash`)
3. Note any destructive patterns missing from the blocklist.
@ -306,9 +306,9 @@ across unrelated projects.
1. Glob for all `CLAUDE.md`, `.claude/rules/*.md`, `memory/*.md`, `REMEMBER.md`,
and `*.local.md` files.
2. Scan each file for prompt injection patterns: override instructions
("ignore previous", "forget your instructions"), spoofed system headers,
identity redefinition attempts.
2. Scan each file for prompt injection patterns: override instructions (text
telling the model to ignore or forget its previous instructions), spoofed
system headers, identity redefinition attempts.
3. Check memory and rules files for shell commands (`curl`, `wget`, `bash`, `eval`,
`exec`, `npm install`, `pip install`). Memory files should NOT contain executable