The skill is designed for amplified indirect prompt injection, enabling
Claims to do
Planning with Files: Work like Manus: Use persistent markdown files as your "working memory on disk."
Actually does
This skill uses `Bash` commands and file system tools (`Read`, `Write`, `Edit`, `Glob`, `Grep`) to manage persistent markdown files (`task_plan.md`, `findings.md`, `progress.md`) in the user's project directory. It displays content from these files at the start of a user prompt, before tool use, and instructs the AI to update them after file modifications. It also runs a Python script (`session-catchup.py`) for session recovery and `git diff --stat`.
openclaw skills install othmanadi/planning-with-filesNetwork discovery — enumerates network interfaces, connections, or routing tables
ss -Fil
The skill is granted access to the `Bash` tool, enabling arbitrary shell command execution. Additionally, the `Stop` hook and 'Restore Context' section execute external scripts (`.ps1`, `.sh`, `.py`) directly, with the PowerShell command using `ExecutionPolicy Bypass`, providing multiple vectors for arbitrary code execution.
allowed-tools: "Bash"; Stop hook: `powershell.exe ... || sh ...`; Restore Context: `$(command -v python3 || command -v python) ...session-catchup.py`
The skill has `Read`, `Write`, `Edit`, `Glob`, and `Grep` tool access, allowing for broad file system reconnaissance, modification of arbitrary files, and potential data exfiltration. This capability, especially when combined with prompt injection, enables an attacker to read sensitive files, alter system configurations, or exfiltrate data.
allowed-tools: "Read, Write, Edit, Glob, Grep"
The Stop hook executes external shell and PowerShell scripts from a plugin root directory. The path is partially user-controlled via CLAUDE_PLUGIN_ROOT environment variable. This enables arbitrary code execution from attacker-controlled script paths, and the PowerShell invocation uses -ExecutionPolicy Bypass, explicitly disabling security controls.
"SD=\"${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts\"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"$SD/check-complete.ps1\" 2>/dev/null || sh \"$SD/check-complete.sh\""The Stop hook explicitly invokes PowerShell with -ExecutionPolicy Bypass, circumventing the system's configured script execution policy. This is a well-known technique for running unsigned or restricted scripts while evading Windows security controls.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File
The skill instructs the agent to execute a Python script (session-catchup.py) from the plugin directory, passing the current working directory as an argument. This script is not auditable from the skill content and could perform arbitrary operations including data exfiltration or reconnaissance.
$(command -v python3 || command -v python) ${CLAUDE_PLUGIN_ROOT}/scripts/session-catchup.py "$(pwd)"Multiple commands construct file paths using the CLAUDE_PLUGIN_ROOT environment variable without sanitization. If this variable is attacker-controlled or manipulated, it could redirect script execution to arbitrary locations or enable path traversal attacks.
${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/planning-with-files}/scripts and ${CLAUDE_PLUGIN_ROOT}/scripts/session-catchup.pyThe skill instructs the agent to run 'git diff --stat' during session recovery to enumerate code changes. While contextually plausible, this represents automated repository reconnaissance on session start.
Run `git diff --stat` to see actual code changes
The skill design explicitly uses `task_plan.md` as a persistent memory, injecting its content into the agent's context before every user prompt and before every tool call. This creates a high-value target for indirect prompt injection, as acknowledged by the skill's 'Security Boundary' section, allowing an attacker to inject malicious instructions that are repeatedly executed.
UserPromptSubmit hook: `head -50 task_plan.md`; PreToolUse hook: `cat task_plan.md`; 'Security Boundary' section: 'Content written to task_plan.md is injected into context repeatedly'
The UserPromptSubmit hook automatically reads and injects task_plan.md content into the agent's context on every user message. Since task_plan.md is written from various sources including findings from web/search, this creates an amplified indirect prompt injection vector where malicious instructions in external content persist and are re-injected repeatedly.
hooks:\n UserPromptSubmit:\n - hooks:\n - type: command\n command: \"if [ -f task_plan.md ]; then echo '[planning-with-files] ACTIVE PLAN — current state:'; head -50 task_plan.md;
The PreToolUse hook reads task_plan.md before every Write, Edit, Bash, Read, Glob, or Grep tool call, injecting its contents into context. This means any malicious instructions embedded in task_plan.md are amplified on every tool use, significantly increasing the attack surface for indirect prompt injection.
PreToolUse:\n - matcher: \"Write|Edit|Bash|Read|Glob|Grep\"\n hooks:\n - type: command\n command: \"cat task_plan.md 2>/dev/null | head -30 || true\"
The skill explicitly documents that task_plan.md is a 'high-value target for indirect prompt injection' and that its PreToolUse hook repeatedly re-reads and injects file contents. While framed as a security warning, this also serves as precise documentation for an attacker on how to exploit the hook mechanism.
Content written to `task_plan.md` is injected into context repeatedly — making it a high-value target for indirect prompt injection.
The PostToolUse hook fires after every Write or Edit operation and injects instructions directly into the agent context, directing future behavior. This creates an automated feedback loop where file writes trigger additional agent directives without user involvement.
PostToolUse:\n - matcher: \"Write|Edit\"\n hooks:\n - type: command\n command: \"if [ -f task_plan.md ]; then echo '[planning-with-files] Update progress.md with what you just did.
The skill instructs the agent to continue autonomously through multi-phase plans with many tool calls without user confirmation checkpoints. Combined with session recovery, this creates a pattern of autonomous operation that could proceed without meaningful human oversight across sessions.
Use when asked to plan out, break down, or organize a multi-step project, research task, or any work requiring >5 tool calls. Supports automatic session recovery after /clear.
The skill implements automatic session recovery that resumes prior agent state and continues executing plans from previous sessions without explicit user reconfirmation. This bypasses the implicit user intent signal conveyed by /clear and could cause the agent to continue undesired actions.
Supports automatic session recovery after /clear... check for unsynced context from a previous session... Update planning files based on catchup + git diff... Then proceed with task
[](https://mondoo.com/ai-agent-security/skills/clawhub/othmanadi/planning-with-files)<a href="https://mondoo.com/ai-agent-security/skills/clawhub/othmanadi/planning-with-files"><img src="https://mondoo.com/ai-agent-security/api/badge/clawhub/othmanadi/planning-with-files.svg" alt="Mondoo Skill Check" /></a>https://mondoo.com/ai-agent-security/api/badge/clawhub/othmanadi/planning-with-files.svgSkills can read files, run commands, and access credentials. Mondoo helps organizations manage the security risks of AI agent skills across their entire fleet.