Back to skill

Security audit

Superpower with Files

Security checks for vulnerabilities and agentic risk

Overview

This is a real coding-workflow bundle, but it gives itself unusually broad control over agent workflow and can automatically expose prior IDE conversation history into the current session.

Review before installing. This package is suitable only if you want a very opinionated coding workflow that can steer most coding tasks, create persistent planning files, run local hooks, spawn subagents where available, and recover prior session context. Disable or modify session-catchup and broad mandatory activation rules before using it on sensitive projects or shared machines.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
skills/using-superpowers/SKILL.md:3
Finding

Global Skill Instruction and Output Hijacking

Content
View full analysis
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill. IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT. This is not negotiable. This is not optional. You cannot rationalize your way out of this. ## How to Access Skills **In Claude Code:** Use the `Skill` tool. When you invoke a skill, its content is loaded and presented to you—follow it directly. Never use the Read tool on skill files. ## The Rule **Invoke relevant or requested skills BEFORE any response or action.** Even a 1% chance a skill might apply means that you should invoke the skill to check. ``` ```markdown ### Skill Announcement - Every time you start using this skill, you MUST first announce: `🚀 **SUPERPOWER ACTIVE:** using-superpowers` ### Branded Skill Preference - When starting work, always prefer the branded SPF skills: - Use **`spf-write-plan`** instead of `writing-plans`. - Use **`spf-exec-plan`** instead of `executing-plans`. ``` ### Technical Analysis The skill establishes global, non-optional behavioral rules that apply before every response, including clarification requests. It sets an extremely low activation threshold, removes the agent's discretion, prohibits ordinary file inspection of skill definitions, and requires subsequently loaded skill instructions to be followed directly. These directives exceed task-scoped workflow guidance. Loading this skill can alter the agent's current-session goals and tool-selection policy even when the us ...[truncated 1792 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
hooks/session-catchup.py:44
Finding

Automatic Extraction of Historical IDE Conversation Data

Content
View full analysis
Path: """Convert project path to Claude's storage path format.""" sanitized = project_path.replace('/', '-') if not sanitized.startswith('-'): sanitized = '-' + sanitized sanitized = sanitized.replace('_', '-') return Path.home() / '.claude' / 'projects' / sanitized def get_sessions_sorted(project_dir: Path) -> List[Path]: """Get all session files sorted by modification time (newest first).""" sessions = list(project_dir.glob('*.jsonl')) main_sessions = [s for s in sessions if not s.name.startswith('agent-')] return sorted(main_sessions, key=lambda p: p.stat().st_mtime, reverse=True) ``` It extracts user messages, assistant responses, file paths, and shell-command fragments: ```python if msg_type == 'user' and not is_meta: content = msg.get('message', {}).get('content', '') if isinstance(content, list): for item in content: if isinstance(item, dict) and item.get('type') == 'text': content = item.get('text', '') break else: content = '' if content and isinstance(content, str): if content.startswith((' 20: result.append({ 'role': 'user', 'content': content, 'line': line_num, 'session': session_file.stem[:8] }) elif msg_type == 'assistant': msg_content = msg.get('m ...[truncated 4503 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (117)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The declared description presents a broad AI workflow system with persistent memory, TDD, and numerous productivity skills. The supplied code chunk does not implement that broad functionality; it is a specific shell script for checking completion state in a task plan file and printing progress information. It also inspects Git history to provide a recent commit count, an undeclared capability. While this script could be a small supporting part of a larger workflow package, evaluated on its own it does not accurately match the declared purpose and includes behavior not represented in the description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description promises a comprehensive coding-project workflow with persistent memory, TDD execution, and many productivity skills. The supplied code does not implement any of those user-facing capabilities. Instead, it is a simple repository consistency check that ensures certain '.continue' files exist for the 'planning-with-files' skill and that a prompt filename ends with '.prompt'. This is a materially different primary purpose from the declared description, so it should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The supplied code chunk only initializes a local project/session folder and writes markdown templates for planning and progress tracking. It does not implement any AI workflow logic, persistent memory system, test-driven development execution, debugging assistance, code review, or a suite of 15 skills. While the file templates support planning, that is only a small scaffolding detail and does not substantiate the broad declared description. Therefore the description materially overstates and misrepresents the actual behavior of this code chunk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description promises a comprehensive coding workflow framework with persistent memory, TDD execution, and numerous productivity skills. The supplied code does not implement that broad workflow. Instead, it performs a specific session-catchup function: it locates local IDE session logs, scans them for edits to task_plan.md/progress.md/findings.md, extracts subsequent user/assistant messages, and prints a summary. This is a materially different primary purpose and it uses local session-history resources that are not reflected in the description or permissions. While catchup could support a larger workflow, this code chunk itself is much narrower and has undeclared log/history access behavior, so it should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description describes a broad AI-assisted development workflow platform with persistent memory and multiple productivity skills. The supplied code does not implement any AI workflow, memory system, TDD runner, planning assistant, debugging support, or code review functionality. Instead, it is a repository maintenance utility for copying and verifying shared files across IDE-specific directories. This is a materially different primary purpose and includes an undeclared capability: file synchronization and drift detection across IDE folders.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The supplied code chunk does not implement a unified multi-skill AI workflow system. Instead, it provides small event-waiting helper functions for debugging/test infrastructure around thread events. While this could be loosely related to debugging, the declared description emphasizes persistent memory, TDD execution, and a broad workflow toolkit, none of which are present in the code. The primary purpose is materially different and much narrower than declared.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared description presents a broad multi-skill AI workflow system with persistent memory and coding workflows. The supplied code chunk is instead a single-purpose bash script for finding a polluting test that creates unwanted filesystem state. While this script loosely fits under 'debugging,' it does not implement or evidence the broader claimed capabilities such as unified AI workflow orchestration, persistent memory, TDD execution framework, or 15 productivity skills. The primary purpose is materially narrower and different from the declared description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description presents a broad AI workflow/orchestration skill for coding projects, including persistent memory, TDD, planning, execution, debugging, and code review. The supplied code does none of those things. Instead, it is a standalone documentation/visualization helper that parses SKILL.md for dot blocks and renders diagrams to SVG files. This is a materially different primary purpose and includes undeclared file-processing and external tool invocation capabilities unrelated to the declared workflow functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description presents a comprehensive AI workflow system with multiple coding-assistance capabilities, but the supplied code chunk only implements a small status-check hook for task plan completion. Its actual behavior is limited to locating a task_plan.md file, counting phases and status markers, printing completion/progress information, and optionally querying Git for recent commits. This is materially narrower and different from the declared purpose, and it includes a Git pulse reporting behavior that is not described. While this hook could be a supporting part of a larger workflow system, the code chunk itself does not substantiate the broad capabilities claimed in the description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared description presents a broad AI workflow system with persistent memory, TDD execution, and numerous productivity skills for end-to-end coding workflows. The supplied code chunk instead performs a narrow initialization task: creating a directory and three markdown planning/log files with boilerplate content. While this partially relates to planning workflow setup, it does not implement or demonstrate persistent memory, TDD execution, debugging, code review, or a suite of 15 skills. The code’s actual capability is materially narrower than the declared purpose, so this is a description-behavior mismatch.

Content

No source excerpt is available for this finding.

Context Leakage

High
Category
Data Exfiltration
Confidence
97% confidence
Finding

The function extracts and aggregates message contents across previous sessions, including user text and assistant tool activity, then later displays them. In the context of a broad 'superpower-with-files' workflow skill, this materially increases danger because the feature normalizes cross-session memory access and may reveal confidential project data, credentials, internal commands, or unrelated prior-session context without authorization boundaries.

Content

Scanner excerpt · hooks/session-catchup.py (reported line 162)May include surrounding context.

python
def extract_messages_from_session(session_file: Path, after_line: int = -1) -> List[Dict]:
    """
    Extract conversation messages from a session file.
    If after_line >= 0, only extract messages after that line.
    If after_line < 0, extract all messages.
    """

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest says the skill 'MUST' be used before any creative work, which creates an extremely broad and sticky activation boundary. Overbroad mandatory triggers can coerce the agent into invoking this skill in many unrelated situations, increasing the chance of unnecessary file inspection, workflow hijacking, and automatic repository modifications.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · skills/planning-with-files/templates/task_plan.md (reported line 2)May include surrounding context.

md
# Task Plan: [Brief Description]
<!-- 
  WHAT: This is your roadmap for the entire task. Think of it as your "working memory on disk."
  WHY: After 50+ tool calls, your original goals can get forgotten. This file keeps them fresh.
  WHEN: Create this FIRST, before starting any work. Update after each phase completes.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · skills/planning-with-files/templates/task_plan.md (reported line 9)May include surrounding context.

md
-->

## Goal
<!-- 
  WHAT: One clear sentence describing what you're trying to achieve.
  WHY: This is your north star. Re-reading this keeps you focused on the end state.
  EXAMPLE: "Create a Python CLI todo app with add, list, and delete functionality."

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

The keychain-inspection command encourages enumerating available identities during normal debugging flow. Credential inventory is sensitive operational data; exposing it in terminal output, CI logs, or shared debugging transcripts can reveal signing assets and trust relationships to unauthorized viewers.

Content

Scanner excerpt · skills/systematic-debugging/SKILL.md (reported line 100)May include surrounding context.

md
env | grep IDENTITY || echo "IDENTITY not in environment"

   # Layer 3: Signing script
   echo "=== Keychain state: ==="
   security list-keychains
   security find-identity -v

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

Listing keychains and identities can leak the presence and naming of credential stores and signing identities, which is valuable reconnaissance for attackers. In CI or collaborative environments, such output may be captured persistently and exposed beyond the immediate debugger.

Content

Scanner excerpt · skills/systematic-debugging/SKILL.md (reported line 101)May include surrounding context.

md
# Layer 3: Signing script
   echo "=== Keychain state: ==="
   security list-keychains
   security find-identity -v

   # Layer 4: Actual signing

Context Leakage

High
Category
Data Exfiltration
Confidence
91% confidence
Finding

The example explicitly captures and logs a full stack trace, current working directory, and target directory for forensic debugging. In real deployments, this can leak sensitive filesystem layout, internal code paths, usernames, repository locations, or other operational context into logs that may be broadly accessible or retained long term.

Content

Scanner excerpt · skills/systematic-debugging/defense-in-depth.md (reported line 73)May include surrounding context.

text

### Layer 4: Debug Instrumentation
**Purpose:** Capture context for forensics

```typescript
async function gitInit(directory: string) {

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The activation condition 'Use when starting any conversation' is so broad that it effectively forces this skill into nearly all interactions, allowing its procedural rules to dominate unrelated tasks. In a skill framework, that creates a control-plane issue: one markdown file can hijack agent behavior globally and compel unnecessary tool use or chaining into additional skills.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The 'even a 1% chance' threshold is intentionally unbounded and non-falsifiable, which pressures the agent to invoke skills in almost every case. This weakens safe discretion, increases attack surface from secondary skill loading, and can be abused to create recursive or excessive tool invocations that override user intent and normal decision-making.

Content

No source excerpt is available for this finding.

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · skills/writing-skills/SKILL.md (reported line 383)May include surrounding context.

md
This applies to NEW skills AND EDITS to existing skills.

Write skill before testing? Delete it. Start over.
Edit skill without testing? Same violation.

**No exceptions:**
- Not for "simple additions"

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · skills/writing-skills/anthropic-best-practices.md (reported line 5)May include surrounding context.

md
> Learn how to write effective Skills that Claude can discover and use successfully.

Good Skills are concise, well-structured, and tested with real usage. This guide provides practical authoring decisions to help you write Skills that Claude can discover and use effectively.

For conceptual background on how Skills work, see the [Skills overview](/en/docs/agents-and-tools/agent-skills/overview).

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
85% confidence
Finding

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.

Content

Scanner excerpt · skills/writing-skills/examples/CLAUDE_MD_TESTING.md (reported line 85)May include surrounding context.

relevant skills. You should use skills when they exist.

Browse: ls ~/.claude/skills/ Search: grep -r "keyword" ~/.claude/skills/

text

### Variant C: Claude.AI Emphatic Style

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
85% confidence
Finding

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.

Content

Scanner excerpt · skills/writing-skills/examples/CLAUDE_MD_TESTING.md (reported line 95)May include surrounding context.

relevant skills. You should use skills when they exist.

Browse: ls ~/.claude/skills/ Search: grep -r "keyword" ~/.claude/skills/

text

### Variant C: Claude.AI Emphatic Style

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
85% confidence
Finding

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.

Content

Scanner excerpt · skills/writing-skills/examples/CLAUDE_MD_TESTING.md (reported line 123)May include surrounding context.

md
1. **Before starting:** Check for relevant skills
   - Browse: `ls ~/.claude/skills/`
   - Search: `grep -r "symptom" ~/.claude/skills/`

2. **If skill exists:** Read it completely before proceeding

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · skills/writing-skills/SKILL.md (reported line 652)May include surrounding context.

md
**Testing skills is just TDD applied to process documentation.**

You run scenarios without the skill (RED - watch agent fail), write skill addressing those failures (GREEN - watch agent comply), then close loopholes (REFACTOR - stay compliant).

**Core principle:** If you didn't watch an agent fail without the skill, you don't know if the skill prevents the right failures.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
skills/writing-skills/render-graphs.js:25