Verified every CLI flag, MCP tool parameter and neural-trader flag these plugins
tell the model to use against @claude-flow/cli 3.56.5 (--help and MCP schemas) and
neural-trader 2.8.11 (run offline), and fixed what was false:
- intelligence: neural_train needs modelType (no patternType/--pattern-type; CLI
flag is --pattern), hooks_model-outcome/trajectory-end/pretrain/build-agents/
explain parameters, mcp tool call -> mcp exec, microlora has no consolidate;
intelligence-transfer rewritten (hooks_transfer only copies from a local
project; marketplace is hooks transfer store ..., PINATA_API_KEY/SECRET, PII
scan + confirmation before publish).
- loop-workers: CronCreate takes {cron,prompt,recurring} and is session-scoped
(7-day expiry), ScheduleWakeup needs prompt, 270s heartbeat qualified by TTL.
- market-data: candles were routed to the ~11-pattern ruvllm_hnsw router;
untrusted-feed rules; no order placement.
- neural-trader: many documented flags answer "Unknown command" in 2.8.11; several
handlers return demo output; backtests/signals use synthetic bars without
--live; backtest signing now refuses non-live data; live/broker path and
circuit-breaker claims corrected; signal TTL used a non-existent expiresAt.
- iot-cognitum: pin the fleet CLI instead of @latest; confirmation gates for
firmware deploy/advance/rollback and fleet delete.
- migrations: confirmation/dry-run/validate gates before migrate up/down.
- music: bearer token only sent to music.cognitum.one; pin cogmusic@0.1.1; token
never enters the transcript.
- jujutsu: analyze_diff* take a ref, not diff text; gate PR merge/close/create.
- knowledge-graph: align relation weights with kg-extract.
- Removed the invalid post-task --train-neural flag everywhere in these plugins.
Plugin versions bumped (marketplace users only receive changes after a bump):
intelligence 0.4.3, loop-workers 0.3.4, market-data 0.3.4, neural-trader 0.3.5,
iot-cognitum 0.3.3, jujutsu 0.3.4, knowledge-graph 0.3.4, migrations 0.3.4,
music 0.2.4. metaharness reviewed, no change needed.
Co-Authored-By: RuFlo <ruv@ruv.net>
5.1 KiB
ruflo-market-data
Market data ingestion -- feed normalization, OHLCV vectorization, and candlestick pattern detection (read-only analysis, no order placement).
Overview
Ingests market data from REST APIs and WebSocket feeds, normalizes to OHLCV vectors with consistent scaling, and vectorizes candlestick patterns for similarity search (use ruflo-ruvector for nearest-neighbour search over history; the built-in ruvllm_hnsw_* router holds only about 11 patterns). Detects single-candle (doji, hammer) and multi-candle (engulfing, morning star, head & shoulders) formations with reliability scoring.
Installation
claude --plugin-dir plugins/ruflo-market-data
Agents
| Agent | Model | Role |
|---|---|---|
data-engineer |
sonnet | Ingest market feeds, normalize OHLCV, vectorize candlestick patterns, pattern matching |
Skills
| Skill | Usage | Description |
|---|---|---|
market-ingest |
/market-ingest <symbol> [--source api] |
Ingest and normalize market data into OHLCV vectors stored by symbol and date |
market-pattern |
/market-pattern <symbol> [--period 1D] |
Detect and classify candlestick patterns from ingested data |
Commands (5 subcommands)
market ingest <symbol> [--period 1D] # Ingest and normalize OHLCV data
market patterns <symbol> # Detect candlestick patterns
market search <pattern-name> # Search historical pattern occurrences
market history <symbol> # Show ingestion history and data coverage
market compare <sym1> <sym2> # Compare pattern profiles between symbols
OHLCV Normalization
| Field | Normalization |
|---|---|
| Open | Relative to previous close: (open - prev_close) / prev_close |
| High | Relative to open: (high - open) / open |
| Low | Relative to open: (low - open) / open |
| Close | Relative to open: (close - open) / open |
| Volume | Z-score: (vol - mean_vol) / std_vol |
Pattern Library
| Pattern | Type | Candles | Reliability |
|---|---|---|---|
| Doji | Reversal | 1 | Medium |
| Hammer | Reversal | 1 | Medium-High |
| Engulfing | Reversal | 2 | High |
| Morning/Evening Star | Reversal | 3 | High |
| Three White Soldiers | Continuation | 3 | High |
| Head & Shoulders | Reversal | 5-7 | Very High |
| Double Top/Bottom | Reversal | Variable | High |
Each pattern is encoded as a 64-dimension padded vector.
Compatibility
- CLI: pinned to
@claude-flow/cliv3.6 major+minor. - Verification:
bash plugins/ruflo-market-data/scripts/smoke.shis the contract.
Namespace coordination
This plugin owns two AgentDB namespaces (kebab-case, follows the convention from ruflo-agentdb ADR-0001 §"Namespace convention"):
market-data— normalized OHLCV vectors per symbol+datemarket-patterns— detected candlestick patterns with reliability scores
Both accessed via memory_* (namespace-routed). Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.
Routing note: Earlier versions of these skills used
agentdb_hierarchical-*andagentdb_pattern-*with namespace arguments — those tool families route by tier/ReasoningBank and ignore namespace strings. ADR-0001 fixed the skills to usememory_*for namespaced reads/writes.
Verification
bash plugins/ruflo-market-data/scripts/smoke.sh
# Expected: "11 passed, 0 failed"
Architecture Decisions
Related Plugins
ruflo-agentdb— namespace convention owner; defines the routing rules ADR-0001 fixes violations ofruflo-neural-trader-- Consumes market patterns as strategy signalsruflo-ruvector-- HNSW indexing engine for nearest-neighbour search over candle windowsruflo-observability-- Data feed health and ingestion latency dashboards
License
MIT
As a mod
This plugin ships a function-hook mod (ADR-445, hooks/register.ts). It makes no network call, spawns no process and makes no model call.
- Guard (tighten-only, on by default): Refuses writes to a
market*namespace (memory_store,agentdb_pattern-store,agentdb_hierarchical-store,ruvllm_hnsw_add) that hold a key or token, or a feed URL with a credential in its query string or asuser:pass@host. Other namespaces are untouched. A refusal never echoes the secret. /market-mod:status,recent,tools(which of this plugin's tools are connected) andscan <text>(would the guard refuse it). Answered locally.- Status file:
.claude-flow/market-mod/status.json({version: 1, updatedMs, guard, calls, total, blocked, recent}, counters only, never tool input), written at session start and after every call to this plugin's tools.
Options (userConfig): guard (on).
Test it: claude plugin validate plugins/ruflo-market-data, claude plugin test plugins/ruflo-market-data, bash plugins/ruflo-market-data/scripts/smoke.sh.