mantis-strategy

Installation
SKILL.md

🦎 MANTIS v6.0.0 — Slipstream

The mantis is patience plus speed. Stillness, then strike.

v6.0.0 (2026-05-12) — plumbing-only migration

NO thesis change. v5.0 entry filters, confidence-tier sizing, dynamic hard_timeout, and leader-reversal veto logic all preserved verbatim. Six-layer plumbing flip:

  1. MCP transport: mcporter subprocess (2.5-5s cold-start) → SenpiClient.mcp_call() in-process HTTPS (~280ms).
  2. Signal emit: scanner called create_position directly; producer now emits via push_signal() to runtime /signals. Runtime LLM-gated mantis_entry action opens via FEE_OPTIMIZED_LIMIT, passing leverage + marginUsd through from signal data for tier-based sizing.
  3. Leader-reversal veto NOW WORKS. v5.0 emitted VETO_CLOSE stdout JSON that no runtime action consumed (silent no-op). v6.0 wires it as a direct producer-authoritative action — cfg.mcp_call("close_position", ...) fires when the leader reverses >1% from entry value. The runtime cannot express "close this position if a separate asset's 4h move reverses by X%"; that thesis lives in the producer.
  4. Scheduler: openclaw cron (60s) → producer_daemon(interval_seconds=60). Long-lived process; scanner_lock with stale-PID auto-recovery.
  5. Risk gates: Python MAX_DAILY_ENTRIES + asset-cooldowns.json → declarative risk.guard_rails block. state/asset-cooldowns.json deleted (runtime per_asset_cooldown_minutes: 240 is authoritative).
  6. Exit fee: DSL exits switched from MARKET (taker, 0.045%) to FEE_OPTIMIZED_LIMIT (maker-first, 0.015%, 60s ALO timeout, taker fallback).

State files retained (producer-authoritative, NOT runtime-leaky):

  • state/position-metadata.jsonleader_pct_at_entry per asset (required for veto pass)
  • state/entry-log.jsonl — observability only (no longer used for daily-cap counting)
Related skills
Installs
50
GitHub Stars
77
First Seen
Mar 12, 2026