Back to skill

Security audit

Proactive Agent

Security checks for vulnerabilities and agentic risk

Overview

This skill is not shown exfiltrating data or running hidden code, but it asks the agent to persist broad personal conversation details and install durable reminders/triggers with too little user control.

Install only if you intentionally want a highly persistent agent memory system. Review and limit what it may write, avoid storing secrets or sensitive personal data, skip the cron and AGENTS.md trigger unless you explicitly want cross-session behavior, and require confirmation before any tool use beyond local note updates.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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 (3)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:136
Finding
Mandatory Agent Identity and Response-Flow Override## Vulnerability Details **File Location**: `SKILL.md`, lines 136-152 **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: High **Vulnerable Skill Text**: ```markdown **The Law:** You are a stateful operator. Chat history is a BUFFER, not storage. `SESSION-STATE.md` is your "RAM" — the ONLY place specific details are safe. ### Trigger — SCAN EVERY MESSAGE FOR: - ✏️ **Corrections** — "It's X, not Y" / "Actually..." / "No, I meant..." - 📍 **Proper nouns** — Names, places, companies, products - 🎨 **Preferences** — Colors, styles, approaches, "I like/don't like" - 📋 **Decisions** — "Let's do X" / "Go with Y" / "Use Z" - 📝 **Draft changes** — Edits to something we're working on - 🔢 **Specific values** — Numbers, dates, IDs, URLs ### The Protocol **If ANY of these appear:** 1. **STOP** — Do not start composing your response 2. **WRITE** — Update SESSION-STATE.md with the detail 3. **THEN** — Respond to your human ``` ### Technical Analysis The skill declares a new mandatory agent identity and requires the agent to interrupt its normal response process whenever broad input patterns occur. Names, preferences, dates, identifiers, URLs, and ordinary decisions are sufficient to activate the rule. This is instruction hijacking because the skill does not present state recording as an optional capability invoked for a specific user task. Instead, it labels the behavior as “The Law,” directs the agent to scan every message, and requires a persistent write before the current request may be answered. The later statement at line 286 that the behavior is “Non-negotiable” and part of the agent’s “core identity” further reinforces the override. ### Attack Path 1. The skill is loaded into an agent’s instruction context. 2. The agent adopts the imposed stateful-operator identity and mandatory response protocol. 3. A user message contains a common trigger such as a name, date, preference, URL, corre ...[truncated 879 chars]
Remediation
## Remediation Suggestions 1. Remove identity-changing and compulsory language such as “The Law,” “STOP,” “non-negotiable,” and “core identity.” 2. State explicitly that system instructions and the user’s current request take precedence over all skill guidance. 3. Make persistence an optional operation that requires explicit user consent. 4. Do not treat ordinary names, dates, preferences, IDs, or URLs as automatic write triggers. 5. Display the proposed state change and its destination before writing it. 6. Permit the agent to complete a request without enabling memory or state storage. 7. Add a clear disable and uninstall procedure that removes files or rules created by the skill.

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:172
Finding
Automatic Persistent Capture of User Details and Conversation Content## Vulnerability Details **File Location**: `SKILL.md`, lines 172-201; related capture triggers at lines 138-152 and profile logging at line 442 **Vulnerability Type**: T02: Agent Memory Poisoning **Risk Level**: High **Vulnerable Skill Text**: ```markdown ## Working Buffer Protocol ⭐ NEW **Purpose:** Capture EVERY exchange in the danger zone between memory flush and compaction. ### How It Works 1. **At 60% context** (check via `session_status`): CLEAR the old buffer, start fresh 2. **Every message after 60%**: Append both human's message AND your response summary 3. **After compaction**: Read the buffer FIRST, extract important context 4. **Leave buffer as-is** until next 60% threshold ### Buffer Format ```markdown # Working Buffer (Danger Zone Log) **Status:** ACTIVE **Started:** [timestamp] --- ## [timestamp] Human [their message] ## [timestamp] Agent (summary) [1-2 sentence summary of your response + key details] ``` ### Why This Works The buffer is a file — it survives compaction. Even if SESSION-STATE.md wasn't updated properly, the buffer captures everything said in the danger zone. After waking up, you review the buffer and pull out what matters. **The rule:** Once context hits 60%, EVERY exchange gets logged. No exceptions. ``` Related persistent profiling instruction: ```markdown ### Curiosity Loop Ask 1-2 questions per conversation to understand your human better. Log learnings to USER.md. ``` ### Technical Analysis The working-buffer protocol requires raw human messages and agent-response summaries to be stored after an arbitrary context threshold. It explicitly states that every exchange must be logged without exceptions and retained through context compaction. Separately, the skill directs learned information to be written into `USER.md`. This creates a memory-poisoning and privacy risk because persistent state accepts ordinary conversational content without tru ...[truncated 1940 chars]
Remediation
## Remediation Suggestions 1. Replace automatic full-message logging with explicit, per-session opt-in. 2. Store only narrowly defined facts needed for the current task rather than raw exchanges. 3. Exclude credentials, authentication tokens, IDs, private URLs, health information, financial information, and other sensitive data. 4. Attach provenance, timestamp, confidence, and expiration metadata to every stored item. 5. Treat persistent content as untrusted data and never execute instructions recovered from memory. 6. Require user confirmation before promoting working-buffer content into `USER.md` or long-term state. 7. Provide review, correction, export, deletion, retention-limit, and complete reset controls. 8. Apply restrictive filesystem permissions and encryption where persistent personal data is genuinely required. 9. Remove “EVERY exchange” and “No exceptions” requirements.

T06 · System Persistence

Error
Location
SKILL.md:430
Finding
Cross-Session Persistence Through Scheduled and Per-Response Triggers## Vulnerability Details **File Location**: `SKILL.md`, lines 371-374 and 430-433 **Vulnerability Type**: T06: System Persistence, T02: Agent Memory Poisoning **Risk Level**: High **Vulnerable Skill Text**: ```markdown **In Every Session:** 1. Read SOUL.md - remember who you are 2. Read USER.md - remember who you serve 3. Read recent memory files - catch up on context ``` ```markdown ### Making It Actually Happen 1. **Track it:** Create `notes/areas/proactive-tracker.md` 2. **Schedule it:** Weekly cron job reminder 3. **Add trigger to AGENTS.md:** So you see it every response ``` ### Technical Analysis The skill instructs the agent to install two persistence mechanisms: a weekly cron reminder and a trigger in `AGENTS.md` that is evaluated for every response. It also requires persistent identity, profile, and memory files to be reloaded in every session. A cron entry is an operating-system scheduled task that can survive the original skill invocation. Modification of `AGENTS.md` similarly creates a durable behavioral hook in agent environments that automatically load workspace instructions. Combining these hooks with persistent user and memory files allows the skill’s behavior—and any attacker-controlled content introduced into those files—to continue affecting later sessions. The exact cron command is not supplied, and the reviewed project contains no installation script that automatically creates the task. Exploitation therefore depends on an agent following the textual setup instructions while possessing the necessary file and scheduler permissions. Nevertheless, the requested persistence mechanism is explicit. ### Attack Path 1. The agent follows the skill’s setup guidance. 2. It creates `notes/areas/proactive-tracker.md`. 3. It adds a weekly cron reminder using the host account’s scheduler privileges. 4. It modifies `AGENTS.md` with a trigger intended to run or be considered on every response. 5. ...[truncated 945 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction to create a cron job as part of ordinary skill activation. 2. Do not modify `AGENTS.md` automatically or as an implicit setup step. 3. Require separate, explicit confirmation that names the exact cron schedule, command, files modified, and expected duration. 4. Use an application-scoped, visible reminder mechanism instead of an operating-system scheduler where possible. 5. Make all persistence disabled by default and provide an expiration date. 6. Supply a complete uninstall procedure that removes the cron entry, `AGENTS.md` modifications, tracker files, and stored memory. 7. Mark data loaded from persistent files as untrusted and prevent it from overriding higher-priority instructions. 8. Record an auditable change log and obtain confirmation before each cross-session configuration change.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (12)

Indirect Prompt Extraction

Medium
Category
System Prompt Leakage
Content
✅ **Anticipates your needs** — Asks "what would help my human?" instead of waiting

✅ **Reverse prompting** — Surfaces ideas you didn't know to ask for

✅ **Proactive check-ins** — Monitors what matters and reaches out when needed
Confidence
85% confidence
Finding
Skill contains patterns that could indirectly extract system prompts through rephrasing, translation, summarization, or side-channel techniques.

Indirect Prompt Extraction

Medium
Category
System Prompt Leakage
Content
10. [Self-Improvement Guardrails](#self-improvement-guardrails) ⭐ NEW
11. [The Six Pillars](#the-six-pillars)
12. [Heartbeat System](#heartbeat-system)
13. [Reverse Prompting](#reverse-prompting)
14. [Growth Loops](#growth-loops)

---
Confidence
85% confidence
Finding
Skill contains patterns that could indirectly extract system prompts through rephrasing, translation, summarization, or side-channel techniques.

Indirect Prompt Extraction

Medium
Category
System Prompt Leakage
Content
10. [Self-Improvement Guardrails](#self-improvement-guardrails) ⭐ NEW
11. [The Six Pillars](#the-six-pillars)
12. [Heartbeat System](#heartbeat-system)
13. [Reverse Prompting](#reverse-prompting)
14. [Growth Loops](#growth-loops)

---
Confidence
85% confidence
Finding
Skill contains patterns that could indirectly extract system prompts through rephrasing, translation, summarization, or side-channel techniques.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The quick-start flow has the agent auto-populate persistent files like USER.md and SOUL.md from the user's answers without a clear consent and retention notice. This creates silent data collection and persistence risk, especially because those files may accumulate sensitive preferences, identity details, and behavioral metadata.

Ssd 3

Medium
Confidence
98% confidence
Finding
The WAL rules require persistent recording of corrections, proper nouns, preferences, decisions, numbers, dates, IDs, and URLs from every message. This is a direct data-retention risk because it encourages storing potentially sensitive identifiers and personal context indiscriminately and before responding.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The WAL trigger scans every message for very common patterns such as corrections, names, preferences, decisions, and numbers, effectively making the skill activate on ordinary conversation. Ambiguous activation boundaries increase the risk of unprompted writes, over-collection, and unexpected behavior across many benign interactions.

Ssd 3

Medium
Confidence
97% confidence
Finding
The Working Buffer protocol mandates logging every exchange after a context threshold, including human messages and agent summaries, into persistent files. This creates a broad retention surface for sensitive conversational data and increases exposure through later retrieval, leakage, or accidental sharing.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The compaction recovery trigger includes broad phrases like 'continue' or 'where were we?' and subjective conditions such as 'you should know something but don't.' These can cause unintended recovery behavior and unnecessary file reads, potentially surfacing stored sensitive context when not actually needed.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
1. Try a different approach immediately
2. Then another. And another.
3. Try 5-10 methods before considering asking for help
4. Use every tool: CLI, browser, web search, spawning agents
5. Get creative — combine tools in new ways

### Before Saying "Can't"
Confidence
96% confidence
Finding
'Use every tool' is an unsafe blanket instruction because it removes principled limits on execution, browsing, delegation, and network use. In an agent setting, this can transform benign problem-solving into broad capability escalation with little regard for necessity or risk.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The skill explicitly encourages broad tool use including CLI, browser, web search, and spawning agents in a generic 'try 5-10 methods' loop. That materially expands execution and network reach beyond the core stated purpose of proactivity/context continuity, increasing the chance of unsafe actions, privilege misuse, or unintended external interactions without task-specific constraints.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
> "What would genuinely delight my human? What would make them say 'I didn't even ask for that but it's amazing'?"

**The Guardrail:** Build proactively, but nothing goes external without approval. Draft emails — don't send. Build tools — don't push live.

---
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The instruction to create a weekly cron job introduces persistent system-level automation not necessary for the skill's stated role. Scheduled execution can create unattended behavior, surprise side effects, and ongoing access patterns the user may not realize they enabled.

Static analysis

No suspicious patterns detected.