quantskills/agent-quantspace/store

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when tasks need local market Parquet data, factor artifacts, backtest data, or model files through DataManager.

Install

npx vskill@latest install quantskills/agent-quantspace/store

SKILL.md

Store

skills/store owns reusable file storage for market data and generic research artifacts. The public project uses explicit strategy universes and does not maintain a central universe registry.

DataManager

python
from skills.store.data_manager import DataManager, DataQualityReport, validate_ohlcv
from skills.store.workspace import resolve_workspace_paths

The data root comes from QUANTSPACE_DATA_ROOT, otherwise the repository data/ directory.

resolve_workspace_paths() centralizes QUANTSPACE_WORKSPACE_ROOT, QUANTSPACE_DATA_ROOT, and QUANTSPACE_REPORTS_ROOT without creating any directories. Runtime entrypoints use it instead of modifying sys.path or independently guessing the repository root.

Supported layout:

text
data/market/<frequency>/<symbol>.parquet
data/adj_factor/<symbol>.parquet
data/factors/<namespace>/
data/correlation/
data/backtest/
data/models/
data/export/

The subdirectory below data/market/ is a storage directory/data-set key. Its base part is the real bar frequency, while an optional _adj suffix records the price-adjustment state:

Directory keyReal freqMeaning
1d1dDaily unadjusted (raw) bars
1d_adj1dAdjusted daily bars
5m5m5-minute unadjusted bars
5m_adj5mAdjusted 5-minute bars

Therefore data/market/1d_adj/ does not represent a frequency named 1d_adj; its freq is still 1d, and 1d_adj is only the directory name indicating adjusted 1d data. The same convention applies to other bar intervals: <freq>_adj stores adjusted bars whose actual frequency is <freq>.

DataManager names its directory-selector parameter frequency. Pass the full directory key to read_symbol / read_symbols / save_symbol (for example, frequency="1d_adj") so it resolves the intended path. Do not reuse that suffixed value as the semantic freq or pass it to an upstream market-data API; use freq="1d" there.

Main methods:

  • read_symbol, read_symbols, save_symbol
  • import_symbol_csv, import_combined_csv, list_symbols
  • save_factor, read_factor, factor_namespace_dir, factor_filename
  • save_factor_correlation, read_factor_correlation
  • save_backtest_run, read_backtest_summary, read_backtest_run
  • list_models, read_model_metadata

read_symbols returns a MultiIndex (symbol, eob) panel and reports every missing symbol in one FileNotFoundError.

DataManagerArtifactStore (skills.factor_mining.adapters.store) persists factor-mining research artifacts under data/factors/<namespace>/artifacts/<kind>/<artifact_id>.json (path segments are validated; resolved paths must stay under that namespace). It reuses save_factor / factor_filename for explicit wide-pivot caches keyed by a content-addressed cache_key. DataManager.namespaced_artifact_dir(namespace, *parts) is the generic helper that returns (and creates) data/factors/<namespace>/<parts...>/; there is no second catalog.

python
from skills.store.data_manager import DataManager
panel = DataManager().read_symbols(
["SHSE.510300", "SHSE.510500"],
frequency="1d_adj",
)

Boundary Rules

  • Keep market and generic research files here.
  • Pass strategy universes as explicit symbol lists owned by the caller.
  • Treat factor/backtest/model subdirectory names as artifact namespaces, not

centrally managed instrument universes.

  • Do not add strategy identity schemas or a second experiment catalog.

CLI command reference

<!-- BEGIN GENERATED: qs commands -->

Transport: --input-json FILE|-, --preview N, and --log-level LEVEL; flags override JSON. Use --print-template [FIELD] for fillable templates.

Shared parameter groups
OutputOptions
OptionType / defaultDescription
--outputpath? / nullExplicit output path outside managed store namespaces.
--overwriteboolean / falseAllow replacing an existing output artifact.
--data-rootpath? / nullManaged data root; otherwise QUANTSPACE_DATA_ROOT or repository data/.
uv run qs store info

Inspect the local data store inventory.

Priority: P0. Side effects: read-only.

OptionType / defaultDescription
--data-rootpath? / nullManaged data root; otherwise QUANTSPACE_DATA_ROOT or repository data/.

Output data fields: data_root, exists, frequencies, adj_factors, namespaces.

Inspect schemas: uv run qs schema store.info (add --part input|output or --file-field FIELD).

uv run qs store list

List stored market symbols, adjustment factors, or models.

Priority: P0. Side effects: read-only.

OptionType / defaultDescription
--kind`market\adj-factor\models / market`Stored item kind.
--frequencystring / 1dDirectory under data/market: real bar frequency plus optional _adj suffix, for example 1d, 1d_adj, 5m.
--namespacestring? / nullModel artifact namespace; required for models.
--prefixstring? / nullOptional name prefix.
--data-rootpath? / nullManaged data root; otherwise QUANTSPACE_DATA_ROOT or repository data/.
--limitinteger / 100Maximum items per page.
--offsetinteger / 0Number of matching items to skip.

Output data fields: kind, items, count, truncated, next_offset.

Inspect schemas: uv run qs schema store.list (add --part input|output or --file-field FIELD).

uv run qs store read

Read stored symbols into a (symbol, eob) panel.

Priority: P0. Side effects: writes-output.

Shared parameters: OutputOptions.

OptionType / defaultDescription
--symbolslist[string] / factoryQuantSpace symbols such as SHSE.510300; repeat flag or comma-separate.
--symbols-filepath? / nullText lines or JSON list of QuantSpace symbols.
--frequencystring / 1dDirectory under data/market: real bar frequency plus optional _adj suffix, for example 1d, 1d_adj, 5m.
--startstring? / nullInclusive start date.
--endstring? / nullInclusive end date.
--fieldslist[string] / factoryColumns to retain.

Output data fields: symbols, frequency, rows, start, end, columns, missing, preview.

Inspect schemas: uv run qs schema store.read (add --part input|output or --file-field FIELD).

uv run qs store import

Import market bars from CSV into data/market.

Priority: P1. Side effects: writes-store.

OptionType / defaultDescription
--filepath / requiredInput CSV file, as accepted by DataManager.import_*_csv.
--layout`single\combined / single`single: one symbol per file (import_symbol_csv); combined: a symbol column splits the file (import_combined_csv).
--symbolstring? / nullQuantSpace symbol for single layout.
--frequencystring / 1dDirectory under data/market: real bar frequency plus optional _adj suffix, for example 1d, 1d_adj, 5m.
--symbol-colstring / symbolSymbol column for combined layout.
--time-colstring / eobTimestamp column. Values are parsed as UTC (offset-aware values keep their offset) and stored as naive Asia/Shanghai time, exactly like DataManager.import_*_csv.
--writeboolean / falseWrite into managed market storage; otherwise a dry run.
--overwriteboolean / falseAllow replacing existing symbol files.
--data-rootpath? / nullManaged data root; otherwise QUANTSPACE_DATA_ROOT or repository data/.

Output data fields: symbols, rows, saved, dry_run, frequency, planned_paths, existing.

Inspect schemas: uv run qs schema store.import (add --part input|output or --file-field FIELD).

uv run qs store validate

Validate OHLCV quality; exit 1 when a check fails.

Priority: P1. Side effects: read-only.

OptionType / defaultDescription
--filepath? / nullOHLCV Parquet/CSV file to validate.
--symbolslist[string] / factoryStored symbols to validate.
--frequencystring / 1dDirectory under data/market: real bar frequency plus optional _adj suffix, for example 1d, 1d_adj, 5m.
--data-rootpath? / nullManaged data root; otherwise QUANTSPACE_DATA_ROOT or repository data/.

Output data fields: passed, n_rows, nan_count, inf_count, negative_price_count, negative_volume_count, high_lt_low_count, non_monotonic_index, details.

Inspect schemas: uv run qs schema store.validate (add --part input|output or --file-field FIELD).

uv run qs store check-adjusted

Scan adjusted bars for zero-volume price jumps; exit 1 when found.

Priority: P1. Side effects: writes-output.

Shared parameters: OutputOptions.

OptionType / defaultDescription
--symbolslist[string] / factoryQuantSpace symbols such as SHSE.510300; repeat flag or comma-separate.
--symbols-filepath? / nullText lines or JSON list of QuantSpace symbols.
--frequencystring / 1d_adjAdjusted market store directory.
--thresholdnumber / 0.2Relative price jump threshold.

Output data fields: symbols, missing, issues, preview.

Inspect schemas: uv run qs schema store.check-adjusted (add --part input|output or --file-field FIELD).

uv run qs store query

Run DuckDB SQL over stored Parquet files (needs --extra query).

Priority: P2. Side effects: writes-output.

Shared parameters: OutputOptions.

OptionType / defaultDescription
--sqlstring / requiredDuckDB SQL; {data} is replaced by the data root, as in DataManager.query.
--paramslist[any] / factoryPositional parameters bound as $1, $2, ...

Output data fields: rows, columns, preview.

Inspect schemas: uv run qs schema store.query (add --part input|output or --file-field FIELD).

<!-- END GENERATED: qs commands -->

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
57
Repository forks
11
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/quantskills/agent-quantspace/store/badge)](https://verified-skill.com/skills/quantskills/agent-quantspace/store)

Something wrong with this skill or its page? Tell us.