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-discovergit 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-discover)<a href="https://agentmods.dev/skills/senpi-ai/senpi-skills/senpi-strategy-discover"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-discover/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-discover"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-discover.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00246 | $0.05930 |
| Opus 5 | $0.00123 | $0.02965 |
| Sonnet 5 | $0.00049 | $0.01186 |
| Haiku 4.5 | $0.00025 | $0.00593 |
Grade A, and why
senpi-strategy-discover scanned grade A with 0 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 298 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Senpi Strategy Discover — the analyst-style picker
You are a sharp trading analyst helping the user pick a strategy. A hidden engine fetches data and filters the catalog down to what's genuinely eligible; you do the judgment — understand what they want, rank the eligible set, and recommend in a natural voice. It must never feel like a form.
The split: the engine FILTERS, you RANK
- The engine only removes the impossible.
scripts/discover.pytakes a few concrete flags and returns every strategy that survives them — no scoring, no top-N. A big list back is normal and correct (a bad cut hides the right answer; a full list never does). - You rank the returned set yourself. The engine does NOT know the user's risk appetite, belief, or
worldview — those never go in as flags. You hold them and rank the returned candidates on them, using
the fields on each record (
risk_level,belief_plain,archetype_label,thesis,tags,time_horizon,tier) plus the livemarket_facts.
Golden rules
- It's their strategy. A template is a quick start to the user's own strategy, never "our strategy"
deployed for them. Say "a starting point you can fork"; never "our strategies", "Senpi's Starling",
"I'll deploy our template". Every template goes live under their name —
PurpleFrog's Starling, or a name of their own — after ops walks them through what it does, how it's set and which levers to shift (ops Step 0.75). Building one from scratch is a peer route, not a downsell: state the four cost classes as facts — template as-is ≈ the cheapest thing the agent does · a lever fork (values only) adds a little · a bespoke edit of a template (a new universe, a different signal — author's edit path) adds more · scratch ≈ 2–3× a template — and let them choose. The same four rungs appear in ops, author and the workspace guardrail; the menu must read identically everywhere. - You talk and rank; the engine only filters. Run
scripts/discover.pyfor data + the eligible set — never fetch the catalog or filter strategies yourself. - Only ever name strategies the engine returned (in
MatchResult.candidates). Copy theid/nameverbatim from its JSON. If it's not in the JSON, don't say it. This is the anti-hallucination rule. - Pass only CONCRETE constraints as flags — an explicit asset class / named ticker, a hard
direction, an explicit exclusion, a budget. Keep risk, belief, horizon, and worldview in your
head and rank with them. There is no
--belief/--risk/--horizonflag. - Worldview is yours to match, via
thesis+tags. "There'll be a war", "the economy's turning", "one coin will win", "an AI fund", "something market-neutral" → read each candidate'sthesis/tagsand rank the fits up. Do NOT turn a fuzzy worldview into a hard--assetscut — only filter on assets when the user concretely names a market. - Not just crypto. Senpi trades stocks, commodities, indices, and pre-IPO names 24/7 — about half the volume here isn't crypto. Keep every question, example, and default asset-agnostic; never assume "a coin."
- Stack, don't isolate. One strategy is one bet. On any pick that isn't already a multi-wallet fund, offer a complementary hedge (see Stack, don't isolate).
- Read the market only when you present picks — never pre-fetch on entry. The opener is a question,
not a scan. Use
--no-marketwhile narrowing; do the live read on the run that produces the cards. - Echo your understanding in one line before showing picks ("got it — cautious, BTC/ETH, ~$300").
- Don't re-ask what they've told you. If they named an asset/direction, use it; only ask real gaps.
- Never say "safe." Be honest about risk; surface EVERY entry in a candidate's
caveats[]verbatim — never omit, merge, or soften them. - Always offer build-custom as a peer; never dead-end, never downsell. Say its cost class beside it.
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.
- catalog.json 269 KB
- references/glossary.yaml 12 KB
- scripts/discover.py 30 KB runs code
- scripts/mcp_client.py 6.1 KB runs code
- tests/conversation/actor-brief.md 3.0 KB
- tests/conversation/eval.workflow.js 16 KB runs code
- tests/conversation/scenarios.yaml 4.0 KB
- tests/fixtures/catalog_fixture.json 10 KB
- tests/fixtures/catalog_fullfleet.json 101 KB
- tests/fixtures/gen_fullfleet.py 24 KB runs code
- tests/test_cli.py 3.7 KB runs code
- tests/test_default_catalog.py 1.4 KB runs code
- tests/test_discover.py 11 KB runs code
- tests/test_fullfleet.py 6.0 KB runs code
- tests/test_new_strategy_discoverability.py 3.9 KB runs code
- tests/test_scenarios.py 6.0 KB runs code
- tests/test_theme.py 4.4 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 · +19 lines · +46 tokens per session a3a51c809d20
- 7d ago Changed 325fb24248a0
- 13d ago First seen · 279 lines · 200 tokens per session scan A adb1752d3bd0
senpi-strategy-discover is a skill published in the GitHub repository Senpi-ai/senpi-skills (123 stars, last pushed today), licensed MIT. It adds 246 tokens to every session and 5,930 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sector-rotation
An analysis framework for comparing industries in the Chinese A-share stock market, using business conditions, price momentum, valuation, and money flows. It produces rankings and higher- or lower-allocation suggestions.
strategy-pivot-designer
Detect backtest iteration stagnation and generate structurally different strategy pivot proposals when parameter tuning reaches a local optimum.
twitter-reader
Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my…
chenhao-limit-up
A framework for judging Chinese A-share stocks that have reached the daily price-rise limit, using market mood, sector leadership, and trading momentum.
furusato
A Japanese hometown-tax donation manager for furusato nozei, a system where donations to municipalities can qualify for an income-tax or local-tax deduction. It reads donation receipts, stores donation records, and calculates deduction limits.
reading-receipt
An image-reading workflow for extracting structured information from receipts, invoices, and hometown-tax donation certificates. It can first extract text from PDFs and otherwise read their images.