Back to skill

Security audit

goal-runner

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed roadmap automation helper that can edit code and keep local run records, with no evidence of hidden execution or data exfiltration.

Install only if you want an agent to work through a roadmap autonomously. Review the task file first, be explicit about whether commits or pushes are allowed, and remember that local .claude/goal-runner records may contain task details, diffs, and command output.

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
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The description says to use this skill whenever the user says phrases like "launch sub agents to work the tasks" or sets a /goal naming a roadmap/task file, even if they do not name the skill. Those activation conditions are broad enough to match ordinary project-management requests, which may cause unintended invocation despite the brief exclusion note for single tasks and reruns.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
77% confidence
Finding

The skill instructs the agent to persist detailed task briefs, reports, diffs, assumptions, and progress state under .claude/goal-runner/<run>/. In a security context, this creates a retention surface for potentially sensitive repository details, task contents, and execution evidence that may later be read, exfiltrated, or accidentally committed if exclusion fails.

Content

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

md
3. **Front-load the riskiest unknown.** Ask: what discovery would invalidate the whole approach? That is scout question #1 — answered before the coder starts, not after it fails.
4. **Sub-agent reports are testimony, not truth.** Quoted command output or a `file:line` citation upgrades a claim to evidence; anything else stays a hypothesis. Two agents disagreeing is signal — resolve it by re-deriving yourself (open the file, run the command), never by picking the more confident voice.
5. **Guard your own context.** The coordinator's window holds orchestration state — queue position, evidence ledger, assumptions. Details live and die inside sub-agents; that is *why* the main agent never codes. Hand artifacts over as **files, not pasted text**: write each coder brief to `.claude/goal-runner/<run>/task-N-brief.md` (`<run>` = the task file's name, lower-cased, without extension — `roadmap` for `ROADMAP.md` — so a resumed session finds the same directory), have the coder write its full report to `task-N-report.md` and return only status + file list + one-line test summary + concerns, and give reviewers the diff as a file (`git diff BASE..HEAD > task-N-diff.patch`). Everything you paste into a prompt or a sub-agent prints back stays resident in your window for the rest of the run.
6. **Keep a run ledger the next session can trust.** Conversation memory does not survive compaction; a coordinator that loses its place re-dispatches finished tasks — the single most expensive failure in long runs. Append one line per event to `.claude/goal-runner/<run>/progress.md`: `Task N: started (BASE <sha7>)`, `Task N: fix round R/2 (<open findings>)`, `Task N: complete (<evidence one-liner>[, commit <sha7>])`, `Task N: BLOCKED (<reason>)`, and every `Ruling: <what you decided> — <why> — <cost if wrong>`. After compaction or a `handoff` resume, trust the ledger and `git log` over your recollection: a task with a `complete` line is done; a task whose last line is a fix round resumes at the 
...[truncated 25 chars]

Vague Triggers

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The "When to use this skill" section lists several natural-language examples, but it does not clearly define the minimum criteria that distinguish this skill from nearby behaviors beyond two exclusions. Users saying they want to "work the roadmap until completion" may still leave ambiguity about whether this skill or another orchestration skill should activate.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.