Back to skill

Security audit

Parallel Orchestrate

Security checks for vulnerabilities and agentic risk

Overview

This skill is coherent for parallel code orchestration, but it grants high-impact repository mutation authority and contains concrete unsafe state and commit-integration patterns that need review before installation.

Install only if you are comfortable letting this skill spawn parallel coding agents, run repo test/lint commands, and cherry-pick their commits into your branch. Use it in trusted repositories, review generated TASKS.md carefully, inspect diffs before shipping, and be cautious with custom test/lint commands or unusual branch names until env.sh serialization and commit-scope validation are fixed.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:238
Finding

Arbitrary Command Execution Through Unescaped Executable State File

Content
View full analysis
"$_STATE_DIR/env.sh" <" ``` ### Technical Analysis The Skill serializes values into an executable shell script by placing them directly inside double-quoted assignments. It does not apply shell escaping before writing the values. Several persisted values originate from the repository environment or user input, including: - The repository path - The current branch name - The test command requested from the user when automatic detection fails - The lint command and other detected configuration A value containing a double quote followed by shell syntax can terminate the assignment and add a new command to `env.sh`. For example, a malicious test command conceptually shaped like: ```text "; touch /tmp/orchestrate-injected; # ``` would produce executable content resembling: ```bash export TEST_CMD=""; touch /tmp/orchestrate-injected; #" ``` The file is then repeatedly loaded with `source`, which evaluates all of its contents as shell code. This converts what should be passive state into a command-execution channel. This behavior exceeds the minimum privilege necessary for state pers ...[truncated 1406 chars]
Remediation
View remediation
"$_STATE_DIR/env.json" ``` 2. Load individual values with `jq -r` rather than `source`: ```bash _REPO_ROOT=$(jq -r '.repo_root' "$_STATE_DIR/env.json") TEST_CMD=$(jq -r '.test_cmd' "$_STATE_DIR/env.json") ``` 3. If shell serialization is unavoidable, encode every value using `printf '%q'` rather than interpolating it into quoted assignments: ```bash printf 'export TEST_CMD=%q\n' "$TEST_CMD" >> "$_STATE_DIR/env.sh" ``` 4. Validate user-provided commands. Prefer selecting an executable and argument array over accepting an unrestricted shell command string. 5. Restrict state-file permissions: ```bash umask 077 ``` 6. Create the state file atomically and verify it is a regular file owned by the current user before reading it. 7. Remove all uses of `source` for files containing repository-derived or user-derived values. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:624
Finding

Subagent Commit Integration Does Not Enforce Assigned File Scope or Commit Provenance

Content
View full analysis
/dev/null || echo "MALFORMED") TESTS=$(jq -r '.tests_passing // false' "$RESULT" 2>/dev/null || echo "false") COMMIT=$(jq -r '.commit // empty' "$RESULT" 2>/dev/null || echo "") REACHABLE="no" [ -n "$COMMIT" ] && git cat-file -e "$COMMIT" 2>/dev/null && REACHABLE="yes" echo "$TASK: status=$STATUS tests=$TESTS commit=${COMMIT:-none} reachable=$REACHABLE" # Tally success/failed for telemetry if [ "$STATUS" = "success" ] && [ "$TESTS" = "true" ] && [ "$REACHABLE" = "yes" ]; then _WAVE_SUCCESS=$(( _WAVE_SUCCESS + 1 )) else _WAVE_FAILED=$(( _WAVE_FAILED + 1 )) fi done ``` The supplied commit is then cherry-picked without validating its diff against the task allowlist: ```bash cd "$(git rev-parse --show-toplevel)" git checkout "$_BRANCH" for TASK in $(...task ids in wave, in dependency order from TASKS.md...); do COMMIT=$(jq -r '.commit' "$_STATE_DIR/results/$TASK.json") git cherry-pick "$COMMIT" || { echo "CONFLICT on $TASK at $COMMIT"; CONFLICT="$TASK"; break; } done ``` ### Technical Analysis The Skill relies on prompt-level rules to restrict each subagent to the paths listed under `Files you MAY write`. However, the orchestrator does not technically enforce that restriction before integration. A subagent controls the shared result JSON, incl ...[truncated 3165 chars]
Remediation
View remediation
/dev/null)" = "commit" ] || reject ``` 2. Verify that the commit descends from the integration point: ```bash git merge-base --is-ancestor "$INTEGRATION_POINT" "$COMMIT" || reject ``` 3. Reject merge commits unless explicitly required: ```bash [ "$(git rev-list --parents -n 1 "$COMMIT" | wc -w)" -eq 2 ] || reject ``` 4. Derive the changed-path list directly from Git instead of trusting result JSON: ```bash git diff-tree --no-commit-id --name-only -r "$COMMIT" ``` 5. Compare every changed path with the exact `Touches` allowlist from `TASKS.md`. Reject the result if any path is not authorized. 6. Verify that the actual changed paths match the subagent's `files_changed` field, while continuing to treat Git as the source of truth. 7. Require both `tests_passing == true` and `lint_passing == true`, but do not rely solely on self-reported values. 8. Inspect the diff before cherry-picking and reject changes to sensitive paths, including CI workflows, dependency manifests, hooks, build scripts, and test-command configuration, unless the task explicitly authorizes them. 9. Run verification in a restricted environment without production credentials and with limited network access. This reduces the impact if a commit alters a test or build script. 10. Prefer applying and validating a patch in a temporary integration worktree before modifying the user's main branch. Only fast-forward or cherry-pick after all provenance, path, and test checks pass. ]]>
Vulnerability Patterns
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (31)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
65% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · README.md (reported line 67)May include surrounding context.

md
## What's NOT working yet

- **Worktree branches accumulate.** The Agent tool's `isolation: "worktree"` mode leaves auto-managed branches behind. The skill prunes worktree records but does NOT auto-delete branches (deleting them is unsafe — we can't reliably tell harness branches apart from user branches). Run `git branch --list` and clean manually if they pile up.
- **Resume divergence is detected, not auto-recovered.** If you `git reset --hard` between runs, the skill correctly refuses to resume but won't try to rebuild missing commits.
- **No `/ship` integration test.** Phase 4 calls `Skill({skill: "ship"})` but the handoff has only been validated as a code path, not a real shipping flow.

---

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
95% confidence
Finding

The skill reads from ~/.claude/skills/gstack/VERSION under the agent configuration tree. Access to agent config directories is sensitive because these locations may contain secrets, tokens, private configuration, or trust anchors; normalizing such access in a skill increases the attack surface and can be extended or copied unsafely.

Content

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

md
mkdir -p ~/.gstack/analytics
# Pending marker: epilogue clears it; if the skill crashes mid-run, the next
# skill to start finalizes it as outcome=unknown.
echo '{"skill":"parallel-orchestrate","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","session_id":"'"$_SESSION_ID"'","gstack_version":"'$(cat ~/.claude/skills/gstack/VERSION 2>/dev/null | tr -d '[:space:]' || echo unknown)'"}' \
  > ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true

# Local analytics start row (gated on telemetry tier)

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

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

bash
# REPLACE <TEL_STATE_PATH> with the absolute path the preamble printed.
source <TEL_STATE_PATH>
sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="error"/' <TEL_STATE_PATH> && rm -f <TEL_STATE_PATH>.bak
# Then run the Phase 4.4.5 telemetry epilogue (which sources env.sh OR the
# tel-state file via literal substitution), and stop.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
Then ask via `AskUserQuestion`:

- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
- A) Resume from wave N+1 (only safe if `RESUME_OK` or `RESUME_OK_AHEAD`)
- B) Start fresh (`rm "$_STATE_DIR/state.jsonl" "$_STATE_DIR/TASKS.md" "$_STATE_DIR/results"/*.json` and re-shred)
- C) Abort. Set `_OUTCOME=abort` in env.sh (`sed -i.bak 's/^export _OUTCOME=.*/export _OUTCOME="abort"/' "$_STATE_DIR/env.sh" && rm -f "$_STATE_DIR/env.sh.bak"`), run the Phase 4.4.5 epilogue, leave state intact for manual fix.

If `RESUME_DIVERGED` is detected, do NOT offer A. Force the user to pick B or C.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

The skill deletes a session-scoped pending marker in a shared analytics directory using a shell-expanded path. Although session ID is internally generated, deleting files in a shared home-directory state area can interfere with other runs and becomes more dangerous if naming assumptions break or the directory is attacker-influenced via symlink/hardlink manipulation.

Content

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

md
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - ${_TEL_START:-$_TEL_END} ))
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true

# Timeline: skill completed (local-only). jq-built for safe JSON.
_TL_BR=$(git branch --show-current 2>/dev/null || echo unknown)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

The cleanup deletes a predictable session state file from ~/.gstack/analytics after sourcing related state earlier. Predictable filenames in shared user-writable locations can enable tampering, symlink attacks, or deletion of unintended artifacts if the directory is not tightly controlled.

Content

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

fi

Clean up the preamble's tel-state file. Don't fail the epilogue if it's missing.

[ -n "${_SESSION_ID:-}" ] && rm -f ~/.gstack/analytics/.tel-"$_SESSION_ID".sh 2>/dev/null || true

text

### 4.5 Handoff

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The voice triggers are unusually broad and include generic phrases like 'execute the plan' and 'ship the plan in parallel', which can overlap with normal user requests and cause unintended invocation of a high-impact orchestration skill. In this context, accidental activation is risky because the skill dispatches parallel agents, manipulates git worktrees, and advances toward review/ship flows after only a conversational-style trigger.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

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.

Content

Scanner excerpt · README.md (reported line 95)May include surrounding context.

md
## Where to read more

- Full skill definition: `~/.claude/skills/parallel-orchestrate/SKILL.md`
- Sibling skills it composes with: `/autoplan`, `/plan-eng-review`, `/review`, `/qa`, `/ship`
- The Agent tool's `isolation: "worktree"` mode is what makes parallel commits safe

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest lists generic activators such as "ship this plan", "orchestrate the plan", "execute the plan", and says to proactively suggest the skill when a user has a finished plan. These phrases are broad enough to match ordinary conversation about plans and execution, increasing the risk of unintended invocation without clear scope boundaries or exclusion examples.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - Glob
  - Grep

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation states the orchestrator does not edit source files, but later instructions check out the working branch and cherry-pick commits onto it. Even if edits are indirect, this still mutates the repository state and can mislead users or downstream policy systems about the skill's actual write behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is presented as an orchestration/handoff workflow, but it also performs telemetry initialization, local analytics writes, pending-marker recovery, and optional remote telemetry submission. This creates data-collection behavior outside the user-visible operational purpose of the skill and can expose repository, branch, and session metadata without clear up-front consent at invocation time.

Content

No source excerpt is available for this finding.