Agent skill

Strategy Development Manager

by HKUDS in HKUDS/Vibe-Trading

Guides an agent from an academic paper or research report to a backtested trading factor or strategy, then tracks it over time for performance decay.

MITAuto-check passedBusiness, Finance & HR

Install Strategy Development Manager

skills CLI
$ npx skills add HKUDS/Vibe-Trading --skill strategy-dev-manager -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HKUDS/Vibe-Trading strategy-dev-manager --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent/src/skills/strategy-dev-manager .claude/skills/strategy-dev-manager && rm -rf skills-src

Use ~/.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/

Facts

Skill name
strategy-dev-manager
GitHub stars
35k
Token cost
~3k tokens
SKILL.md length
1,380 words
Files
9 (incl. references)
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

Guides an agent from an academic paper or research report to a backtested trading factor or strategy, then tracks it over time for performance decay.

  • Works in 5 steps: INGEST → EXTRACT → IMPLEMENT → …
  • Turning a published factor paper into a backtested factor
  • SKILL.md covers Purpose, When to Use, Workflow and Tool Reference, plus 5 more sections
  • Runs Python scripts from its folder; calls pip

What it does

This skill coordinates the whole path from a source document to a monitored trading factor or strategy. Work is split into five phases named ingest, extract, implement, evaluate and monitor, and a decision tree in the skill sends each request, such as extracting factors from a paper or checking decay, to the matching phase. A request that spans several phases runs them in order from ingest to evaluate.

It adds no new analysis of its own. The agent calls tools already in the project (read_document, factor_analysis, backtest, alpha_bench and the hypothesis and autopilot stack), classifies each paper as factor research, strategy or mixed, and keeps persistent records of what it builds. An sdm_status tool lists, enables or disables those records. The folder also ships reference guides on extraction, metrics and decay thresholds, plus templates for decay reports and signal engines.

When your agent uses it

  • Turning a published factor paper into a backtested factor
  • Implementing a strategy described in a research report and running its backtest
  • Checking whether stored factors are losing strength over time
  • Listing, enabling or disabling saved factors and strategies

Example prompts

  • “Read papers/fama_french_1993.pdf and extract the factors it defines.”
  • “Implement and backtest the momentum factor from this Jegadeesh and Titman paper.”
  • “Run a decay check on my saved factors and flag the ones that weakened.”
  • “Show the status of all my strategies, then disable the one that failed evaluation.”

Requirements

  • The Vibe-Trading tools read_document, factor_analysis and backtest
  • Source papers or reports as readable files

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. INGEST
  2. EXTRACT
  3. IMPLEMENT
  4. EVALUATE
  5. MONITOR

What it can do on your machine

Read from SKILL.md and the folder at commit 7f6908b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Strategy Development Manager loads about 3k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 51 tokens; SKILL.md has 1,380 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from HKUDS/Vibe-Trading at commit 7f6908b, republished under its MIT licence (© HKUDS). 1,380 words, ~2,992 tokens.

Download SKILL.mdSave it as .claude/skills/strategy-dev-manager/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
strategy-dev-manager
description
Strategy Development Manager: convert academic papers and research reports into validated factors and strategies with automated backtesting, persistent storage, and decay monitoring.
category
research

Strategy Development Manager

Purpose

SDM orchestrates the full lifecycle from academic paper or research report to validated factor or strategy. It ingests documents, extracts quantitative signals, implements and backtests them through the existing tool chain, evaluates results against statistical thresholds, and monitors long-term decay. SDM does not reinvent any step. It delegates to the tools already available (read_document, factor_analysis, backtest, alpha_bench, and the hypothesis/autopilot stack) and adds a thin coordination layer with persistent artifact tracking.

Use this skill whenever a user wants to go from "here is a paper" to "I have a working, monitored factor or strategy in the system."

When to Use

Decision tree for routing user requests:

  • User provides a paper or report path → Phase 1: INGEST
  • User says "extract factors from this paper" → Phase 2: EXTRACT
  • User says "implement and backtest" or "run the backtest" → Phase 3: IMPLEMENT
  • User says "evaluate results" or "check if it works" → Phase 4: EVALUATE
  • User says "check decay" or "monitor factors" → Phase 5: MONITOR
  • User says "disable factor" → sdm_status(action="disable", artifact_id=...)
  • User says "enable factor" → sdm_status(action="enable", artifact_id=...)
  • User says "list my factors" or "show status" → sdm_status(action="list")

When the user's intent spans multiple phases (for example "read this paper and build a factor"), run the phases sequentially from INGEST through EVALUATE.

Workflow

Phase 1: INGEST

Parse the source document and classify its content.

  1. Call read_document(paper_path) to extract the full text from the PDF or report.
  2. Classify the paper type:
    • factor-research: the paper proposes one or more cross-sectional factors with formulas (for example Jegadeesh and Titman 1993, Fama-French 1993)
    • strategy: the paper describes entry/exit rules, position sizing, and risk management (for example Avramov and Chordia 2006, turtle trading)
    • mixed: the paper contains both factor definitions and strategy rules
  3. Extract key information from the parsed text:
    • Methodology description
    • Mathematical formulas (preserve LaTeX notation)
    • Variable definitions and data requirements
    • Universe and time period studied
    • Performance metrics reported in the paper
Phase 2: EXTRACT

Turn the parsed content into structured artifact definitions.

  1. For factors, extract:

    • name: short identifier (for example "momentum_12_1")
    • formula_latex: the mathematical formula as written in the paper
    • variables: list of input variables and their meanings
    • columns_required: OHLCV columns or fundamental fields needed
    • universe: target market (for example "equity_us", "equity_cn")
    • decay_horizon: recommended holding period in trading days
  2. For strategies, extract:

    • name: short identifier
    • entry_rules: conditions that trigger a long or short position
    • exit_rules: conditions that close a position
    • position_sizing: how to allocate capital across selected instruments
    • risk_management: stop-loss, max drawdown, exposure limits
    • universe: target market
    • columns_required: data fields needed
  3. Deduplication check: call alpha_bench or check sdm_status(action="list") to see if a similar artifact already exists. If the Pearson IC between the new factor and an existing alpha exceeds 0.99, treat it as a duplicate and stop. IC between 0.90 and 0.99 may be a variant worth keeping with a note.

  4. Register the artifact: call sdm_register(artifact_type, name, universe, ...) to persist the extracted definition with status "extracted".

OCR Quality Check

After ingesting a paper via read_document, check the ocr_quality field in the response:

  • quality_flag == "good": proceed with extraction
  • quality_flag == "degraded": warn user that some pages could not be OCR'd, suggest manual review
  • quality_flag == "no_ocr_engine": suggest installing an OCR engine — pip install rapidocr_onnxruntime for local, or set VIBE_TRADING_OCR_ENGINE=llm-vision to use a vision-capable LLM model (GPT-4o, Qwen-VL, etc.) via your existing provider config
  • text_density < 100: flag as potentially low-quality extraction, suggest verifying formulas manually
Phase 3: IMPLEMENT

Build the SignalEngine, run the backtest, and link results.

  1. Call create_hypothesis(title, thesis, universe, signal_definition) to create a research hypothesis that tracks this work.
  2. Call generate_backtest_config(hypothesis_id, start_date, end_date) to produce the config.json for the backtest runner.
  3. Call scaffold_signal_engine(hypothesis_id, run_dir) to generate the skeleton signal_engine.py in the run directory.
  4. Implement the full signal_engine.py using the appropriate template from templates/:
    • Factor artifacts → templates/factor_signal_engine.py
    • Strategy artifacts → templates/strategy_signal_engine.py
  5. Validate syntax: bash("python -c \"import ast; ast.parse(open('code/signal_engine.py').read()); print('OK')\"")
  6. Call backtest(run_dir) to execute the backtest.
  7. Call link_autopilot_backtest(hypothesis_id, run_dir) to link the run results back to the hypothesis.
  8. Call sdm_status(action="detail", artifact_id=...) and update the artifact status to "benching".
Phase 4: EVALUATE

Judge the backtest output against quality thresholds.

  1. For factors: call factor_analysis with the factor CSV and return CSV. Check:

    • IC mean > 0.03 (basic predictive power)
    • IR > 0.5 (stable effectiveness)
    • IC positive ratio > 55% (directional stability)
  2. For strategies: read artifacts/metrics.csv and run_card.json. Check:

    • Sharpe ratio > 0.5 (minimum acceptable)
    • Max drawdown < 30% (risk tolerance)
    • Win rate and profit factor for additional context
  3. If the artifact is alive (meets thresholds):

    • For factors: register into factors/zoo/ and update status to "active"
    • For strategies: update status to "active" with the run metrics attached
  4. If the artifact is dead (fails thresholds):

    • Update status to "disabled" with a reason string
    • Record what failed (for example "IC mean 0.012, below 0.03 threshold")
  5. Record bench results via sdm_status update so the history is queryable.

Show full SKILL.md (575 more words)Show less
Phase 5: MONITOR

Track artifact health over time and handle decay.

  1. Call sdm_decay_scan(universe=...) for batch monitoring across all active artifacts in a universe.
  2. Review decay signals per artifact:
    • healthy: all metrics above "Healthy" thresholds (see references/decay_thresholds.md)
    • warning: metrics have dropped into the "Warning" band
    • decayed: metrics are in the "Decayed" band
    • critical: metrics are in the "Critical" band
  3. Auto-transitions follow the state machine:
    • active → monitoring when any metric enters "Warning"
    • monitoring → decayed when metrics stay in "Decayed" for 3+ consecutive scans
    • decayed → disabled when metrics enter "Critical"
    • monitoring → active when metrics recover to "Healthy" for 2+ consecutive scans
  4. Recovery: a decayed artifact can be re-evaluated by re-running Phase 3 with updated parameters.
  5. Generate a decay report summarizing all artifact statuses and recent transitions.

Tool Reference

ToolPhasePurpose
read_document1Parse PDF papers and reports
sdm_register2Register extracted factor or strategy
sdm_status2, 3, 4, 5Query or update artifact lifecycle status
alpha_bench2Deduplication check against existing alphas
create_hypothesis3Create a research hypothesis
generate_backtest_config3Generate backtest config.json
scaffold_signal_engine3Generate SignalEngine skeleton
backtest3Execute the backtest
link_autopilot_backtest3Link backtest results to hypothesis
factor_analysis4IC/IR analysis for factor artifacts
sdm_decay_scan5Batch decay monitoring

SignalEngine Contract

The generated signal_engine.py MUST satisfy the backtest runner contract:

python
class SignalEngine:
    def __init__(self):
        """No-arg constructor. All parameters must have defaults."""
        ...

    def generate(self, data_map: dict[str, pd.DataFrame]) -> dict[str, pd.Series]:
        """
        Args:
            data_map: symbol -> DataFrame (columns: open, high, low, close, volume,
                      DatetimeIndex). May include extra fields from config.extra_fields
                      or config.fundamental_fields.
        Returns:
            symbol -> signal Series (float, clipped to [-1.0, 1.0])
            1.0 = fully long, 0.5 = half position, 0.0 = flat, -1.0 = fully short
        """
        ...

Hard constraints:

  • Class MUST be named SignalEngine
  • Constructor MUST take no arguments (all params have defaults)
  • Signal Series index must align exactly with the input DataFrame index
  • Include all required imports (numpy, pandas, typing)
  • Do not hardcode dates or stock codes
  • Do not include an if __name__ == "__main__" block
  • Pure pandas/numpy implementation, no external signal libraries

Quality Checklist

Self-check before marking any phase complete:

  • Paper type correctly classified (factor-research / strategy / mixed)
  • Factor formula matches the paper text (no LLM hallucination)
  • Deduplication check passed (IC < 0.99 against existing alphas)
  • SignalEngine passes AST validation
  • Backtest completed without errors
  • IC/IR or Sharpe meets minimum thresholds
  • Artifact registered in the strategy store with correct status

Common Pitfalls

Formula Hallucination

LLMs may generate plausible-looking formulas that do not appear in the paper. ALWAYS cross-check the extracted formula against the original document text. If the paper uses notation you cannot parse, ask the user to confirm.

Factor Deduplication

IC > 0.99 means the factor is a duplicate. IC between 0.90 and 0.99 may be a variant. Use judgment: if the formula is structurally different but produces similar signals, note it as a variant rather than rejecting it outright.

Decay Baseline

Decay monitoring requires at least 3 bench history entries to establish a baseline. A newly registered artifact with only one backtest cannot be meaningfully scanned for decay.

Template Mismatch

Strategy-type artifacts need the strategy SignalEngine template (with entry/exit/position logic), not the factor template. Using the wrong template produces a SignalEngine that compiles but generates meaningless signals.

Look-Ahead Bias

Factor values must use data from day T and earlier. Returns must use data from T+1 onward. The delta(df, d) operator enforces d >= 1 to prevent lookahead. Never use Ref(df, -n) style negative shifts.

Templates

Two SignalEngine templates are provided in templates/:

  • factor_signal_engine.py: for factor-type artifacts. Computes a cross-sectional factor value per instrument per date, then ranks and clips to [-1.0, 1.0].
  • strategy_signal_engine.py: for strategy-type artifacts. Implements entry/exit rules with position sizing and risk management.

References

  • Decay thresholds and state machine: references/decay_thresholds.md
  • Example workflows: examples.md
  • Base operators for factor computation: src/factors/base.py (rank, zscore, scale, ts_mean, ts_std, ts_rank, ts_corr, ts_cov, ts_max, ts_min, ts_argmax, ts_argmin, delta, decay_linear, signed_power, safe_div, vwap)

© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (references) in agent/src/skills/strategy-dev-manager of HKUDS/Vibe-Trading.

  • SKILL.md
  • examples.md
  • references/decay_thresholds.md
  • references/scheduled_decay_scan.md
  • references/strategy_extraction_guide.md
  • references/strategy_metrics.md
  • templates/decay_report.md
  • templates/factor_signal_engine.py
  • templates/strategy_signal_engine.py

Open the folder on GitHubat commit 7f6908b

Compare with similar skills

Strategy Development Manager 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.

Strategy Development Manager compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Strategy Development Manager this skillHKUDS/Vibe-Trading35k—~3kAutomated safety check: PassMIT
Multi-Symbol Market Scannertradesdontlie/tradingview-mcp6.8k2 repos~447Automated safety check: PassCustom licence
Pine Script Development Looptradesdontlie/tradingview-mcp6.8k2 repos~617Automated safety check: PassCustom licence
CCXT Crypto Exchange Library2025Emma/vibe-coding-cn23k2 repos~4.4kAutomated safety check: PassMIT
Strategy Performance Reporttradesdontlie/tradingview-mcp6.8k3 repos~591Automated safety check: PassCustom licence
TqSdk Trading and Datashinnytech/tqsdk-python5.1k—~2kAutomated safety check: PassApache-2.0

Similar skills

  • Multi-Symbol Market Scanner

    tradesdontlie/tradingview-mcp

    Scans a list of trading symbols in TradingView for setups, patterns or strategy results and reports them as a ranked comparison table.

    6.8k GitHub starsUsed in 2 repos~447 tokens
    Business, Finance & HRAuto-check passed
  • Pine Script Development Loop

    tradesdontlie/tradingview-mcp

    Runs a write, compile, fix and verify loop for TradingView Pine Script indicators and strategies, pushing code into the Pine Editor and checking it on the chart.

    6.8k GitHub starsUsed in 2 repos~617 tokens
    Business, Finance & HRAuto-check passed
  • CCXT Crypto Exchange Library

    2025Emma/vibe-coding-cn

    Reference help for the CCXT library covering crypto exchange APIs, market data, trading and order management across 150+ exchanges in JavaScript, Python and PHP.

    23k GitHub starsUsed in 2 repos~4.4k tokens
    Business, Finance & HRAuto-check passed
  • Strategy Performance Report

    tradesdontlie/tradingview-mcp

    Builds a performance report for a backtested Pine Script strategy from TradingView data, covering metrics, trades, the equity curve and improvement ideas.

    6.8k GitHub starsUsed in 3 repos~591 tokens
    Business, Finance & HRAuto-check passed
  • TqSdk Trading and Data

    shinnytech/tqsdk-python

    Answers TqSdk Python questions on market data, accounts, orders, margin trials, simulation and backtesting, using the library's own docs and examples.

    5.1k GitHub stars~2k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Connects an agent to the AI-Trader platform's API to publish trading signals and follow traders, routing to child skills for copy trading, trade sync and market data.

    23k GitHub stars~8.5k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed

More from HKUDS/Vibe-Trading

All 89 skills in this repo
  • Eastmoney Market Data

    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.

    35k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • OKX Market Data

    HKUDS/Vibe-Trading

    Retrieves public OKX cryptocurrency market data such as spot prices, candlesticks, funding rates and open interest through the OKX V5 REST API, with no authentication.

    35k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • SEC EDGAR Filings Fetcher

    HKUDS/Vibe-Trading

    Fetches U.S. SEC EDGAR data: resolves tickers to CIK numbers, lists recent 10-K, 10-Q and 8-K filings with document URLs, and pulls XBRL financial series.

    35k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • A-Share ST Risk Screener

    HKUDS/Vibe-Trading

    Predicts whether a mainland China A-share company risks an ST or *ST warning after its next annual report, using financial thresholds and Sina penalty records.

    35k GitHub stars~4.9k tokensUpdated yesterday
    Auto-check passed
  • Breaks a structural trend such as AI infrastructure into its physical supply chain and ranks lesser-known listed companies sitting on each bottleneck.

    35k GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Plans and drafts an eight-part, roughly 120k-word investigative series on one company, built around a strict fact-check pass rather than fast drafting.

    35k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed

Questions about Strategy Development Manager

What does Strategy Development Manager do?

Guides an agent from an academic paper or research report to a backtested trading factor or strategy, then tracks it over time for performance decay. This skill coordinates the whole path from a source document to a monitored trading factor or strategy. Work is split into five phases named ingest, extract, implement, evaluate and monitor, and a decision tree in the skill sends each request, such as extracting factors from a paper or checking decay, to the matching phase.

When should I use Strategy Development Manager?

Strategy Development Manager fits situations like: turning a published factor paper into a backtested factor; implementing a strategy described in a research report and running its backtest; checking whether stored factors are losing strength over time; listing, enabling or disabling saved factors and strategies.

How do I install Strategy Development Manager in Claude Code?

Run `npx skills add HKUDS/Vibe-Trading --skill strategy-dev-manager -a claude-code`. Or copy the skill folder (agent/src/skills/strategy-dev-manager in HKUDS/Vibe-Trading) into .claude/skills/strategy-dev-manager in your project. Claude Code loads it when a task matches its description.

How do I install Strategy Development Manager in Codex?

Run `npx skills add HKUDS/Vibe-Trading --skill strategy-dev-manager -a codex`. Or copy the skill folder (agent/src/skills/strategy-dev-manager in HKUDS/Vibe-Trading) into .agents/skills/strategy-dev-manager in your project. Codex loads it when a task matches its description.

Can I use Strategy Development Manager in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/Vibe-Trading --skill strategy-dev-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/strategy-dev-manager, .gemini/skills/strategy-dev-manager, .github/skills/strategy-dev-manager and .opencode/skills/strategy-dev-manager in your project.

What does Strategy Development Manager need to run?

Going by SKILL.md and its folder, Strategy Development Manager needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: The Vibe-Trading tools read_document, factor_analysis and backtest; Source papers or reports as readable files.

Does Strategy Development Manager access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Strategy Development Manager safe to install?

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. Review the folder before installing.

What licence does Strategy Development Manager use?

Strategy Development Manager is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Strategy Development Manager use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.7k tokens, read only when the agent opens those files.

What are the alternatives to Strategy Development Manager?

Skills that share tags, products or a category with Strategy Development Manager: Multi-Symbol Market Scanner (tradesdontlie/tradingview-mcp, 6.8k stars), Pine Script Development Loop (tradesdontlie/tradingview-mcp, 6.8k stars), CCXT Crypto Exchange Library (2025Emma/vibe-coding-cn, 23k stars) and Strategy Performance Report (tradesdontlie/tradingview-mcp, 6.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Strategy Development Manager?

HKUDS (a GitHub organization) maintains it in HKUDS/Vibe-Trading, which has 34,884 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 6, 2026.

Source: HKUDS/Vibe-Trading on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.