Not in the top 1,000 by GitHub stars

Senpi-ai/senpi-skills

Open-source AI agent skills + 80+ strategy templates for autonomous trading on Hyperliquid — build, deploy, and protect strategies across crypto, equities, commodities & indices, with two-phase trailing-stop (DSL) exits.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

quant-desk/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-account-status/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-deposit-withdraw-transfer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-improve-trades/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-market-pulse/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-portfolio/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-signals/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-smart-money/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-strategy-author/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-strategy-discover/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-strategy-ops/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-trade/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-trader-research/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-trading-runtime/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

senpi-why/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

d7d9a81ddeeb → 7b1ecb269e82

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → d7d9a81ddeeb

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 7b1ecb269e82b8ccd325fa9831cc810187050e28

git clone --filter=blob:none --no-checkout https://github.com/Senpi-ai/senpi-skills.git .hotskills/senpi-ai-senpi-skills && git -C .hotskills/senpi-ai-senpi-skills checkout --detach 7b1ecb269e82b8ccd325fa9831cc810187050e28 # Copy each selected skill directory from .hotskills/senpi-ai-senpi-skills into .claude/skills/<skill-name>/
144GitHub stars
3stars in 7 days
15skills in this repository
324commits in 30 days

Heat

4.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 2026144

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

quant-desk

When your agent uses it

**Quant Desk** — the desk your **AI Quant** produces. Users reach it by either name, spaced or hyphenated: "run AI quant", "run ai-quant", "run quant", "run quant desk", "run quant-desk". Paste ANY Hyperliquid address (0x…) and get the desk — what the trader has actually been doing (a strategy read with a critique), a quant score with six explained dimensions, the market they are trading in right now and how they trade each regime, the live book with a protection audit, leaks priced as counterfactual dollars, their book against the PROVEN cohort (top traders by all-time realized P&L, ≥ $1M) and the HOT 30-day cohort — side, headcount, when they moved, what they hold that the trader doesn't — live matches where the tape, the cohorts and the trader's own pattern agree, and a bank of twelve follow-ups the quant is prepared to go deeper on. Works for wallets that never touched senpi (public onchain data, read-only); with a Senpi token the closed-trade history, both cohorts, the funding regime and the Hyperfeed attention layer come from Senpi's own data. TRIGGERS — any of these, with or without an address: "run AI quant", "run ai-quant", "run quant-desk", "run AI quant on my Hyperliquid wallet", "run AI quant on any Hyperliquid wallet", "run quant", "run the quant on 0x…", "run quant desk on 0x…", "score my trading", "rate my trading", "find leaks on my Hyperliquid wallet", "where am I leaking money", "what did I miss" (about a book, a week or a trade), "master my week" (on a SAVED wallet the user trades by hand — "my MetaMask", "my own Hyperliquid wallet", "my saved wallet" — leaks and "what did I miss" are always this skill; its trade review and "master my week" belong to senpi-improve-trades, which also keeps the leaks of senpi strategies), "analyze my wallet / my Hyperliquid address", "how am I doing", "what's my strategy", "am I on the right side of smart money", "are my positions protected", "what should I fix first", "compare me to the whales", "scout setups for me", "find traders for me to analyze with AI quant", "run AI quant on any Hyperliquid wallet". THE IN-PRODUCT SUGGESTED PROMPTS, verbatim — these are buttons users click, so they must match exactly, in the product's own second person ("your wallet", not "my wallet"): "Run quant desk on your Hyperliquid wallet", "Run quant desk on any Hyperliquid wallet", "Score my trading", "Find leaks on your Hyperliquid wallet", "Find traders for me to analyze with quant desk", "Run quant desk", "What did I miss?". Note "find traders for me to analyze" ALONE belongs to senpi-trader-research (vetting a trader to COPY); with "quant desk" or "AI quant" it is this skill (reading a trader to LEARN from). "your Hyperliquid wallet" in a suggested prompt means the READER's own wallet — ask for their address and run the own-book desk, never someone else's. PLURAL COUNTS, and it is what a senpi user reaches for first, because they HAVE several: "find leaks on my wallets", "score my wallets", "run quant desk on my wallets", "leaks across my wallets". senpi-portfolio owns "across all wallets" for HOLDINGS; the leaks and the score on those same wallets are THIS skill. A teammate's agent read portfolio's SKILL.md first on "find leaks on my wallets" and only reached the desk forty-five seconds later. No address given? `desk.py --find <band>` offers candidates by account size ($5k-10k through whales) and by this week's winners, the month's, or this week's worst — ask which, never guess an address and never answer from memory. The default is the user's OWN book: "run AI quant on 0x…" means the user is 0x… — the desk speaks to them and recommends their next steps. "Run AI quant analyst on 0x…" (or "review this trader 0x…") means the user is analyzing someone else. Hidden engine: scripts/desk.py. NOT for choosing or deploying a strategy (senpi-strategy-discover / -ops), reviewing a Senpi strategy's own trades (senpi-improve-trades), or vetting a trader to copy (senpi-trader-research). senpi-portfolio resolves the reader's wallets and answers what they hold; a request to SCORE or RATE that trading comes here, on those wallets.

What it loads into context

Frontmatter

1,150 tokens

Always available to the agent

SKILL.md

14,108 tokens

When the skill is activated

Reference documents

6,953 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Quick actions
  2. What the desk is (the output contract, in render order)
  3. Reading the sources (what to say when asked "where does this come from")
  4. Mandatory closing (verbatim structure, after any full desk or `--section edge/next`)
  5. Resilience
  6. No address given — WHOSE book, before which book
  7. Running a batch — sequentially
  8. Install — the whole `scripts/` directory is required
  9. Skill attribution

Scripts executed separately

  • scripts/addresses.py
  • scripts/benchmark.py
  • scripts/blacklist.py
  • scripts/book.py
  • scripts/deep.py
  • scripts/desk.py
  • scripts/dsl.py
  • scripts/followups.py
  • scripts/hl_api.py
  • scripts/market.py
  • scripts/mcp_client.py
  • scripts/metrics.py
  • scripts/opportunities.py
  • scripts/render.py
  • scripts/roundtrips.py
  • scripts/score.py
  • scripts/senpi_history.py
  • scripts/smart_money.py
  • scripts/strategy_read.py
  • scripts/taxonomy.py
  • scripts/timing.py
  • scripts/voice.py
  • tests/test_account_split.py
  • tests/test_addresses.py
  • tests/test_book.py
  • tests/test_book_breadth_gate.py
  • tests/test_dsl_attach.py
  • tests/test_mm_blacklist.py
  • tests/test_my_wallets.py
  • tests/test_positions_unread.py
  • tests/test_protection_shared.py
  • tests/test_protection_unread.py
  • tests/test_quant.py
  • tests/test_state_version.py
  • tests/test_subject_and_flight.py

Files

  • SKILL.mdcore55,627 bytes
  • SKILL.mdcore55,627 bytes
  • SKILL.mdcore55,627 bytes
  • references/coverage.jsonasset889 bytes
  • references/methodology.mddoc26,299 bytes
  • scripts/addresses.pyruns13,852 bytes
  • scripts/benchmark.pyruns4,421 bytes
  • scripts/blacklist.pyruns13,814 bytes
  • scripts/book.pyruns10,380 bytes
  • scripts/deep.pyruns9,074 bytes
  • scripts/desk.pyruns87,351 bytes
  • scripts/dsl.pyruns11,666 bytes
  • scripts/followups.pyruns8,551 bytes
  • scripts/hl_api.pyruns24,855 bytes
  • scripts/market.pyruns15,043 bytes
  • scripts/mcp_client.pyruns6,230 bytes
  • scripts/metrics.pyruns35,904 bytes
  • scripts/opportunities.pyruns5,028 bytes
  • scripts/render.pyruns58,563 bytes
  • scripts/roundtrips.pyruns7,388 bytes
  • scripts/score.pyruns56,293 bytes
  • scripts/senpi_history.pyruns8,683 bytes
  • scripts/smart_money.pyruns15,848 bytes
  • scripts/strategy_read.pyruns19,240 bytes
  • scripts/taxonomy.pyruns2,857 bytes
  • scripts/timing.pyruns8,567 bytes
  • scripts/voice.pyruns3,102 bytes
  • tests/fixtures/protection-fixtures.v1.jsonasset66,728 bytes
  • tests/fixtures/sample_trader.jsonasset4,558,999 bytes
  • tests/test_account_split.pyruns3,047 bytes
  • tests/test_addresses.pyruns9,037 bytes
  • tests/test_book.pyruns14,916 bytes
  • tests/test_book_breadth_gate.pyruns7,978 bytes
  • tests/test_dsl_attach.pyruns10,529 bytes
  • tests/test_mm_blacklist.pyruns26,258 bytes
  • tests/test_my_wallets.pyruns37,499 bytes
  • tests/test_positions_unread.pyruns7,750 bytes
  • tests/test_protection_shared.pyruns5,532 bytes
  • tests/test_protection_unread.pyruns14,495 bytes
  • tests/test_quant.pyruns219,984 bytes
  • tests/test_state_version.pyruns2,701 bytes
  • tests/test_subject_and_flight.pyruns14,789 bytes
Read SKILL.md

# Senpi Quant Desk — the desk your AI Quant produces, for any Hyperliquid address

Built for one thing first: **the user's own book.** A trader joins senpi, pastes their Hyperliquid
wallet, and gets their desk — the book they actually run, scored, protected and improved, in the second
person, with the next steps recommended to them. That is the default and the experience to design for:
**"run AI quant on 0x…" means the user is 0x…**, whoever the address belongs to. The same engine
also reads **someone else's book** — **"run AI quant analyst on 0x…"**, "review this trader", a
leaderboard pick, a whale — to learn from it (third person, learn-from-them follow-ups, a side-by-side
compare). Run it plain (`--mine`) unless the user asks for the analyst read; then `--other` (alias
`--analyst`), and never let that desk say "you".

**HARD RULES — obey these even if you skim the rest.**

0. **ONE desk at a time, and NEVER re-run one that is still going.** A desk is a long command, so
View the complete source on GitHub

Skills included

  • quant-desk
  • senpi-account-status
  • senpi-deposit-withdraw-transfer
  • senpi-improve-trades
  • senpi-market-pulse
  • senpi-portfolio
  • senpi-signals
  • senpi-smart-money
  • senpi-strategy-author
  • senpi-strategy-discover
  • senpi-strategy-ops
  • senpi-trade
  • senpi-trader-research
  • senpi-trading-runtime
  • senpi-why

Repository facts

License
MIT
Created
Feb 23, 2026
Last pushed
Nov 6, 2026
Forks
37
Open issues
7
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 75 notes
  • quant-desk/SKILL.md:3 Analysis incomplete: physical or joined line exceeds character limit
  • quant-desk/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • quant-desk/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • quant-desk/tests/fixtures/sample_trader.json:1 Analysis incomplete: physical or joined line exceeds character limit
  • senpi-account-status/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-account-status/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-improve-trades/tests/fixtures/registry/installed_runtimes.json:7 Analysis incomplete: physical or joined line exceeds character limit
  • senpi-improve-trades/tests/fixtures/registry/installed_runtimes.json:5 Analysis incomplete: physical or joined line exceeds character limit
  • senpi-improve-trades/tests/fixtures/registry/installed_runtimes.json:6 Analysis incomplete: physical or joined line exceeds character limit
  • senpi-market-pulse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-market-pulse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-market-pulse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-market-pulse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • senpi-market-pulse/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 806 signals by file

quant-desk/SKILL.md

  • Access to secretsline 629
    [Credential-related source omitted]
  • Access to secretsline 706
    [Credential-related source omitted]
  • Access to secretsline 709
    [Credential-related source omitted]

quant-desk/scripts/addresses.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 27
    Stdlib only. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 29
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/benchmark.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 4
    [Credential-related source omitted]
  • Network accessline 11
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 36
    closed, opened = episodes_from_fills(fills)     if mcp is not None:         rows = senpi_history.fetch(mcp, addr, win_start, {})
  • Network accessline 37
    if mcp is not None:         rows = senpi_history.fetch(mcp, addr, win_start, {})         if rows:
  • Network accessline 38
    rows = senpi_history.fetch(mcp, addr, win_start, {})
  • Access to secretsline 55
    [Credential-related source omitted]

quant-desk/scripts/blacklist.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    POST https://hyperliquid-traders.prod.senpi.ai/graphql
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 60
    Stdlib only, matching the rest of this skill. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 62
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 69
    [Credential-related source omitted]
  • Network accessline 124
    [Credential-related source omitted]
  • Network accessline 125
    headers["Authorization"] = f"Bearer {token}"     req = urllib.request.Request(url, data=body, headers=headers, method="POST")     try:
  • Network accessline 126
    req = urllib.request.Request(url, data=body, headers=headers, method="POST")
  • Network accessline 127
    try:         with urllib.request.urlopen(req, timeout=timeout) as r:             raw = r.read()
  • Network accessline 128
    with urllib.request.urlopen(req, timeout=timeout) as r:
  • Access to secretsline 189
    [Credential-related source omitted]

quant-desk/scripts/book.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 24
    Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/deep.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """The deep modes behind the follow-ups. Each takes the cached analysis (plus candles where needed) and returns a dict the renderer knows. Same rules as the desk: computed, counterfactual, process only.""" # Copyright 2026 Senpi (https://se
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/desk.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    (public-leaderboard cohort otherwise). Fails open: every optional layer degrades to a warning in `meta`. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 80
    [Credential-related source omitted]
  • Network accessline 651
    rows = []         for _w in (wallets or [addr]):             _r = senpi_history.fetch(mcp, _w, win_start, meta)
  • Network accessline 652
    for _w in (wallets or [addr]):             _r = senpi_history.fetch(mcp, _w, win_start, meta)             for _e in _r:
  • Network accessline 653
    _r = senpi_history.fetch(mcp, _w, win_start, meta)
  • Network accessline 803
    for name, fetch in (("proven", smart_money.proven_cohort), ("hot", smart_money.hot_cohort)):                 try:                     addrs = _drop_market_makers(fetch(mcp, meta), meta, name)
  • Network accessline 804
    try:                     addrs = _drop_market_makers(fetch(mcp, meta), meta, name)                     bks = smart_money.books(mcp, addrs, meta, progress=log, label={"proven": "the proven cohort, ", "hot": "the hot 30-day cohort, "}.get(nam
  • Network accessline 805
    addrs = _drop_market_makers(fetch(mcp, meta), meta, name)

quant-desk/scripts/dsl.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 45
    Every read is `.get()`, and any failure leaves the book exactly as it was. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 47
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/followups.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    desk. Each maps to a `--deep <mode>`; the desk holds these back on purpose — the more the trader asks, the more of their own book they see.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 4
    more of their own book they see.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0 # Two of these answer from what is ALREADY on screen and carry no `--deep` mode: the desk output
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/hl_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    `POST https://api.hyperliquid.xyz/info` with `{"type": ..., "user": "0x..."}`. Stdlib only. Every call
  • Network accessline 8
    `startTime = last.time + 1` until a short page. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 25
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 149
    if hit is not None:                 return hit         req = urllib.request.Request(INFO_URL, data=json.dumps(body).encode(), headers={"Content-Type": "application/json"})
  • Network accessline 150
    return hit         req = urllib.request.Request(INFO_URL, data=json.dumps(body).encode(), headers={"Content-Type": "application/json"})         data = None
  • Network accessline 151
    req = urllib.request.Request(INFO_URL, data=json.dumps(body).encode(), headers={"Content-Type": "application/json"})
  • Network accessline 154
    self.calls += 1             try:                 with urllib.request.urlopen(req, timeout=self.timeout) as r:
  • Network accessline 155
    try:                 with urllib.request.urlopen(req, timeout=self.timeout) as r:                     data = json.load(r)
  • Network accessline 156
    with urllib.request.urlopen(req, timeout=self.timeout) as r:
  • Network accessline 359
    self.calls += 1         try:             with urllib.request.urlopen(urllib.request.Request(LEADERBOARD_URL), timeout=max(self.timeout, 120)) as r:
  • Network accessline 360
    try:             with urllib.request.urlopen(urllib.request.Request(LEADERBOARD_URL), timeout=max(self.timeout, 120)) as r:                 data = json.load(r)
  • Network accessline 361
    with urllib.request.urlopen(urllib.request.Request(LEADERBOARD_URL), timeout=max(self.timeout, 120)) as r:

quant-desk/scripts/market.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    each open position sits with or against them. Funding is quoted per 8h in basis points (Hyperliquid pays hourly; hourly rate × 8 × 10,000).""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

quant-desk/scripts/metrics.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """The desk's core numbers from public Hyperliquid data: track record, costs, holds, sizing, per-coin table, the open book with its protection audit, transfer-adjusted equity and drawdown, activity.""" # Copyright 2026 Senpi (https://senpi.
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/opportunities.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """Live matches: where today's market, the cohorts and the trader's own best pattern point the same way. Process framing only — a match is a setup that fits how this trader wins, never a call to buy a coin.""" # Copyright 2026 Senpi (https:
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/render.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """The desk as Markdown for chat. Sections can be rendered alone (`--section`) so a follow-up question ("are my positions protected?") answers from the cached analysis without a refetch.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/roundtrips.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 15
    Only `complete` episodes (not truncated, close observed, no unobserved size) feed entry- and hold-based statistics; P&L, fee and volume totals sum every observed fill.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 17
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/score.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    archetype, flag chips, the verdict, the leaks ranked by counterfactual dollars, and where the edge is. Every number here is a transparent function of the metrics — the formulas are in references/methodology.md.""" # Copyright 2026 Senpi (ht
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/senpi_history.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    cross-liquidations and HIP-3 `xyz:` assets. Those rows still carry real realized P&L, so they are kept and marked `complete=False`/`truncated=True` rather than dropped.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 16
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 47
    def fetch(client, addr, window_start_ms, meta):

quant-desk/scripts/smart_money.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    Per coin the cohort's bias is net/gross signed notional in [-1, +1]. The you-vs-whale-median table reads `references/benchmark.json`, computed by `benchmark.py` over the public cohort with this skill's own engine.""" # Copyright 2026 Senpi 
  • Network accessline 12
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/strategy_read.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """What the trader has actually been doing — a strategy fingerprint with receipts, plus a rule-based critique. Everything here is computed; the agent turns it into the two-paragraph read.""" # Copyright 2026 Senpi (https://senpi.ai) — Apach
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/taxonomy.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    documented list; xyz groups are senpi-market-pulse's own (verbatim), so the two skills agree. A coin from another builder's perp dex (`flx:`, `km:`, `hyna:` …) is that dex's market, not an alt.""" # Copyright 2026 Senpi (https://senpi.ai) —
  • Network accessline 6
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/timing.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    are positive across a small fixed grid (never a fitted parameter). Dollar figures use peak size × price move — an approximation that ignores adds and partials, and is labelled as such.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2
  • Network accessline 6
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/scripts/voice.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    person — English second person and third person plural share every verb form, so the switch is a pronoun rewrite. The product persona ("your quant") stays addressed to the reader, who hired it.""" # Copyright 2026 Senpi (https://senpi.ai) —
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_account_split.py

  • Executable scriptline 1
    Executable file

quant-desk/tests/test_addresses.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    So the rules here are about what the desk is allowed to assume. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 8
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_book.py

  • Executable scriptline 1
    Executable file

quant-desk/tests/test_book_breadth_gate.py

  • Executable scriptline 1
    Executable file

quant-desk/tests/test_dsl_attach.py

  • Executable scriptline 1
    Executable file

quant-desk/tests/test_mm_blacklist.py

  • Executable scriptline 1
    Executable file
  • Network accessline 345
    src = open(os.path.join(HERE, "..", "scripts", "desk.py"), encoding="utf-8").read()     assert "_drop_market_makers(fetch(mcp, meta), meta, name)" in src, (
  • Network accessline 346
    assert "_drop_market_makers(fetch(mcp, meta), meta, name)" in src, (

quant-desk/tests/test_my_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    ones they added in Your wallets — their claim, read from user_get_me) plus their Senpi strategy wallets. A typed "that one's mine" is this run's voice only and is never saved. Unknown is never empty.""" # Copyright 2026 Senpi (https://senpi
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_positions_unread.py

  • Executable scriptline 1
    Executable file
  • Network accessline 3
    never prints "No open positions" or "nothing here" over it; a --book run names the wallet whose read failed instead of silently merging what it got. Mirrors the orders-unread signal (test_protection_unread).""" # Copyright 2026 Senpi (https
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_protection_shared.py

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    Every case runs through `metrics.open_book` — the desk's real parse path, not the rule alone — so the dex split, the order lists and the derived naked / partial lists are all under test.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_protection_unread.py

  • Executable scriptline 1
    Executable file
  • Network accessline 3
    Plus the edges the shared fixtures do not cover: a missing `reduceOnly` key is not a stop, a stop that is not reduce-only is named truthfully, and a PARTIAL row never prints 100%.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_quant.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 258
    [Credential-related source omitted]
  • Access to secretsline 493
    [Credential-related source omitted]
  • Network accessline 1986
    meta = {}     rows = senpi_history.fetch(_Client(), "0x" + "a" * 40, 0, meta)
  • Network accessline 1987
    rows = senpi_history.fetch(_Client(), "0x" + "a" * 40, 0, meta)
  • Network accessline 2459
    meta = {}     rows = senpi_history.fetch(_Client(), "0x" + "a" * 40, 0, meta)
  • Network accessline 2460
    rows = senpi_history.fetch(_Client(), "0x" + "a" * 40, 0, meta)
  • Access to secretsline 3389
    [Credential-related source omitted]

quant-desk/tests/test_state_version.py

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    was judged under the old protection rule; re-rendering it under the new one would print the old verdict with the new version in the header.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

quant-desk/tests/test_subject_and_flight.py

  • Executable scriptline 1
    Executable file

senpi-account-status/SKILL.md

  • Access to secretsline 177
    [Credential-related source omitted]

senpi-account-status/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-account-status/scripts/status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    [Credential-related source omitted]
  • Access to secretsline 12
    [Credential-related source omitted]
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-account-status/tests/test_skill_surface.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    the frontmatter, the shape the skill documents is the shape the engine returns, and the version the README advertises is the version the skill carries.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-account-status/tests/test_status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    (success/data envelopes, decimals-as-strings) — do not hand-edit shapes; re-record with `status.py --dry` if the API changes.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-deposit-withdraw-transfer/tests/test_money_rails_skill.py

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    Run:  python3 -m pytest senpi-deposit-withdraw-transfer/tests -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/scripts/_yaml.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    we don't interpret descriptions). Validated for byte-equality against PyYAML on the example packages. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-improve-trades/scripts/review.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 32
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 47
    WINDOW_DEFAULT_DAYS = 7      # the default review window TOP_MOVERS_CAP = 12          # cap the book-vs-market movers surfaced HL_INFO_URL = "https://api.hyperliquid.xyz/info"   # public, no-auth — durable closed-trade recovery
  • Network accessline 48
    TOP_MOVERS_CAP = 12          # cap the book-vs-market movers surfaced HL_INFO_URL = "https://api.hyperliquid.xyz/info"   # public, no-auth — durable closed-trade recovery HL_FILLS_CAP = 2000          # userFills returns the most recent N fi
  • Network accessline 49
    HL_INFO_URL = "https://api.hyperliquid.xyz/info"   # public, no-auth — durable closed-trade recovery
  • Access to secretsline 113
    [Credential-related source omitted]
  • Access to secretsline 820
    [Credential-related source omitted]
  • Network accessline 1091
    try:             p = subprocess.run(                 ["curl", "-s", "-m", str(timeout), "-w", "\n%{http_code}", "-X", "POST", HL_INFO_URL,
  • Network accessline 1092
    p = subprocess.run(                 ["curl", "-s", "-m", str(timeout), "-w", "\n%{http_code}", "-X", "POST", HL_INFO_URL,                  "-H", "Content-Type: application/json", "-d", json.dumps(payload)],
  • Network accessline 2977
    # DISCOVERY owns trades[] (onchain facts); TELEMETRY enriches exit_reason + yields the standalone streams     # (missed_signals + the leak/fill rollups), all from ONE per-runtime event fetch (no re-fetch downstream).
  • Network accessline 2978
    # (missed_signals + the leak/fill rollups), all from ONE per-runtime event fetch (no re-fetch downstream).

senpi-improve-trades/tests/test_book_state.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    python3 senpi-improve-trades/tests/test_book_state.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/tests/test_hl_info_retry.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    python3 -m pytest senpi-improve-trades/tests/test_hl_info_retry.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/tests/test_improve_trades_skill_layout.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    python3 -m pytest senpi-improve-trades/tests/test_improve_trades_skill_layout.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 16
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/tests/test_main_wallet_row.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    python3 -m pytest senpi-improve-trades/tests/test_main_wallet_row.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-improve-trades/tests/test_ratchet_attribution.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    Trade times below are that account's on-chain round trips. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 196
    [Credential-related source omitted]
  • Access to secretsline 197
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Access to secretsline 204
    [Credential-related source omitted]

senpi-improve-trades/tests/test_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 13
    python3 -m pytest senpi-improve-trades/tests/   # or: python3 tests/test_review.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 15
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 219
    [Credential-related source omitted]
  • Access to secretsline 220
    [Credential-related source omitted]
  • Access to secretsline 225
    [Credential-related source omitted]
  • Access to secretsline 227
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 350
    [Credential-related source omitted]
  • Access to secretsline 355
    [Credential-related source omitted]
  • Access to secretsline 357
    [Credential-related source omitted]
  • Access to secretsline 449
    [Credential-related source omitted]
  • Access to secretsline 450
    [Credential-related source omitted]
  • Access to secretsline 455
    [Credential-related source omitted]
  • Access to secretsline 457
    [Credential-related source omitted]
  • Access to secretsline 644
    [Credential-related source omitted]
  • Access to secretsline 645
    [Credential-related source omitted]
  • Access to secretsline 646
    [Credential-related source omitted]
  • Access to secretsline 648
    [Credential-related source omitted]
  • Access to secretsline 654
    [Credential-related source omitted]
  • Access to secretsline 656
    [Credential-related source omitted]
  • Access to secretsline 725
    [Credential-related source omitted]
  • Access to secretsline 726
    [Credential-related source omitted]
  • Access to secretsline 731
    [Credential-related source omitted]
  • Access to secretsline 733
    [Credential-related source omitted]
  • Access to secretsline 899
    [Credential-related source omitted]
  • Access to secretsline 900
    [Credential-related source omitted]
  • Access to secretsline 905
    [Credential-related source omitted]
  • Access to secretsline 907
    [Credential-related source omitted]
  • Access to secretsline 949
    [Credential-related source omitted]
  • Access to secretsline 963
    [Credential-related source omitted]
  • Access to secretsline 1109
    [Credential-related source omitted]
  • Access to secretsline 1110
    [Credential-related source omitted]
  • Access to secretsline 1116
    [Credential-related source omitted]
  • Access to secretsline 1118
    [Credential-related source omitted]
  • Access to secretsline 1153
    [Credential-related source omitted]
  • Access to secretsline 1154
    [Credential-related source omitted]
  • Access to secretsline 1160
    [Credential-related source omitted]
  • Access to secretsline 1162
    [Credential-related source omitted]

senpi-improve-trades/tests/test_review_external_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    python3 -m pytest senpi-improve-trades/tests/test_review_external_wallets.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 96
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 107
    [Credential-related source omitted]

senpi-market-pulse/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-market-pulse/scripts/pulse.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 25
    `xyz:`-prefixed. Use `--dry` to dump the raw response for any future schema drift. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 27
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-market-pulse/tests/test_pulse.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    python3 -m pytest senpi-market-pulse/tests/        # or: python3 tests/test_pulse.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 6
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-market-pulse/tests/test_pulse_saved_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    python3 -m pytest senpi-market-pulse/tests/test_pulse_saved_wallets.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-market-pulse/tests/test_signals_closing.py

  • Executable scriptline 1
    Executable file

senpi-portfolio/references/output-fields.md

  • Network accessline 167
    embedded wallet + every strategy sub-wallet, pulls live clearinghouse state per wallet, and   classifies the buckets. Read its JSON. - **Real-time, always.** The engine forces a fresh fetch (no 12h cache) and reads each strategy's
  • Network accessline 168
    classifies the buckets. Read its JSON. - **Real-time, always.** The engine forces a fresh fetch (no 12h cache) and reads each strategy's   live clearinghouse state. Never report balances from earlier in the conversation — re-run.
  • Network accessline 169
    - **Real-time, always.** The engine forces a fresh fetch (no 12h cache) and reads each strategy's

senpi-portfolio/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-portfolio/scripts/portfolio.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 28
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 73
    [Credential-related source omitted]
  • Access to secretsline 73
    [Credential-related source omitted]
  • Network accessline 74
    CATALOG_URL = f"https://raw.githubusercontent.com/Senpi-ai/senpi-skills/{CATALOG_REF}/strategies/catalog.json"
  • Access to secretsline 95
    [Credential-related source omitted]
  • Access to secretsline 302
    [Credential-related source omitted]
  • Access to secretsline 429
    [Credential-related source omitted]
  • Access to secretsline 702
    [Credential-related source omitted]
  • Network accessline 733
    try:             import urllib.request             with urllib.request.urlopen(CATALOG_URL, timeout=6) as r:
  • Network accessline 734
    import urllib.request             with urllib.request.urlopen(CATALOG_URL, timeout=6) as r:                 raw = json.loads(r.read().decode("utf-8"))
  • Network accessline 735
    with urllib.request.urlopen(CATALOG_URL, timeout=6) as r:
  • Network accessline 2515
    # carry forward any warnings the self-heal fetch (or an earlier step) recorded

senpi-portfolio/tests/test_close_recency.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    python3 -m pytest senpi-portfolio/tests/test_close_recency.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 122
    [Credential-related source omitted]

senpi-portfolio/tests/test_closed_stats.py

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    python3 -m pytest senpi-portfolio/tests/test_closed_stats.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-portfolio/tests/test_name_reader_parity.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 25
    rather than silently uncovered. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 27
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-portfolio/tests/test_portfolio.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    python3 -m pytest senpi-portfolio/tests/   # or: python3 tests/test_portfolio.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]
  • Access to secretsline 1171
    [Credential-related source omitted]
  • Access to secretsline 1172
    [Credential-related source omitted]
  • Access to secretsline 1177
    [Credential-related source omitted]
  • Access to secretsline 1179
    [Credential-related source omitted]
  • Access to secretsline 1441
    [Credential-related source omitted]
  • Access to secretsline 1442
    [Credential-related source omitted]
  • Access to secretsline 1450
    [Credential-related source omitted]
  • Access to secretsline 1452
    [Credential-related source omitted]

senpi-portfolio/tests/test_portfolio_external_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    python3 -m pytest senpi-portfolio/tests/test_portfolio_external_wallets.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]

senpi-portfolio/tests/test_portfolio_one_wallet_list.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    python3 -m pytest senpi-portfolio/tests/test_portfolio_one_wallet_list.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-portfolio/tests/test_portfolio_skill_layout.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 15
    python3 -m pytest senpi-portfolio/tests/test_portfolio_skill_layout.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 17
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 492
    for needle in ("A strategy row's wallets are grouped by the same key in every step",                    "`book.totals.managed_usd` is `grand_total_usd`", "enumerates the embedded wallet",                    "The engine forces a fresh fetch 
  • Network accessline 493
    "`book.totals.managed_usd` is `grand_total_usd`", "enumerates the embedded wallet",                    "The engine forces a fresh fetch (no 12h cache)", "can't linger as a ghost.",                    "`strategyName` is optional on `strategy
  • Network accessline 494
    "The engine forces a fresh fetch (no 12h cache)", "can't linger as a ghost.",

senpi-portfolio/tests/test_prescribed_tools_exist.py

  • Executable scriptline 1
    Executable file

senpi-portfolio/tests/test_skill_raw_position_stop.py

  • Network accessline 1
    """A raw position's `protected: false` is narrated as "no ratchet," never as "no stop": the SKILL tells the agent to read the wallet's resting orders before implying a hand-placed position has no stop.""" # Copyright 2026 Senpi (https://sen
  • Executable scriptline 1
    Executable file
  • Network accessline 3
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-portfolio/tests/test_skill_source_trader_read.py

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    discovery tools run on the user's own strategy wallet return the user's copy of the trade and read as an answer — the rule has to name that, and has to sit where a plain `read` delivers it.""" # Copyright 2026 Senpi (https://senpi.ai) — Apa
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-portfolio/tests/test_your_wallets_wording.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    python3 -m pytest senpi-portfolio/tests/test_your_wallets_wording.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-signals/scripts/hyperfeed.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 93
    [Credential-related source omitted]

senpi-signals/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-signals/scripts/striker_scoring.py

  • Executable scriptline 1
    Executable file

senpi-signals/scripts/sweep.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    python3 sweep.py --asset HYPE          # one asset: its reads, the proven cohort's split, the 4h board, market     python3 sweep.py --json [--asset X]    # debugging: the backend's JSON as it came     (SENPI_AUTH_TOKEN from env; the backend
  • Network accessline 8
    [Credential-related source omitted]
  • Access to secretsline 8
    [Credential-related source omitted]
  • Network accessline 21
    Stdlib only; Python 3.9+. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 23
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 34
    VERSION = "2.11.0" BASE_URL = "https://agents.senpi.ai"
  • Network accessline 35
    BASE_URL = "https://agents.senpi.ai"
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 64
    [Credential-related source omitted]
  • Access to secretsline 66
    [Credential-related source omitted]
  • Network accessline 67
    [Credential-related source omitted]
  • Network accessline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Network accessline 69
    req = urllib.request.Request((url or BASE_URL) + path, headers={

senpi-signals/tests/test_hyperfeed.py

  • Executable scriptline 1
    Executable file

senpi-signals/tests/test_signals_skill_text.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 68
    [Credential-related source omitted]

senpi-signals/tests/test_striker_scoring_vendor_parity.py

  • Executable scriptline 1
    Executable file

senpi-signals/tests/test_sweep.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 146
    def _http_error(code, error):     return urllib.error.HTTPError("https://x", code, "err", {}, io.BytesIO(json.dumps({"error": error}).encode()))
  • Network accessline 147
    return urllib.error.HTTPError("https://x", code, "err", {}, io.BytesIO(json.dumps({"error": error}).encode()))
  • Network accessline 156
    def __call__(self, req, timeout=None):         self.requests.append(req)
  • Network accessline 157
    self.requests.append(req)
  • Network accessline 164
    [Credential-related source omitted]
  • Network accessline 165
    [Credential-related source omitted]
  • Network accessline 170
    assert _fetch(op) == {"trade": []}     req = op.requests[0]     assert req.full_url == "https://signals.test/v1/signals"
  • Network accessline 171
    req = op.requests[0]     assert req.full_url == "https://signals.test/v1/signals"     assert req.get_header("Authorization") == "Bearer tok"
  • Network accessline 172
    assert req.full_url == "https://signals.test/v1/signals"
  • Access to secretsline 178
    [Credential-related source omitted]
  • Network accessline 179
    op = _Opener()     with pytest.raises(sweep.Unavailable) as e:         sweep.fetch("/v1/signals", url="https://signals.test", opener=op)
  • Network accessline 180
    with pytest.raises(sweep.Unavailable) as e:         sweep.fetch("/v1/signals", url="https://signals.test", opener=op)     assert e.value.code == sweep.EXIT_AUTH and not op.requests
  • Network accessline 181
    sweep.fetch("/v1/signals", url="https://signals.test", opener=op)
  • Network accessline 209
    def test_the_backend_is_agents_senpi_ai():     assert sweep.BASE_URL == "https://agents.senpi.ai"
  • Network accessline 210
    [Credential-related source omitted]
  • Network accessline 211
    [Credential-related source omitted]
  • Network accessline 212
    [Credential-related source omitted]
  • Network accessline 213
    assert op.requests[0].full_url == "https://agents.senpi.ai/v1/signals"

senpi-signals/tests/test_vendored_parity.py

  • Executable scriptline 1
    Executable file

senpi-smart-money/SKILL.md

  • Access to secretsline 132
    [Credential-related source omitted]

senpi-smart-money/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-smart-money/scripts/smartmoney.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 30
    returned nothing — so narrate that line rather than pretending the smart cohort is flat. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 32
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 192
    [Credential-related source omitted]
  • Network accessline 505
    """STEP 1 `cohorts` — the headline read the agent NARRATES FIRST. Runs the heavy per-wallet cohort     fetch (build_cohorts + cohort_bias) → the proven-vs-crowd `divergences` table + the `smart_leaning`
  • Network accessline 506
    fetch (build_cohorts + cohort_bias) → the proven-vs-crowd `divergences` table + the `smart_leaning     headline + the `cohorts` sample sizes. Persists the cohort payload to state so `near_term` layers on

senpi-smart-money/tests/test_smartmoney.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    python3 -m pytest senpi-smart-money/tests/   # or: python3 tests/test_smartmoney.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 194
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]

senpi-smart-money/tests/test_smartmoney_saved_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    python3 -m pytest senpi-smart-money/tests/test_smartmoney_saved_wallets.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/SKILL.md

  • Access to secretsline 285
    [Credential-related source omitted]

senpi-strategy-author/references/creating-a-strategy.md

  • Access to secretsline 261
    [Credential-related source omitted]
  • Access to secretsline 399
    [Credential-related source omitted]

senpi-strategy-author/references/dsl-configuration.md

  • Access to secretsline 261
    [Credential-related source omitted]

senpi-strategy-author/references/dsl-presets.yaml

  • Network accessline 1
    # Senpi DSL Presets v1.0.0 # Copyright 2026 Senpi (https://senpi.ai) — MIT
  • Network accessline 2
    # Copyright 2026 Senpi (https://senpi.ai) — MIT
  • Network accessline 3
    # Source: https://github.com/Senpi-ai/senpi-skills

senpi-strategy-author/references/shadow-testing.md

  • Dangerous shell operationline 44
    - Anything you did schedule: `openclaw cron list`, then `openclaw cron rm <id>`. Check for
  • Dangerous shell operationline 81
    `openclaw cron rm <id>` for anything scheduled; `python3 /data/.openclaw/skills/senpi-strategy-ops/scripts/close.py <id>`

senpi-strategy-author/references/strategy-yaml-schema.md

  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]

senpi-strategy-author/scripts/_yaml.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    we don't interpret descriptions). Validated for byte-equality against PyYAML on the example packages. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/scripts/validate_strategy.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    noise, multi-slot sizing that the second open cannot fund, a daily entry cap at or below the slot count, a daily entry cap at or below the slot count). Warnings never change the exit code; the author relays them. """ # Copyright 2026 Senpi 
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_balance_rule_excludes_committed_capital.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_edit_describes_written_values.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_exit_preview_matches_presets.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_preset_time_cuts.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_reference_halt_latch.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_reference_list_limits.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_reference_time_units.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_scaffold_margin.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    python3 -m pytest senpi-strategy-author/tests/ """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 12
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_scoring_py_is_optional.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_skill_signal_data_is_audit_only.py

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    trail, and the floor comes from the instance's DSL preset. The resident line has to say so and point at the depth, and the conversion the depth hands the author has to invert the floor formula it documents.""" # Copyright 2026 Senpi (https:
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_undeclared_signal_data_key.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_validate_close_wiring.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    python3 -m pytest senpi-strategy-author/tests/test_validate_close_wiring.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_validate_crash_before_funding.py

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    Run: python3 -m pytest senpi-strategy-author/tests/test_validate_crash_before_funding.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 24
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 113
    LOCAL = ''' def scan(inputs, ctx):     rows = ctx.fetch()
  • Network accessline 114
    def scan(inputs, ctx):     rows = ctx.fetch()     if not rows:
  • Network accessline 115
    rows = ctx.fetch()
  • Network accessline 190
    def scan(inputs, ctx):             total = 0             for r in ctx.fetch():
  • Network accessline 191
    total = 0             for r in ctx.fetch():                 total += r
  • Network accessline 192
    for r in ctx.fetch():

senpi-strategy-author/tests/test_validate_fees.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_validate_momentum_not_smart_money.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    python3 -m pytest senpi-strategy-author/tests/test_validate_momentum_not_smart_money.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_validate_package_id.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    python3 -m pytest senpi-strategy-author/tests/ """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 12
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_validate_tiers_and_exec.py

  • Executable scriptline 1
    Executable file

senpi-strategy-author/tests/test_validate_wallet_binding.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    python3 -m pytest senpi-strategy-author/tests/ """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 18
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-author/tests/test_validate_warnings.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    python3 -m pytest senpi-strategy-author/tests/test_validate_warnings.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 18
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/SKILL.md

  • Network accessline 412
    run reads an alphabetical slice — ask which style first, then run themed. - **Micro-specs** ("$1 a trade", "never lose more than 20 cents", "a hundred small wins") → do the fee math out loud before matching anything: read the round-trip cos
  • Network accessline 413
    - **Micro-specs** ("$1 a trade", "never lose more than 20 cents", "a hundred small wins") → do the fee math out loud before matching anything: read the round-trip cost — Hyperliquid's taker rate on both legs (the wallet's `userFees`, never 
  • Network accessline 414
    - **"Show me the source" / "I want an outside audit"** → the catalog is public: link `https://github.com/Senpi-ai/senpi-skills/tree/main/strategies/<id>`, and for a fork point at their package (`<username>-<template>`, as ops names it) and 

senpi-strategy-discover/catalog.json

  • Possible obfuscationline 3924
    "emoji": "🐦<U+200D>⬛",

senpi-strategy-discover/references/glossary.yaml

  • Network accessline 9
    # `sub_style` is EXTENSIBLE: authors may add a new value here (with a gloss) when a genuine new pattern # appears. gen_catalog warns (never fails) on a value missing from this file. # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/scripts/discover.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    exit 0 for handled cases. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 22
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 594
    import http.client
  • Network accessline 595
    conn = http.client.HTTPSConnection("raw.githubusercontent.com", timeout=20)

senpi-strategy-discover/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-strategy-discover/tests/conversation/eval.workflow.js

  • Executable scriptline 1
    Executable file
  • Access to secretsline 10
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 108
    [Credential-related source omitted]
  • Access to secretsline 254
    [Credential-related source omitted]

senpi-strategy-discover/tests/fixtures/gen_fullfleet.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    Usage:  git show origin/main:catalog.json | python3 gen_fullfleet.py > catalog_fullfleet.json """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_accessible_usdc.py

  • Executable scriptline 1
    Executable file

senpi-strategy-discover/tests/test_class_theme_and_silent_narrowing.py

  • Executable scriptline 1
    Executable file

senpi-strategy-discover/tests/test_cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    reports the full eligible count and returns a bounded shortlist; the LLM ranks it. No soft-rank flags. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 8
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]

senpi-strategy-discover/tests/test_default_catalog.py

  • Executable scriptline 1
    Executable file

senpi-strategy-discover/tests/test_discover.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 7
    risk/belief/horizon flags — the LLM ranks the returned set on those soft dimensions itself. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 9
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_discover_saved_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    python3 -m pytest senpi-strategy-discover/tests/test_discover_saved_wallets.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 18
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_fullfleet.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 7
    ALL survivors. Soft ranking is the LLM's job, so the sweep only varies concrete dims. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 9
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_new_strategy_discoverability.py

  • Executable scriptline 1
    Executable file

senpi-strategy-discover/tests/test_scenarios.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    desc, then name). Soft ranking (risk/belief/horizon) is the LLM's job, so those are NOT flags here. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 8
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_skill_surface_discover.py

  • Executable scriptline 1
    Executable file
  • Network accessline 74
    "`user_get_senpi_points` `builderFeePercent`",                    "Never save an impossible spec",                    "https://github.com/Senpi-ai/senpi-skills/tree/main/strategies/",
  • Network accessline 75
    "Never save an impossible spec",                    "https://github.com/Senpi-ai/senpi-skills/tree/main/strategies/",                    "Never hand-roll a tarball"):
  • Network accessline 76
    "https://github.com/Senpi-ai/senpi-skills/tree/main/strategies/",

senpi-strategy-discover/tests/test_theme.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 10
    Run: python3 tests/test_theme.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 12
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-discover/tests/test_variants_are_reachable.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/SKILL.md

  • Network accessline 105
    **Step 0 — resolve which strategy.** The user's word ("spider") is a strategy **`id`**. Confirm it exists against the registry (`curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/refs/heads/main/strategies/catalog.json`);
  • Network accessline 106
    exists against the registry (`curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/refs/heads/main/strategies/catalog.json`);
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 296
    [Credential-related source omitted]

senpi-strategy-ops/references/lifecycle.md

  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 275
    [Credential-related source omitted]

senpi-strategy-ops/references/strategy-yaml-schema.md

  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]

senpi-strategy-ops/scripts/_cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    spellings and degrades gracefully (returns None / []) rather than throwing on a missing field. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 8
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 879
    [Credential-related source omitted]

senpi-strategy-ops/scripts/_fetch.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    package fetched into a managed skill dir is destroyed on the next skill update. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 16
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 17
    import http.client
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 32
    def _get(host, path, accept, timeout):     conn = http.client.HTTPSConnection(host, timeout=timeout)
  • Network accessline 33
    conn = http.client.HTTPSConnection(host, timeout=timeout)

senpi-strategy-ops/scripts/_fork.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 14
    the agent says. Both are printed by every verb that makes or deploys a fork. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 16
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/_pkg.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 13
    `decision_mode: llm` action), then asserts zero `${...}` placeholders remain before deploy. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 15
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 217
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Access to secretsline 232
    [Credential-related source omitted]

senpi-strategy-ops/scripts/_yaml.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    we don't interpret descriptions). Validated for byte-equality against PyYAML on the example packages. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/close.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    --strategy-id/--address are mutually exclusive with <id>/--all/--instance/--ref and with each other. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 23
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/deploy.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 73
    the verdict, never the invariant. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 73
    the verdict, never the invariant. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 75
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 75
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 17
    raise MCPError so callers surface a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 19
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 20
    import http.client
  • Network accessline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 48
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 49
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 50
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-strategy-ops/scripts/min_budget.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    there is one source of truth for the physics. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 35
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/run.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 6
    # # examples: #   ./run.sh asia-ai https://github.com/Senpi-ai/senpi-skills/tree/main 500
  • Network accessline 7
    # examples: #   ./run.sh asia-ai https://github.com/Senpi-ai/senpi-skills/tree/main 500 #   ./run.sh asia-ai main '$500'
  • Network accessline 8
    #   ./run.sh asia-ai https://github.com/Senpi-ai/senpi-skills/tree/main 500
  • Access to secretsline 19
    [Credential-related source omitted]

senpi-strategy-ops/scripts/status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 39
    wallet. It is named once, with what it does, never per row. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 39
    wallet. It is named once, with what it does, never per row. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 41
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 41
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/scripts/validate_universe.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 20
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_cli_reads.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 15
    Run:  python3 senpi-strategy-ops/tests/test_cli_reads.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 17
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 66
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_close.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    `has_dsl` branch coverage by relocating it into `test_pkg.py`.) """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_deploy_durable_root.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 3
    re-points a runtime: the runtime keeps reading its scanners from that directory, and a box restart wipes everything outside the volume (e.g. a package deployed from a /tmp clone).""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 5
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_deploy_update.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    python3 -m pytest senpi-strategy-ops/tests/test_deploy_update.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_deploy_where.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_deploy_wrapper.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    python3 senpi-strategy-ops/tests/test_deploy_wrapper.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 111
    [Credential-related source omitted]
  • Access to secretsline 189
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Access to secretsline 1219
    [Credential-related source omitted]
  • Access to secretsline 1222
    [Credential-related source omitted]
  • Access to secretsline 1259
    [Credential-related source omitted]
  • Access to secretsline 1264
    [Credential-related source omitted]
  • Access to secretsline 1463
    [Credential-related source omitted]
  • Access to secretsline 1468
    [Credential-related source omitted]
  • Network accessline 2461
    [Credential-related source omitted]
  • Access to secretsline 2461
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_dex_awareness.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 9
    python3 senpi-strategy-ops/tests/test_dex_awareness.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 11
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_entry_gate_reachability.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 30
    python3 senpi-strategy-ops/tests/test_entry_gate_reachability.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 32
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_error_tail.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    python3 senpi-strategy-ops/tests/test_error_tail.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 7
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_fetch_fork_prefix.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_fetch_through_callers.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_fork.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """A template deploys under the user's name: `_fork.fork` makes `<owner>-<template>` with the identity rewritten and everything else untouched; `deploy.py create <template>` without an owner is refused.""" # Copyright 2026 Senpi (https://se
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 150
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_min_budget_vendor_parity.py

  • Executable scriptline 1
    #!/usr/bin/env python3

senpi-strategy-ops/tests/test_never_traded_answer.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 24
    python3 senpi-strategy-ops/tests/test_never_traded_answer.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 26
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_pkg.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    python3 -m pytest senpi-strategy-ops/tests/ """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 8
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_pkg_refuses_keys_that_stop_no_entries.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_run_sh.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 7
    python3 senpi-strategy-ops/tests/test_run_sh.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 9
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 42
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_skill_edit_not_live_until_applied.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_skill_serr124.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_skill_strategy_limits.py

  • Executable scriptline 1
    Executable file

senpi-strategy-ops/tests/test_skill_surface.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    Run:  python3 -m pytest senpi-strategy-ops/tests/test_skill_surface.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 6
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_status.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    python3 -m pytest senpi-strategy-ops/tests/test_status.py -v """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_status_health.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    python3 senpi-strategy-ops/tests/test_status_health.py """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 10
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 155
    [Credential-related source omitted]

senpi-strategy-ops/tests/test_status_risk.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 12
    python3 -m pytest senpi-strategy-ops/tests/test_status_risk.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-strategy-ops/tests/test_vendored_yaml_parses_every_package.py

  • Executable scriptline 1
    #!/usr/bin/env python3

senpi-strategy-ops/tests/test_walkthrough_tradable_minimum.py

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    sleeve no-trades — it funds, installs, scans and never opens. The walkthrough has to say that, and the worked figure it uses has to stay true to `min_budget.py`, which is the arithmetic of record.""" # Copyright 2026 Senpi (https://senpi.ai
  • Network accessline 6
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trade/tests/test_trade_skill_surface.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """The protection protocol is resident in senpi-trade/SKILL.md, its five regression cases exist, and the version the README advertises is the version the skill carries.""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 4
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trader-research/SKILL.md

  • Access to secretsline 314
    [Credential-related source omitted]

senpi-trader-research/scripts/mcp_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 11
    failures (result.isError) raise MCPError so callers log a warning instead of silently reading None. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 14
    import http.client
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 42
    }     hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection
  • Network accessline 43
    hdrs.update(headers)     cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection     conn = cls(host, port, timeout=timeout)
  • Network accessline 44
    cls = http.client.HTTPSConnection if scheme == "https" else http.client.HTTPConnection

senpi-trader-research/scripts/research.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 22
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trader-research/tests/test_research.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 2
    """Offline engine test — runs research.run() against a recorded MCP fixture (no network).""" # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 3
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trader-research/tests/test_research_saved_wallets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 13
    python3 -m pytest senpi-trader-research/tests/test_research_saved_wallets.py -q """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 15
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trading-runtime/references/runtime-yaml.md

  • Network accessline 292
    |---|---|---| | `telegram_chat_id` | — | Telegram chat id | | `gateway_url` | `http://127.0.0.1:18789` | gateway URL for HTTP delivery |
  • Network accessline 293
    | `telegram_chat_id` | — | Telegram chat id | | `gateway_url` | `http://127.0.0.1:18789` | gateway URL for HTTP delivery | | `gateway_token` | `$OPENCLAW_GATEWAY_TOKEN` | auth token for HTTP gateway |
  • Network accessline 294
    | `gateway_url` | `http://127.0.0.1:18789` | gateway URL for HTTP delivery |
  • Access to secretsline 295
    [Credential-related source omitted]

senpi-trading-runtime/references/scan-contract.md

  • Access to secretsline 160
    [Credential-related source omitted]

senpi-trading-runtime/scripts/behaviour_hash.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 39
    python3 senpi-trading-runtime/scripts/behaviour_hash.py --pkg penguin   # one package """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 41
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trading-runtime/scripts/gen_catalog.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    still generates. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 13
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trading-runtime/scripts/min_budget.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    there is one source of truth for the physics. """ # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0
  • Network accessline 35
    # Copyright 2026 Senpi (https://senpi.ai) — Apache-2.0

senpi-trading-runtime/tests/test_edit_is_live_only_after_apply.py

  • Executable scriptline 1
    Executable file

senpi-trading-runtime/tests/test_min_budget_golden.py

  • Executable scriptline 1
    #!/usr/bin/env python3

senpi-trading-runtime/tests/test_min_budget_tier_shapes.py

  • Executable scriptline 1
    Executable file

senpi-trading-runtime/tests/test_reference_candle_time_units.py

  • Executable scriptline 1
    Executable file

senpi-trading-runtime/tests/test_reference_time_cuts_either_phase.py

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 3 facts
Signal confidence: 497 facts

and 447 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath CLAUDE.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md quant-desk/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md quant-desk/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md quant-desk/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md quant-desk/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md quant-desk/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.