Releases: RupeezyTech/algo_ai_skill
indian-algo-trading v1.1.13
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.10] - 2026-05-26
Added
OrderTrackerclass (canonical inreferences/code-quality.md; scaffolded asorder_tracker.pyfor live strategies). Postback-driven, refreshes from orderbook + tradebook with 500 ms debounce, fireson_terminal(order_id, status)for every terminal transition. API:initialize,on_update,on_terminal,wait(order_id, timeout)(timeout required),cancel_and_wait,status/order/fills/avg_fill_price.- Scaffolder generates
order_tracker.pyfor--type live; wires it throughmain.py(initialize→on_terminal→ connect feed) and adds anon_order_terminalmethod tostrategy.py(replaces the emptyon_order_fill/on_order_cancelstubs).
Changed
- Critical Rule 9 rewritten — postback is a signal, orderbook is the truth. Names all five envelope types (
order,trade,sl_trigger,gtt_order,position_conversion); strategy code refreshes fromclient.orders()/client.trades()instead of parsingmsg["data"]; postbacks coalesced via 500 ms debounce. Live strategies useon_terminal;wait()reframed as a script/test primitive with requiredtimeout. - Broker reference Common Patterns rewritten around
OrderTracker.on_terminal+initialize();orders()/order_history()callouts now distinguish sleep-loop polling (anti-pattern) from postback-driven refresh (recommended). - SKILL.md halved — 405 → 216 lines, ~5.5K → ~2.8K always-loaded tokens. No rules removed, only verbosity. Step-1, Code Architecture, Rule 8, Output Format, Backtesting Standards, and Proactive Suggestions rewritten as terse bullets.
Fixed
- Skill was teaching order-status polling.
references/code-quality.mdshipped await_for_order_fill()that polledbroker.get_order_status()in awhile time.sleep(0.5)loop, with a docstring rationalising "polling instead of events to avoid callback hell". Rewritten as event-driven; Rule 9 and broker callouts now explicitly forbid sleep-loop polling. - Postback envelope shape. Real payload is
{type, data, client_code}; examples were reading the inner fields at the top level (wouldKeyErroron real traffic). All examples now filter onmsg["type"]and unwrapmsg["data"]. - Thread-start race in
OrderTracker.on_update—try/finallyresets_worker_runningifThread.start()raises, preventing silent permanent refresh stoppage. on_terminaldeduplication via_notified_terminalset; an order staying terminal across multiple refreshes only fires the callback once.- Stale
lookup_token(master, "RELIANCE", "NSE_EQ")snippet in broker reference Common Patterns — nowticker="NSE:RELIANCE". COMPLETEDvsEXECUTEDalias — same state under two names (postback envelope returnsCOMPLETED,client.orders()returnsEXECUTED).OrderTracker.TERMINALandSUCCESSnow include both. Without this, the orderbook refresh would never fireon_terminalfor filled orders.- Postback-vs-REST lag broke the reference
OrderTrackeron rejections (field-test fix). Real-world: WS pushesREJECTEDpostbacks within ms ofplace_orderreturning, butclient.orders()keeps returningPENDINGfor the sameorder_idfor ~30 seconds. The previous "postback = signal, REST = truth" model missed rejections and let stale REST overwrite a terminal status. Reframed as split authority: postbackdata.statusis authoritative for status transitions; REST is authoritative for fill quantities / prices.OrderTracker.on_updatenow fast-paths terminalorderpostbacks (mirrors payload into cache, fireson_terminalsynchronously on the WS thread)._applyhas a downgrade guard: once a terminal status is recorded, a later non-terminal REST row merges fill fields but does NOT overwritestatus. - Substring terminal-status detection. Brokers emit decorated forms (
REJECTED_BY_RMS,AMO_CANCELLED,EXECUTED_PARTIAL). The previous strict set membership check missed these.OrderTracker._terminal_token()substring-matches against canonical tokens and normalises the storedstatusfield; the original verbose form is preserved inraw_status. - Response envelope keys differ per endpoint (field-test fix).
client.orders()returns{"orders": [...]},client.trades()returns{"trades": [...]}— NOT{"data": [...]}(which is the holdings/positions/funds shape).OrderTracker._orders_rows()/_trades_rows()chain through the common key names. Broker reference gains an explicit "Endpoint response envelope keys" table. - SDK signature drift since 2.1.8 (field-test fixes).
client.orders()andclient.trades()now require(limit, offset)positional args (raisesTypeErrorif omitted);OrderTracker._fetch_orderbook/_fetch_tradebooktry the new form and fall back to no-args onTypeError.place_order'sdisclosed_quantityis REQUIRED (broker reference parameter table updated).get_order_marginresponse is flat ({"required_margin", "available_margin", "status"}) — not nested under"data"; broker reference example rewritten to use the flat shape and dropped thefunds()double-call. - Rejection reason field name varies by surface (field-test fix). Postback envelope uses
status_message; REST orderbook row useserror_reason;place_orderresponse usesmessage. AddedOrderTracker.rejection_reason(order_id)accessor that walks the chain. Scaffoldedstrategy.py.on_order_terminaluses it. Broker reference Order Rejection section documents all three field names with a table. - Instrument master quirks (field-test fix).
expiry_dateisYYYYMMDDin the master CSV, ISO in REST orderbook rows, and"29May2026"in postbacks for the same contract. Documented in the broker reference Instrument Master section with a recommendation to lexicographically compare master-CSV expiry strings instead of parsing. Futures rows useoption_type='XX'(sometimes' '), notNone/""— documented the robust filter idiom. funds()unreliable as a margin-availability source (field-test fix). On some accounts it returned{}with no buckets — wouldKeyErroronfunds()["data"]["equity"]["margin_available"]. Broker reference Margin Check example rewritten to readavailable_margindirectly fromget_order_margin's response (one round-trip, stable shape) and explicitly warn against the funds()-double-call pattern.- Scaffolded
config.pynow callsload_dotenv()at module top (field-test fix). Previously a caller importingconfig.pybeforeauth.pywould read empty env vars. config.py uses atry: from dotenv import load_dotenvguard so it's harmless on container deployments.auth.pyno longer duplicates the call; it justimport configfor the side-effect.requirements.txtkeepspython-dotenvin both deployments so the import is always available. Documented that the PyPI package ispython-dotenv(NOTdotenv— separate, unrelated package). - Typed-enum gotcha on
Vc.*constants (field-test fix). The Vortex SDK runtime-typecheckstransaction_type,product,variety,validity,mode,exchange,resolutionvia strictisinstance(value, EnumClass)atvortex_api/api.py:147. Passing the string value (e.g."INTRADAY") raisesTypeError: product must be of type ProductTypeseven though the enum's.valueIS"INTRADAY". Silent until first liveplace_order/get_order_margin—py_compileand unit tests pass. Fixes: scaffoldedconfig.pynow storesdefault_product/default_variety/default_validity/default_transactionasVc.*enum instances (typed annotations + correct defaults), soclient.place_order(product=config.default_product, ...)works as-written. Added new Critical Rule 15 toSKILL.mdand a "Vc.* constants are runtime-typed enums" entry under broker reference "Field-format quirks" with the name-vs-value pitfall called out (Vc.VarietyTypes.REGULAR_LIMIT_ORDER.value == "RL"— name and value differ for many enums). Constants Reference table gained a "pass the enum, not the value" callout.
[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 contra...
- Step 1 question 4 — "default to the loopback SSO pattern" rewritten as a hard
indian-algo-trading v1.1.12
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.10] - 2026-05-26
Added
OrderTrackerclass (canonical inreferences/code-quality.md; scaffolded asorder_tracker.pyfor live strategies). Postback-driven, refreshes from orderbook + tradebook with 500 ms debounce, fireson_terminal(order_id, status)for every terminal transition. API:initialize,on_update,on_terminal,wait(order_id, timeout)(timeout required),cancel_and_wait,status/order/fills/avg_fill_price.- Scaffolder generates
order_tracker.pyfor--type live; wires it throughmain.py(initialize→on_terminal→ connect feed) and adds anon_order_terminalmethod tostrategy.py(replaces the emptyon_order_fill/on_order_cancelstubs).
Changed
- Critical Rule 9 rewritten — postback is a signal, orderbook is the truth. Names all five envelope types (
order,trade,sl_trigger,gtt_order,position_conversion); strategy code refreshes fromclient.orders()/client.trades()instead of parsingmsg["data"]; postbacks coalesced via 500 ms debounce. Live strategies useon_terminal;wait()reframed as a script/test primitive with requiredtimeout. - Broker reference Common Patterns rewritten around
OrderTracker.on_terminal+initialize();orders()/order_history()callouts now distinguish sleep-loop polling (anti-pattern) from postback-driven refresh (recommended). - SKILL.md halved — 405 → 216 lines, ~5.5K → ~2.8K always-loaded tokens. No rules removed, only verbosity. Step-1, Code Architecture, Rule 8, Output Format, Backtesting Standards, and Proactive Suggestions rewritten as terse bullets.
Fixed
- Skill was teaching order-status polling.
references/code-quality.mdshipped await_for_order_fill()that polledbroker.get_order_status()in awhile time.sleep(0.5)loop, with a docstring rationalising "polling instead of events to avoid callback hell". Rewritten as event-driven; Rule 9 and broker callouts now explicitly forbid sleep-loop polling. - Postback envelope shape. Real payload is
{type, data, client_code}; examples were reading the inner fields at the top level (wouldKeyErroron real traffic). All examples now filter onmsg["type"]and unwrapmsg["data"]. - Thread-start race in
OrderTracker.on_update—try/finallyresets_worker_runningifThread.start()raises, preventing silent permanent refresh stoppage. on_terminaldeduplication via_notified_terminalset; an order staying terminal across multiple refreshes only fires the callback once.- Stale
lookup_token(master, "RELIANCE", "NSE_EQ")snippet in broker reference Common Patterns — nowticker="NSE:RELIANCE". COMPLETEDvsEXECUTEDalias — same state under two names (postback envelope returnsCOMPLETED,client.orders()returnsEXECUTED).OrderTracker.TERMINALandSUCCESSnow include both. Without this, the orderbook refresh would never fireon_terminalfor filled orders.- Postback-vs-REST lag broke the reference
OrderTrackeron rejections (field-test fix). Real-world: WS pushesREJECTEDpostbacks within ms ofplace_orderreturning, butclient.orders()keeps returningPENDINGfor the sameorder_idfor ~30 seconds. The previous "postback = signal, REST = truth" model missed rejections and let stale REST overwrite a terminal status. Reframed as split authority: postbackdata.statusis authoritative for status transitions; REST is authoritative for fill quantities / prices.OrderTracker.on_updatenow fast-paths terminalorderpostbacks (mirrors payload into cache, fireson_terminalsynchronously on the WS thread)._applyhas a downgrade guard: once a terminal status is recorded, a later non-terminal REST row merges fill fields but does NOT overwritestatus. - Substring terminal-status detection. Brokers emit decorated forms (
REJECTED_BY_RMS,AMO_CANCELLED,EXECUTED_PARTIAL). The previous strict set membership check missed these.OrderTracker._terminal_token()substring-matches against canonical tokens and normalises the storedstatusfield; the original verbose form is preserved inraw_status. - Response envelope keys differ per endpoint (field-test fix).
client.orders()returns{"orders": [...]},client.trades()returns{"trades": [...]}— NOT{"data": [...]}(which is the holdings/positions/funds shape).OrderTracker._orders_rows()/_trades_rows()chain through the common key names. Broker reference gains an explicit "Endpoint response envelope keys" table. - SDK signature drift since 2.1.8 (field-test fixes).
client.orders()andclient.trades()now require(limit, offset)positional args (raisesTypeErrorif omitted);OrderTracker._fetch_orderbook/_fetch_tradebooktry the new form and fall back to no-args onTypeError.place_order'sdisclosed_quantityis REQUIRED (broker reference parameter table updated).get_order_marginresponse is flat ({"required_margin", "available_margin", "status"}) — not nested under"data"; broker reference example rewritten to use the flat shape and dropped thefunds()double-call. - Rejection reason field name varies by surface (field-test fix). Postback envelope uses
status_message; REST orderbook row useserror_reason;place_orderresponse usesmessage. AddedOrderTracker.rejection_reason(order_id)accessor that walks the chain. Scaffoldedstrategy.py.on_order_terminaluses it. Broker reference Order Rejection section documents all three field names with a table. - Instrument master quirks (field-test fix).
expiry_dateisYYYYMMDDin the master CSV, ISO in REST orderbook rows, and"29May2026"in postbacks for the same contract. Documented in the broker reference Instrument Master section with a recommendation to lexicographically compare master-CSV expiry strings instead of parsing. Futures rows useoption_type='XX'(sometimes' '), notNone/""— documented the robust filter idiom. funds()unreliable as a margin-availability source (field-test fix). On some accounts it returned{}with no buckets — wouldKeyErroronfunds()["data"]["equity"]["margin_available"]. Broker reference Margin Check example rewritten to readavailable_margindirectly fromget_order_margin's response (one round-trip, stable shape) and explicitly warn against the funds()-double-call pattern.- Scaffolded
config.pynow callsload_dotenv()at module top (field-test fix). Previously a caller importingconfig.pybeforeauth.pywould read empty env vars. config.py uses atry: from dotenv import load_dotenvguard so it's harmless on container deployments.auth.pyno longer duplicates the call; it justimport configfor the side-effect.requirements.txtkeepspython-dotenvin both deployments so the import is always available. Documented that the PyPI package ispython-dotenv(NOTdotenv— separate, unrelated package).
[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 from `requirement...
indian-algo-trading v1.1.11
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.10] - 2026-05-26
Added
OrderTrackerclass (canonical inreferences/code-quality.md; scaffolded asorder_tracker.pyfor live strategies). Postback-driven, refreshes from orderbook + tradebook with 500 ms debounce, fireson_terminal(order_id, status)for every terminal transition. API:initialize,on_update,on_terminal,wait(order_id, timeout)(timeout required),cancel_and_wait,status/order/fills/avg_fill_price.- Scaffolder generates
order_tracker.pyfor--type live; wires it throughmain.py(initialize→on_terminal→ connect feed) and adds anon_order_terminalmethod tostrategy.py(replaces the emptyon_order_fill/on_order_cancelstubs).
Changed
- Critical Rule 9 rewritten — postback is a signal, orderbook is the truth. Names all five envelope types (
order,trade,sl_trigger,gtt_order,position_conversion); strategy code refreshes fromclient.orders()/client.trades()instead of parsingmsg["data"]; postbacks coalesced via 500 ms debounce. Live strategies useon_terminal;wait()reframed as a script/test primitive with requiredtimeout. - Broker reference Common Patterns rewritten around
OrderTracker.on_terminal+initialize();orders()/order_history()callouts now distinguish sleep-loop polling (anti-pattern) from postback-driven refresh (recommended). - SKILL.md halved — 405 → 216 lines, ~5.5K → ~2.8K always-loaded tokens. No rules removed, only verbosity. Step-1, Code Architecture, Rule 8, Output Format, Backtesting Standards, and Proactive Suggestions rewritten as terse bullets.
Fixed
- Skill was teaching order-status polling.
references/code-quality.mdshipped await_for_order_fill()that polledbroker.get_order_status()in awhile time.sleep(0.5)loop, with a docstring rationalising "polling instead of events to avoid callback hell". Rewritten as event-driven; Rule 9 and broker callouts now explicitly forbid sleep-loop polling. - Postback envelope shape. Real payload is
{type, data, client_code}; examples were reading the inner fields at the top level (wouldKeyErroron real traffic). All examples now filter onmsg["type"]and unwrapmsg["data"]. - Thread-start race in
OrderTracker.on_update—try/finallyresets_worker_runningifThread.start()raises, preventing silent permanent refresh stoppage. on_terminaldeduplication via_notified_terminalset; an order staying terminal across multiple refreshes only fires the callback once.- Stale
lookup_token(master, "RELIANCE", "NSE_EQ")snippet in broker reference Common Patterns — nowticker="NSE:RELIANCE".
[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 al...
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
indian-algo-trading v1.1.8
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.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
indian-algo-trading v1.1.6
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.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
indian-algo-trading v1.1.4
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.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
indian-algo-trading v1.1.2
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.2] - 2026-03-31
Changed
- Version bump for release alignment
[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
indian-algo-trading v1.1.1
Changelog
All notable changes to this project will be documented in this file.
Format follows Keep a Changelog.
This project uses Semantic Versioning.
[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
indian-algo-trading v1.1.0
Changelog
All notable changes to this project will be documented in this file.
Format follows Keep a Changelog.
This project uses Semantic Versioning.
[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