
edge-signal-aggregator
Aggregate and rank signals from multiple edge-finding skills (edge-candidate-agent, theme-detector, sector-analyst, institutional-flow-tracker) into a prioritized conviction dashboard with weighted scoring, deduplication, and contradiction detection.
- Installs
- 3.2K
- Last 24h
- +19
- Trending rank
- #6003
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/tradermonty/claude-trading-skills --skill edge-signal-aggregator- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads edge-signal-aggregator automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Edge Signal Aggregator
Overview
Combine outputs from multiple upstream edge-finding skills into a single weighted conviction dashboard. This skill applies configurable signal weights, deduplicates overlapping themes, flags contradictions between skills, and ranks composite edge ideas by aggregate confidence score. The result is a prioritized edge shortlist with provenance links to each contributing skill.
When to Use
- After running multiple edge-finding skills and wanting a unified view
- When consolidating signals from edge-candidate-agent, theme-detector, sector-analyst, and institutional-flow-tracker
- Before making portfolio allocation decisions based on multiple signal sources
- To identify contradictions between different analysis approaches
- When prioritizing which edge ideas deserve deeper research
Prerequisites
- Python 3.9+
- No API keys required (processes local JSON/YAML files from other skills)
- Dependencies:
pyyaml(standard in most environments)
Workflow
Step 1: Gather Upstream Skill Outputs
Collect output files from the upstream skills you want to aggregate:
reports/edge_candidate_*.jsonfrom edge-candidate-agentreports/edge_concepts_*.yamlfrom edge-concept-synthesizerreports/theme_detector_*.jsonfrom theme-detectorreports/sector_analyst_*.jsonfrom sector-analystreports/institutional_flow_*.jsonfrom institutional-flow-trackerreports/edge_hints_*.yamlfrom edge-hint-extractor
Step 2: Run Signal Aggregation
Execute the aggregator script with paths to upstream outputs:
python3 skills/edge-signal-aggregator/scripts/aggregate_signals.py \
--edge-candidates reports/edge_candidate_agent_*.json \
--edge-concepts reports/edge_concepts_*.yaml \
--themes reports/theme_detector_*.json \
--sectors reports/sector_analyst_*.json \
--institutional reports/institutional_flow_*.json \
--hints reports/edge_hints_*.yaml \
--output-dir reports/
Optional: Use a custom weights configuration:
python3 skills/edge-signal-aggregator/scripts/aggregate_signals.py \
--edge-candidates reports/edge_candidate_agent_*.json \
--weights-config skills/edge-signal-aggregator/assets/custom_weights.yaml \
--output-dir reports/
Step 3: Review Aggregated Dashboard
Open the generated report to review:
- Ranked Edge Ideas - Sorted by composite conviction score
- Signal Provenance - Which skills contributed to each idea
- Contradictions - Conflicting signals flagged for manual review
- Deduplication Log - Merged overlapping themes
Step 4: Act on High-Conviction Signals
Filter the shortlist by minimum conviction threshold:
python3 skills/edge-signal-aggregator/scripts/aggregate_signals.py \
--edge-candidates reports/edge_candidate_agent_*.json \
--min-conviction 0.7 \
--output-dir reports/
Output Format
JSON Report
{
"schema_version": "1.1",
"generated_at": "2026-03-02T07:00:00Z",
"config": {
"weights": {
"edge_candidate_agent": 0.25,
"edge_concept_synthesizer": 0.20,
"theme_detector": 0.15,
"sector_analyst": 0.15,
"institutional_flow_tracker": 0.15,
"edge_hint_extractor": 0.10
},
"min_conviction": 0.5,
"dedup_similarity_threshold": 0.8
},
"summary": {
"total_input_signals": 42,
"unique_signals_after_dedup": 28,
"contradictions_found": 3,
"signals_above_threshold": 12,
"invalid_signals_dropped": 2,
"idempotency_check": {
"total_input_signals": 42,
"unique_evidence_ids": 28,
"duplicate_copies_merged": 14,
"independent_units_total": 30
}
},
"ranked_signals": [
{
"rank": 1,
"signal_id": "sig_001",
"title": "AI Infrastructure Capex Acceleration",
"composite_score": 0.87,
"evidence_id": "ticket_2026-03-01_001",
"score_scale_assumed": false,
"contributing_skills": [
{
"skill": "edge_candidate_agent",
"signal_ref": "ticket_2026-03-01_001",
"raw_score": 0.92,
"weighted_contribution": 0.23,
"evidence_id": "ticket_2026-03-01_001",
"event_fingerprint": "sha1-of-title-and-tickers"
},
{
"skill": "theme_detector",
"signal_ref": "theme_ai_infra",
"raw_score": 0.85,
"weighted_contribution": 0.13
}
],
"tickers": ["NVDA", "AMD", "AVGO"],
"direction": "LONG",
"time_horizon": "3-6 months",
"confidence_breakdown": {
"multi_skill_agreement": 0.30,
"signal_strength": 0.35,
"recency": 0.22
}
}
],
"contradictions": [
{
"contradiction_id": "contra_001",
"description": "Conflicting sector view on Energy",
"skill_a": {
"skill": "sector_analyst",
"signal": "Energy sector bearish rotation",
"direction": "SHORT"
},
"skill_b": {
"skill": "institutional_flow_tracker",
"signal": "Heavy institutional buying in XLE",
"direction": "LONG"
},
"resolution_hint": "Check timeframe mismatch (short-term vs long-term)"
}
],
"deduplication_log": [
{
"merged_into": "edge_candidate_agent:ticket_001",
"duplicates_removed": ["edge_candidate_agent:ticket_001@reports/ticket_001.json"],
"similarity_score": 1.0,
"reason": "same evidence re-ingested",
"selection_rule": "newest timestamp wins; ties, missing, or unparsable timestamps keep the highest raw_score, then a stable key",
"retained_copy": {
"signal_ref": "ticket_001",
"source_file": "reports/rerun.json",
"raw_score": 0.5,
"timestamp": "2026-10-10T00:00:00Z"
},
"discarded_copies": [
{
"signal_ref": "ticket_001",
"source_file": "reports/ticket_001.json",
"raw_score": 0.9,
"timestamp": "2026-10-09T00:00:00Z"
}
]
},
{
"merged_into": "edge_candidate_agent:ticket_001",
"duplicates_removed": ["theme_detector:ai_compute"],
"similarity_score": 0.9
}
],
"invalid_signals": [
{
"skill": "theme_detector",
"signal_ref": "broken_theme",
"title": "Theme with a corrupted score",
"reason": "non_finite",
"declared_scale": null,
"raw_value_repr": "nan",
"source_file": "reports/theme_detector_2026-03-01.json"
}
],
"scale_assumptions_report": [
{
"skill": "theme_detector",
"signal_ref": "ai_compute",
"value": 7.2,
"normalized_value": 0.072,
"assumed_scale": "0-100",
"source_file": "reports/theme_detector.json"
}
]
}
Producer contract (optional keys, schema 1.1)
Each producer item (ticket, concept, theme, sector row, flow, hint) MAY carry:
evidence_id— a stable identifier for the underlying evidence. Without this key a deterministic fallback is derived from skill, signal reference, title, tickers, and direction (timestamps are excluded so refreshed timestamps cannot forge a new identity). Re-ingesting the same evidence (same skill +evidence_id) never adds a bonus: all copies collapse into one. When the copies differ, the newest observation wins: the copy with the latest timestamp, compared as parsed timezone-aware datetimes (date-only and naive values are read as UTC), becomes the retained score. Equal, missing, or unparsable timestamps fall back to the highestraw_score, then a stable key (signal_ref,source_file), so ingestion order never changes the result. Only ISO-8601 strings (orYYYY-MM-DD) are ordered; epoch numbers and compact forms such as20261010count as missing timestamps. Remaining full ties are broken by title, direction, tickers, and a canonical dump of the signal. A copy that carries a score older than the retained one is discarded, so a newer, lower score replaces an older, higher one. The discarded copies' scores and timestamps are listed indeduplication_log[].discarded_copies. Identical copies leave the score unchanged.score_scale—"0-1"or"0-100", declaring the raw score's scale. Declared scales are enforced strictly: NaN/infinity/negative/out-of-range values are rejected intoinvalid_signals, never converted into maximum confidence. A present-but-unparsable declaration ("","foo") is also rejected (missing_scale). If the key is absent, values in (1, 100] are divided by 100 and flaggedscore_scale_assumed: trueplus ascale_assumptions_reportentry (valueis the original input,normalized_valuethe 0-1 score used); values > 100 are rejected.
Agreement rule (Issue #510)
Agreement bonuses fire on agreement_tier = min(distinct evidence_ids, distinct event_fingerprints, distinct skills) among a merged signal's contributors: tier 2 earns the
two-skills bonus, tier 3+ the three-plus bonus. Re-ingested duplicates earn nothing; the same
event restated by another skill (identical normalized title + tickers) counts once. Known
limitation: the event fingerprint is vocabulary-based, so paraphrased restatements with disjoint
word sets still earn the agreement bonus — treat cross-skill paraphrases with independent
verification. Merged duplicates no longer earn a per-copy bonus (merge_bonus_per_duplicate
is deprecated and ignored).
Markdown Report
The markdown report provides a human-readable dashboard:
# Edge Signal Aggregator Dashboard
**Generated:** 2026-03-02 07:00 UTC
## Summary
- Total Input Signals: 42
- Unique After Dedup: 28
- Contradictions: 3
- High Conviction (>=0.5): 12
## Top 10 Edge Ideas by Conviction
### 1. AI Infrastructure Capex Acceleration (Score: 0.87)
- **Tickers:** NVDA, AMD, AVGO
- **Direction:** LONG | **Horizon:** 3-6 months
- **Contributing Skills:**
- edge-candidate-agent: 0.92 (ticket_2026-03-01_001)
- theme-detector: 0.85 (theme_ai_infra)
- **Confidence Breakdown:** Agreement 0.30 | Strength 0.35 | Recency 0.22
...
## Contradictions Requiring Review
### Energy Sector Conflict
- **sector-analyst:** Bearish rotation (SHORT)
- **institutional-flow-tracker:** Heavy buying XLE (LONG)
- **Hint:** Check timeframe mismatch
## Deduplication Summary
- 14 signals merged into 8 unique themes
- Average similarity of merged signals: 0.89
Reports are saved to reports/ with filenames:
edge_signal_aggregator_YYYY-MM-DD_HHMMSS.jsonedge_signal_aggregator_YYYY-MM-DD_HHMMSS.md
Resources
scripts/aggregate_signals.py-- Main aggregation script with CLI interfacereferences/signal-weighting-framework.md-- Rationale for default weights and scoring methodologyassets/default_weights.yaml-- Default skill weights configuration
Key Principles
- Provenance Tracking -- Every aggregated signal links back to its source skill and original reference
- Contradiction Transparency -- Conflicting signals are flagged, not hidden, to enable informed decisions
- Configurable Weights -- Default weights reflect typical reliability but can be customized per user
- Deduplication Without Loss -- Merged signals retain references to all original sources
- Actionable Output -- Ranked list with clear tickers, direction, and time horizon for each idea
- Idempotent Aggregation -- Re-ingesting the same evidence never inflates scores; agreement credit requires distinct skills AND distinct events
- Strict Score Validation -- NaN/infinity, negative, and out-of-range scores are rejected and reported, never converted into maximum confidence
FAQ
What does the edge-signal-aggregator skill do?
Aggregate and rank signals from multiple edge-finding skills (edge-candidate-agent, theme-detector, sector-analyst, institutional-flow-tracker) into a prioritized conviction dashboard with weighted scoring, deduplication, and contradiction detection.
How do I install edge-signal-aggregator?
Run npx skills add https://github.com/tradermonty/claude-trading-skills --skill edge-signal-aggregator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/edge-signal-aggregator/ (personal) or .claude/skills/edge-signal-aggregator/ (project).
Which AI agents can use edge-signal-aggregator?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is edge-signal-aggregator safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains edge-signal-aggregator?
It is published by tradermonty in tradermonty/claude-trading-skills. It has 3,189 recorded installs.
More from tradermonty/claude-trading-skills
us-stock-analysis
tradermonty/claude-trading-skills
Comprehensive US stock analysis including fundamental analysis (financial metrics, business quality, valuation), technical analysis (indicators, chart patterns, support/resistance), stock comparisons, and investment report generation. Use when user requests analysis of US stock tickers (e.g., "analyze AAPL", "compare TSLA vs NVDA", "give me a report on Microsoft"), evaluation of financial metrics, technical chart analysis, or investment recommendations for American stocks.
market-news-analyst
tradermonty/claude-trading-skills
This skill should be used when analyzing recent market-moving news events and their impact on equity markets and commodities. Use this skill when the user requests analysis of major financial news from the past 10 days, wants to understand market reactions to monetary policy decisions (FOMC, ECB, BOJ), needs assessment of geopolitical events' impact on commodities, or requires comprehensive review of earnings announcements from mega-cap stocks. The skill automatically collects news using WebSearch/WebFetch tools and produces impact-ranked analysis reports. All analysis thinking and output are conducted in English.
backtest-expert
tradermonty/claude-trading-skills
Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.
technical-analyst
tradermonty/claude-trading-skills
This skill should be used when analyzing weekly price charts for stocks, stock indices, cryptocurrencies, or forex pairs. Use this skill when the user provides chart images and requests technical analysis, trend identification, support/resistance levels, scenario planning, or probability assessments based purely on chart data without consideration of news or fundamental factors.
market-environment-analysis
tradermonty/claude-trading-skills
Comprehensive market environment analysis and reporting tool. Analyzes global markets including US, European, Asian markets, forex, commodities, and economic indicators. Provides risk-on/risk-off assessment, sector analysis, and technical indicator interpretation. Triggers on keywords like market analysis, market environment, global markets, trading environment, market conditions, investment climate, market sentiment, forex analysis, stock market analysis, 相場環境, 市場分析, マーケット状況, 投資環境.
portfolio-manager
tradermonty/claude-trading-skills
Comprehensive portfolio analysis using Alpaca MCP Server integration to fetch holdings and positions, then analyze asset allocation, risk metrics, individual stock positions, diversification, and generate rebalancing recommendations. Use when user requests portfolio review, position analysis, risk assessment, performance evaluation, or rebalancing suggestions for their brokerage account.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.