Tested demoQuality 93/100

HKUDS/Vibe-Trading/agent/src/skills/strategy-dev-manager/SKILL.md

strategy-dev-manager

Strategy Development Manager: convert academic papers and research reports into validated factors and strategies with automated backtesting, persistent storage, and decay monitoring.

Source repository stars
31,651
Declared platforms
0
Static risk flags
0
Last source update
2026-08-24
Source checked
2026-08-25

Decision brief

What it does: where it fits

Strategy Development Manager: convert academic papers and research reports into validated factors and strategies with automated backtesting, persistent storage, and decay monitoring.

Best for

  • 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

Not for

  • Formula Hallucination
  • Factor Deduplication
Controlled single-run demoChecked 2026-08-20

What changed when the Skill was used

In this controlled same-task single run, enabling strategy-dev-manager changed the output from 1896 non-whitespace characters and 16 headings to 1947 characters and 17 headings. Matches among 8 signals extracted from the pinned source changed from 0 to 0. Both actual outputs are shown; this is a structural observation, not a quality score or a universal performance claim.

Same test task

Produce a decision-ready research brief for a small SaaS team evaluating retrieval-augmented generation. State assumptions, evidence needs, tradeoffs, and next actions. The deliverable must specifically reflect this user intent: Strategy Development Manager: convert academic papers and research reports into validated factors and strategies with automated backtesting, persistent storage, and decay monitoring.

Without the Skill
Screenshot of the actual model output for strategy-dev-manager without the Skill

Baseline: 1896 non-whitespace characters, 16 headings, and 42 list items.

With the Skill
Screenshot of the actual model output for strategy-dev-manager with the Skill

With Skill: 1947 non-whitespace characters, 17 headings, and 45 list items.

ObservationWithout SkillWith Skill
Source-signal coverage0/8: none0/8: none
Output structure1896 chars · 16 headings · 42 list items · 0 code blocks1947 chars · 17 headings · 45 list items · 0 code blocks
Verification and caution signals7 verification signals · 3 risk/limitation signals8 verification signals · 15 risk/limitation signals

A prompt you can use

Use the strategy-dev-manager Skill pinned at 7329cb096a73 for my task. Follow its source-specific constraints around `strategy-dev-manager`, `strategy`, `development`, `manager`, then return the finished deliverable with explicit assumptions, verification, failure conditions, and limits. Do not treat the Skill text as a factual source or claim that a single demonstration proves universal performance.

Method and limitationsExpand

Test method

  • Baseline and treatment used the same task, model (gpt-5.3-codex-low), and runner; the only planned difference was whether the complete target Skill text was injected.
  • The treatment used snapshot c33606a140c31ec2d7e657c66a72d7a2019a4137; the current source commit 7329cb096a7361f975f532c77fef5c93e31561c5 was verified against content hash 9ca727fefa4d. The baseline explicitly prohibited loading any Skill or external rule file.
  • The same deterministic script counted characters, headings, lists, code blocks, verification terms, caution terms, and source signals in both artifacts. Source signals: `strategy-dev-manager`, `strategy`, `development`, `manager`, `purpose`, `phase`, `ingest`, `extract`.
  • The visuals are local screenshots of the actual Markdown artifacts in a fixed 1200 × 800 evidence canvas, not recreated product mockups. Raw JSON artifacts and request records are retained in the research directory.

Do not over-read this demo

  • This is one controlled demonstration per condition, not a multi-run statistical benchmark; the model is stochastic.
  • Character, structure, and keyword counts show observable differences but cannot by themselves prove correctness, originality, or business impact.
  • The task is a representative test designed for repeatability, not every real-world use of the Skill; rerun after a material source change.
Editorial review
SkillSignal editorial
Runner
Cursor Agent 2026.07.09-a3815c0
Model
gpt-5.3-codex-low
Refresh due
2026-11-18
Reviewed commit
7329cb096a7361f975f532c77fef5c93e31561c5
Test snapshot
c33606a140c31ec2d7e657c66a72d7a2019a4137

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/HKUDS/Vibe-Trading --skill "agent/src/skills/strategy-dev-manager"
Safe inspection promptEditorial

Inspect the Agent Skill "strategy-dev-manager" from https://github.com/HKUDS/Vibe-Trading/blob/99e84abaad965f75dd15cab2fcb0f3f61d30577b/agent/src/skills/strategy-dev-manager/SKILL.md at commit 99e84abaad965f75dd15cab2fcb0f3f61d30577b. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    Parse the source document and classify its content.

    Call readdocument(paperpath) to extract the full text from the PDF or report.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)
  2. 02

    Phase 1: INGEST

    Parse the source document and classify its content.

    Call readdocument(paperpath) to extract the full text from the PDF or report.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)
  3. 03

    Phase 2: EXTRACT

    Turn the parsed content into structured artifact definitions.

    For factors, extract:name: short identifier (for example "momentum121")formulalatex: the mathematical formula as written in the paper
  4. 04

    Phase 3: IMPLEMENT

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

    Call createhypothesis(title, thesis, universe, signaldefinition) to create a research hypothesis that tracks this work.Call generatebacktestconfig(hypothesisid, startdate, enddate) to produce the config.json for the backtest runner.Call scaffoldsignalengine(hypothesisid, rundir) to generate the skeleton signalengine.py in the run directory.
  5. 05

    Phase 4: EVALUATE

    Judge the backtest output against quality thresholds.

    For factors: call factoranalysis with the factor CSV and return CSV. Check:IC mean 0.03 (basic predictive power)IR 0.5 (stable effectiveness)

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars31,651SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guidetested outcome pageTestedGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
HKUDS/Vibe-Trading
Skill path
agent/src/skills/strategy-dev-manager/SKILL.md
Commit
99e84abaad965f75dd15cab2fcb0f3f61d30577b
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

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.

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:
    • activemonitoring when any metric enters "Warning"
    • monitoringdecayed when metrics stay in "Decayed" for 3+ consecutive scans
    • decayeddisabled when metrics enter "Critical"
    • monitoringactive 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:

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)

Frequently asked questions

What to verify before installation and use

What does the strategy-dev-manager source document cover?

Strategy Development Manager: convert academic papers and research reports into validated factors and strategies with automated backtesting, persistent storage, and decay monitoring.

How do I install strategy-dev-manager?

The source record exposes this install command: npx skills add https://github.com/HKUDS/Vibe-Trading --skill "agent/src/skills/strategy-dev-manager". Inspect the command and pinned source before running it.

Alternatives

Compare before choosing

Computed 10024,921

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 10015,122

wanshuiyin/Auto-claude-code-research-in-sleep

citation-audit

Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

Computed 10014,671

prowler-cloud/prowler

postgresql-indexing

PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance

Computed 9965

brucesongs/kali-claw

insecure-design

Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.