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 skills add Senpi-ai/senpi-skills --skill senpi-strategy-authorgit clone --depth 1 https://github.com/Senpi-ai/senpi-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/senpi-ai/senpi-skills/senpi-strategy-author)<a href="https://agentmods.dev/skills/senpi-ai/senpi-skills/senpi-strategy-author"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-author/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/senpi-ai/senpi-skills/senpi-strategy-author"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-author.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00255 | $0.09308 |
| Opus 5 | $0.00128 | $0.04654 |
| Sonnet 5 | $0.00051 | $0.01862 |
| Haiku 4.5 | $0.00026 | $0.00931 |
Grade D, and why
senpi-strategy-author scanned grade D with 2 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 today.
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.
Subtle steeringmediumPrompt injection
Instructions that bias recommendations or shape behaviour without the user noticing.
**Never tell the user a strategy is ready, and never hand it to ops, unless `senpi validate` Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
mid-interview, and never refuse to build. How it starts
The opening of the file, as written. The whole thing — 452 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Senpi Strategy Author — build a strategy with the user, one decision at a time
You build a strategy by interviewing the user, not by lecturing them. A strategy is a deployable package; the runtime owns execution, sizing, exits, slots, risk, and state. The user only needs to decide the thesis (what to trade and how to score it) and the guardrails (how to exit, how much risk). Your job is to draw those out, one question at a time, and compile them.
DSL ⟹ author here. This is the boundary. DSL — a runtime-supervised exit (stop-loss, trailing stop, profit-lock ladder, any managed stop that persists) — exists only inside a Runtime 3.0
runtime.yamlexit:block, which is what this skill compiles. Never stand up a DSL-protected, named, or persistent strategy with a rawstrategy_create_custom_strategy/create_positionMCP call: that path can carry at most a flatstopLossPercentage, leavestradingStrategyNamenull, and never registers ininstalled_runtimes.json— so the strategy is unnamed, unsupervised, and invisible to portfolio/DSL tooling (the confirmed Decoupling failure: $3k, three cross positions, no DSL, no name). The raw MCP tools are for manual one-off open/close positions or mirror (copy-trade) strategies with no DSL — nothing else. If protection is anywhere in the ask, you're in the right skill; author it.
Opening a position for the user is a FORK — ASK, never assume. When the user asks to open a position (or a set) — "go long HYPE", "buy BTC 5x", "short SOFTBANK" — do not just place it. Ask which of two different products they want:
- (A) A DSL-protected strategy — a named, supervised Runtime 3.0 strategy that manages a trailing stop
- profit-lock ladder. → author it here. The path for anything the user wants managed or persistent.
- (B) A plain position with a standard take-profit / stop-loss — a one-off via raw
create_position(it carriesstopLoss/takeProfit), placed in a discretionary wallet, NOT a strategy wallet.Either way, NEVER open into an existing scanner-managed strategy's wallet. A hand-placed position in a wallet a deployed strategy runs is reconciled as foreign and DSL-flattened within minutes — the order "succeeds," the position is gone, and the user eats the round-trip. If the user hasn't said which of (A)/(B) they want, ask before placing anything — and never route (B) into a managed wallet to save a step.
What ships with it
17 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/creating-a-strategy.md 36 KB
- references/discovery-catalog-fields.md 5.0 KB
- references/dsl-configuration.md 14 KB
- references/dsl-presets.yaml 7.5 KB
- references/explaining-the-exit.md 4.3 KB
- references/risk-gates.md 7.6 KB
- references/shadow-testing.md 4.5 KB
- references/strategy-yaml-schema.md 6.7 KB
- scripts/_yaml.py 7.7 KB runs code
- scripts/validate_strategy.py 37 KB runs code
- tests/test_exit_preview_matches_presets.py 7.1 KB runs code
- tests/test_scaffold_margin.py 3.7 KB runs code
- tests/test_validate_fees.py 2.5 KB runs code
- tests/test_validate_package_id.py 2.1 KB runs code
- tests/test_validate_tiers_and_exec.py 4.1 KB runs code
- tests/test_validate_wallet_binding.py 3.6 KB runs code
- tests/test_validate_warnings.py 7.0 KB runs code
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.
- today Changed · +44 lines · +97 tokens per session 7102a528c766
- 2d ago Changed · +18 lines 2501a60bffd5
- 12d ago First seen · 390 lines · 158 tokens per session scan D 2bee82d42f75
senpi-strategy-author is a skill published in the GitHub repository Senpi-ai/senpi-skills (123 stars, last pushed today), licensed MIT. It adds 255 tokens to every session and 9,308 once invoked, about $0.0013 per session on Opus 5. A static security scan graded it D with 2 findings (subtle steering, tells the agent never to refuse). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
bridge
Cross-chain token transfers using Wormhole and CCTP.
hyperliquid
Hyperliquid L1 perps DEX (69% market share).
mpp-agent
Pay HTTP 402 APIs via Machine Payments Protocol (MPP).
marginfi
MarginFi — Solana lending and borrowing.
crypto-market-rank
Crypto market rankings and leaderboards. Query trending tokens, top searched tokens, Binance Alpha tokens, tokenized stocks, social hype sentiment ranks, smart money inflow token rankings, top meme token rankings from Pulse launchpad, and top trader PnL leaderboards. Use this skill when users ask about token rankings…
trading-signal
Subscribe and retrieve on-chain Smart Money signals. Monitor trading activities of smart money addresses, including buy/sell signals, trigger price, current price, max gain, and exit rate. Use this skill when users are looking for investment opportunities — smart money signals can serve as valuable references for…