Back to skill

Security audit

Reflect

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent self-improvement purpose, but it can persistently change agent instructions, install a cross-session hook, and includes private developer session logs, so it needs careful review before installation.

Install only if you intentionally want a skill that can propose and apply persistent changes to agent instructions and create new skills. Keep auto-reflection hooks disabled until you review the hook script and settings snippet, require explicit approval before any edits, remove the bundled logs from the package, validate skill names before file creation, and pin hook dependencies.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/output_generator.py:311
Finding

Arbitrary File Write Through Unvalidated Skill Name

Content
View full analysis
Path: """Create a new skill file in the project's .claude/skills/ directory.""" ensure_directories() skill_dir = get_project_skills_dir() / skill_name skill_dir.mkdir(parents=True, exist_ok=True) skill_path = skill_dir / 'SKILL.md' skill_path.write_text(skill_content) return skill_path ``` ### Technical Analysis The `skill_name` argument is accepted directly from the `--create-skill` command-line option and joined to the intended `.claude/skills` directory without validation or containment checks. `pathlib.Path` does not prevent traversal components such as `..`. In addition, if `skill_name` is an absolute path, joining it to the base path discards the base path. Consequently, the resulting destination can escape the intended skills directory. The final filename is always `SKILL.md`, but an attacker can still select an arbitrary parent directory reachable by the current user and overwrite an existing `SKILL.md`. This is especially security-sensitive because such files may contain persistent Agent instructions. ### Attack Path 1. An attacker or untrusted automation gains the ability to control the `--create-skill` value and `--content`. 2. The attacker supplies a traversal or absolute path, for example: ```bash python scripts/output_generator.py \ --create-skill "../../../../tmp/attacker-controlled" \ --content "attacker-controlled skill instructions" ``` 3. `get_project_skills_dir() / skill_name` resolves outside `.claude/skills`. 4. The program creates the selected directory if necessary. 5. It writes attacker-controlled content to the resulting `SKILL.md`. 6. If the selected destination is an Agent-discovered skill ...[truncated 709 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/logs/chat.json:6
Finding

Real Agent Session Transcript and Developer Metadata Included in the Package

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
hooks/precompact_reflect.py:1
Finding

Unpinned Third-Party Dependencies Used by Persistent Hook and Publishing Workflow

Content
View full analysis
=3.11" # dependencies = [ # "pyyaml", # ] # /// ``` The publishing guide additionally instructs users to install an unpinned package globally: ```bash # Install ClawdHub CLI npm install -g clawdhub # Authenticate clawdhub login ``` ### Technical Analysis The PreCompact hook declares `pyyaml` without an exact version or integrity hash. The documented configuration runs this script through `uv`, meaning dependency resolution is part of an executable hook that can be invoked repeatedly during Agent operation. The publishing workflow also performs a global npm installation without a version pin. Global installation increases scope because the resulting executable becomes available across projects for the current user. No evidence was found that PyYAML or the named ClawdHub package is currently malicious. The vulnerability is the absence of reproducible dependency controls: a compromised package release, registry account, dependency resolution change, or unexpected future version could introduce code that was not present during Skill review. ### Attack Path 1. A user follows the documentation and installs the PreCompact hook or publishing CLI. 2. `uv` resolves the unconstrained `pyyaml` dependency, or npm resolves the current `clawdhub` release. 3. A compromised or malicious future release is selected because no exact version or integrity constraint is present. 4. Package installation or import executes attacker-controlled package code with the permissions of the current user. 5. In the hook scenario, execution occurs in Agent hook context and may have access to environm ...[truncated 860 chars]
Remediation
View remediation
", # ] ``` 2. Use a lockfile that records transitive dependency versions and cryptographic hashes. 3. Configure `uv` and npm to use approved registries and integrity verification. 4. Install hook dependencies into a dedicated virtual environment during an explicit setup phase rather than resolving them during hook execution. 5. Pin the publishing CLI to a reviewed version: ```bash npm install -g clawdhub@ ``` 6. Prefer a project-local CLI installation over a global installation and invoke it through a locked package manager workflow. 7. Add automated dependency vulnerability and provenance checks to CI. 8. Document dependency update review procedures, including source review, changelog inspection, and lockfile regeneration. 9. Run hooks with a minimized environment and the least filesystem permissions practical. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (361)

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 · CLAWDHUB-PUBLISHING-GUIDE.md (reported line 200)May include surrounding context.

md
### 5. Publishing Checklist

- [ ] Update SKILL.md frontmatter with `triggers` and `user-invocable`
- [ ] Create skill.json with rich metadata
- [ ] Create README.md for user documentation
- [ ] Move reference files to `data/` directory

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 · scripts/logs/chat.json (reported line 3044)May include surrounding context.

json
### 5. Publishing Checklist

- [ ] Update SKILL.md frontmatter with `triggers` and `user-invocable`
- [ ] Create skill.json with rich metadata
- [ ] Create README.md for user documentation
- [ ] Move reference files to `data/` directory

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill’s declared purpose centers on conversation reflection, but the content also instructs installation of hooks, access to agent configuration, and persistent writes to local/global state and skill files. This mismatch is security-relevant because users or orchestrators may authorize the skill based on a narrower description than what it actually does, enabling unexpected persistence and configuration changes.

Content

No source excerpt is available for this finding.

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
96% confidence
Finding

The skill directs copying a hook into ~/.claude/hooks/ and editing ~/.claude/settings.json, which are sensitive agent configuration locations affecting future behavior across sessions. Writing or instructing modification there creates persistence and a cross-session execution path, so misuse or accidental approval could silently alter the agent’s runtime behavior beyond the current project.

Content

Scanner excerpt · SKILL.md (reported line 322)May include surrounding context.

cp hooks/precompact_reflect.py ~/.claude/hooks/

text

Configure in `~/.claude/settings.json`:

```json
{

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · hooks/settings-snippet.json (reported line 2)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 13824)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 13860)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 13932)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 13951)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 16244)May include surrounding context.

json
{
  "_comment": "Copy the relevant sections to your ~/.claude/settings.json",

  "hooks": {
    "PreCompact": [

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · scripts/logs/chat.json (reported line 60)May include surrounding context.

json
ties/commands/reflect.md` - The command definition\n2. `/Users/stevengonsalvez/d/git/ai-coder-rules/toolkit/claude-code-4.5/session/reflect-state.yaml` - The state configuration\n3. `/Users/stevengonsalvez/d/git/ai-coder-rules/toolkit/packages/agents/meta/reflect.md` - The agent definition\n\nLet me synthesize this information and explain the structure clearly to Stevie.",
          "signature": "EucGCkYICxgCKkBsR8RVGMmEMadeVYIGtAa/RgCR/qLne6dAxIR6VVGu7uYivUosG9IPC+4TWcz2OihMorsbjdgDtaQ6d40a2oHeEgxCLqO6gHewAEHoGNAaDET8NUrGlinYRproACIwqMFwuB8CswZ06cpxVo2y9lIefh+h9WlDq41lw9PjftaleTw4drJ7R1nxWX+qg78LKs4FPiLHwOAJXlQySbkXy4ul3G0bmIm/immbGtbMNxrt5bw+b+YesM2Jeg499bnlWxFWH+cfuI9Uuz6jov9OW1jvQMAwpGt7uwy/yoU0aege330k2/6yl1657c0+UGMf/jq94pwQAJKd+M65ZfJ7YHRZfKE29+ZIi684XQ2Sgvyw9XyA9Qhff67JR7/8OtJMHlW6UMw7ks6w1ISa1ntb28BGrUOsV0ICMoAdCkpe/CO4bpeFirqrgJ6qq1aTFTUG1qkVqHNHRD+REgcAg3uMPg2Sdd/svCGOMZP4GtmJZcCCvvhQwQOusK4vJrXxuT0UchkOHCXkD0r58GJzUOV/zWTyTdWegQA1DQGIgJpKDTV0W78AX6J2QNZFtnZ4l9Zaq0NMfml0Ebb7

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 · scripts/logs/chat.json (reported line 1391)May include surrounding context.

json
{
              "tool_use_id": "toolu_018BPS8r7HaYzawzCkiphBEx",
              "type": "tool_result",
              "content": "     1\u2192---\n     2\u2192name: webapp-testing\n     3\u2192description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.\n     4\u2192license: Complete terms in LICENSE.txt\n     5\u2192---\n     6\u2192\n     7\u2192# Web Application Testing\n     8\u2192\n     9\u2192To test local web applications, write native Python Playwright scripts.\n    10\u2192\n    11\u2192**Helper Scripts Available**:\n    12\u2192- `scripts/with_server.py` - Manages server lifecycle (supports multiple servers)\n    13\u2192\n    14\u2192**Always run scripts with `--help` first** to see usage. DO NOT read the source until you try running the script first and find that a customized solution is abslutely necessary. These scripts can be very large and thus pollute your context window. They exist to be called directly as black-box scripts rather than ingested into your context window.\n    15\u2192\n    16\u2192## Browser Tools (Direct Chrome DevTools Control)\n    17\u2192\n    18\u2192The `~/.claude/skills/webapp-testing/bin/browser-tools` utility provides lightweight, context-rot-proof browser automation using the Chrome DevTools Protocol directly (no MCP overhead).\n    19\u2192\n    20\u2192**Available Commands**:\n    21\u2192\n    22\u2192```bash\n    23\u2192# Launch browser and get connection details\n    24\u2192~/.claude/skills/webapp-testing/bin/browser-tools start [--port PORT] [--headless]\n    25\u2192\n    26\u2192# Navigate to URL\n    27\u2192~/.claude/skills/webapp-testing/bin/browser-tools nav <url> [--wait-for {load|networkidle|domcontentloaded}]\n    28\u2192\n    29\u2192# Evaluate JavaScript\n    30\u2192~/.claude/skills/webapp-testing/bin/browser-tools eval \"<javascript code>\"\n    3
...[truncated 27 chars]

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 · scripts/logs/chat.json (reported line 1391)May include surrounding context.

json
{
              "tool_use_id": "toolu_018BPS8r7HaYzawzCkiphBEx",
              "type": "tool_result",
              "content": "     1\u2192---\n     2\u2192name: webapp-testing\n     3\u2192description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.\n     4\u2192license: Complete terms in LICENSE.txt\n     5\u2192---\n     6\u2192\n     7\u2192# Web Application Testing\n     8\u2192\n     9\u2192To test local web applications, write native Python Playwright scripts.\n    10\u2192\n    11\u2192**Helper Scripts Available**:\n    12\u2192- `scripts/with_server.py` - Manages server lifecycle (supports multiple servers)\n    13\u2192\n    14\u2192**Always run scripts with `--help` first** to see usage. DO NOT read the source until you try running the script first and find that a customized solution is abslutely necessary. These scripts can be very large and thus pollute your context window. They exist to be called directly as black-box scripts rather than ingested into your context window.\n    15\u2192\n    16\u2192## Browser Tools (Direct Chrome DevTools Control)\n    17\u2192\n    18\u2192The `~/.claude/skills/webapp-testing/bin/browser-tools` utility provides lightweight, context-rot-proof browser automation using the Chrome DevTools Protocol directly (no MCP overhead).\n    19\u2192\n    20\u2192**Available Commands**:\n    21\u2192\n    22\u2192```bash\n    23\u2192# Launch browser and get connection details\n    24\u2192~/.claude/skills/webapp-testing/bin/browser-tools start [--port PORT] [--headless]\n    25\u2192\n    26\u2192# Navigate to URL\n    27\u2192~/.claude/skills/webapp-testing/bin/browser-tools nav <url> [--wait-for {load|networkidle|domcontentloaded}]\n    28\u2192\n    29\u2192# Evaluate JavaScript\n    30\u2192~/.claude/skills/webapp-testing/bin/browser-tools eval \"<javascript code>\"\n    3
...[truncated 27 chars]

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 · scripts/logs/chat.json (reported line 1468)May include surrounding context.

json
"id": "toolu_01GgZRrJzLCmKUW7p6ywFkzo",
              "name": "Bash",
              "input": {
                "command": "find /Users/stevengonsalvez/d/git/ai-coder-rules/.claude/skills/tui-screen -type f | sort"
              }
            }
          ],

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 · scripts/logs/chat.json (reported line 1927)May include surrounding context.

json
"id": "toolu_01GgZRrJzLCmKUW7p6ywFkzo",
              "name": "Bash",
              "input": {
                "command": "find /Users/stevengonsalvez/d/git/ai-coder-rules/.claude/skills/tui-screen -type f | sort"
              }
            }
          ],

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% 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 · scripts/logs/chat.json (reported line 2069)May include surrounding context.

json
{
              "tool_use_id": "toolu_01YYveJ5nu4PNf8zQCmvNJCi",
              "type": "tool_result",
              "content": "<persisted-output>\nOutput too large (53.2KB). Full output saved to: /Users/stevengonsalvez/.claude/projects/-Users-stevengonsalvez-d-git-ai-coder-rules/14f59deb-c898-4bb2-8f03-6547d17df9fc/tool-results/toolu_01YYveJ5nu4PNf8zQCmvNJCi.txt\n\nPreview (first 2KB):\n/Users/stevengonsalvez/.claude\n/Users/stevengonsalvez/.claude/action-summaries\n/Users/stevengonsalvez/.claude/agents\n/Users/stevengonsalvez/.claude/agents/archived\n/Users/stevengonsalvez/.claude/agents/design\n/Users/stevengonsalvez/.claude/agents/engineering\n/Users/stevengonsalvez/.claude/agents/meta\n/Users/stevengonsalvez/.claude/agents/orchestrators\n/Users/stevengonsalvez/.claude/agents/universal\n/Users/stevengonsalvez/.claude/cache\n/Users/stevengonsalvez/.claude/chrome\n/Users/stevengonsalvez/.claude/commands\n/Users/stevengonsalvez/.claude/config\n/Users/stevengonsalvez/.claude/debug\n/Users/stevengonsalvez/.claude/file-history\n/Users/stevengonsalvez/.claude/file-history/03f91efd-d8eb-4b47-9114-980a484daee1\n/Users/stevengonsalvez/.claude/file-history/06130c1f-57ca-444b-8abf-90af3cafe84b\n/Users/stevengonsalvez/.claude/file-history/06b15b1f-1bda-4400-b66b-e1577481b434\n/Users/stevengonsalvez/.claude/file-history/06bb62f0-55c6-4d0f-a0d4-0b3bb70da81b\n/Users/stevengonsalvez/.claude/file-history/0720f7c1-fcf3-45d6-a626-cb084ffeac23\n/Users/stevengonsalvez/.claude/file-history/096fa5b4-b804-419f-80d4-681a159073e6\n/Users/stevengonsalvez/.claude/file-history/09ecfeb4-0a71-4390-ac5d-654fd0b8d34d\n/Users/stevengonsalvez/.claude/file-history/0a618bd5-eac4-4d43-88a0-e243805313d5\n/Users/stevengonsalvez/.claude/file-history/0b4a77b1-98c5-424f-9c54-49d1eaaca8a3\n/Users/stevengonsalvez/.claude/file-history/0cb07845-bd7f-4685-ba27-6453bbed51dc\n/Users/stevengonsalvez/.claude/file-history/112129d1-f44d-46da-8eca-4a7bdfd36788\n/Users/stevengonsalvez/.claude/file-history/126a1cd3-0dd
...[truncated 25 chars]

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 · scripts/logs/chat.json (reported line 2111)May include surrounding context.

json
"id": "toolu_014BRxDHjkuBS7NAiVKSFJGa",
              "name": "Bash",
              "input": {
                "command": "find /Users/stevengonsalvez/.claude/commands -maxdepth 1 -type f 2>/dev/null | head -20"
              }
            }
          ],

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 · scripts/logs/chat.json (reported line 2317)May include surrounding context.

json
"id": "toolu_014BRxDHjkuBS7NAiVKSFJGa",
              "name": "Bash",
              "input": {
                "command": "find /Users/stevengonsalvez/.claude/commands -maxdepth 1 -type f 2>/dev/null | head -20"
              }
            }
          ],

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 · scripts/logs/chat.json (reported line 2811)May include surrounding context.

json
"id": "toolu_014BRxDHjkuBS7NAiVKSFJGa",
              "name": "Bash",
              "input": {
                "command": "find /Users/stevengonsalvez/.claude/commands -maxdepth 1 -type f 2>/dev/null | head -20"
              }
            }
          ],

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 · scripts/logs/chat.json (reported line 2367)May include surrounding context.

json
{
              "tool_use_id": "toolu_01VSUb2ttj3pjBrsiPnRHLuq",
              "type": "tool_result",
              "content": "     1\u2192# /reflect - Self-Improvement Reflection\n     2\u2192\n     3\u2192Analyze the current conversation for corrections, success patterns, and learnings. Extract insights and propose targeted updates to agent files.\n     4\u2192\n     5\u2192**Philosophy**: \"Correct once, never again.\"\n     6\u2192\n     7\u2192## Usage\n     8\u2192\n     9\u2192```bash\n    10\u2192/reflect                    # Analyze current conversation\n    11\u2192/reflect [agent-name]       # Focus on learnings for specific agent\n    12\u2192/reflect on                 # Enable auto-reflection at session end\n    13\u2192/reflect off                # Disable auto-reflection\n    14\u2192/reflect status             # Show toggle state and metrics\n    15\u2192/reflect review             # Review pending low-confidence learnings\n    16\u2192```\n    17\u2192\n    18\u2192## Modes\n    19\u2192\n    20\u2192### Standard Reflection (default)\n    21\u2192\n    22\u2192Scan entire conversation for:\n    23\u2192- **High confidence**: Explicit corrections (\"never do X\", \"always check Y\")\n    24\u2192- **Medium confidence**: Approved approaches (user confirmed it worked)\n    25\u2192- **Low confidence**: Observations (patterns that worked, not explicitly validated)\n    26\u2192- **New Skills**: Reusable techniques, workarounds, debugging patterns worth preserving\n    27\u2192\n    28\u2192### Targeted Reflection (`/reflect [agent-name]`)\n    29\u2192\n    30\u2192Focus analysis on learnings relevant to a specific agent:\n    31\u2192```bash\n    32\u2192/reflect code-reviewer      # Focus on code review learnings\n    33\u2192/reflect backend-developer  # Focus on backend learnings\n    34\u2192/reflect CLAUDE.md          # Focus on global preferences\n    35\u2192```\n    36\u2192\n    37\u2192### Toggle Auto-Reflection\n    38\u2192\n    39\u2192`
...[truncated 26 chars]

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 · scripts/logs/chat.json (reported line 5068)May include surrounding context.

json
{
              "tool_use_id": "toolu_01VSUb2ttj3pjBrsiPnRHLuq",
              "type": "tool_result",
              "content": "     1\u2192# /reflect - Self-Improvement Reflection\n     2\u2192\n     3\u2192Analyze the current conversation for corrections, success patterns, and learnings. Extract insights and propose targeted updates to agent files.\n     4\u2192\n     5\u2192**Philosophy**: \"Correct once, never again.\"\n     6\u2192\n     7\u2192## Usage\n     8\u2192\n     9\u2192```bash\n    10\u2192/reflect                    # Analyze current conversation\n    11\u2192/reflect [agent-name]       # Focus on learnings for specific agent\n    12\u2192/reflect on                 # Enable auto-reflection at session end\n    13\u2192/reflect off                # Disable auto-reflection\n    14\u2192/reflect status             # Show toggle state and metrics\n    15\u2192/reflect review             # Review pending low-confidence learnings\n    16\u2192```\n    17\u2192\n    18\u2192## Modes\n    19\u2192\n    20\u2192### Standard Reflection (default)\n    21\u2192\n    22\u2192Scan entire conversation for:\n    23\u2192- **High confidence**: Explicit corrections (\"never do X\", \"always check Y\")\n    24\u2192- **Medium confidence**: Approved approaches (user confirmed it worked)\n    25\u2192- **Low confidence**: Observations (patterns that worked, not explicitly validated)\n    26\u2192- **New Skills**: Reusable techniques, workarounds, debugging patterns worth preserving\n    27\u2192\n    28\u2192### Targeted Reflection (`/reflect [agent-name]`)\n    29\u2192\n    30\u2192Focus analysis on learnings relevant to a specific agent:\n    31\u2192```bash\n    32\u2192/reflect code-reviewer      # Focus on code review learnings\n    33\u2192/reflect backend-developer  # Focus on backend learnings\n    34\u2192/reflect CLAUDE.md          # Focus on global preferences\n    35\u2192```\n    36\u2192\n    37\u2192### Toggle Auto-Reflection\n    38\u2192\n    39\u2192`
...[truncated 26 chars]

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 · scripts/logs/chat.json (reported line 5078)May include surrounding context.

json
{
              "tool_use_id": "toolu_01VSUb2ttj3pjBrsiPnRHLuq",
              "type": "tool_result",
              "content": "     1\u2192# /reflect - Self-Improvement Reflection\n     2\u2192\n     3\u2192Analyze the current conversation for corrections, success patterns, and learnings. Extract insights and propose targeted updates to agent files.\n     4\u2192\n     5\u2192**Philosophy**: \"Correct once, never again.\"\n     6\u2192\n     7\u2192## Usage\n     8\u2192\n     9\u2192```bash\n    10\u2192/reflect                    # Analyze current conversation\n    11\u2192/reflect [agent-name]       # Focus on learnings for specific agent\n    12\u2192/reflect on                 # Enable auto-reflection at session end\n    13\u2192/reflect off                # Disable auto-reflection\n    14\u2192/reflect status             # Show toggle state and metrics\n    15\u2192/reflect review             # Review pending low-confidence learnings\n    16\u2192```\n    17\u2192\n    18\u2192## Modes\n    19\u2192\n    20\u2192### Standard Reflection (default)\n    21\u2192\n    22\u2192Scan entire conversation for:\n    23\u2192- **High confidence**: Explicit corrections (\"never do X\", \"always check Y\")\n    24\u2192- **Medium confidence**: Approved approaches (user confirmed it worked)\n    25\u2192- **Low confidence**: Observations (patterns that worked, not explicitly validated)\n    26\u2192- **New Skills**: Reusable techniques, workarounds, debugging patterns worth preserving\n    27\u2192\n    28\u2192### Targeted Reflection (`/reflect [agent-name]`)\n    29\u2192\n    30\u2192Focus analysis on learnings relevant to a specific agent:\n    31\u2192```bash\n    32\u2192/reflect code-reviewer      # Focus on code review learnings\n    33\u2192/reflect backend-developer  # Focus on backend learnings\n    34\u2192/reflect CLAUDE.md          # Focus on global preferences\n    35\u2192```\n    36\u2192\n    37\u2192### Toggle Auto-Reflection\n    38\u2192\n    39\u2192`
...[truncated 26 chars]

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 · scripts/logs/chat.json (reported line 8182)May include surrounding context.

json
{
              "tool_use_id": "toolu_01VSUb2ttj3pjBrsiPnRHLuq",
              "type": "tool_result",
              "content": "     1\u2192# /reflect - Self-Improvement Reflection\n     2\u2192\n     3\u2192Analyze the current conversation for corrections, success patterns, and learnings. Extract insights and propose targeted updates to agent files.\n     4\u2192\n     5\u2192**Philosophy**: \"Correct once, never again.\"\n     6\u2192\n     7\u2192## Usage\n     8\u2192\n     9\u2192```bash\n    10\u2192/reflect                    # Analyze current conversation\n    11\u2192/reflect [agent-name]       # Focus on learnings for specific agent\n    12\u2192/reflect on                 # Enable auto-reflection at session end\n    13\u2192/reflect off                # Disable auto-reflection\n    14\u2192/reflect status             # Show toggle state and metrics\n    15\u2192/reflect review             # Review pending low-confidence learnings\n    16\u2192```\n    17\u2192\n    18\u2192## Modes\n    19\u2192\n    20\u2192### Standard Reflection (default)\n    21\u2192\n    22\u2192Scan entire conversation for:\n    23\u2192- **High confidence**: Explicit corrections (\"never do X\", \"always check Y\")\n    24\u2192- **Medium confidence**: Approved approaches (user confirmed it worked)\n    25\u2192- **Low confidence**: Observations (patterns that worked, not explicitly validated)\n    26\u2192- **New Skills**: Reusable techniques, workarounds, debugging patterns worth preserving\n    27\u2192\n    28\u2192### Targeted Reflection (`/reflect [agent-name]`)\n    29\u2192\n    30\u2192Focus analysis on learnings relevant to a specific agent:\n    31\u2192```bash\n    32\u2192/reflect code-reviewer      # Focus on code review learnings\n    33\u2192/reflect backend-developer  # Focus on backend learnings\n    34\u2192/reflect CLAUDE.md          # Focus on global preferences\n    35\u2192```\n    36\u2192\n    37\u2192### Toggle Auto-Reflection\n    38\u2192\n    39\u2192`
...[truncated 26 chars]

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 · scripts/logs/chat.json (reported line 8183)May include surrounding context.

json
{
              "tool_use_id": "toolu_01VSUb2ttj3pjBrsiPnRHLuq",
              "type": "tool_result",
              "content": "     1\u2192# /reflect - Self-Improvement Reflection\n     2\u2192\n     3\u2192Analyze the current conversation for corrections, success patterns, and learnings. Extract insights and propose targeted updates to agent files.\n     4\u2192\n     5\u2192**Philosophy**: \"Correct once, never again.\"\n     6\u2192\n     7\u2192## Usage\n     8\u2192\n     9\u2192```bash\n    10\u2192/reflect                    # Analyze current conversation\n    11\u2192/reflect [agent-name]       # Focus on learnings for specific agent\n    12\u2192/reflect on                 # Enable auto-reflection at session end\n    13\u2192/reflect off                # Disable auto-reflection\n    14\u2192/reflect status             # Show toggle state and metrics\n    15\u2192/reflect review             # Review pending low-confidence learnings\n    16\u2192```\n    17\u2192\n    18\u2192## Modes\n    19\u2192\n    20\u2192### Standard Reflection (default)\n    21\u2192\n    22\u2192Scan entire conversation for:\n    23\u2192- **High confidence**: Explicit corrections (\"never do X\", \"always check Y\")\n    24\u2192- **Medium confidence**: Approved approaches (user confirmed it worked)\n    25\u2192- **Low confidence**: Observations (patterns that worked, not explicitly validated)\n    26\u2192- **New Skills**: Reusable techniques, workarounds, debugging patterns worth preserving\n    27\u2192\n    28\u2192### Targeted Reflection (`/reflect [agent-name]`)\n    29\u2192\n    30\u2192Focus analysis on learnings relevant to a specific agent:\n    31\u2192```bash\n    32\u2192/reflect code-reviewer      # Focus on code review learnings\n    33\u2192/reflect backend-developer  # Focus on backend learnings\n    34\u2192/reflect CLAUDE.md          # Focus on global preferences\n    35\u2192```\n    36\u2192\n    37\u2192### Toggle Auto-Reflection\n    38\u2192\n    39\u2192`
...[truncated 26 chars]

Static analysis

No suspicious patterns detected.