claude-orator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-orator (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 3 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 4 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Prompt optimization. Scores prompts across 7 dimensions and restructures them using 8 Anthropic techniques. Deterministic — no LLM calls, no network, in-memory only.
| Hook | When | Action |
|---|---|---|
| PreToolUse(Task) | Subagent prompt lacks structure | Suggests orator_optimize before dispatching |
Token cost: 0 on well-structured prompts (XML tags, markdown headers, action verbs). ~50-80 on vague prompts. Never blocks — suggestion only.
| Command | Description |
|---|---|
/reprompt-orator <prompt> | Optimize a prompt using Anthropic best practices |
/reprompt-orator "your prompt here" or call orator_optimize(prompt: "...")search_conversations("prompt optimization") to find past well-scored promptsorator_optimize(prompt: "...") — score and restructuresave_context(type: "decisions", ...) to preserve the optimized prompt rationaleobserve(summary: "xml-tags improved code prompts by +3.2") to track what worksorator_optimize on each under-specified promptvigil_save("before-rewrite") before applying changes| Sibling | Value | How |
|---|---|---|
| Historian | Past well-scored prompts as examples | search_conversations("prompt patterns") finds effective prompts from history |
| Praetorian | Preserve optimization rationale | Compact optimized prompts and their scores for future reference |
| Gladiator | Track what techniques work best | observe() records which techniques improve scores most |
| Oracle | Find prompt engineering tools | search("prompt patterns") discovers relevant community tools |
| Vigil | Checkpoint before batch rewrites | vigil_save() before applying optimized prompts across files |
| Tool | Purpose |
|---|---|
orator_optimize | Score prompt across 7 dimensions, apply techniques, return restructured version |
Clarity · Specificity · Structure · Context · Examples · Constraints · Tone (each 1-10)
System prompts · XML tags · Chain of thought · Few-shot · Prefill · Long context · Extended thinking · Tool use
In-memory only. Zero disk storage. No databases, no external services.
claude mcp add orator -- npx claude-orator-mcp~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.