002-workspaces/test-harness-lab/skills/nixtla-release-validation/SKILL.md
Multi-phase release validation workflow for nixtla. Analyzes git changes, predicts test impact, assesses risk, runs pytest verification, provides go/no-go recommendation. Trigger: "validate release", "run release validation", "check release readiness"
npx skillsauth add intent-solutions-io/plugins-nixtla nixtla-release-validationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated pre-release validation using multi-phase test harness pattern with empirical verification.
Validate nixtla releases (e.g., v1.7.0 → v1.8.0) before shipping by analyzing changes, predicting impact, running tests, and providing evidence-based go/no-go recommendation.
This workflow implements the 5-phase validated workflow pattern:
Phase 4 is the critical phase - it runs actual scripts to verify Phase 2 predictions.
jq for JSON processing002-workspaces/test-harness-lab/skills/nixtla-release-validation/reports/cd 002-workspaces/test-harness-lab/skills/nixtla-release-validation
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
SESSION_DIR="reports/${TIMESTAMP}"
mkdir -p "${SESSION_DIR}"
Task: Spawn Phase 1 agent
Input JSON:
{
"session_dir": "<SESSION_DIR>",
"from_version": "v1.7.0",
"to_version": "v1.8.0",
"repo_path": "/home/jeremy/000-projects/nixtla"
}
Expected Output: <SESSION_DIR>/phase1-change-analysis.json
{
"metadata": {
"phase": 1,
"timestamp": "2025-12-22T17:00:00Z"
},
"changes": {
"changed_files": ["src/forecast.py", "tests/test_forecast.py"],
"changed_apis": ["forecast()", "fit()"],
"breaking_changes": ["forecast() now requires 'freq' parameter"],
"new_features": ["Added anomaly detection"]
}
}
Task: Spawn Phase 2 agent
Input JSON:
{
"session_dir": "<SESSION_DIR>",
"phase1_output": "<SESSION_DIR>/phase1-change-analysis.json"
}
Expected Output: <SESSION_DIR>/phase2-test-predictions.json
{
"metadata": {
"phase": 2,
"timestamp": "2025-12-22T17:05:00Z"
},
"test_predictions": [
{
"change": "Modified forecast() signature",
"affected_tests": ["test_forecast_basic", "test_forecast_with_exog"],
"reason": "Function signature changed, existing calls will fail"
}
]
}
Task: Spawn Phase 3 agent
Input JSON:
{
"session_dir": "<SESSION_DIR>",
"phase1_output": "<SESSION_DIR>/phase1-change-analysis.json",
"phase2_output": "<SESSION_DIR>/phase2-test-predictions.json"
}
Expected Output: <SESSION_DIR>/phase3-risk-assessment.json
{
"metadata": {
"phase": 3,
"timestamp": "2025-12-22T17:10:00Z"
},
"risk_categories": {
"high_risk": ["forecast() signature change - breaking"],
"medium_risk": ["New anomaly detection - needs testing"],
"low_risk": ["Documentation updates"]
},
"go_no_go": "pending"
}
Task: Run verification script, compare predictions vs reality
Script: scripts/analyze_test_results.sh
bash scripts/analyze_test_results.sh \
"/home/jeremy/000-projects/nixtla" \
"${SESSION_DIR}"
Expected Output: <SESSION_DIR>/phase4-verification-report.json
{
"metadata": {
"phase": 4,
"script": "analyze_test_results.sh",
"timestamp": "2025-12-22T17:15:00Z"
},
"results": {
"tests_run": 145,
"tests_passed": 142,
"tests_failed": 3,
"coverage_pct": 87.5,
"failed_tests": ["test_forecast_basic", "test_forecast_with_exog"]
},
"prediction_comparison": {
"predictions_confirmed": ["test_forecast_basic - FAILED as predicted"],
"predictions_revised": [],
"unexpected_failures": ["test_hierarchical - not predicted"]
}
}
Task: Spawn Phase 5 agent
Input JSON:
{
"session_dir": "<SESSION_DIR>",
"phase3_output": "<SESSION_DIR>/phase3-risk-assessment.json",
"phase4_output": "<SESSION_DIR>/phase4-verification-report.json"
}
Expected Output: <SESSION_DIR>/phase5-final-recommendation.json
{
"metadata": {
"phase": 5,
"timestamp": "2025-12-22T17:20:00Z"
},
"recommendation": "no-go",
"blockers": [
"3 test failures must be fixed before release",
"forecast() breaking change needs migration guide"
],
"release_notes": "...",
"migration_steps": [...]
}
Create summary markdown report:
cat > "${SESSION_DIR}/RELEASE-VALIDATION-SUMMARY.md" <<EOF
# Release Validation Summary
**Release**: v1.7.0 → v1.8.0
**Date**: $(date)
**Recommendation**: NO-GO
## Test Results
- Tests Run: 145
- Passed: 142
- Failed: 3
## Blockers
1. forecast() breaking change needs migration guide
2. 3 test failures must be addressed
## Next Steps
1. Fix test_forecast_basic
2. Fix test_forecast_with_exog
3. Fix test_hierarchical
4. Write migration guide for forecast() changes
5. Re-run validation
EOF
Structured Outputs:
phase1-change-analysis.json - Git changes analyzedphase2-test-predictions.json - Impact predictionsphase3-risk-assessment.json - Risk categoriesphase4-verification-report.json - Actual test resultsphase5-final-recommendation.json - Go/no-go decisionRELEASE-VALIDATION-SUMMARY.md - Human-readable summaryEvidence Trail: All outputs in timestamped session directory.
If Phase 1-3 fail: Check JSON syntax, file paths, git tags exist.
If Phase 4 fails:
scripts/analyze_test_results.sh exists and is executableIf Phase 5 fails: Check Phase 3-4 JSON outputs exist and are valid.
Validation Failures: Each phase must write valid JSON to expected path before next phase runs.
cd 002-workspaces/test-harness-lab/skills/nixtla-release-validation
SESSION_DIR="reports/$(date +%Y%m%d_%H%M%S)"
mkdir -p "${SESSION_DIR}"
# Phase 1-5: Spawn agents sequentially
# Phase 4: Run verification script
bash scripts/analyze_test_results.sh /home/jeremy/000-projects/nixtla "${SESSION_DIR}"
# Check final recommendation
cat "${SESSION_DIR}/phase5-final-recommendation.json" | jq '.recommendation'
SESSION_DIR="reports/test_v1.6_to_v1.7"
mkdir -p "${SESSION_DIR}"
# Run phases with historical release
# Compare predictions vs actual (known outcome)
002-workspaces/test-harness-lab/reference-implementation/scripts/analyze_test_results.shagents/phase_*.mdtools
This skill enables Claude to create and execute load tests for performance validation. It is designed to generate load test scripts using tools like k6, JMeter, and Artillery, based on specified test scenarios. Use this skill when the user requests to create a "load test", conduct "performance testing", validate "application performance", or needs a "stress test" to identify breaking points in the application. The skill helps define performance thresholds and provides execution instructions.
testing
This skill enables Claude to collect comprehensive infrastructure performance metrics across compute, storage, network, containers, load balancers, and databases. It is triggered when the user requests "collect infrastructure metrics", "monitor server performance", "set up performance dashboards", or needs to analyze system resource utilization. The skill configures metrics collection, sets up aggregation, and helps create infrastructure dashboards for health monitoring and capacity tracking. It supports configuration for Prometheus, Datadog, and CloudWatch.
tools
This skill enables Claude to monitor and analyze application error rates to improve reliability. It is used when the user needs to track and understand errors occurring in their application, including HTTP errors, application exceptions, database errors, external API errors, background job errors, and client-side errors. Use this skill when the user asks to "monitor errors", "analyze error rates", "track application errors", or requests help with "error monitoring". It sets up comprehensive error tracking and alerting based on defined thresholds.
development
This skill automates the setup of distributed tracing for microservices. It helps developers implement end-to-end request visibility by configuring context propagation, span creation, trace collection, and analysis. Use this skill when the user requests to set up distributed tracing, implement observability, or troubleshoot performance issues in a microservices architecture. The skill is triggered by phrases such as "setup tracing", "implement distributed tracing", "configure opentelemetry", or "add observability to microservices".