{
  "skill": {
    "name": "using-superpowers",
    "source": "skills/using-superpowers",
    "scanned_at": "2026-08-28T03:35:31.475577+00:00"
  },
  "risk_assessment": {
    "score": 49,
    "severity": "MEDIUM",
    "recommendation": "CAUTION",
    "max_issue_severity": "HIGH"
  },
  "components": [
    {
      "path": "SKILL.md",
      "type": "markdown",
      "lines": 63,
      "executable": false,
      "size_bytes": 3108,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    },
    {
      "path": "references/antigravity-tools.md",
      "type": "markdown",
      "lines": 23,
      "executable": false,
      "size_bytes": 1495,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    },
    {
      "path": "references/codex-tools.md",
      "type": "markdown",
      "lines": 108,
      "executable": false,
      "size_bytes": 4762,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    },
    {
      "path": "references/gemini-tools.md",
      "type": "markdown",
      "lines": 63,
      "executable": false,
      "size_bytes": 4598,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    },
    {
      "path": "references/hermes-tools.md",
      "type": "markdown",
      "lines": 56,
      "executable": false,
      "size_bytes": 1964,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    },
    {
      "path": "references/pi-tools.md",
      "type": "markdown",
      "lines": 16,
      "executable": false,
      "size_bytes": 1242,
      "source_url": null,
      "source_identity": null,
      "source_digest": null
    }
  ],
  "structured_summaries": [],
  "issues": [
    {
      "id": "AS1",
      "finding_id": "finding-1541b99014c441feb063e9c0090c36e8",
      "category": "Agent Snooping",
      "pattern": "Agent Config Directory Access",
      "severity": "HIGH",
      "confidence": 0.9,
      "location": {
        "file": "references/codex-tools.md",
        "start_line": 3,
        "end_line": null
      },
      "finding": "~/.codex/config.toml",
      "explanation": "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.",
      "remediation": "Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variables — never read the agent's own config files.",
      "code_snippet": "## Subagent dispatch requires multi-agent support\n\nAdd to your Codex config (`~/.codex/config.toml`):\n\n```toml\n[features]",
      "intent": null,
      "tags": [
        "Agent Snooping"
      ],
      "evidence": {},
      "match_fingerprint": "ac8a2c85e2eeb5e14c174cae3d679d330225a562a4847ce1a64de3a1bcf488fb",
      "occurrences": [
        {
          "file": "references/codex-tools.md",
          "start_line": 3,
          "end_line": null
        }
      ]
    },
    {
      "id": "AS1",
      "finding_id": "finding-1541b99014c441feb063e9c0090c36e8",
      "category": "Agent Snooping",
      "pattern": "Agent Config Directory Access",
      "severity": "HIGH",
      "confidence": 0.9,
      "location": {
        "file": "references/codex-tools.md",
        "start_line": 71,
        "end_line": null
      },
      "finding": "~/.codex/config.toml",
      "explanation": "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.",
      "remediation": "Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variables — never read the agent's own config files.",
      "code_snippet": "## Subagent dispatch requires multi-agent support\n\nAdd to your Codex config (`~/.codex/config.toml`):\n\n```toml\n[features]",
      "intent": null,
      "tags": [
        "Agent Snooping"
      ],
      "evidence": {},
      "match_fingerprint": "ac8a2c85e2eeb5e14c174cae3d679d330225a562a4847ce1a64de3a1bcf488fb",
      "occurrences": [
        {
          "file": "references/codex-tools.md",
          "start_line": 71,
          "end_line": null
        }
      ]
    },
    {
      "id": "EA2",
      "finding_id": "finding-43609435c90c45408884dffe0c777cf8",
      "category": "Excessive Agency",
      "pattern": "Autonomous Decision Making",
      "severity": "MEDIUM",
      "confidence": 0.75,
      "location": {
        "file": "references/codex-tools.md",
        "start_line": 35,
        "end_line": null
      },
      "finding": "without checking",
      "explanation": "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.",
      "remediation": "Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.",
      "code_snippet": "  reviewers when their review returns, and close each implementer\n  after its task's review passes.\n- **Model names:** never copy a model name from a skill, table, or old\n  session into `spawn_agent` without checking it against your current\n  spawn allowlist — V2 accepts only V2-capable presets and hard-errors\n  on the rest.\n",
      "intent": null,
      "tags": [
        "Excessive Agency"
      ],
      "evidence": {},
      "match_fingerprint": "9341b6f34d6af9081a0d6673f4217b7307d273da9f43357efd9029e15c5da76c",
      "occurrences": [
        {
          "file": "references/codex-tools.md",
          "start_line": 35,
          "end_line": null
        }
      ]
    },
    {
      "id": "AS3",
      "finding_id": "finding-e3550a8acb8f4ef4a1b9abe3e25a78a3",
      "category": "Agent Snooping",
      "pattern": "Skill Enumeration",
      "severity": "MEDIUM",
      "confidence": 0.85,
      "location": {
        "file": "references/gemini-tools.md",
        "start_line": 28,
        "end_line": null
      },
      "finding": "ls live at **`~/.gemini/skills",
      "explanation": "Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.",
      "remediation": "Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.",
      "code_snippet": "\n## Personal skills directory\n\nUser-level skills live at **`~/.gemini/skills/`**, with **`~/.agents/skills/`** as a cross-runtime alias (shared with Codex and Copilot CLI). When both directories exist at the same scope, `.agents/skills/` takes precedence. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter).\n\n## Subagent support\n",
      "intent": null,
      "tags": [
        "Agent Snooping"
      ],
      "evidence": {},
      "match_fingerprint": "b9bc1405759ad41605b15b205f45e45625200d1e2f43a88b437821a8e0de40c3",
      "occurrences": [
        {
          "file": "references/gemini-tools.md",
          "start_line": 28,
          "end_line": null
        }
      ]
    }
  ],
  "suppressed_count": 0,
  "suppressed": [],
  "metadata": {
    "has_executable_scripts": false,
    "skillspector_version": "2.10.0",
    "llm_requested": false,
    "llm_available": false,
    "meta_analysis_applied": false,
    "inference_usage": [],
    "filtering_mode": "heuristic"
  },
  "execution_successful": true,
  "analysis_completeness": {
    "total_components": 6,
    "scanned_components": 6,
    "coverage_percent": 100.0,
    "is_complete": false,
    "status": "partial",
    "execution_successful": true,
    "fully_inspected_files": 6,
    "partially_inspected_files": 0,
    "entirely_uninspected_files": 0,
    "ledger_exceptions": [
      {
        "outcome": "partial",
        "phase": "reference_resolution",
        "reason_code": "reference_unresolved",
        "message": "A local path-like reference could not be resolved unambiguously.",
        "path": "SKILL.md",
        "start_line": 42,
        "end_line": 42,
        "fatal": false
      }
    ],
    "scope_exclusions": [],
    "analyzer_statuses": [
      {
        "analyzer_id": "artifact_integrity",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "behavioral_ast",
        "status": "not_applicable",
        "planned_work": 0,
        "completed": 0,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0,
        "reason_code": "no_applicable_files",
        "message": "No files matched this analyzer's applicability contract."
      },
      {
        "analyzer_id": "behavioral_taint_tracking",
        "status": "not_applicable",
        "planned_work": 0,
        "completed": 0,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0,
        "reason_code": "no_applicable_files",
        "message": "No files matched this analyzer's applicability contract."
      },
      {
        "analyzer_id": "mcp_least_privilege",
        "status": "not_applicable",
        "planned_work": 0,
        "completed": 0,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0,
        "reason_code": "no_applicable_files",
        "message": "No files matched this analyzer's applicability contract."
      },
      {
        "analyzer_id": "mcp_rug_pull",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "mcp_tool_poisoning",
        "status": "completed",
        "planned_work": 1,
        "completed": 1,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "meta_analyzer",
        "status": "disabled",
        "planned_work": 0,
        "completed": 0,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0,
        "reason_code": "disabled_by_configuration",
        "message": "Analyzer was disabled by the requested configuration."
      },
      {
        "analyzer_id": "static_patterns_agent_snooping",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_anti_refusal",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_data_exfiltration",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_deserialization",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_excessive_agency",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_harmful_content",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_memory_poisoning",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_output_handling",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_privilege_escalation",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_prompt_injection",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_rogue_agent",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_ssrf",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_supply_chain",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_system_prompt_leakage",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_patterns_tool_misuse",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      },
      {
        "analyzer_id": "static_yara",
        "status": "completed",
        "planned_work": 6,
        "completed": 6,
        "partial": 0,
        "skipped": 0,
        "failed": 0,
        "unaccounted": 0
      }
    ],
    "references": [
      {
        "source_path": "SKILL.md",
        "line": 42,
        "column": 16,
        "evidence": "| \"I can check git/files quickly\" | Files lack conversation context. Check for skills. |",
        "target_path": null,
        "status": "missing",
        "disposition": "partial"
      },
      {
        "source_path": "SKILL.md",
        "line": 56,
        "column": 11,
        "evidence": "- Codex: `references/codex-tools.md`",
        "target_path": "references/codex-tools.md",
        "status": "resolved",
        "disposition": "analyzed"
      },
      {
        "source_path": "SKILL.md",
        "line": 57,
        "column": 8,
        "evidence": "- Pi: `references/pi-tools.md`",
        "target_path": "references/pi-tools.md",
        "status": "resolved",
        "disposition": "analyzed"
      },
      {
        "source_path": "SKILL.md",
        "line": 58,
        "column": 17,
        "evidence": "- Antigravity: `references/antigravity-tools.md`",
        "target_path": "references/antigravity-tools.md",
        "status": "resolved",
        "disposition": "analyzed"
      },
      {
        "source_path": "SKILL.md",
        "line": 59,
        "column": 18,
        "evidence": "- Hermes Agent: `references/hermes-tools.md`",
        "target_path": "references/hermes-tools.md",
        "status": "resolved",
        "disposition": "analyzed"
      }
    ],
    "limitations": [],
    "findings_before_filtering": 4,
    "findings_after_filtering": 4
  }
}
