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.09943 |
| Opus 5.5 | $0.00102 | $0.03977 |
| Sonnet 5.5 | $0.00051 | $0.01989 |
| Haiku 4.5 | $0.00026 | $0.00994 |
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 9d 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.
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 — 459 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
32 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 47 KB
- references/deployable-balance.md 3.7 KB
- references/discovery-catalog-fields.md 5.0 KB
- references/dsl-configuration.md 15 KB
- references/dsl-presets.yaml 7.7 KB
- references/explaining-the-exit.md 4.4 KB
- references/risk-gates.md 9.8 KB
- references/shadow-testing.md 4.5 KB
- references/signal-data-does-not-bind.md 1.6 KB
- references/strategy-yaml-schema.md 6.7 KB
- references/time-cuts-by-horizon.md 4.0 KB
- scripts/_yaml.py 13 KB runs code
- scripts/validate_strategy.py 67 KB runs code
- tests/test_balance_rule_excludes_committed_capital.py 4.7 KB runs code
- tests/test_edit_describes_written_values.py 2.7 KB runs code
- tests/test_exit_preview_matches_presets.py 8.0 KB runs code
- tests/test_preset_time_cuts.py 4.4 KB runs code
- tests/test_reference_halt_latch.py 1.7 KB runs code
- tests/test_reference_list_limits.py 1.8 KB runs code
- tests/test_reference_time_units.py 1.3 KB runs code
- tests/test_scaffold_margin.py 3.9 KB runs code
- tests/test_scoring_py_is_optional.py 2.9 KB runs code
- tests/test_skill_signal_data_is_audit_only.py 2.0 KB runs code
- tests/test_undeclared_signal_data_key.py 5.9 KB runs code
- tests/test_validate_close_wiring.py 5.2 KB runs code
- tests/test_validate_crash_before_funding.py 13 KB runs code
- tests/test_validate_fees.py 2.5 KB runs code
- tests/test_validate_momentum_not_smart_money.py 7.2 KB runs code
- tests/test_validate_package_id.py 2.1 KB runs code
- tests/test_validate_tiers_and_exec.py 4.3 KB runs code
- tests/test_validate_wallet_binding.py 3.6 KB runs code
- tests/test_validate_warnings.py 7.3 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.
- 9d ago Changed b7c1397337fd
- 13d ago Changed 3262d2edc2b9
- 15d ago Changed 6a38a44eefaa
- 17d ago Changed fad930b4a132
- 21d ago Changed · +2 lines 49c75a39e026
- 22d ago Changed bafd05e98f26
- 1mo ago Changed a8cf7ae68ee9
- 1mo ago Changed 6c0b1f619398
- 1mo ago Changed · +5 lines e6335fd89cd3
- 1mo ago First seen · 452 lines · 255 tokens per session scan D 92f1affb0dc1
senpi-strategy-author is a skill published in the GitHub repository Senpi-ai/senpi-skills (144 stars, last pushed yesterday), licensed MIT. It adds 255 tokens to every session and 9,943 once invoked, about $0.0010 per session on Opus 5.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.
senpi-strategy-author compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| senpi-strategy-authorSenpi-ai/senpi-skills | Skill | 144 | yesterday | MIT | D | 255 | Claude Code, Codex |
| agentic-streetLeoYeAI/openclaw-master-skills | Skill | 2.2k | 5d ago | MIT | A | 91 | Claude Code, Codex |
| token-pickaeonfun/aeon | Skill | 788 | yesterday | MIT | A | 25 | Claude Code, Codex |
| bridgealsk1992/CloddsBot | Skill | 3.1k | 1mo ago | MIT | A | 13 | Claude Code, Codex |
| hyperliquidalsk1992/CloddsBot | Skill | 3.1k | 1mo ago | MIT | A | 19 | Claude Code, Codex |
| marginfialsk1992/CloddsBot | Skill | 3.1k | 1mo ago | MIT | A | 11 | Claude Code, Codex |
| airdrop-hunting-guidenirholas/three.ws | Skill | 269 | yesterday | Apache-2.0 | A | 54 | Claude Code, Codex |