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-opsgit 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-ops)<a href="https://agentmods.dev/skills/senpi-ai/senpi-skills/senpi-strategy-ops"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-ops/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-ops"><img src="https://agentmods.dev/badge/skills/senpi-ai/senpi-skills/senpi-strategy-ops.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 201 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00451 | $0.07932 |
| Opus 5 | $0.00226 | $0.03966 |
| Sonnet 5 | $0.00090 | $0.01586 |
| Haiku 4.5 | $0.00045 | $0.00793 |
Grade A, and why
senpi-strategy-ops scanned grade A with 1 finding 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
exists against the registry (`curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/refs/heads/main/strategies/catalog.json`); How it starts
The opening of the file, as written. The whole thing — 353 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Senpi Strategy Ops — deploy, monitor, close
A strategy is a package: strategy.yaml (the deploy manifest) + one runtime.yaml per instance +
<instance>/scanners/. The runtime spawns and supervises each scanners/scan.py, calling
scan(inputs, ctx) every interval_seconds and owning everything downstream — signal validation,
sizing/execution, the two-phase DSL exit, risk guard-rails. There is no separate scanner daemon, no
push_signal. Ops owns the deployed lifecycle. Deploy is one verb, run as a detached job:
funds preflight → wallet create+fund → runtime install → one observed scanner tick. It returns in ~1s
and you poll until it is terminal.
openclaw senpi validate <recipe-dir> # 0a. does it RUN? records the proof create needs
python3 senpi-strategy-ops/scripts/deploy.py validate <id> # 0b. preflight — structurally deploy-ready? (no money, nothing installed; a bare id is fetched to disk)
python3 senpi-strategy-ops/scripts/deploy.py create <id> --budget <usd> # 1. THE FUNDED PATH: validates, then starts the deploy
openclaw senpi deploy status # 2. poll until terminal; read the verified report
python3 senpi-strategy-ops/scripts/status.py # what am I running? (+ health)
python3 senpi-strategy-ops/scripts/close.py <id> | --all # teardown one strategy | EVERY open strategy
Fund through deploy.py create|runtime <id>, not through the bare verb. Both resolve the package,
run the structural preflight, then start the runtime's senpi deploy job, poll it, and relay its
report verbatim. The wrapper's value is resolution, that structural pass and the verbatim relay —
not a gate the verb lacks: the live-universe gate is the verb's own and it fires pre-money. Use
the bare verb for the read-only openclaw senpi deploy status, and whenever resolution is not needed.
Always tear down through close.py (one <id> or --all) — it deletes the runtime and closes
the strategy. A raw strategy_close MCP call closes the strategy but leaves the runtime
registered, which collides on the next deploy.
Pass the strategy id for a CATALOG strategy (what senpi-strategy-discover hands over, e.g.
spider), fetched from the remote if not on disk; for a locally-authored package, pass its DIRECTORY
path. Either way the package belongs in the durable strategies root (SENPI_STRATEGIES_DIR if
set, else the agent workspace strategies/ dir — normally /data/workspace/strategies) and never
inside a skill directory: a package written there is destroyed on the next skill update. An on-disk
package is authoritative; an invalid one surfaces its real errors and is never silently replaced by a
remote fetch. Mechanics + state machine: references/lifecycle.md · manifest schema: references/strategy-yaml-schema.md.
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/editing-a-live-strategy.md 7.9 KB
- references/lifecycle.md 49 KB
- references/liveness-verification.md 13 KB
- references/refusal-playbook.md 21 KB
- references/strategy-yaml-schema.md 6.7 KB
- references/walkthrough.md 5.8 KB
- scripts/_cli.py 45 KB runs code
- scripts/_fetch.py 3.8 KB runs code
- scripts/_pkg.py 22 KB runs code
- scripts/_yaml.py 7.7 KB runs code
- scripts/close.py 19 KB runs code
- scripts/deploy.py 113 KB runs code
- scripts/mcp_client.py 6.6 KB runs code
- scripts/min_budget.py 8.8 KB runs code
- scripts/run.sh 3.6 KB runs code
- scripts/status.py 21 KB runs code
- scripts/validate_universe.py 9.1 KB runs code
- tests/test_cli_reads.py 23 KB runs code
- tests/test_close.py 22 KB runs code
- tests/test_deploy_update.py 6.4 KB runs code
- tests/test_deploy_where.py 992 B runs code
- tests/test_deploy_wrapper.py 135 KB runs code
- tests/test_dex_awareness.py 8.9 KB runs code
- tests/test_entry_gate_reachability.py 13 KB runs code
- tests/test_error_tail.py 4.9 KB runs code
- tests/test_min_budget_vendor_parity.py 900 B runs code
- tests/test_pkg.py 38 KB runs code
- tests/test_run_sh.py 3.5 KB runs code
- tests/test_skill_surface.py 15 KB runs code
- tests/test_status_health.py 12 KB runs code
- tests/test_status_risk.py 11 KB runs code
- tests/test_status.py 7.7 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 · +22 lines · +117 tokens per session 59d992758059
- 3d ago Changed e1c768971462
- 7d ago Changed 5936e2d2e18a
- 12d ago First seen · 331 lines · 334 tokens per session scan A 038cea411fef
senpi-strategy-ops is a skill published in the GitHub repository Senpi-ai/senpi-skills (123 stars, last pushed today), licensed MIT. It adds 451 tokens to every session and 7,932 once invoked, about $0.0023 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). 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.