indian-algo-trading v1.1.9
Changelog
All notable changes to this project will be documented in this file.
Format follows Keep a Changelog.
This project uses Semantic Versioning.
[1.1.9] - 2026-05-26
Changed
- Eliminated five places where the skill contradicted itself on the loopback OAuth login. A clean read by an LLM consumer could previously interpret the manual auth-code paste flow as compliant. Specifically:
- Step 1 question 4 — "default to the loopback SSO pattern" rewritten as a hard
MUSTwith an explicit decision tree ("self-hosted → ship login.py + auth.py" vs "container → don't"). Headless / SSH-only edge case is called out as non-exempting. - Code Architecture diagram — the
(self-hosted only)parenthetical that read as "optional" replaced with two explicit deployment-keyed file lists labelledREQUIRED. - Critical Rule 8 — promoted from "use the loopback SSO login" (suggestion-flavoured) to "Self-hosted strategies MUST ship login.py + auth.py — no exceptions". Adds an explicit list of patterns that are forbidden (
input("auth code: "),VORTEX_ACCESS_TOKENin.env,broker.pywith a manual auth_code parameter) and rebuts three common edge-case excuses (headless box, "portal might not allow localhost", minimal-deps). - Strategy Output Format (the section LLMs use as the final file checklist) — was omitting
login.pyandauth.pyentirely. Now shows two deployment-keyed file lists; container packages explicitly must not includelogin.py/auth.py. references/brokers/rupeezy-vortex.md— deleted the "Advanced (only when the loopback server can't run)" escape hatch that explicitly told the LLM "headless → fall back to manual paste"; replaced with the SSH port-forward recipe. Collapsed the duplicate "Authentication / Self-Hosted OAuth Flow" subsection that was contradicting the Deployment Modes section above it.
- Step 1 question 4 — "default to the loopback SSO pattern" rewritten as a hard
[1.1.7] - 2026-05-26
Added
- Loopback SSO login pattern for self-hosted strategies. New critical Rule 8 in
SKILL.mdrequires shipping alogin.pythat spins up a stdlibHTTPServeron127.0.0.1:8765/callback, opens the SSO URL in the browser, and exchanges the capturedauth_tokenfor anaccess_tokenautomatically. End users never see either token. Strategies read the cached token viaauth.get_client(). Eliminates the most common end-user bug (confusingauth_tokenwithaccess_token). scripts/scaffold_strategy.pygained a--deployment {self-hosted,container}flag (defaultself-hosted). Self-hosted scaffolds shiplogin.py+auth.py;main.pycallsget_client();.env.examplecarriesVORTEX_API_KEY+VORTEX_APPLICATION_ID;requirements.txtpulls inpython-dotenv. Container scaffolds skip the login files entirely:main.pydoes zero-argVortexAPI()(platform injectsVORTEX_ACCESS_TOKEN),.env.examplewarns against putting broker credentials in.env, andpython-dotenvis dropped fromrequirements.txt. "Next steps" output branches accordingly.references/brokers/rupeezy-vortex.mdSelf-Hosted section rewritten with fulllogin.py+auth.pycode listings; manual OAuth flow demoted to an "advanced/headless only" footnote.
Changed
- Ticker-first guidance for vortex-api >= 2.1.8. Critical Rule 1 in
SKILL.mdand the entirereferences/brokers/rupeezy-vortex.mdreference now teach identifying instruments by ticker ("NSE:RELIANCE") instead of(exchange, token)pairs. Updated examples:place_order(ticker=...),historical_candles(ticker=...),get_order_margin(ticker=...)client.quotes(instruments=["NSE:RELIANCE"], ...)— tickers accepted directlywire.subscribe(ticker=..., mode=...)and readingtick["ticker"]from VortexFeed updatesclient.instruments.get_by_ticker(...)/get_by_exchange_token/get_by_isin/all_by_underlying/filterreplace hand-rolled CSV scanning
- Replaced the broken
from vortex import Client+master[master['tradingsymbol']==…]snippet inreferences/backtesting.mdwith a working ticker-formhistorical_candlescall. references/indian-market.mdtick-size lookup, data-sources table, and "Always download fresh instrument master" sections now point toclient.instrumentsfor Vortex while remaining broker-agnostic.scripts/validate_strategy.py— the "hardcoded token" violation message now recommends the ticker form first, withclient.instruments.get_by_ticker(...)as the metadata-access path.- Documented the IDX ticker convention for indices (
"NSE:NIFTYIDX","NSE:BANKNIFTYIDX","BSE:SENSEXIDX") — the suffix lives on the ticker, the underlying symbol stays bare. - Bumped
requirements.txtexample fromvortex-api>=1.0.0tovortex-api>=2.1.8.
Notes
- Legacy
(exchange, token)form is still accepted by the SDK but emitsFutureWarning. One legacy example is retained per surface (orders, websocket) so users on older code can recognise the deprecated pattern.
[1.1.4] - 2026-03-31
Changed
- Restructured repo to native plugin layout (skill files under
skills/indian-algo-trading/) - Repo is now directly installable as a Cowork marketplace — no build step needed
- Updated Makefile for new directory structure
[1.1.1] - 2026-03-31
Added
marketplace.jsonfor plugin discoverability in marketplaces- Dual packaging:
.skill(platform-agnostic) and.plugin(Claude + Rupeezy MCP) .mcp.jsonbundling Rupeezy Trading and Strategy Platform MCP servers- Makefile with
skill,plugin,all,release,validate, andtest-scaffoldtargets - CONTRIBUTING_BROKER.md — step-by-step guide for adding broker adapters with AI prompt template
validate_broker_adapter.py— automated broker adapter validation script
Changed
- Removed MCP tool docs from
rupeezy-vortex.md(auto-discovered via.mcp.json)
[1.0.0] - 2026-03-31
Added
Core Skill
- SKILL.md with pre-flight checklist, reference routing table, 13 critical rules, and code architecture patterns
- Progressive disclosure: 290-line brain routes to 16 reference files by context
Reference Files (16)
strategy-patterns.md— 6 core + 5 advanced strategy patterns with code skeletonsrisk-management.md— position sizing (fixed fractional, ATR, Kelly Lite), drawdown controls, F&O margin monitoringindian-market.md— market timings, expiry calendar, STT rates FY 2025-26, circuit limits, auction risk, tick sizes, DPR, NSE no-API rulebacktesting.md— library selection guide, realistic transaction costs, parameter optimizationerror-handling.md— order state machine, partial fills, graceful shutdown, state persistencecode-quality.md— project structure, logging, pytest patterns, config managementoptions-greeks.md— Black-Scholes, delta-neutral, gamma scalping, theta harvesting, IV vs RVregime-detection.md— HMM for 3 regimes, strategy decay via rolling Sharpeindia-data-edge.md— FII/DII flows, OI analysis, PCR, max pain, delivery %, rollover, GIFT Niftyexecution-alpha.md— TWAP, VWAP, iceberg, impact cost, NSE intraday timing patternsrobustness-testing.md— walk-forward optimization, Monte Carlo, sensitivity analysisportfolio-construction.md— multi-strategy allocation, correlation-aware sizing, decay rotationpsychological-guardrails.md— daily loss breaker, consecutive loss pause, weekly throttle, killswitchtax-optimization.md— STCG vs LTCG (20% vs 12.5%), tax-loss harvesting, F&O business incomepython-performance.md— vectorization, Numba JIT, Polars, async, profiling workflow
Broker Support
brokers/rupeezy-vortex.md— full Vortex SDK reference (primary broker)brokers/BROKER_TEMPLATE.md— 12-section template for community broker adaptersbrokers/CONTRIBUTING_BROKER.md— step-by-step guide for adding a new broker with AI prompt template, verification checklist, and maintainer review process
Scripts
validate_strategy.py— AST-based linter checking for hardcoded tokens, missing stop-loss, print statements, NSE scraping, tick size roundingvalidate_broker_adapter.py— validates broker adapter docs against template structure, checks for placeholders, constants completeness, OAuth flow documentationscaffold_strategy.py— generates best-practice project skeleton with main.py, strategy.py, risk_manager.py, guardrails.py, config.py, tests/
Assets
assets/strategy_template/— 9 standalone template files matching scaffold output, browsable as reference
Evals
evals/evals.json— 10 test prompts with 65 assertions covering all critical skill capabilities
Governance
- CONTRIBUTING.md with 6 contribution types, trust tiers, DCO, code of conduct
- Strategy patterns are core-team only (not open for community contribution)
- Apache 2.0 license