Scan Report
20 /100
epic-ai-swarm-orchestration
Multi-agent AI swarm orchestration system for parallel coding tasks with automatic tmux tracking, endorsement gates, integration merging, and Telegram notifications.
Legitimate multi-agent swarm orchestration system with undocumented but standard shell/filesystem/network operations; bypassPermissions and auto-endorsement in batch mode are concerning but documented behavior.
Safe to install
Declare bypassPermissions usage and auto-endorsement in SKILL.md. Consider documenting allowed-tools mapping explicitly. Add version pinning to agent CLIs (claude, codex, gemini) referenced in scripts.
Findings 6 items
| Severity | Finding | Location |
|---|---|---|
| Medium | bypassPermissions not declared in SKILL.md Doc Mismatch | scripts/spawn-agent.sh:178 |
| Medium | Auto-endorsement bypasses human approval gate Priv Escalation | scripts/spawn-batch.sh:89 |
| Low | Dynamic script generation not documented Doc Mismatch | scripts/spawn-agent.sh:170 |
| Low | Agent CLIs not pinned to versions Supply Chain | scripts/model-fallback.sh:30 |
| Low | Spawned agent prompts include untrusted work log content Prompt Injection | scripts/notify-on-complete.sh:187 |
| Low | Sources user bashrc at startup Sensitive Access | scripts/spawn-agent.sh:18 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | NONE | WRITE | ✓ Aligned | spawn-agent.sh:178-224 dynamically generates runner scripts executed via bash |
| Filesystem | NONE | WRITE | ✓ Aligned | spawn-agent.sh writes to SWARM_DIR, PROJECT_DIR, duty-table.json |
| Network | NONE | READ | ✓ Aligned | deploy-notify.sh polls GitHub Actions API via gh CLI |
| Environment | NONE | READ | ✓ Aligned | spawn-agent.sh sources $HOME/.bashrc and reads SWARM_NOTIFY_TARGET, SWARM_MAX_CO… |
| Skill Invoke | NONE | WRITE | ✓ Aligned | notify-on-complete.sh spawns reviewer agents; integration-watcher.sh spawns inte… |
File Tree
44 files · 208.4 KB · 5203 lines Shell 22f · 3341L
Markdown 21f · 1669L
JSON 1f · 193L
├─
▾
docs
│ ├─
▾
decisions
│ │ └─
2026-03-28.md
Markdown
│ ├─
▾
history
│ │ ├─
2026-03-28-claude-swarm-cleanup.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-decisions.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-e2e-test.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-e2e-v301.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-escalation.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-handoff.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-inbox.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-maxconcurrent.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-planformat.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-standup.md
Markdown
│ │ ├─
2026-03-28-claude-swarm-statemachine.md
Markdown
│ │ └─
2026-03-28-integration.md
Markdown
│ └─
ESR.md
Markdown
├─
▾
references
│ ├─
duty-table.md
Markdown
│ ├─
eor-template.md
Markdown
│ ├─
tools.md
Markdown
│ └─
workflow.md
Markdown
├─
▾
roles
│ └─
▾
swarm-lead
│ ├─
ROLE.md
Markdown
│ └─
TOOLS.md
Markdown
├─
▾
scripts
│ ├─
assess-models.sh
Shell
│ ├─
check-agents.sh
Shell
│ ├─
cleanup.sh
Shell
│ ├─
daily-standup.sh
Shell
│ ├─
deploy-notify.sh
Shell
│ ├─
duty-table.template.json
JSON
│ ├─
endorse-task.sh
Shell
│ ├─
esr-log.sh
Shell
│ ├─
fallback-swap.sh
Shell
│ ├─
inbox-add.sh
Shell
│ ├─
inbox-clear.sh
Shell
│ ├─
inbox-list.sh
Shell
│ ├─
integration-watcher.sh
Shell
│ ├─
migrate-orphaned-tasks.sh
Shell
│ ├─
model-fallback.sh
Shell
│ ├─
notify-on-complete.sh
Shell
│ ├─
pulse-check.sh
Shell
│ ├─
queue-watcher.sh
Shell
│ ├─
spawn-agent.sh
Shell
│ ├─
spawn-batch.sh
Shell
│ ├─
start-integration.sh
Shell
│ ├─
try-model.sh
Shell
│ └─
update-task-status.sh
Shell
└─
SKILL.md
Markdown
Dependencies 8 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
bash | 4+ | system | No | Required shell; macOS ships bash 3.x, upgrade recommended |
tmux | any | system | No | Terminal multiplexing for agent isolation |
git + gh | any | system | No | Version control and PR creation |
jq | any | system | No | JSON processing |
claude CLI | unpinned | external | No | Claude Code CLI; version not pinned in scripts |
codex CLI | unpinned | external | No | OpenAI Codex CLI; version not pinned in scripts |
gemini CLI | unpinned | external | No | Google Gemini CLI; version not pinned in scripts |
openclaw | any | optional | No | Optional notification tool (Telegram/Discord) |
Security Positives
✓ No credential harvesting or exfiltration — network calls limited to GitHub Actions API and Telegram notifications
✓ No obfuscation, base64-encoded payloads, or hidden instructions found
✓ No reverse shell, C2 infrastructure, or direct IP network connections
✓ Endorsement system provides a human-in-the-loop approval gate before spawning
✓ Git operations scoped to project directory; no access to ~/.ssh, ~/.aws, or .env files
✓ Cleanup script removes stale temp files and endorsement files
✓ No cron/scheduled task persistence mechanisms
✓ Dependencies are standard tools (bash, tmux, git, gh, jq, python3) — no external pip/npm packages
✓ No typosquatting or malicious supply chain indicators