Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
hex-prod-checklist【部署与运维】Execute Hex production deployment checklist and rollback procedures. Use when deploying Hex integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like "hex production", "deploy hex", "hex go-live", "hex launch checklist".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: hex-prod-checklist description: 'Execute Hex production deployment checklist and rollback procedures.
Use when deploying Hex integrations to production, preparing for launch,
or implementing go-live procedures.
Trigger with phrases like "hex production", "deploy hex",
"hex go-live", "hex launch checklist".
' allowed-tools: Read, Bash(curl:*), Grep version: 1.6.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Hex is a collaborative data analytics platform where teams build notebooks, dashboards, and scheduled data pipelines. A production integration triggers project runs, retrieves results, and monitors pipeline health via the Hex API. Failures mean stale dashboards, broken scheduled reports, or data pipelines that silently stop producing output for downstream consumers.
HEX_API_KEY stored in secrets manager (not config files)https://app.hex.tech/api/v1)async function checkHexReadiness(): Promise<void> {
const checks: { name: string; pass: boolean; detail: string }[] = [];
// API connectivity
try {
const res = await fetch('https://app.hex.tech/api/v1/projects', {
headers: { Authorization: `Bearer ${process.env.HEX_API_KEY}` },
});
checks.push({ name: 'Hex API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` });
} catch (e: any) { checks.push({ name: 'Hex API', pass: false, detail: e.message }); }
// Credentials present
checks.push({ name: 'API Key Set', pass: !!process.env.HEX_API_KEY, detail: process.env.HEX_API_KEY ? 'Present' : 'MISSING' });
// Rate limit check
try {
const res = await fetch('https://app.hex.tech/api/v1/projects', {
headers: { Authorization: `Bearer ${process.env.HEX_API_KEY}` },
});
const remaining = res.headers.get('x-ratelimit-remaining');
checks.push({ name: 'Rate Limit', pass: Number(remaining) > 5, detail: `${remaining} remaining` });
} catch (e: any) { checks.push({ name: 'Rate Limit', pass: false, detail: e.message }); }
for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`);
}
checkHexReadiness();
| Check | Risk if Skipped | Priority |
|---|---|---|
| API key expiration | All scheduled runs stop silently | P1 |
| ERRORED run detection | Stale dashboards served to stakeholders | P1 |
| Rate limit handling | Burst orchestration blocked by 429 | P2 |
| Run duration regression | Slow pipelines delay downstream reports | P2 |
| Project version pinning | Unexpected notebook changes break output | P3 |
Create a readiness receipt with revision, canary project, health/latency/quota outcomes, aggregate assertion, approvals, outcome, and rollback reference. Exclude SQL, output, credentials, and identities.
revision=r44; canary=proj-sandbox-12; health=pass; quota=within-budget; assertions=pass; outcome=promote; rollback=r43 is a complete canary decision.
See hex-security-basics for data connection security and access control.