xingwudao/open-xquant/create-signal
Claude Code and agent skill by xingwudao/open-xquant
- community
Checking that the SKILL.md file is still in the repository.
Create a new open-xquant Signal with deterministic output-domain tests and registry wiring; use after create-component confirms no existing signal satisfies the request.
Install
npx vskill@latest install xingwudao/open-xquant/create-signalSKILL.md
Create Signal
You create a vectorized trading-intent component.
Scope
Default built-in paths:
- source:
src/oxq/signals/{snake_name}.py - tests:
tests/signals/test_{snake_name}.py - package export:
src/oxq/signals/__init__.py - built-in registry:
src/oxq/core/registry.py
Phase 1: Read Existing Patterns
Read before editing:
src/oxq/core/types.pysrc/oxq/signals/crossover.pysrc/oxq/signals/threshold.py- one existing test in
tests/signals/ src/oxq/signals/__init__.py- the signal registration block in
src/oxq/core/registry.py
Confirm the requested output is a Signal, not an Indicator.
Phase 2: Define Output Semantics
State before coding:
- when the signal fires
- parameters and defaults
- whether output is boolean or categorical
- exact meaning of each output value
- NaN and boundary behavior
- whether it is causal
If the signal needs future rows to identify peaks, centered windows, or month-end rows, warn that it may be unsuitable for audited causal specs.
Phase 3: Test First
Write tests with hand-crafted data:
- protocol compliance with
Signal - non-empty
name - output domain is boolean or the declared categorical set
- categorical trading-intent signals must use exact uppercase labels such as
BUY, SELL, and HOLD
- if a categorical custom signal is used from spec, declare
signal.rules.<name>.output_domain: [BUY, SELL, HOLD] as rule metadata; do not place output_domain in params because params are passed to Signal.compute()
- trigger scenario
- no-trigger scenario
- NaN or insufficient-history behavior when relevant
- causal threshold behavior; rolling thresholds must not include the current
row when they are used to classify that row
Run the new test and confirm the missing implementation fails before coding.
Phase 4: Implement
Skeleton:
Rules:
- use explicit keyword parameters, not
**kwargs - no I/O or state mutation
- preserve index alignment
- fill or document NaN behavior
- return a
pd.Series
Phase 5: Register
For a built-in component:
- import it in
src/oxq/signals/__init__.py - add it to
__all__ - add it to
_load_builtins()insrc/oxq/core/registry.py
Verify:
Run broader tests when registry or compiler behavior changes.
Red Lines
- Do not return floats from a Signal unless the output is deliberately
categorical and documented.
- Do not introduce future-data bias without making it explicit.
- Do not register before output-domain tests pass.
- Do not modify existing signals for a new behavior.
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
- SKILL.md in the repositoryCheckingagent/skills/create-signal/SKILL.md
Popularity
- Repository stars
- 35
- Repository forks
- 11
- 7-day trend score
- 18
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
[](https://verified-skill.com/skills/xingwudao/open-xquant/create-signal)