Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 3 additions & 40 deletions 003-skills/.claude/skills/nixtla-anomaly-detector/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ allowed-tools: "Read,Write,Bash(python:*),Glob,Grep"
version: "1.0.0"
author: "Jeremy Longshore <jeremy@intentsolutions.io>"
license: MIT
compatible-with: claude-code
tags: [nixtla, time-series, forecasting, anomaly-detection]
---

# Nixtla Anomaly Detector
Expand Down Expand Up @@ -90,46 +92,7 @@ The script generates three output files:

## Examples

### Example 1: Detect outliers in website traffic

**Input** (`traffic.csv`):
```csv
unique_id,ds,y
website_1,2024-01-01,1000
website_1,2024-01-02,1050
website_1,2024-01-03,300
website_1,2024-01-04,980
```

**Command**:
```bash
python {baseDir}/scripts/detect_anomalies.py --input traffic.csv
```

**Output** (anomalies.csv):
```csv
unique_id,ds,y,anomaly_type
website_1,2024-01-03,300,outlier
```

### Example 2: Identify trend break in sales data

**Input** (`sales.csv`):
```csv
unique_id,ds,y
store_1,2023-12-28,50
store_1,2023-12-29,55
store_1,2023-12-30,60
store_1,2023-12-31,150
store_1,2024-01-01,145
```

**Command**:
```bash
python {baseDir}/scripts/detect_anomalies.py -i sales.csv -o sales_anomalies.csv
```

**Output**: Detects trend break at 2023-12-31
See [examples](references/examples.md) for detailed usage scenarios.

## Resources

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Examples

### Example 1: Detect outliers in website traffic

**Input** (`traffic.csv`):
```csv
unique_id,ds,y
website_1,2024-01-01,1000
website_1,2024-01-02,1050
website_1,2024-01-03,300
website_1,2024-01-04,980
```

**Command**:
```bash
python {baseDir}/scripts/detect_anomalies.py --input traffic.csv
```

**Output** (anomalies.csv):
```csv
unique_id,ds,y,anomaly_type
website_1,2024-01-03,300,outlier
```

### Example 2: Identify trend break in sales data

**Input** (`sales.csv`):
```csv
unique_id,ds,y
store_1,2023-12-28,50
store_1,2023-12-29,55
store_1,2023-12-30,60
store_1,2023-12-31,150
store_1,2024-01-01,145
```

**Command**:
```bash
python {baseDir}/scripts/detect_anomalies.py -i sales.csv -o sales_anomalies.csv
```

**Output**: Detects trend break at 2023-12-31
31 changes: 4 additions & 27 deletions 003-skills/.claude/skills/nixtla-arbitrage-detector/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ description: "Detect arbitrage opportunities between Polymarket and Kalshi using
version: "1.0.0"
author: "Jeremy Longshore <jeremy@intentsolutions.io>"
license: MIT
compatible-with: claude-code
tags: [nixtla, time-series, forecasting, arbitrage, prediction-markets]
allowed-tools: "Read,Write,Bash(python:*),Glob,Grep,WebFetch"
argument-hint: "<event-keyword>"
Comment on lines +7 to +10
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

3. Nonstandard frontmatter fails ci 🐞 Bug ✓ Correctness

The new frontmatter keys compatible-with (and argument-hint in at least one skill) are not in
validate_skills_v2.py’s allowed field set, so they generate warnings as “Non-standard field”. CI
runs the validator with --fail-on-warn, so these warnings become build-breaking failures.
Agent Prompt
## Issue description
CI will fail because `compatible-with` and `argument-hint` are emitted as `[frontmatter] Non-standard field` warnings by `004-scripts/validate_skills_v2.py`, and the workflow runs validation with `--fail-on-warn`.

## Issue Context
- `OPTIONAL_FIELDS` does not include `compatible-with` or `argument-hint`.
- Unknown fields generate warnings.
- CI treats warnings as errors.

## Fix Focus Areas
- Add the new keys to the validator’s `OPTIONAL_FIELDS` (or migrate them under an allowed field like `metadata` across all skills).
- (Optional) Add type validation for these fields (e.g., string enum for `compatible-with`, string for `argument-hint`).

### Fix Focus Areas (locations)
- 004-scripts/validate_skills_v2.py[54-67]
- 004-scripts/validate_skills_v2.py[404-410]
- .github/workflows/skills-validation.yml[29-31]
- 003-skills/.claude/skills/nixtla-arbitrage-detector/SKILL.md[1-11] (example skill using both keys)

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

---

# Arbitrage Detector
Expand Down Expand Up @@ -91,33 +94,7 @@ Generates a formatted markdown report with top opportunities and risk warnings.

## Examples

### Example 1: Profitable Arbitrage Found

**Scenario**: Same election event on both platforms

```
Event: "Will candidate X win the 2024 election?"
Polymarket: YES = 0.45, NO = 0.55
Kalshi: YES = 0.52, NO = 0.48

Strategy: Buy Polymarket YES + Kalshi NO
Cost: 0.45 * 1.02 + 0.48 * 1.01 = 0.459 + 0.485 = 0.944
Guaranteed Return: $1.00
Profit: $0.056 (5.9%)
```

### Example 2: No Arbitrage

**Scenario**: Prices are efficiently aligned

```
Event: "Will it rain tomorrow in NYC?"
Polymarket: YES = 0.50, NO = 0.50
Kalshi: YES = 0.50, NO = 0.50

Cost of any strategy > $1.00 after fees
Result: No profitable arbitrage
```
See [examples](references/examples.md) for detailed usage scenarios.

## Resources

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Examples

### Example 1: Profitable Arbitrage Found

**Scenario**: Same election event on both platforms

```
Event: "Will candidate X win the 2024 election?"
Polymarket: YES = 0.45, NO = 0.55
Kalshi: YES = 0.52, NO = 0.48

Strategy: Buy Polymarket YES + Kalshi NO
Cost: 0.45 * 1.02 + 0.48 * 1.01 = 0.459 + 0.485 = 0.944
Guaranteed Return: $1.00
Profit: $0.056 (5.9%)
```

### Example 2: No Arbitrage

**Scenario**: Prices are efficiently aligned

```
Event: "Will it rain tomorrow in NYC?"
Polymarket: YES = 0.50, NO = 0.50
Kalshi: YES = 0.50, NO = 0.50

Cost of any strategy > $1.00 after fees
Result: No profitable arbitrage
```
29 changes: 3 additions & 26 deletions 003-skills/.claude/skills/nixtla-batch-forecaster/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: "Forecast multiple time series in parallel using TimeGPT. Use when
version: "1.0.0"
author: "Jeremy Longshore <jeremy@intentsolutions.io>"
license: MIT
compatible-with: claude-code
tags: [nixtla, time-series, forecasting, batch-processing]
allowed-tools: "Read,Write,Bash(python:*),Glob,Grep"
---

Expand Down Expand Up @@ -98,32 +100,7 @@ python {baseDir}/scripts/generate_report.py forecasts/

## Examples

### Example 1: Forecast 50 Daily Contracts

```bash
python {baseDir}/scripts/batch_forecast.py contracts.csv \
--horizon 14 \
--freq D \
--batch-size 10 \
--output-dir forecasts/
```

**Output**:
```
Batch Forecast Complete
Series forecasted: 50/50
Success rate: 100.0%
```

### Example 2: Hourly Portfolio with Aggregation

```bash
python {baseDir}/scripts/batch_forecast.py portfolio.csv \
--horizon 24 \
--freq H \
--aggregate \
--output-dir portfolio_forecasts/
```
See [examples](references/examples.md) for detailed usage scenarios.

## Resources

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Examples

### Example 1: Forecast 50 Daily Contracts

```bash
python {baseDir}/scripts/batch_forecast.py contracts.csv \
--horizon 14 \
--freq D \
--batch-size 10 \
--output-dir forecasts/
```

**Output**:
```
Batch Forecast Complete
Series forecasted: 50/50
Success rate: 100.0%
```

### Example 2: Hourly Portfolio with Aggregation

```bash
python {baseDir}/scripts/batch_forecast.py portfolio.csv \
--horizon 24 \
--freq H \
--aggregate \
--output-dir portfolio_forecasts/
```
Loading
Loading