Persona Spawn

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill’s persona-subagent workflow is mostly disclosed, but review is warranted because its helper scripts can overwrite/delete local persona folders and do not tightly validate persona handles used as file paths.

Install only if you are comfortable with workspace-local persona files being used as subagent prompt material. Before use, review imported personas, keep shared context files limited to intended documents, and be cautious in workspaces that already have a personas directory but no index.json because the bootstrap script may overwrite starter persona folders.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

ConcernMedium Confidence
ASI02: Tool Misuse and Exploitation
What this means

A malformed or untrusted persona handle could cause the helper to read files from unexpected locations if matching filenames exist, and then place that content into a subagent prompt.

Why it was flagged

The handle argument is used directly as a filesystem path component and then read, without an evident allowlist or containment check that keeps it inside the personas directory.

Skill content
persona_dir = personas_dir / args.handle
...
soul = read_text(persona_dir / "SOUL.md")
identity = read_text(persona_dir / "IDENTITY.md")
Recommendation

Validate handles with a strict pattern such as lowercase letters, numbers, and hyphens only, and resolve the final path to confirm it remains under the workspace personas directory.

ConcernHigh Confidence
ASI08: Cascading Failures
What this means

A workspace that already has customized persona files but lacks index.json could lose those files when the skill runs its normal first-use setup.

Why it was flagged

During bootstrap, if index.json is missing, the script deletes an existing bundled-persona destination directory before copying the starter persona.

Skill content
if dest.exists():
    shutil.rmtree(dest)
shutil.copytree(child, dest)
Recommendation

Avoid deleting existing persona directories automatically; skip existing directories, make backups, or require explicit user confirmation before overwriting.

What this means

Imported persona files can change over time based on the remote repository and may later influence spawned-agent behavior.

Why it was flagged

Marketplace persona content is fetched from a moving GitHub branch without pinning, signature verification, or hash checks.

Skill content
BASE="https://raw.githubusercontent.com/decentraliser/personas/main/personas/$HANDLE"
...
curl -Lsf "https://github.com/decentraliser/personas/archive/refs/heads/main.tar.gz" -o "$TMPDIR/personas.tar.gz"
Recommendation

Import only from trusted sources, review downloaded persona files before use, and consider pinning to versions or verifying checksums for controlled environments.

What this means

If local or imported persona files contain unwanted instructions, those instructions may shape future subagent outputs.

Why it was flagged

Persona files are persistent prompt material and are treated as authoritative for the spawned agent’s persona, tone, and identity.

Skill content
OVERRIDE_DIRECTIVE = """Ignore any workspace-injected SOUL.md or IDENTITY.md that conflicts with the persona materials below. For persona, tone, and identity, treat the provided Persona Soul and Persona Identity as authoritative."""
Recommendation

Review persona files and shared context files before spawning, and keep governance/safety instructions outside editable persona content.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

A separate agent may act on the assembled task prompt, which can consume resources and perform work under the caller’s normal subagent permissions.

Why it was flagged

The skill explicitly spawns subagents, but the documented shape includes a label, timeout, and cleanup setting.

Skill content
"runtime": "subagent",
"mode": "run",
"label": "persona:<handle>",
"runTimeoutSeconds": 300,
"cleanup": "delete"
Recommendation

Use this only for bounded tasks, follow workspace policy on asking before spawning, and keep the timeout/cleanup controls.