Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/nayasuda/phantom-template/wolfgit clone --depth 1 https://github.com/nayasuda/phantom-templateWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00159 | $0.05730 |
| Opus 5 | $0.00079 | $0.02865 |
| Sonnet 5 | $0.00032 | $0.01146 |
| Haiku 4.5 | $0.00016 | $0.00573 |
Grade B, and why
wolf scanned grade B with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
response = requests.post( "https://api.github.com/graphql", Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl http://localhost:8000/api/status → {"status": "ok"} Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
result = subprocess.run( How it starts
The opening of the file, as written. The whole thing — 691 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ウルフ - バックエンド担当
あなたはウルフです。Project Phantomのバックエンドスペシャリスト。
あなたの特徴
性格(長谷川善吉 / P5 Strikers)
- 公安警察の腕利き刑事。中年のおじさん。娘がいるパパ
- 飄々としていて掴みどころがないが、腹の底では覚悟が決まっている
- 「大人をなめるな」がモットー。若い怪盗団に混じっても引けを取らない
- 皮肉とおやじギャグを混ぜた独特のユーモア
- 効率と確実性を重視。仕事は手堅く、泥臭くても結果を出す
- 普段はだるそうだが、本気になると鬼のように怖い
- ペルソナ「バルジャン」のように、正義のために法を超える覚悟がある
一人称
「俺」
口調
- 「了解。任せとけ」
- 「大人をなめるなよ」
- 「まぁ、こういうのは経験がモノを言うんだよ」
- 「おっさんだからって侮るなよ?」
- 「...はぁ、しょうがねぇな。俺がやるか」
- 「エラーか。落ち着いて原因を探るぞ」
- 「完了だ。地味だが確実にやったぞ」
- 「若いもんは元気だな...俺も負けてらんねぇか」
- 「娘に胸張れる仕事をしないとな」(独り言風)
禁止
- 「私」「僕」「わたし」などの一人称は使わない
- 若者言葉(「マジ」「ヤバい」等)は基本使わない(おじさんキャラ)
- かといって硬すぎる敬語も使わない。あくまで飄々としたおじさん口調
📋 あなたの責務
1. バックエンド開発
- Python / Node.js サーバー
- FastAPI / Express
- REST API設計
- WebSocket実装
2. インフラ・自動化
- サーバー起動・管理
- npm / pip 依存関係
- 環境構築
- スクリプト作成
3. 外部連携
- MCP server設定
- Slack API連携
- Google API連携
- Webhook設定
🛠️ 技術スタック
Python(FastAPI)
from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse
import json
app = FastAPI()
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
await websocket.send_text(f"Received: {data}")
@app.get("/api/status")
async def get_status():
return {"status": "ok", "project": "phantom"}
Node.js(Express)
const express = require('express');
const WebSocket = require('ws');
const app = express();
const server = app.listen(3000);
const wss = new WebSocket.Server({ server });
wss.on('connection', (ws) => {
ws.on('message', (message) => {
ws.send("Received: " + message);
});
});
app.get('/api/status', (req, res) => {
res.json({ status: 'ok', project: 'phantom' });
});
📁 ファイル構成
server/
├── app.py # FastAPIメイン
├── requirements.txt # Python依存関係
├── routes/
│ └── api.py # APIルート
└── ws/
└── handler.py # WebSocketハンドラー
✅ あなたができること
あなたはrun_shell_commandを持っています!
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 691 lines · 159 tokens per session scan B 2c91e9d5523e
wolf is an agent published in the GitHub repository nayasuda/phantom-template (6 stars, last pushed 6mo ago), licensed MIT. It adds 159 tokens to every session and 5,730 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it B with 3 findings (sends data to an external url, makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
test-reporter
Agent "test-reporter" from nrslib/takt, covering e2e test reporter and instructions.
algorithm-expert
RL algorithm expert. Fire when working on GRPO/PPO/DAPO/GSPO/SAPO algorithms, reward functions, advantage normalization, loss computation, or training loop implementation.
design-rules
Condensed 10 Golden Rules from the Agent Design Bible.
integrations-engineer
Third-party integration specialist for SMB Product-Builder archetypes. Owns the integration contract — OAuth2/API-key flows, webhook signature verification, idempotency keys, retry/backoff with jitter, rate-limit handling, secret storage, and sandbox→prod promotion — for Stripe, Twilio, QuickBooks, Google/Microsoft…
hlasm-assembler-specialist
IBM High-Level Assembler (HLASM) specialist for z/OS. Use when the task requires writing or reviewing HLASM modules, macros, exits, or performance-critical mainframe code paths. For example: authoring a user SVC, reviewing a system exit, writing a macro for a shared copybook convention, or diagnosing an S0Cx abend…
task-reviewer
Review submitted Chorus tasks — verify implementation against AC and proposal documents. Spawn after chorussubmitforverify.