megaplan
35 / 100 · High risk
Only if you trust the author. Some of what it can do is expected: a productivity skill usually connects to your mail, calendar or notes.
By peteromallet/Arnold (GitHub) · productivity · 98 stars · scanned at commit 4815916
Run the canonical Megaplan planning pipeline from its Arnold plugin home.
Works with any agent that supports SKILL.md skills.
What this skill can do
Can call paid AI services billed to you
The author does not mention this.
Found in 12 places.
- arnold_pipelines/megaplan/_core/hermes_fanout.py, line 119
fallback_kwargs = {"base_url": "https://openrouter.ai/api/v1", "api_key": or_key} - arnold_pipelines/megaplan/cloud/template.py, line 464
URL=${CLAUDE_CODE_OAUTH_TOKEN_URL:-https://api.anthropic.com/v1/oauth/token} - arnold_pipelines/megaplan/data/cloud_skill.md, line 190
- `/usr/local/bin/claude-key-helper` — refreshes the OAuth access token against `https://api.anthropic.com/v1/oauth/token` using the refresh token, caches the r
Show 9 more
- arnold_pipelines/megaplan/data/cloud_skill.md, line 213
When codex (GPT-5.x) phases run on the worker, megaplan invokes the `codex exec` CLI. The codex CLI **defaults to API-key auth whenever `OPENAI_API_KEY` is in t - arnold_pipelines/megaplan/data/cloud_skill.md, line 224
**Verify** which path is live: `RUST_LOG=debug codex exec --sandbox read-only --skip-git-repo-check "ok" 2>&1 | grep -iE 'chatgpt.com/backend-api/codex|api.open - arnold_pipelines/megaplan/data/cloud_skill.md, line 336
9. **Codex `Quota exceeded. Check your plan and billing details.` is the API-key fallback, not a real cap.** megaplan runs codex via `codex exec`, which silentl - arnold_pipelines/megaplan/resident/agent_loop.py, line 1472
from openai import AsyncOpenAI - arnold_pipelines/megaplan/resident/agent_loop.py, line 1519
return "https://openrouter.ai/api/v1" - arnold_pipelines/megaplan/resident/agent_loop.py, line 1543
from openai import AsyncOpenAI - arnold_pipelines/megaplan/resident/transcription.py, line 22
OPENAI_TRANSCRIPTION_BASE_URL = "https://api.openai.com/v1" - arnold_pipelines/megaplan/resident/transcription.py, line 73
endpoint_host = urlparse(settings.base_url).hostname if settings.base_url else "api.openai.com" - arnold_pipelines/megaplan/runtime/key_pool.py, line 318
agent_kwargs["base_url"] = _get_api_credential(_PROVIDER_BASE_URL_VARS.get("xai", "")) or _DEFAULT_BASE_URLS.get("xai", "https://api.x.ai/v1")
Runs commands on your computer
The author does not mention this.
Found in 602 places.
- arnold_pipelines/megaplan/_core/io.py, line 1868
process = subprocess.run( - arnold_pipelines/megaplan/_core/io.py, line 1877
except subprocess.TimeoutExpired: - arnold_pipelines/megaplan/_core/io.py, line 1889
def _git(args: list[str]) -> subprocess.CompletedProcess[str] | None:
Show 17 more
- arnold_pipelines/megaplan/_core/io.py, line 1891
proc = subprocess.run( - arnold_pipelines/megaplan/_core/io.py, line 1898
except (FileNotFoundError, subprocess.TimeoutExpired): - arnold_pipelines/megaplan/_core/io.py, line 1918
proc = subprocess.run( - arnold_pipelines/megaplan/_core/io.py, line 1925
except (FileNotFoundError, subprocess.TimeoutExpired): - arnold_pipelines/megaplan/_core/io.py, line 1946
) -> tuple[subprocess.CompletedProcess[str] | None, str | None]: - arnold_pipelines/megaplan/_core/io.py, line 1948
process = subprocess.run( - arnold_pipelines/megaplan/_core/io.py, line 1957
except subprocess.TimeoutExpired: - arnold_pipelines/megaplan/_core/phase_runtime.py, line 47
result = subprocess.run( - arnold_pipelines/megaplan/_core/phase_runtime.py, line 54
except (OSError, subprocess.SubprocessError): - arnold_pipelines/megaplan/audits/hermes_vendoring.py, line 135
log_result = subprocess.run( - arnold_pipelines/megaplan/audits/hermes_vendoring.py, line 150
tracked_result = subprocess.run( - arnold_pipelines/megaplan/audits/quality_gates.py, line 269
process = subprocess.run( - arnold_pipelines/megaplan/audits/quality_gates.py, line 277
except subprocess.TimeoutExpired: - arnold_pipelines/megaplan/auto.py, line 5184
result = subprocess.run( - arnold_pipelines/megaplan/auto.py, line 5192
except subprocess.TimeoutExpired as exc: - arnold_pipelines/megaplan/auto.py, line 5282
ancestry = subprocess.run( - arnold_pipelines/megaplan/auto.py, line 5307
subprocess.SubprocessError,
and 582 more places
Downloads and installs other software
The author does not mention this.
Found in 37 places.
- arnold_pipelines/megaplan/chain/epic_chain.py, line 18
"megaplan epic-chain requires PyYAML. Install with `pip install pyyaml`." - arnold_pipelines/megaplan/chain/spec.py, line 21
"megaplan chain requires PyYAML. Install with `pip install pyyaml`." - arnold_pipelines/megaplan/cloud/install_sync.py, line 8
``.venv`` and no ``pip install -e`` anywhere.
Show 17 more
- arnold_pipelines/megaplan/cloud/install_sync.py, line 88
never silently skipped and never a ``pip install -e``. - arnold_pipelines/megaplan/cloud/install_sync.py, line 713
The runtime code itself is NEVER installed (no ``pip install -e``, no - arnold_pipelines/megaplan/cloud/install_sync.py, line 884
sync and no ``pip install -e`` fallback. Any residual caller (the - arnold_pipelines/megaplan/cloud/install_sync.py, line 891
"there is no pip install -e path" - arnold_pipelines/megaplan/cloud/relaunch_resolution.py, line 189
"pip install ", - arnold_pipelines/megaplan/cloud/relaunch_resolution.py, line 190
"pip3 install ", - arnold_pipelines/megaplan/cloud/relaunch_resolution.py, line 191
"python -m pip install ", - arnold_pipelines/megaplan/cloud/relaunch_resolution.py, line 192
"python3 -m pip install ", - arnold_pipelines/megaplan/cloud/rollout.md, line 16
Arnold runs from an **editable install** (`pip install -e .`) in the cloud container. - arnold_pipelines/megaplan/cloud/rollout.md, line 27
(or a `git pull` from that branch) followed by a successful `pip install -e .` (or the - arnold_pipelines/megaplan/cloud/rollout.md, line 28
equivalent `uv pip install -e .`) is the complete propagation sequence. - arnold_pipelines/megaplan/cloud/rollout.md, line 32
- `pip install -e` is re-run after any branch switch or pull that changes - arnold_pipelines/megaplan/cloud/rollout.md, line 34
- The watchdog's `sync_editable_source_branch` does NOT perform `pip install -e` - arnold_pipelines/megaplan/cloud/spec.py, line 16
"megaplan cloud requires PyYAML. Install with `pip install pyyaml`." - arnold_pipelines/megaplan/cloud/template.py, line 57
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y - arnold_pipelines/megaplan/cloud/template.py, line 63
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jdk \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 12
RUN apt-get update && apt-get install -y --no-install-recommends \
and 17 more places
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this.
Found in 14 places.
- arnold_pipelines/megaplan/chain/epic_chain.py, line 513
env = dict(os.environ) - arnold_pipelines/megaplan/chain/git_ops.py, line 1553
index_env = dict(os.environ) - arnold_pipelines/megaplan/cloud/cli.py, line 3565
env = dict(os.environ)
Show 11 more
- arnold_pipelines/megaplan/cloud/install_sync.py, line 754
env = dict(os.environ) - arnold_pipelines/megaplan/cloud/m11_live_canary.py, line 482
env=dict(os.environ), - arnold_pipelines/megaplan/cloud/providers/ssh.py, line 845
failure_env = dict(os.environ) - arnold_pipelines/megaplan/cloud/runtime_attestation.py, line 547
environment = dict(os.environ) - arnold_pipelines/megaplan/cloud/summarize_fixer_session.py, line 54
env = dict(os.environ) - arnold_pipelines/megaplan/cloud/templates/entrypoint.sh.tmpl, line 51
cat > /root/.git-credentials <<EOF - arnold_pipelines/megaplan/cloud/templates/entrypoint.sh.tmpl, line 54
chmod 600 /root/.git-credentials - arnold_pipelines/megaplan/cloud/wrappers/arnold-watchdog, line 2549
child_env = dict(os.environ) - arnold_pipelines/megaplan/control.py, line 634
env = megaplan_engine_env(dict(os.environ)) - arnold_pipelines/megaplan/orchestration/suite_runner.py, line 370
env = dict(os.environ) - arnold_pipelines/megaplan/planning/operations.py, line 191
env = megaplan_engine_env(dict(os.environ))
Sends data to these websites: sh.rustup.rs, go.dev, cli.github.com, pyenv.run, raw.githubusercontent.com, bun.sh, api.openai.com
The author does not mention this. Expected for a productivity skill.
Found in 22 places.
- arnold_pipelines/megaplan/cloud/template.py, line 57
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y - arnold_pipelines/megaplan/cloud/template.py, line 60
RUN curl -fsSL https://go.dev/dl/go1.22.5.linux-amd64.tar.gz | tar -C /usr/local -xz - arnold_pipelines/megaplan/cloud/template.py, line 465
RESP=$(curl -sS --max-time 15 -X POST "$URL" \
Show 17 more
- arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 43
&& wget -nv -O /etc/apt/keyrings/githubcli-archive-keyring.gpg https://cli.github.com/packages/githubcli-archive-keyring.gpg \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 54
RUN curl -fsSL https://pyenv.run | bash \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 67
RUN curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 76
RUN curl -fsSL https://bun.sh/install | bash \ - arnold_pipelines/megaplan/discord_dm.py, line 138
urlopen_fn = opener or request.urlopen - arnold_pipelines/megaplan/discord_dm.py, line 143
opener=urlopen_fn, - arnold_pipelines/megaplan/discord_dm.py, line 158
opener=urlopen_fn, - arnold_pipelines/megaplan/discord_dm.py, line 211
urlopen = opener or request.urlopen - arnold_pipelines/megaplan/discord_dm.py, line 217
opener=urlopen, - arnold_pipelines/megaplan/discord_dm.py, line 226
opener=urlopen, - arnold_pipelines/megaplan/resident/agent_loop.py, line 1460
return httpx.Timeout(timeout=None, connect=30.0, read=120.0, write=30.0, pool=30.0) - arnold_pipelines/megaplan/resident/agent_loop.py, line 1472
from openai import AsyncOpenAI - arnold_pipelines/megaplan/resident/agent_loop.py, line 1543
from openai import AsyncOpenAI - arnold_pipelines/megaplan/resident/discord.py, line 244
timeout = httpx.Timeout(timeout_s) - arnold_pipelines/megaplan/resident/discord.py, line 246
async with httpx.AsyncClient(timeout=timeout, follow_redirects=False) as client: - arnold_pipelines/megaplan/resident/discord.py, line 261
except (httpx.HTTPError, asyncio.TimeoutError) as exc: - arnold_pipelines/megaplan/resident/provider_runtime.py, line 31
"web": ("WebFetch", "WebSearch"),
and 2 more places
Changes files outside its own folder
The author does not mention this.
Found in 19 places.
- arnold_pipelines/megaplan/cloud/template.py, line 443
cp "$REAL_CLAUDE" /usr/local/bin/claude.real - arnold_pipelines/megaplan/cloud/template.py, line 448
cat > /usr/local/bin/claude-key-helper <<'HELPER_EOF' - arnold_pipelines/megaplan/cloud/template.py, line 485
cat > /usr/local/bin/claude <<'SHIM_EOF'
Show 16 more
- arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 42
RUN mkdir -p -m 755 /etc/apt/keyrings \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 45
&& mkdir -p -m 755 /etc/apt/sources.list.d \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 46
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/a - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 71
&& ln -s "$NVM_DIR/versions/node/$(nvm current)/bin/node" /usr/local/bin/node \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 72
&& ln -s "$NVM_DIR/versions/node/$(nvm current)/bin/npm" /usr/local/bin/npm \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 73
&& ln -s "$NVM_DIR/versions/node/$(nvm current)/bin/npx" /usr/local/bin/npx - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 77
&& ln -sf /root/.bun/bin/bun /usr/local/bin/bun \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 91
&& ln -sf /opt/zero-recovery-node/bin/node /usr/local/bin/node \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 92
&& ln -sf /opt/zero-recovery-node/bin/npm /usr/local/bin/npm \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 93
&& ln -sf /opt/zero-recovery-node/bin/npx /usr/local/bin/npx \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 94
&& ln -sf /opt/zero-recovery-node/bin/codex /usr/local/bin/codex \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 95
&& ln -sf /opt/zero-recovery-node/bin/claude /usr/local/bin/claude \ - arnold_pipelines/megaplan/cloud/templates/Dockerfile, line 96
&& ln -sf /opt/zero-recovery-node/bin/railway /usr/local/bin/railway \ - arnold_pipelines/megaplan/cloud/templates/entrypoint.sh.tmpl, line 163
} > /usr/local/bin/mp-refresh-megaplan - arnold_pipelines/megaplan/data/progress_auditor_fix_decision_20260704.md, line 85
docker exec megaplan-cloud-agent cat /usr/local/bin/arnold-progress-auditor > /usr/local/bin/arnold-progress-auditor - arnold_pipelines/megaplan/receipts/report.py, line 446
atomic_write_text(Path(output).expanduser(), markdown)
Other copies in this repository
peteromallet/Arnold has 1 more folder with a skill named megaplan. This page shows the lowest-scoring copy.
- arnold_pipelines/megaplan/skills/megaplan 100/100 · Low risk
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'megaplan' ] || [ -L ~/.agents/skills/'megaplan' ]; then echo 'A skill folder named megaplan already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/peteromallet/Arnold' "$d" && git -C "$d" checkout --quiet '4815916805531030f062fc1c10bcc9f9cd10a40f' -- 'arnold_pipelines/megaplan' && mkdir -p ~/.agents/skills && cp -R "$d"/'arnold_pipelines/megaplan' ~/.agents/skills/'megaplan' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'megaplan' ~/.claude/skills/'megaplan' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for peteromallet/Arnold shows the score of its lowest-scoring skill.
[](https://zalavijaysinh.github.io/skilltrust/repos/peteromallet/Arnold/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-07 | 4815916 | 60 |