Skip to content

docs(sable-d5d): audit + tighten rafter-skill-review skill (A15)#126

Merged
Rome-1 merged 1 commit into
maylistfrom
sable-d5d-skill-review-audit
May 19, 2026
Merged

docs(sable-d5d): audit + tighten rafter-skill-review skill (A15)#126
Rome-1 merged 1 commit into
maylistfrom
sable-d5d-skill-review-audit

Conversation

@Rome-1

@Rome-1 Rome-1 commented May 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Maylist A15: pass through the rafter-skill-review skill and tighten its advice + mechanical checks.

Sable-bum (PR #122) intentionally deferred this skill to sable-d5d. This PR is that follow-up.

What changed

Audit + light edits to the rafter-skill-review skill (Node + Python parity verified, byte-identical).

File Before After
SKILL.md 106 / 853w 148 / 1287w
docs/authorship-provenance.md 82 90
docs/changelog-review.md 99 99 (unchanged)
docs/data-practices.md 88 98
docs/malware-indicators.md 79 87
docs/prompt-injection.md 85 101
docs/telemetry.md 78 78 (unchanged)

SKILL.md grew (106 → 148) because the new "Watch-items at a glance" table is worth carrying in the main skill — it gives reviewers a single mechanical-check matrix instead of a hunt across 5 sub-docs. Still under the 150-line soft ceiling.

Edits applied

  • SKILL.md "Watch-items at a glance" table — 8 rows, each pairing a Rome-listed risk with a concrete `rg` / `jq` / CLI check and the sub-doc it links to.
  • SKILL.md step 0 — now points at `rafter scan injection` (PR feat(sable-h6r): consolidate prompt-injection detector — Node + Python parity, hidden behind --experimental flag #118 / sable-h6r) as the complementary mechanical pass; includes a loop-over-markdown command.
  • SKILL.md canonical-command note — `rafter agent audit-skill` is the deprecated alias of `rafter skill review` (matches sable-bum edits to the sibling rafter SKILL.md).
  • SKILL.md fast path — runnable three-step script (skill review + scan injection + allowed-tools eyeball).
  • SKILL.md decision rule — extended to four items, adds the injection-scan gate.
  • SKILL.md branch (c) — explicit `rafter scan injection` step before reading prose.
  • docs/prompt-injection.md §0 — new mechanical-first-pass referencing `rafter scan injection`.
  • docs/data-practices.md §5 — explicit `allowed-tools` reconciliation grep, calls out "markdown formatter asking for Bash" red flag.
  • docs/authorship-provenance.md §4 — `npm view time.created` typosquat check with three real-world examples (eslint-config-airbn, requets, crossenv).
  • docs/malware-indicators.md §6 — consolidated `rg` for privileged writes / shell rc / cron / launchd.
  • docs/malware-indicators.md §7 — consolidated `rg` for credential-dir reads, keychain, /proc env, browser stores.

PR #118 (sable-h6r) cross-references added

Six places in the skill now point at `rafter scan injection` as the mechanical complement to the structured human-judgment review.

Punted (future bead candidates listed in the agent's report)

  • `docs/supply-chain-risks.md` consolidating typosquat + dep drift + postinstall scripts (currently spread across 3 sub-docs).
  • `docs/agent-config-specific.md` for MCP manifest / Cursor rule / Continue rule schema specifics.
  • A sibling "post-install drift audit" skill — rafter-skill-review is explicitly pre-install only.

Parity

`diff -rq node/resources/skills/rafter-skill-review/ python/rafter_cli/resources/skills/rafter-skill-review/` returns empty.

Self-defense note

The agent deliberately did NOT embed literal zero-width / bidi characters in SKILL.md (those live in `docs/prompt-injection.md` §1 where they're documented). The shipped SKILL.md does not self-trigger `rafter scan injection`.

Target: `maylist`.

Closes sable-d5d.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

Audit pass deferred from sable-bum / PR #122. Adds concrete mechanical
checks for the realistic install-time risks of third-party SKILL.md, MCP
manifest, Cursor rule, or agent config:

- prompt-injection in the skill body
- hidden tool invocations in install steps (curl|sh, npm postinstall)
- exfiltration patterns (curl to attacker host, base64 phone-home)
- overbroad allowed-tools grants
- typo-squat / stale package names
- skills that sabotage / disable peer skills
- sensitive-path reads (~/.ssh, ~/.aws/credentials, keychain)
- MCP manifests granting servers/tools silently

SKILL.md changes:
- new "Watch-items at a glance" table pairing each risk with a grep/jq/CLI
  check and the sub-doc that covers it
- step 0 now points at `rafter scan injection` as a complementary
  mechanical pass alongside `rafter skill review`
- canonical-command note clarifies `rafter agent audit-skill` is the
  deprecated alias (matches sable-bum edits to sibling rafter SKILL.md)
- fast path is now a runnable three-step script
- decision rule is now four items (adds the injection-scan gate)

Sub-doc edits (additive, no restructure):
- prompt-injection.md: new §0 mechanical-first-pass with
  `rafter scan injection` (cross-link to PR #118 / sable-h6r detector)
- data-practices.md §5: explicit allowed-tools reconciliation check;
  calls out the "markdown formatter asking for Bash" red flag
- authorship-provenance.md §4: concrete `npm view ... time.created`
  typo-squat command plus three in-the-wild examples
- malware-indicators.md §6–7: consolidated grep commands for privileged
  writes and intelligence-gathering primitives

Files: 5 Node + 5 Python mirror. `diff -rq` empty.

Punted (future bead candidates):
- supply-chain-risks.md sub-doc consolidating §4 (typo-squat) +
  changelog-review §6 (dependency drift) + malware §3 (postinstall) —
  currently scattered across three docs
- agent-config-specific.md sub-doc for MCP manifest / Cursor rule /
  Continue rule schemas (currently MCP is one row in the table only)
- post-install detection: this skill is pre-install only; a sibling
  "post-install audit" skill could cover installed-skill drift

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Rome-1
Rome-1 merged commit 799802a into maylist May 19, 2026
@Rome-1
Rome-1 deleted the sable-d5d-skill-review-audit branch May 19, 2026 02:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant