.claude/skills/deploy/SKILL.md
Deploy recommendations to production with full validation. Use after pipeline runs and QA passes.
npx skillsauth add praveenmaiya/holley-rec deployInstall 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.
Deploys vehicle fitment recommendations from staging to production with comprehensive validation.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Dry Run │───▶│ QA Checks │───▶│ Confirm │───▶│ Deploy │
│ Validate │ │ Validate │ │ With User │ │ To Prod │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
▼ ▼ ▼ ▼
Syntax OK? All pass? Approved? Success?
Verify staging table exists and has data:
bq query --use_legacy_sql=false "
SELECT
COUNT(*) as total_users,
COUNT(DISTINCT email_lower) as unique_emails,
MIN(rec1_price) as min_price,
MAX(rec1_price) as max_price,
pipeline_version
FROM \`auxia-reporting.temp_holley_v5_17.final_vehicle_recommendations\`
GROUP BY pipeline_version
"
Expected: ~450K users, prices $50-$10K, pipeline_version present.
bq query --use_legacy_sql=false < sql/validation/qa_checks.sql
All checks must pass: | Check | Requirement | |-------|-------------| | User count | ~450,000 | | Duplicates | 0 | | Refurbished items | 0 | | Service SKUs | 0 | | Min price | >= $50 | | Max price | <= $10,000 | | HTTPS images | 100% | | Score ordering | Valid | | Diversity | Max 2/PartType |
bq query --use_legacy_sql=false "
WITH staging AS (
SELECT COUNT(*) as users, ROUND(AVG(rec1_score), 2) as avg_score
FROM \`auxia-reporting.temp_holley_v5_17.final_vehicle_recommendations\`
),
prod AS (
SELECT COUNT(*) as users, ROUND(AVG(rec1_score), 2) as avg_score
FROM \`auxia-reporting.company_1950_jp.final_vehicle_recommendations\`
)
SELECT
'staging' as env, s.users, s.avg_score FROM staging s
UNION ALL
SELECT
'production' as env, p.users, p.avg_score FROM prod p
"
CRITICAL: Always ask for user confirmation before deploying.
Present:
bq query --use_legacy_sql=false "
CREATE OR REPLACE TABLE \`auxia-reporting.company_1950_jp.final_vehicle_recommendations\` AS
SELECT * FROM \`auxia-reporting.temp_holley_v5_17.final_vehicle_recommendations\`
"
bq query --use_legacy_sql=false "
SELECT
COUNT(*) as total_users,
pipeline_version,
MIN(rec1_price) as min_price,
MAX(rec1_price) as max_price
FROM \`auxia-reporting.company_1950_jp.final_vehicle_recommendations\`
GROUP BY pipeline_version
"
After successful deploy:
docs/pipeline_run_stats.md with deployment statsdocs/decisions.md if significant changesSTATUS_LOG.md with deployment entryIf issues discovered post-deploy:
# Check if backup exists
bq ls auxia-reporting.company_1950_jp
# Restore from backup (if available)
bq query --use_legacy_sql=false "
CREATE OR REPLACE TABLE \`auxia-reporting.company_1950_jp.final_vehicle_recommendations\` AS
SELECT * FROM \`auxia-reporting.company_1950_jp.final_vehicle_recommendations_backup\`
"
NEVER deploy if:
sql/validation/qa_checks.sql - Validation suitedocs/pipeline_run_stats.md - Deployment historydocs/release_notes.md - Version changesSTATUS_LOG.md - Deployment logtesting
Generate a team-facing weekly status update from STATUS_LOG.md and git history.
testing
Run QA validation checks on the recommendation pipeline output. Use after pipeline runs to verify data quality.
research
Compare Personalized vs Static treatment performance with unbiased methodology. Use for A/B analysis and treatment comparison.
testing
Show current pipeline and deployment status. Use for quick health check.