Claude-skill-registry-data meme-executor
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/meme-executor" ~/.claude/skills/majiayu000-claude-skill-registry-data-meme-executor && rm -rf "$T"
manifest:
data/meme-executor/SKILL.mdsource content
Meme Executor - Solana Trade Execution Layer
Solana-focused execution skill that turns high‑level trade plans into concrete orders.
Current Status: Phase 1 (Safe Mode)
| Component | Status | Risk Level |
|---|---|---|
| DRY RUN only | None |
| DRY RUN only | None |
| Quote-only | None |
| Read-only | None |
| Local tracking | None |
No real transactions are sent in Phase 1.
When to Use
- You already have a TradePlan from other agents/skills:
(signals + sizing)meme-trader
(liquidity + position sizing)flow-tracker
(narrative / conviction)degen-savant
(rug/safety cleared)contract-surgeon
- You want to:
- Simulate trades and log PnL without sending real transactions
- Eventually route real orders via a configured Solana wallet + DEX router
Core Responsibilities
- Parse a structured trade plan (token, side, size %, target size, SL/TP, slippage).
- Apply simple risk checks (max position %, max concurrent positions hooks).
- DRY‑RUN by default – log what would be traded and why.
- Provide clear TODO hooks for wiring:
- Jupiter swap routing
- Wallet private key / signer configuration
- Trade log storage (JSONL or database)
TradePlan Interface
The executor expects a JSON payload matching this shape:
export interface TradePlan { tokenAddress: string; symbol?: string; chain: 'solana'; side: 'buy' | 'sell'; // either percentage of portfolio or absolute amount in SOL sizing: { mode: 'percent' | 'absolute'; value: number; // e.g. 2 = 2% or 0.5 = 0.5 SOL }; riskMode: 'degen' | 'moderate' | 'conservative'; entryLimitPrice?: number; // optional, for limit-style behavior maxSlippageBps: number; // e.g. 1000 = 10% stopLossPrice?: number; takeProfit1?: number; takeProfit2?: number; notes?: string; // free-form rationale from upstream agents dryRun?: boolean; // default true; set false only once wired to real wallet }
Usage (Simulation First)
From the repo root, a typical simulated execution call will look like:
npx tsx .claude/skills/meme-executor/scripts/execute-trade.ts \ --plan-file /path/to/trade-plan.json
Where
trade-plan.json contains a single TradePlan object.
Output Formats
- Simulation Log (default) – human-friendly summary:
- What would be bought/sold
- Position size and notional exposure
- SL/TP levels and implied RR
- Any risk rule violations
- JSON Log (--json) – machine-friendly output for chaining into other tools.
New Phase 1 Components
Jupiter Client (Quote-Only)
Get swap quotes without executing:
# Get a quote for swapping SOL to a token npx tsx .claude/skills/meme-executor/scripts/jupiter-client.ts \ --quote --input SOL --output <TOKEN_MINT> --amount 0.1 # JSON output npx tsx .claude/skills/meme-executor/scripts/jupiter-client.ts \ --quote --input SOL --output BONK --amount 0.5 --json
Wallet Manager (Read-Only)
Check wallet balances without signing:
# Check balance of any wallet npx tsx .claude/skills/meme-executor/scripts/wallet-manager.ts \ --balance --address <WALLET_ADDRESS> # Use devnet npx tsx .claude/skills/meme-executor/scripts/wallet-manager.ts \ --balance --address <WALLET_ADDRESS> --devnet
Position Tracker
Track open positions locally:
# Add a position (after buy) npx tsx .claude/skills/meme-executor/scripts/position-tracker.ts \ --add --token <MINT> --symbol MEME --entry-price 0.001 --amount 1000 \ --sl 0.0007 --tp 0.002 # List positions npx tsx .claude/skills/meme-executor/scripts/position-tracker.ts --list # Check stop-loss/take-profit triggers npx tsx .claude/skills/meme-executor/scripts/position-tracker.ts \ --check --prices '{"<MINT>": 0.0015}' # Close a position npx tsx .claude/skills/meme-executor/scripts/position-tracker.ts \ --close --token <MINT> --exit-price 0.002
Phase Roadmap
| Phase | Components | Risk |
|---|---|---|
| 1 (Current) | Quote, balance, tracking | None |
| 2 | Devnet swap execution | Low (fake SOL) |
| 3 | Mainnet paper trading | None (simulated) |
| 4 | Mainnet live (small size) | High |
Data Quality Validation Layer
<data_validation> Pre-Execution Data Requirements: All trades (even simulated) require validated data to ensure backtesting fidelity.
interface ExecutionDataQuality { price_quality: { score: number; // Min 90 for execution sources_count: number; // Min 2 max_deviation: number; // Max 5% between sources freshness_ms: number; // Max 30000 (30s) }; liquidity_check: { available: number; // Must support trade size slippage_estimate: number; depth_ratio: number; // Our size / available liquidity }; risk_clearance: { rug_score: number; // From meme-trader position_approved: boolean; // From risk-portfolio-manager kill_switch_status: 'active' | 'paused' | 'halted'; }; } interface ValidationResult { approved: boolean; quality_score: number; warnings: string[]; blockers: string[]; }
Validation Pipeline:
Trade Plan → Price Validation → Liquidity Check → Risk Clearance → Execute/Reject ↓ ↓ ↓ Min 2 sources Size < 5% pool No kill switch Max 5% deviation Slippage < limit Position approved Max 30s stale Depth sufficient Rug score < 7
Validation Output (included in dry-run):
DATA VALIDATION REPORT ═════════════════════════════════════ PRICE DATA: PASSED (94/100) ├─ Sources: 3/3 (dexscreener, birdeye, jupiter) ├─ Prices: $0.00042 | $0.000418 | $0.000421 ├─ Deviation: 0.48% (< 5% threshold) ├─ Freshness: 8 seconds ago └─ Status: VALID LIQUIDITY CHECK: PASSED ├─ Available Liquidity: $127,000 ├─ Trade Size: $500 (0.39% of pool) ├─ Estimated Slippage: 0.8% ├─ Depth Ratio: HEALTHY └─ Status: SUFFICIENT RISK CLEARANCE: PASSED ├─ Rug Score: 4/10 (acceptable) ├─ Position Sizing: APPROVED (2.3% of portfolio) ├─ Kill Switch: ACTIVE ├─ Daily Loss Buffer: $1,260 remaining └─ Status: CLEARED OVERALL: APPROVED FOR EXECUTION Quality Score: 92/100 Warnings: None Blockers: None
Rejection Scenarios:
| Condition | Action | Message |
|---|---|---|
| Price quality < 90 | REJECT | "Insufficient price data quality" |
| Single source only | WARN | "Low confidence - single source" |
| Price deviation > 5% | REJECT | "Price disagreement - investigate" |
| Stale data > 60s | REJECT | "Data too old for execution" |
| Size > 5% of pool | WARN | "High slippage expected" |
| Rug score > 7 | REJECT | "Token failed safety check" |
| Kill switch halted | REJECT | "Trading halted - risk limit" |
| </data_validation> |
Real-Time Data Integration
<real_time_data> Data Sources for Execution:
const executionDataSources = { price: { primary: 'jupiter', // Most accurate for Solana swaps fallback: ['dexscreener', 'birdeye'], refresh_interval: 5000, // 5 seconds max_age: 30000, // 30 seconds }, liquidity: { primary: 'jupiter', // Direct pool data fallback: ['raydium-api', 'dexscreener'], refresh_interval: 10000, }, execution: { rpc: 'helius', backup_rpc: 'triton', commitment: 'confirmed', }, };
Pre-Execution Price Fetch:
# Fetch validated price before execution npx tsx .claude/skills/meme-executor/scripts/pre-execution-check.ts \ --token <MINT> \ --size 500 \ --validate-liquidity \ --output json
</real_time_data>
Safety & TODOs
- This skill MUST remain DRY‑RUN ONLY until:
- A secure wallet management pattern is agreed
- Jupiter / router integration is properly tested on devnet
- Data validation pipeline is production-tested
- When enabling live trading:
- Add explicit
flag and environment guardrails--live - Require confirmation in higher‑level orchestration agents
- Implement daily loss limits via risk-portfolio-manager
- Add kill switch command integration
- Require minimum data quality score of 90/100
- Log all executions for audit and backtesting validation
- Add explicit