From clari-pack
Sets up local dev for Clari API integrations with mock forecast data. For building dashboards, testing export pipelines, and iterating data transformations offline.
How this skill is triggered — by the user, by Claude, or both
Slash command
/clari-pack:clari-local-dev-loopThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Local development workflow for Clari integrations: mock forecast data for offline testing, schedule recurring exports, and build data transformation pipelines.
Local development workflow for Clari integrations: mock forecast data for offline testing, schedule recurring exports, and build data transformation pipelines.
clari-install-auth setupclari-integration/
├── src/
│ ├── clari_client.py # API client wrapper
│ ├── export_pipeline.py # Export and transform pipeline
│ ├── models.py # Data models for forecast data
│ └── config.py # Environment config
├── tests/
│ ├── fixtures/
│ │ ├── forecast_export.json # Sample export response
│ │ └── job_status.json # Sample job status
│ └── test_pipeline.py
├── .env.local # Dev credentials (git-ignored)
├── .env.example
└── requirements.txt
# tests/fixtures/forecast_export.json
MOCK_FORECAST = {
"entries": [
{
"ownerName": "Jane Smith",
"ownerEmail": "[email protected]",
"forecastAmount": 250000,
"quotaAmount": 300000,
"crmTotal": 180000,
"crmClosed": 120000,
"adjustmentAmount": 15000,
"timePeriod": "2026_Q1"
},
{
"ownerName": "Bob Johnson",
"ownerEmail": "[email protected]",
"forecastAmount": 180000,
"quotaAmount": 250000,
"crmTotal": 140000,
"crmClosed": 90000,
"adjustmentAmount": 0,
"timePeriod": "2026_Q1"
}
]
}
# tests/test_pipeline.py
import pytest
from src.export_pipeline import transform_forecast_data
def test_forecast_aggregation():
data = MOCK_FORECAST
result = transform_forecast_data(data)
assert result["total_forecast"] == 430000
assert result["total_quota"] == 550000
assert result["attainment_percent"] == pytest.approx(78.2, rel=0.1)
assert len(result["reps"]) == 2
def test_handles_empty_export():
result = transform_forecast_data({"entries": []})
assert result["total_forecast"] == 0
#!/bin/bash
# scripts/dev-export.sh
set -euo pipefail
source .env.local
echo "=== Clari Dev Export ==="
python3 src/export_pipeline.py \
--forecast "company_forecast" \
--period "2026_Q1" \
--format json \
--output ./data/latest-export.json
echo "Export saved to ./data/latest-export.json"
echo "Records: $(jq '.entries | length' ./data/latest-export.json)"
| Error | Cause | Solution |
|---|---|---|
| Import error | Missing dependency | pip install -r requirements.txt |
| Empty export | Wrong time period | Use a period with submitted forecasts |
| Mock data stale | Schema changed | Re-download a sample from API |
.env.local not loading | Missing dotenv | pip install python-dotenv |
See clari-sdk-patterns for production-ready API wrappers.
7plugins reuse this skill
First indexed Jul 10, 2026
Showing the 6 earliest of 7 plugins
npx claudepluginhub luxdevnet/claude-plus-lux --plugin clari-packSets up local dev for Clari API integrations with mock forecast data. For building dashboards, testing export pipelines, and iterating data transformations offline.
Sets up local SalesLoft development with TypeScript API client, fixtures, and Vitest mocking for offline integration testing.
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.