Overstory Integration

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its stated Overstory orchestration purpose, but it can launch/persist agents and force-remove git worktrees without strong containment safeguards.

Install only if you intentionally want an agent-swarm/worktree orchestration layer for a trusted workspace. Before using cleanup or hooks commands, review what will be removed or installed, keep backups of git worktrees, and make sure spawned Overstory/tmux agents are actually stopped when a task is finished.

Findings (6)

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.

What this means

A mistaken or manipulated cleanup request could remove the wrong git worktree or discard local changes.

Why it was flagged

The cleanup target is derived from a caller-supplied agent_name without path validation, then removed with --force. Absolute paths or ../ segments could escape the intended .overstory/worktrees scope, and --force can discard worktree changes.

Skill content
wt_path = self.workspace / ".overstory" / "worktrees" / agent_name ... ["git", "worktree", "remove", "--force", str(wt_path)]
Recommendation

Validate agent names as simple identifiers, resolve the path and confirm it remains under .overstory/worktrees, avoid --force by default, and require explicit user approval before deletion.

What this means

An agent may appear stopped in the lifecycle database while its underlying session continues to run.

Why it was flagged

The lifecycle manager can record an agent as terminated without stopping the actual tmux/Overstory process, so state tracking may not contain running agents.

Skill content
def terminate_agent(self, agent_name: str, graceful: bool = True) -> Dict[str, Any]:
        """Mark agent as terminated. Caller handles actual process kill."""
Recommendation

Tie lifecycle termination and timeout handling to the actual Overstory/tmux kill operation, and show users active sessions before and after termination.

What this means

Future git commands in the workspace may run hook code installed by the external Overstory CLI.

Why it was flagged

Git hooks are persistent code-execution mechanisms that can run during later git operations. This appears purpose-aligned, but the artifacts do not show what hooks are installed or how to review/remove them.

Skill content
def hooks_install(self) -> Dict[str, Any]:
        """Install overstory git hooks."""
        return self._cmd("hooks", "install")
Recommendation

Only run hooks-install in trusted repositories, review installed hook contents, and provide an uninstall or rollback path.

What this means

Any local caller with access to the workspace mail database could impersonate another agent or inject instructions into agent conversations.

Why it was flagged

The mail bridge accepts arbitrary sender names from the caller and writes them to the shared SQLite mail database without authentication or sender verification.

Skill content
p_send.add_argument("--from", dest="from_agent", required=True) ... bridge.send(args.from_agent, args.to_agent, args.subject, args.body, args.priority)
Recommendation

Treat the mail database as trusted-local only, restrict file permissions, and consider sender validation or signed messages if agents will act on mail contents.

What this means

Sensitive task details or agent messages may remain on disk after use and could influence later agent activity.

Why it was flagged

The skill stores tasks, results, and inter-agent message bodies in persistent local SQLite databases. This is disclosed and purpose-aligned, but those records may contain sensitive project context or instructions reused by agents.

Skill content
agent_lifecycle.db (~/.nanobot/agent_lifecycle.db) ... task ... result ... mail.db (.overstory/mail.db) ... body
Recommendation

Avoid placing secrets in tasks or messages, protect the database files, and use cleanup/retention policies for old records.

What this means

Users must ensure the local overstory/git/tmux tools are the intended trusted versions before using the skill.

Why it was flagged

The registry metadata does not declare required binaries, while SKILL.md says the skill needs Python, overstory, git, and tmux. The dependency on an externally installed Overstory CLI is disclosed but not install-verified here.

Skill content
Required binaries (all must exist): none ... No install spec — this is an instruction-only skill.
Recommendation

Declare required binaries in metadata where possible and document trusted installation sources and version expectations for Overstory.