inject-scenarioslisted
Install: claude install-skill Rockfish-Data/tacklebox
# Inject scenarios
Use `rockfish.labs.scenarios.Client` to inject synthetic scenarios into a time-series dataset and optionally generate Q&A test cases from the perturbation.
## When to use this skill
Use when the user has (or will create) a baseline time-series dataset and wants to:
- Inject a **spike** at a single timestamp (set `measurement = magnitude`).
- Inject an **outage** across a time range (hold `measurement = outage_value` between `start_timestamp` and `end_timestamp`).
- Inject a **ramp** or **shift** (gradual or step change).
- Generate Q&A test cases describing the injected scenario.
- List every scenario derived from a source dataset.
If the user doesn't yet have a baseline dataset, use the `generate-from-schema` skill first to produce one.
## Concept
A *scenario* is a perturbation applied to a single `measurement` column in a time-series dataset, indexed by a `timestamp_column`. The scenarios service:
1. Reads the source dataset by `dataset_id`.
2. Applies the perturbation per the `config` payload.
3. Writes a new dataset containing the perturbed series, with lineage labels (`source_dataset_ids`) and scenario metadata (`scenario_config`) stamped onto the Arrow schema.
## How to use
```python
from rockfish.labs.scenarios import Client
async with rf.Connection.from_config() as conn:
client = Client(conn)
result = await client.inject(
source_id,
config={
"type": "spike", # or outage, ramp, shi