Agent skill

Performance Testing

by facioquo in facioquo/stock-indicators-dotnet

Benchmark indicators with BenchmarkDotNet in tools/performance — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full…

Apache-2.0Auto-check passedBusiness, Finance & HR

Install Performance Testing

skills CLI
$ npx skills add facioquo/stock-indicators-dotnet --skill performance-testing -a claude-code

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

GitHub CLI
$ gh skill install facioquo/stock-indicators-dotnet performance-testing --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/facioquo/stock-indicators-dotnet.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/performance-testing .claude/skills/performance-testing && 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
performance-testing
GitHub stars
1.2k
Token cost
~1.1k tokens
SKILL.md length
348 words
Files
2 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Benchmark indicators with BenchmarkDotNet in tools/performance — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full…

  • Adding a new indicator
  • SKILL.md covers Workflows, Baseline set, Raw runs and Regression detection, plus 2 more sections
  • Calls bash and dotnet
  • Editing a tools/performance/Perf..cs file

What it does

Performance Testing is an agent skill from facioquo/stock-indicators-dotnet. Benchmark indicators with BenchmarkDotNet in tools/performance — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full suite for regressions, reset baselines, and run the large-N harness. Targets are BufferList ≤ 1.2x and StreamHub ≤ 1.5x the Series time. Use when adding a new indicator, editing a tools/performance/Perf..cs file, after changing an indicator's hot path, when perf.sh or detect-regressions.sh reports a regression, or…

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/benchmark-patterns.md`).

It sits in Business, Finance & HR, covering Load testing and Trading and backtesting. The repository describes itself as: Stock Indicators for .NET is a C NuGet package that transforms raw equity, commodity, forex, or cryptocurrency financial market price quotes into technical indicators and trading… The licence is Apache-2.0.

When your agent uses it

  • Adding a new indicator
  • Editing a tools/performance/Perf..cs file
  • After changing an indicators hot path
  • Detect-regressions.sh reports a regression

Example prompts

  • “/performance-testing”

What it can do on your machine

Read from SKILL.md and the folder at commit 136113b. 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

    Shell commands in SKILL.md call:

    • bash
    • dotnet

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

  • Network

    No URLs in SKILL.md.

    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

Performance Testing loads about 1.1k tokens when it runs, and up to ~1.9k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 348 words of instructions outside code blocks.

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

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 facioquo/stock-indicators-dotnet at commit 136113b, republished under its Apache-2.0 licence (© facioquo). 348 words, ~1,118 tokens.

Download SKILL.mdSave it as .claude/skills/performance-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
performance-testing
description
Benchmark indicators with BenchmarkDotNet in `tools/performance` — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full suite for regressions, reset baselines, and run the large-N harness. Targets are BufferList ≤ 1.2x and StreamHub ≤ 1.5x the Series time. Use when adding a new indicator, editing a `tools/performance/Perf.*.cs` file, after changing an indicator's hot path, when `perf.sh` or `detect-regressions.sh` reports a regression, or before refreshing files in `tools/performance/baselines/`.

Performance testing

Run every benchmark workflow through tools/performance/perf.sh from the repository root. tools/performance/benchmarking.md is the human-facing guide to the same tooling.

Load benchmark patterns before adding or editing a [Benchmark] method or benchmark class.

Workflows

evaluate and spot require jq.

bash
# Spot check: one indicator against its baselines (fast; the dev-loop check)
bash tools/performance/perf.sh spot Ema
bash tools/performance/perf.sh spot Adx Stream   # Series | Buffer | Stream | All (default)

# Evaluate: full baseline suite, report regressions and improvements (~1 hour)
bash tools/performance/perf.sh evaluate

# Reset: full baseline suite, overwrite tools/performance/baselines/ (~1 hour)
bash tools/performance/perf.sh reset
  • spot matches the indicator name as a substring, so spot Ema also runs Dema and Tema.
  • VS Code tasks: "Perf: Spot check (indicator vs baseline)", "Perf: Evaluate against baselines", "Perf: Reset baselines".
  • reset --prune also deletes committed baseline files for suites no longer in the set.

Baseline set

The baseline set is the no-argument dotnet run -c Release list in tools/performance/Program.cs: SeriesIndicators, BufferIndicators, StreamIndicators, StreamObserver, Utility, UtilityNullMath, UtilityStdDev. BASELINE_CLASSES in perf.sh must list the same suites; change both together.

StyleComparison, StyleWallTime, StreamCrossover, StreamExternal, and ManualTestDirect are diagnostics with no baseline. Run them with a raw filter.

Raw runs

For exploration only, never for baseline comparison. Run from tools/performance:

bash
dotnet run -c Release -- --filter "*StyleComparison*"   # one suite
dotnet run -c Release -- --filter "*.ToEmaBatch"         # one method

# Large-N harness: PERF_TEST_PERIODS bars (default 500000); PERF_TEST_CAP below it exercises pruning
PERF_TEST_KEYWORD=ema PERF_TEST_PERIODS=500000 dotnet run -c Release -- --filter "Performance.ManualTestDirect*"
PERF_TEST_KEYWORD=adl PERF_TEST_PERIODS=500000 PERF_TEST_CAP=100000 dotnet run -c Release -- --filter "Performance.ManualTestDirect*"

Results land in tools/performance/BenchmarkDotNet.Artifacts/results/ as Performance.{Suite}-report-full.json and -report-github.md.

Regression detection

detect-regressions.sh pairs each *-report-full.json result with the same-named baseline and compares per method, so a spot run compares only what it ran. The default threshold is 10%. Run it alone on existing results with bash tools/performance/detect-regressions.sh [--threshold 15]. Exit codes: 0 no regression, 1 regression found, 2 usage or I/O error.

Targets

StyleTarget time vs Series
BufferList≤ 1.2x
StreamHub≤ 1.5x

These are optimization targets, not merge gates; current implementations vary by indicator. Measure the ratio with the StyleComparison suite. Read current per-indicator timings from tools/performance/baselines/Performance.SeriesIndicators-report-github.md and its Buffer and Stream siblings.

Do not do these

  • Do not pass tuning options (--job, --warmupCount, thresholds) to perf.sh runs; each suite pins its job in code, and plain runs stay comparable to the committed baselines.
  • Do not run perf.sh reset except to record an intended, verified performance change, and commit the refreshed baselines with that change.
  • Do not compare baselines across machines or gate merges on CI timings; the committed baselines come from a developer machine, and the test-performance*.yml workflows are manual and informational.
  • Do not add LINQ, boxing, or per-period allocations other than the result itself to an indicator's per-period loop.

© facioquo, Apache-2.0. 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 1 other file (references) in .agents/skills/performance-testing of facioquo/stock-indicators-dotnet.

  • SKILL.md
  • references/benchmark-patterns.md

Open the folder on GitHubat commit 136113b

Compare with similar skills

Performance Testing 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.

Performance Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Performance Testing this skillfacioquo/stock-indicators-dotnet1.2k—~1.1kAutomated safety check: PassApache-2.0
Residual Edge Analyzertradermonty/claude-trading-skills3k—~1.5kAutomated safety check: PassMIT
Tushare Datazillionare/zillionare3182 repos~2.3kAutomated safety check: PassNone
Tradingview MCPatilaahmettaner/tradingview-mcp4.9k—~1.3kAutomated safety check: PassMIT
Digital Oraclekomako-workshop/digital-oracle867—~5.9kAutomated safety check: PassMIT
Polyclawchainstacklabs/polyclaw3601 repos~2kAutomated safety check: PassApache-2.0

Similar skills

  • Residual Edge Analyzer

    tradermonty/claude-trading-skills

    Separate a strategy return series into declared baseline exposure and residual edge with returns-based OLS attribution, HAC inference, rolling stability, alternate-baseline sensitivity, and regime…

    3k GitHub stars~1.5k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check passed
  • Tushare Data

    zillionare/zillionare

    面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。

    318 GitHub starsUsed in 2 repos~2.3k tokens
    Business, Finance & HRAuto-check passed
  • Tradingview MCP

    atilaahmettaner/tradingview-mcp

    AI Trading Intelligence — live prices, 30+ technical indicators, backtesting (6 strategies), walk-forward overfitting detection, trade logs, equity curves, licensed news sentiment (Marketaux), and…

    4.9k GitHub stars~1.3k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    867 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Polyclaw

    chainstacklabs/polyclaw

    Trade on Polymarket via split + CLOB execution. An agent skill from chainstacklabs/polyclaw.

    360 GitHub starsUsed in 1 repo~2k tokens
    Business, Finance & HRAuto-check passed
  • Openmobius Skill

    MobiusQuant/OpenMobius-skill

    Provides multi-school trading Q&A, chart/OHLCV analysis, annotation, and fresh-market workflows covering ICT/SMC, ChanLun, Wyckoff, Price Action, Order Flow, VSA, and Elliott Wave.

    695 GitHub stars~7.2k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed

More from facioquo/stock-indicators-dotnet

All 10 skills in this repo
  • Markdown

    facioquo/stock-indicators-dotnet

    Format and lint Markdown in this repository against GitHub Flavored Markdown and its markdownlint-cli2 configuration — headers, lists, code fences, callouts (VitePress containers on docs-site pages…

    1.2k GitHub stars~812 tokensUpdated yesterday
    Auto-check passed
  • Indicator Series

    facioquo/stock-indicators-dotnet

    Implement Series-style batch indicators (To{Name}() in {Name}.Series.cs), the canonical numerical reference every BufferList and StreamHub must match exactly.

    1.2k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Indicator Stream

    facioquo/stock-indicators-dotnet

    Implement StreamHub real-time indicators — base-class choice (ChainHub, BarProvider, StreamHub), constructor and ToIndicator conventions, RollbackState overrides, per-tick performance rules…

    1.2k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Documentation

    facioquo/stock-indicators-dotnet

    Author indicator reference pages on the VitePress documentation site — page section order, parameter and result tables, warmup and convergence wording, chaining and streaming examples, the…

    1.2k GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Indicator Buffer

    facioquo/stock-indicators-dotnet

    Implement BufferList incremental indicators ({Name}List, a BufferList<TResult subclass) — increment interface choice, constructor and To{Name}List() conventions, rolling-buffer helpers, pruning and…

    1.2k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Indicator Catalog

    facioquo/stock-indicators-dotnet

    Write {Name}.Catalog.cs listings with CatalogListingBuilder — parameters, results, chart panes, isRequired and isReusable rules — register them in Catalog.Listings.cs, refresh the catalog shape…

    1.2k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed

Questions about Performance Testing

What does Performance Testing do?

Benchmark indicators with BenchmarkDotNet in tools/performance — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full…. Performance Testing is an agent skill from facioquo/stock-indicators-dotnet. Benchmark indicators with BenchmarkDotNet in tools/performance — add Series, Buffer, Stream, and style-comparison benchmarks, spot-check one indicator against committed baselines, evaluate the full suite for regressions, reset baselines, and run the large-N harness.

When should I use Performance Testing?

Performance Testing fits situations like: adding a new indicator; editing a tools/performance/Perf..cs file; after changing an indicators hot path; detect-regressions.sh reports a regression.

How do I install Performance Testing in Claude Code?

Run `npx skills add facioquo/stock-indicators-dotnet --skill performance-testing -a claude-code`. Or copy the skill folder (.agents/skills/performance-testing in facioquo/stock-indicators-dotnet) into .claude/skills/performance-testing in your project. Claude Code loads it when a task matches its description.

How do I install Performance Testing in Codex?

Run `npx skills add facioquo/stock-indicators-dotnet --skill performance-testing -a codex`. Or copy the skill folder (.agents/skills/performance-testing in facioquo/stock-indicators-dotnet) into .agents/skills/performance-testing in your project. Codex loads it when a task matches its description.

Can I use Performance Testing 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 facioquo/stock-indicators-dotnet --skill performance-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/performance-testing, .gemini/skills/performance-testing, .github/skills/performance-testing and .opencode/skills/performance-testing in your project.

What does Performance Testing need to run?

Going by SKILL.md and its folder, Performance Testing needs the command-line tools its instructions call (bash and dotnet).

Does Performance Testing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Performance Testing 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 Performance Testing use?

Performance Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Performance Testing use?

About 1.1k tokens (SKILL.md is roughly 4.5k 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 772 tokens, read only when the agent opens those files.

What are the alternatives to Performance Testing?

Skills that share tags, products or a category with Performance Testing: Residual Edge Analyzer (tradermonty/claude-trading-skills, 3k stars), Tushare Data (zillionare/zillionare, 318 stars), Tradingview MCP (atilaahmettaner/tradingview-mcp, 4.9k stars) and Digital Oracle (komako-workshop/digital-oracle, 867 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Performance Testing?

facioquo (a GitHub organization) maintains it in facioquo/stock-indicators-dotnet, which has 1,247 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: facioquo/stock-indicators-dotnet on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.