claude-historian — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-historian (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.
Session memory. Checks past sessions before redundant research, planning, or debugging.
| Hook | When | Action |
|---|---|---|
| PreToolUse(WebSearch/WebFetch) | Before web research | Checks find_similar_queries() first |
| PreToolUse(EnterPlanMode) | Before planning | Searches search_plans() for past approaches |
| PreToolUse(Task) | Before agents | Checks find_tool_patterns() for workflows |
| PostToolUse(Bash) | After errors | Suggests get_error_solutions() |
| Command | Description |
|---|---|
/search-historian <query> | Search past sessions for solutions, decisions, context |
search_conversations("query") — full-text across all sessionsget_error_solutions("error pattern")find_file_context("filename")search_conversations("query") — historian's own searchpraetorian_restore("query") for compacted context (denser than raw history)search("query") when error patterns suggest a missing toolget_error_solutions("error pattern") — how was this fixed before?get_error_solutions("error pattern") — historian checks past fixessearch("error tool") for tools that address this error class| Sibling | Value | How |
|---|---|---|
| Praetorian | Research will be compacted after | Praetorian prompts saving after web searches historian triggers |
| Oracle | Tools found for error patterns | Oracle searches for tools when historian finds recurring errors |
| Gladiator | Observations correlate with history | Past solutions enrich gladiator reflection |
| Vigil | Checkpoints complement history | File state preserved alongside session history |
| Tool | Purpose |
|---|---|
search_conversations | General history search |
find_similar_queries | Find related past questions |
get_error_solutions | Find how errors were fixed |
find_file_context | Track file changes |
find_tool_patterns | Discover successful workflows |
list_recent_sessions | Browse recent work |
search_plans | Find past implementation plans |
claude mcp add historian -- npx claude-historian-mcp~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.