# OpenMobius-skill: a trading knowledge skill that refuses to guess

> OpenMobius-skill packages 2008 curated ICT/SMC and ChanLun knowledge cards as a SKILL.md skill for Claude Code, Codex, OpenClaw, Hermes, Cursor and WorkBuddy. A request resolves its school and source scope first and then passes a capability gate, so an unsupported current-market route stops instead of borrowing another school's analysis.

**MobiusQuant/OpenMobius-skill** — ICT/SMC trading-knowledge skill for AI coding agents (Claude Code / Codex / OpenClaw / Hermes)

- Repository: https://github.com/MobiusQuant/OpenMobius-skill
- Website: https://www.mobiusquant.ai/
- Stars: 689 · Forks: 58
- Language: Python
- License: Apache-2.0
- Published: 2026-09-20 · Updated: 2026-09-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/mobiusquant-openmobius-skill

## The capability gate stops the request instead of guessing

The routing pipeline resolves intent, then mode, lens and school or source scope, and only then reaches a capability gate. If the route behind that gate has no native market analyzer, the skill stops before any market data call or chart work and returns a capability-gap response.

The example given is a request to analyse BTC on the 1h using ChanLun. There is no native ChanLun market analyzer, so the answer stops, and the README is explicit about the rule behind it: SMC output is never relabelled as ChanLun. That single line is the difference between a knowledge skill and a guessing machine, because the tempting shortcut is to run the one analyzer you have and rename the result.

The same rule governs evidence. A selector that asks for one specific source with no matching material fails closed rather than widening the filter to something adjacent.

## Selectors hard-filter by school and by source

Two selector levels exist and both are applied as filters on the evidence itself. Asking for order blocks using only one author's SMC material hard-filters atomic evidence by both `school=SMC` and `source=Teach-Wuyuan`, and an empty intersection fails closed rather than degrading to the wider school.

Explicit selectors never silently fall back to ICT/SMC, which is stated as a rule rather than a preference. The default is strict ICT/SMC when neither the request nor the conversation supplies a lens, school, source or exclusion, so the out-of-the-box behaviour is the narrow one and widening is always something you asked for.

Three composition modes are reported when you ask what the skill can do. `strict` is the default. `augment` lets a primary school control bias and trade levels while reference evidence from another school is labelled supporting context. `compare` runs separate attributed branches, so conflicting definitions of market structure stay separate instead of being averaged into one answer.

## Capability questions read a registry, not the market

The discovery question is deliberately inert. Asking what analysis models you can use reads the installed capability registry and separates three different kinds of thing: native market-analysis profiles, Q&A-only lenses, and knowledge categories.

That separation is the point. A category is not an analyzer, and the skill will not present one as the other. The response also reports the available composition modes, and it fetches no market data while doing it, so a capability question stays cheap even on a first run when the index is still building.

The same discipline appears in indicator handling. Asking for a named indicator is a pass-through to the indicator API with no auto-fetch of indicators you did not name, which keeps a one-indicator question from quietly pulling a full indicator set.

## The first install downloads about 800 MB

The installer copies source files into `~/.claude/skills/openmobius-skill/` or the chosen platform's skills directory, and then does six things in that directory. It creates a `.venv/` and installs dependencies, downloads Playwright chromium at roughly 280 MB into the operating system's user-global cache, downloads the pinned `nomic-embed-text-v1.5` weights at roughly 547 MB into the HuggingFace cache, loads the bundled canonical vectors and the verified release seed and builds three collections, generates the platform-specific `SKILL.md`, and runs a health check.

Only locally changed or missing documents are embedded and cached, and every collection is verified after it is built. So the cost falls almost entirely on the first run: later runs reuse the release seed or the local embedding cache for unchanged records.

Each installed copy is self-contained, owning its own `.venv` and `_index`. The clone you downloaded is a one-shot source bundle, which is why the quick start removes it before you do anything else.

## The clone is disposable and the install is not

The quick start clones into a temporary directory rather than into your home folder:

```bash
OPENMOBIUS_SRC="$(mktemp -d "${TMPDIR:-/tmp}/openmobius-src.XXXXXX")"
git clone https://github.com/MobiusQuant/OpenMobius-skill.git "$OPENMOBIUS_SRC"
cd "$OPENMOBIUS_SRC"
python3 install.py --platform claude-code     # or codex / openclaw / hermes / cursor
# On Linux/macOS, `all` installs all five local-path hosts. WorkBuddy uses local ZIP import.

cd "${TMPDIR:-/tmp}"
rm -rf -- "$OPENMOBIUS_SRC"                    # ✓ exact mktemp directory only
```

Five hosts install from a local path, and WorkBuddy is the exception because it uses a local ZIP import. On Windows the same installer runs as `py -3 install.py --platform claude-code`, or through `install.ps1`, and the repository ships all three: a Python entry point plus shell and PowerShell wrappers.

If an agent is doing the install rather than you, the README points it at a separate procedure file with pre-flight checks, the install command, verification and error handling, which is a sensible split for something that writes into a skills directory and pulls a gigabyte.

## A pasted CSV is never swapped for a live series

Two data rules protect the numbers you brought. Paste a CSV of OHLCV and the skill preserves that snapshot, extracts structure locally, and will not replace it with a different live series merely to render a chart. Attach a chart image with a request to analyse it and the route may refresh and cross-check the readable asset and timeframe, but if it cannot identify them reliably the result stays visual only and says what its limits are.

Chart generation goes through Playwright and the lightweight-charts library, and a request that names an entry, stop loss and target gets exactly that rendered chart. Sounding like an ordinary feature, this is the part that decides whether two runs of the same question are comparable, since a silently refreshed series would move the levels under you.

The runtime floors are declared in one file: chromadb, sentence-transformers, transformers, numpy, einops, Pillow, playwright and an optional openai entry for a remote OpenAI-compatible embedding.

## Dependency floors keep trust_remote_code disabled

The most interesting line in the dependency file is a comment. The sentence-transformers floor is 5.3 and transformers is pinned below 6, and the stated reason is that v5.3 and later use the built-in Nomic text implementation, which lets the runtime keep `trust_remote_code` disabled.

That is a real decision for an embedder, because the alternative is fetching model code from a remote repository and executing it. Everything else in the file is a floor with no ceiling: chromadb at 0.5 for the vector store, numpy at 1.24, einops at 0.7 as a Nomic dependency, Pillow at 10 for annotating uploaded images, playwright at 1.40 for rendering. Python 3.10 or newer is the stated prerequisite.

The rest of the tree explains how the project is run rather than shipped: `SKILL.md` is generated from `SKILL.body.md` per platform, with `platforms/`, `agents/`, `evals/`, `workflows/`, `tests/` and `scripts/` beside it, and `ATTRIBUTION.md`, `PRIVACY.md` and a bilingual `CHANGELOG` for the knowledge base. There are no GitHub releases, and the last push is 2026-09-04.

## Conclusion

OpenMobius-skill fits someone who has been burned by a chart tool quietly answering with a different school of analysis than the one asked for, because fail-closed behaviour is the whole design and the source and school filters are visible in the routing rules. It does not fit someone who wants a general market assistant, since only a small set of routes have a native analyzer behind them. Before installing, budget the download, because chromium and the embedder weights total roughly 800 MB on first run, and check the compatibility statement for your host, since there are no tagged releases at all and the last push is 2026-09-04.

## FAQ

### What does OpenMobius-skill install?

2008 curated knowledge cards, real-time market data, technical indicators and chart generation as a SKILL.md-standard skill for Claude Code, Codex, OpenClaw, Hermes, Cursor and WorkBuddy. The installer also fetches Playwright chromium and the pinned nomic-embed-text-v1.5 weights.

### How does OpenMobius-skill handle a request it cannot serve?

It stops before market-data or chart work and returns a capability-gap response. A ChanLun current-market analysis fails because no native ChanLun analyzer exists, and SMC output is never relabelled as ChanLun. A source selector with no matching evidence fails closed.

### How do I install OpenMobius-skill for Claude Code?

Clone into a temporary directory, run `python3 install.py --platform claude-code`, then delete the clone. The installed copy under `~/.claude/skills/openmobius-skill/` is self-contained with its own `.venv` and `_index`. On Windows use `py -3 install.py` or `install.ps1`.

### How much does OpenMobius-skill download on the first run?

Playwright chromium at roughly 280 MB into the OS user-global cache and the pinned nomic-embed-text-v1.5 weights at roughly 547 MB into the HuggingFace cache. Later runs reuse the release seed or the local embedding cache for unchanged records.

## Sources

- [Issues](https://github.com/MobiusQuant/OpenMobius-skill/issues)
- [License: Apache-2.0](https://github.com/MobiusQuant/OpenMobius-skill/blob/main/LICENSE)
- [MobiusQuant/OpenMobius-skill on GitHub](https://github.com/MobiusQuant/OpenMobius-skill)
- [Project website](https://www.mobiusquant.ai/)
- [README](https://github.com/MobiusQuant/OpenMobius-skill/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mobiusquant-openmobius-skill
