Supply-Chain Bottleneck Hunter
HKUDS/Vibe-Trading
Breaks a structural trend such as AI infrastructure into its physical supply chain and ranks lesser-known listed companies sitting on each bottleneck.
Read-only skill for browsing Itô basket catalogs, comparing a basket with your notes, and briefing on prediction markets, with no trading or advice.
$ npx skills add affaan-m/ECC --skill ito-baskets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install affaan-m/ECC ito-baskets --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ito-baskets .claude/skills/ito-baskets && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .claude/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/affaan-m/ECC/tree/main/skills/ito-basketsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add affaan-m/ECC --skill ito-baskets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install affaan-m/ECC ito-baskets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ito-baskets .agents/skills/ito-baskets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .agents/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add affaan-m/ECC --skill ito-baskets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install affaan-m/ECC ito-baskets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ito-baskets .cursor/skills/ito-baskets && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .cursor/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/affaan-m/ECC.git --path skills/ito-baskets--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add affaan-m/ECC --skill ito-baskets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install affaan-m/ECC ito-baskets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ito-baskets .gemini/skills/ito-baskets && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .gemini/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install affaan-m/ECC ito-basketsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add affaan-m/ECC --skill ito-baskets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ito-baskets .github/skills/ito-baskets && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .github/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add affaan-m/ECC --skill ito-baskets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install affaan-m/ECC ito-baskets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ito-baskets .opencode/skills/ito-baskets && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ito-baskets" agent skill from https://github.com/affaan-m/ECC/tree/main/skills/ito-baskets into .opencode/skills/ito-baskets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ito-baskets", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ito-basketsRead-only skill for browsing Itô basket catalogs, comparing a basket with your notes, and briefing on prediction markets, with no trading or advice.
Each request uses exactly one of four modes. Index browses the basket catalog, basket detail or market search and produces a normalized table with provenance. Compare runs a deterministic gap analysis of a basket against research, notes or a watchlist you supply, labeling items as match, conflict, missing or stale. Brief builds a source-grounded summary of events, venues, underliers, liquidity and news with retrieval metadata. Worksheet drafts a non-executable planning sheet of constraints and open questions for a person to review.
The boundaries are strict. It never advises buying, selling or sizing, never places, cancels, simulates or submits orders, and never uses the separate compute bridge for basket data. It does not print or store keys or tokens, reads only the private files you pick, treats fetched content as untrusted data, and stops with `UNSUPPORTED_OPERATION` for anything that could change external state. Access prefers anonymous public reads of the catalog and detail endpoints, and a script is bundled. It replaces four older Itô skills.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4eb71d9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
itomarkets.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ITO_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Itô Baskets Read-Only Data loads about 3.3k tokens when it runs. Until then it costs about 124 tokens; SKILL.md has 1,425 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from affaan-m/ECC at commit 4eb71d9, republished under its MIT licence (© affaan-m). 1,425 words, ~3,330 tokens.
.claude/skills/ito-baskets/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.One read-only skill for every Itô basket/market data workflow. It replaces the
former ito-basket-compare, ito-market-intelligence, ito-data-atlas-agent,
and ito-trade-planner skills; requests naming those route here.
Trigger examples include “compare this basket”, “basket vs watchlist”, “event discovery”, “venue comparison”, “basket theme exploration”, “market brief”, and “planning worksheet”.
Pick exactly one mode per request:
match / conflict / missing /
stale).ecc ito find submits an
authenticated RFQ and ecc ito status reads RFQ/procurement status, not
basket data. The compute bridge, compute device credential, and compute MCP
tools are a separate surface and are never a substitute for basket/market
reads.UNSUPPORTED_OPERATION.Use the weakest access that satisfies the request, in this order:
https://itomarkets.com —
GET /api/baskets/bootstrap?stream=1 (catalog) and
GET /api/baskets/{basket_id}/bootstrap?stream=1 (detail), plus
GET /api/markets/hot. No login and no key. Require HTTP 200,
contractVersion: ito.public_basket_read.v1, and a parseable
generated_at; a catalog response needs a baskets array and a detail
response needs basket, underlyers, charts, metrics, and
commentary. Record Date, Cache-Control, Age, Last-Modified, and
x-ito-edge-cache; an edge stale marker means stale provenance even when
generated_at is recent. Never send credentials to these routes, never
follow cross-origin redirects, and never silently accept a changed contract
version. Label this data public, never ito_authenticated.https://itomarkets.com/api/v1 — GET-only
routes (/baskets, /baskets/{id} and documented children,
/markets/search, /markets/{id}, /markets/{id}/history) requiring
exactly baskets:read and/or markets:read, sent only as
Authorization: Bearer <key> to that exact HTTPS origin. Least-privilege
public keys use the bkt_* form and are operator-issued. Do not create,
rotate, or broaden a key to unblock a read; do not use a write scope,
dashboard automation key, cookie, or compute device credential. If no
scoped key is configured, mark keyed access blocked and continue with
anonymous or user-supplied data rather than fabricating parity.ito-markets (imported as ito) for typed,
repeatable reads. Record the installed version and verify the method,
response type, origin, and required scope first. Installation changes the
environment: propose the exact package/version and get confirmation before
installing.This skill never uses device authorization or ecc ito login; those belong to
the compute surface and cannot unlock basket/market reads.
scripts/ito-baskets.js is a dependency-free, GET-only client covering both
public surfaces. Run it only when the user has asked for Itô data — not merely
because a key exists.
# Anonymous index reads (no credential is ever sent):
node scripts/ito-baskets.js --json basket-index
node scripts/ito-baskets.js --json basket-detail --basket-id <id>
# Keyed reads (require ITO_API_KEY in the environment):
node scripts/ito-baskets.js --json list-baskets --page 1 --per-page 25
node scripts/ito-baskets.js --json search-markets --platform all --limit 25
node scripts/ito-baskets.js --json get-market --market-id <id>
node scripts/ito-baskets.js --json market-history --market-id <id> --days 30The client reads ITO_API_KEY only for keyed commands, transmits it only to
the configured Itô HTTPS origin, and never logs it. ITO_MARKET_API_URL and
ITO_PUBLIC_API_URL override origins for deterministic local tests only
(HTTPS required; HTTP allowed solely for loopback). Every result carries
access_mode, retrieved_at, source URL, HTTP status, cache headers,
rate-limit metadata, and a freshness caveat.
basket-index (or a keyed list-baskets/search-markets when the
user explicitly requested keyed data and a scoped key is configured).basket_id, label, theme, underlier count,
observable quote fields, as_of, freshness_status, source URL.basket_id; mark unknowns null; never invent a price,
volume, or liquidity value absent from the response.basket_id or label plus underliers with
underlier_id, label, event/claim, and any supplied weight/probability.
Request missing material instead of searching private stores broadly.[0,1],
dedupe only exact normalized underlier_id (retain first by provenance
order and record a conflict on disagreement; never silently merge).as_of is unknown, never substituted
with the current time.match, conflict, missing,
or stale. Keep mixed-source disagreement visible. Sort every result array
by underlier_id then evidence source_uri.unknown.Run prediction-market-risk-review before any workflow touches user capital,
portfolio data, automation, keys, venue auth, or execution-capable tooling.
Record for every input and response:
source_type: user_provided, public, or ito_authenticatedsource_uri: non-secret URL/identifier, or null for pasted materialretrieved_at: UTC RFC 3339 retrieval timeas_of: source observation/publication time, or null when unknownfreshness_status: fresh, stale, or unknownaccess_mode: anonymous, authenticated, or localNever relabel cached, fixture, anonymous, or fabricated data as live or authenticated.
INVALID_INPUT — missing/invalid fields; name fields without echoing
sensitive content.AUTH_MISSING — no scoped key for a requested keyed read; state the scope
(baskets:read/markets:read) and the operator-driven issuance channel.
Never collect a key in chat.AUTH_REJECTED (401) — the key may be expired, revoked, or mis-scoped; a
generic 401 is not proof of revocation.AUTH_FORBIDDEN (403) — missing read scope; never retry, broaden scope, or
request a write scope.RATE_LIMITED (429) — honor a valid Retry-After once within the user's
deadline; never loop. The documented read budget is 120 requests/minute.TIMEOUT / UPSTREAM_ERROR / INVALID_RESPONSE — at most one read-only
retry within the deadline; preserve prior cited facts, label the live
snapshot unavailable, and never substitute mock or stale data while calling
it live.STALE_SOURCE — blocked unless the user explicitly accepts the displayed
timestamps for informational use; keep freshness_status: stale regardless.UNSUPPORTED_OPERATION — any state-changing request; terminal for this
skill.Partial results use status: blocked or partial with incomplete: true,
retain only source-backed arrays, and are never presented as complete.
Default to concise Markdown. Index: catalog table + provenance. Compare:
basket summary, comparison target, provenance/freshness, matches, conflicts or
stale assumptions, missing context, research-question checklist. Brief:
retrieved_at, sources, facts, signals, interpretation, open questions.
Worksheet: the YAML shape below. Structured JSON output uses stable key order
with schema_version: "1.0", status, sources, and mode-specific arrays;
blocked output carries error.code, error.message, error.retryable, and
a secret-free resume block.
plan_status: ready_for_manual_review | blocked
mode: indicative_non_executable
hypothesis: "neutral restatement"
markets:
- market: "identifier or unknown"
venue: "venue or unknown"
observable_status: "value or unknown"
source_url: "source URL or unknown"
retrieved_at: "ISO-8601 timestamp or unknown"
resolution_rule: "summary or unknown"
liquidity_caveat: "text or unknown"
constraints:
jurisdiction_eligibility: "confirmed | unconfirmed | unknown"
limit: "user supplied value or unknown"
maximum_spend: "user supplied value or unknown"
fees: "value or unknown"
decision_deadline: "value or unknown"
data_freshness: "timestamp and caveats"
risk_review:
status: pass | warn | fail | not_run
findings: []
blocked_actions:
- "order placement, cancellation, routing, signing, and submission"
next_safe_step: "one non-executing review action"End every human-readable result with exactly one closing line for the mode:
This is market data, not investment or trading advice.This comparison is informational and not investment or trading advice.This is a planning worksheet, not investment or trading advice. Review venue rules and make any trading decisions yourself.deep-research or exa-search for source discovery.x-api for public social signal discovery when configured.market-research for sizing, competitors, or business use cases.prediction-market-risk-review before anything execution-adjacent.ito-compute only when the user separately wants GPU compute; the two
surfaces share no credentials.© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/ito-baskets of affaan-m/ECC.
Open the folder on GitHubat commit 4eb71d9
Itô Baskets Read-Only Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Itô Baskets Read-Only Data this skillaffaan-m/ECC | 276k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Supply-Chain Bottleneck HunterHKUDS/Vibe-Trading | 35k | — | ~2.7k | Automated safety check: Pass | MIT | |
| China Market Open Data SearchOpenSenseNova/SenseNova-Skills | 5.7k | — | ~954 | Automated safety check: Notes | MIT | |
| Hehe Financial Analysishexiaofeier/hehe-industry-research-skill-pack | 306 | — | ~1k | Automated safety check: Pass | MIT | |
| Consulting Analysisbytedance/deer-flow | 84k | 4 repos | ~8.4k | Automated safety check: Pass | MIT | |
| AI-Trader Market IntelHKUDS/AI-Trader | 23k | — | ~1.1k | Automated safety check: Pass | None |
HKUDS/Vibe-Trading
Breaks a structural trend such as AI infrastructure into its physical supply chain and ranks lesser-known listed companies sitting on each bottleneck.
OpenSenseNova/SenseNova-Skills
Researches Chinese market, macro, trade, procurement, listed-company and regulatory information from free official sources that need no sign-up or API key.
hexiaofeier/hehe-industry-research-skill-pack
盒子原创研究 Skill 体系中的企业财务分析大专项。重构并勾稽利润表、资产负债表和现金流量表,诊断增长、盈利、现金转换、资产质量、资本效率、债务与会计质量,并在需要时建立驱动式预测和压力测试模型。
bytedance/deer-flow
A skill your agent uses when the user requests to generate, create, or write professional research reports including but not limited to market analysis, consumer insights, brand analysis, financial…
HKUDS/AI-Trader
Reads AI-Trader's read-only market snapshots, grouped financial news and events board through its market-intel endpoints, for context before trading or posting.
HKUDS/Vibe-Trading
Index of Eastmoney's free, no-token market data interfaces for China A-shares and Hong Kong stocks: fund flows, dragon-tiger lists, margin trading, reports and news.
affaan-m/ECC
Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.
affaan-m/ECC
Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.
affaan-m/ECC
Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.
affaan-m/ECC
Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.
affaan-m/ECC
Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.
affaan-m/ECC
Measures whether agents actually follow a skill, rule or agent definition by generating scenarios at three strictness levels and scoring tool-call traces.
Categories
Read-only skill for browsing Itô basket catalogs, comparing a basket with your notes, and briefing on prediction markets, with no trading or advice. Each request uses exactly one of four modes. Index browses the basket catalog, basket detail or market search and produces a normalized table with provenance.
Itô Baskets Read-Only Data fits situations like: browsing or indexing the live basket catalog with sources attached; comparing a basket against your research notes or a watchlist; researching prediction-market events, venues and liquidity for a brief; drafting a planning worksheet for a basket idea without placing any trade.
Run `npx skills add affaan-m/ECC --skill ito-baskets -a claude-code`. Or copy the skill folder (skills/ito-baskets in affaan-m/ECC) into .claude/skills/ito-baskets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add affaan-m/ECC --skill ito-baskets -a codex`. Or copy the skill folder (skills/ito-baskets in affaan-m/ECC) into .agents/skills/ito-baskets in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill ito-baskets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ito-baskets, .gemini/skills/ito-baskets, .github/skills/ito-baskets and .opencode/skills/ito-baskets in your project.
Going by SKILL.md and its folder, Itô Baskets Read-Only Data needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node) and credentials named ITO_API_KEY. Our summary lists: Network access to the public Itô basket endpoints.
SKILL.md names 1 domain. In commands or code: itomarkets.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Itô Baskets Read-Only Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Itô Baskets Read-Only Data: Supply-Chain Bottleneck Hunter (HKUDS/Vibe-Trading, 35k stars), China Market Open Data Search (OpenSenseNova/SenseNova-Skills, 5.7k stars), Hehe Financial Analysis (hexiaofeier/hehe-industry-research-skill-pack, 306 stars) and Consulting Analysis (bytedance/deer-flow, 84k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,111 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 10, 2026.
Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.