mcpField
K
kodiak-strategy

kodiak-strategy

github.com/senpi-aiOther14056 installsUpdated today
Repository

About kodiak-strategy

kodiak-strategy is an OpenClaw skill for scanning SOL trading signals and managing a three-mode strategy. Its scanner identifies entries, while the plugin runtime's DSL handles exits and position tracking.

Key features

  1. 01SOL signal scoring every three minutes
  2. 02Hunting, riding, and stalking modes
  3. 03Entry threshold and margin rules
  4. 04DSL-managed exits and position tracking
  5. 05Runtime verification and notifications

Use cases

  1. 01Scanning SOL for aligned entry signals
  2. 02Managing an active position through DSL
  3. 03Checking runtime setup at session start

MCP support

The skill calls for verifying Senpi MCP during bootstrap. Its scanner configuration includes MCP-related helpers, while the plugin runtime handles position tracking and DSL exits.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/senpi-ai/senpi-skills --skill kodiak-strategy

After installing, type/kodiak-strategyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
runtime.yaml
config/
kodiak-config.json
references/
skill-attribution.md
scripts/
kodiak_config.py
kodiak-producer.py

Details

From the project README

🐻 KODIAK v7.0.0 — SOL Alpha Hunter

One asset. Every signal. Scanner enters. DSL exits.


⛔ CRITICAL AGENT RULES

RULE 1: Install path is /data/workspace/skills/kodiak-strategy/
RULE 2: THE SCANNER DOES NOT EXIT POSITIONS

When the scanner sees an active SOL position, it outputs NO_REPLY. DSL is the ONLY exit mechanism. v1.1.1 had a thesis exit that chopped positions before DSL could trail them. v2.0 removes it entirely.

RULE 3: MAX 1 POSITION — SOL only
RULE 4: Scanner output is AUTHORITATIVE
RULE 5: Verify runtime is installed on every session start

Run openclaw senpi runtime list. Runtime must be listed. The position tracker and DSL exit are handled by the plugin runtime.

RULE 6: Never modify parameters. Never increase leverage above 7x.
RULE 7: 120-minute cooldown after consecutive losses

What Changed From v1.1.1

v1.1.1v2.0
Thesis exit active in RIDING modeRemoved — DSL manages all exits
DSL state missing wallet + sizeAll fields included
Leverage 10-12xCapped at 7x
Retrace 0.03 (3% ROE = 0.3% price at 10x)0.08 (8% ROE = 1.14% price at 7x)
strategy_id discarded in run()Captured and passed to DSL builder
SOL SHORT ran 13h unprotectedEvery position protected from second 1

v1.1.1 Proof of Concept

Kodiak's best trade: SOL SHORT, entry $90.36, DSL trailed to Tier 4 (+44% ROE), exit at $85.86, realized +$134 profit. The scanner found the setup. DSL managed the exit perfectly — locked 85% of peak, gave back only $3 from top.

The problem: DSL was manually patched onto this trade 13 hours after entry because the state file was missing wallet fields. v2.0 fixes this permanently.


The Three-Mode Lifecycle

MODE 1 — HUNTING (default)

Scan SOL every 3 minutes. All signals must align (4h trend, 1h momentum, SM, funding, OI, volume). Score 10+ to enter. When a position opens, switch to MODE 2.

MODE 2 — RIDING

Active position. DSL manages the exit via the plugin runtime. Scanner outputs NO_REPLY. The scanner does NOT re-evaluate the thesis. It does NOT close positions. The plugin DSL trails the position through Phase 1 protection and Phase 2 trailing tiers. When DSL closes the position → switch to MODE 3.

MODE 3 — STALKING

DSL locked profits. Watch for a reload opportunity. ALL reload conditions must pass: fresh momentum impulse, OI stable, volume present, funding not crowded, SM still aligned, 4h trend intact.

If reload fires → re-enter same direction, switch to MODE 2. If kill conditions trigger → reset to MODE 1.


Cron Setup

Scanner (3 min, main):

python3 /data/workspace/skills/kodiak-strategy/scripts/kodiak-scanner.py

How KODIAK Trades

Entry (score >= 10 required)

Every 3 minutes, the scanner evaluates SOL across all signal sources:

SignalPointsRequired?
4h trend structure (higher lows / lower highs)3Yes
1h trend agrees with 4h2Yes
15m momentum confirms direction0-1Yes
5m alignment (all 4 timeframes agree)1No
SM aligned with direction2-3Hard block if opposing
Funding pays to hold the direction2No
Volume above average1-2No
OI growing1No
BTC confirms move1No
RSI has room1No (blocks overbought/oversold)
4h momentum strength1No

Maximum score: ~18. Minimum to enter: 10.

Conviction-Scaled Leverage
ScoreLeverage
10-117x
12+7x
Conviction-Scaled Margin
ScoreMargin
10-1120% of account
12-1325%
14+30%

Exit Management

DSL exit is handled by the plugin runtime via runtime.yaml. The position_tracker scanner auto-detects position opens/closes on-chain. See runtime.yaml for configuration details.

Monitor positions:

  • openclaw senpi dsl positions — list all DSL-tracked positions
  • openclaw senpi dsl inspect <ASSET> — full position details

Why SOL-Only at 7x Leverage


Risk

RuleValue
Max positions1 (SOL only)
Max leverage7x
Phase 1 retrace0.08
Daily loss limit10%
Cooldown120 min after 3 consecutive losses

Runtime Setup

Step 1: Set your strategy wallet address in runtime.yaml:

sed -i 's/${WALLET_ADDRESS}/<STRATEGY_WALLET_ADDRESS>/' /data/workspace/skills/kodiak-strategy/runtime.yaml

Replace <STRATEGY_WALLET_ADDRESS> with the actual wallet address.

Step 2: Set telegram chat ID for notifications:

sed -i 's/${TELEGRAM_CHAT_ID}/<CHAT_ID>/' /data/workspace/skills/kodiak-strategy/runtime.yaml

Replace <CHAT_ID> with the actual Telegram chat ID.

Step 3: Install the runtime:

openclaw senpi runtime create --path /data/workspace/skills/kodiak-strategy/runtime.yaml

Step 4: Verify:

openclaw senpi runtime list

Bootstrap Gate

On EVERY session start, check config/bootstrap-complete.json. If missing:

  1. Read the senpi-trading-runtime skill — it provides all CLI commands for runtime management and DSL position inspection.
  2. Verify Senpi MCP
  3. Set wallet in runtime.yaml: sed -i 's/${WALLET_ADDRESS}/ACTUAL_ADDRESS/' /data/workspace/skills/kodiak-strategy/runtime.yaml
  4. Set Telegram in runtime.yaml: sed -i 's/${TELEGRAM_CHAT_ID}/CHAT_ID/' /data/workspace/skills/kodiak-strategy/runtime.yaml
  5. Install runtime: openclaw senpi runtime create --path /data/workspace/skills/kodiak-strategy/runtime.yaml
  6. Verify runtime installed: openclaw senpi runtime list
  7. Remove old DSL cron (if upgrading): run openclaw crons list, delete any cron containing dsl-v5.py via openclaw crons delete <id>
  8. Create scanner cron (3 min, isolated)
  9. Write config/bootstrap-complete.json
  10. Send: "KODIAK is online. Watching SOL. DSL managed by plugin runtime. Silence = no conviction."

If bootstrap exists, still verify runtime and scanner cron on every session start.


Notification Policy

ONLY alert: Position OPENED (direction, leverage, score, reasons), position CLOSED (DSL exit with P&L), risk guardian triggered, critical error. NEVER alert: Scanner found no thesis, thesis re-eval passed, any reasoning.


Expected Behavior

MetricExpected
Trades/day1-3
Avg hold time1-12 hours
Win rate~45-55%
Avg winner20-50%+ ROE
Avg loser-20 to -40% ROE

Files

FilePurpose
scripts/kodiak-scanner.pySOL thesis builder + stalk/reload
scripts/kodiak_config.pyConfig helper (MCP, state, cooldowns)
config/kodiak-config.jsonWallet, strategy ID, configurable variables
runtime.yamlRuntime config for plugin (DSL exit + position tracker)

License

MIT — Built by Senpi (https://senpi.ai). Source: https://github.com/Senpi-ai/senpi-skills


Skill Attribution

When creating a strategy, include skill_name and skill_version in the call. See references/skill-attribution.md for details.

Comments

Markdown supported