Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
openevidence-prod-checklist【部署与运维】Production readiness checklist for OpenEvidence clinical AI deployments. Use when preparing for production launch, conducting pre-deployment reviews, or auditing OpenEvidence integration for compliance. Trigger with phrases like "openevidence production", "openevidence go-live", "openevidence checklist", "deploy openevidence", "openevidence readiness…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Comprehensive checklist for deploying OpenEvidence clinical AI integrations to production healthcare environments.
Business Associate Agreement (BAA) signed
API Terms of Service accepted
Clinical use disclaimers in place
Liability and malpractice considerations reviewed
Data processing agreement documented
Production API keys generated
Key rotation schedule established
IP allowlist configured (if available)
TLS 1.2+ enforced
PHI sanitization implemented
openevidence-security-basicsWebhook signature verification active
Audit logging enabled
High availability configuration
// Multiple API endpoints for failover
const config = {
primaryEndpoint: 'https://api.openevidence.com',
fallbackEndpoint: 'https://api-fallback.openevidence.com',
timeout: 30000,
retries: 3,
};
Circuit breaker implemented
import CircuitBreaker from 'opossum';
const breaker = new CircuitBreaker(clinicalQuery, {
timeout: 30000,
errorThresholdPercentage: 50,
resetTimeout: 30000,
});
Rate limit handling configured
openevidence-rate-limitsTimeout configuration appropriate
Health check endpoint implemented
app.get('/health/openevidence', async (req, res) => {
try {
await client.health.check();
res.json({ status: 'healthy' });
} catch (error) {
res.status(503).json({ status: 'unhealthy', error: error.message });
}
});
Metrics collection active
openevidence-observabilityAlert rules configured
| Alert | Threshold | Severity |
|---|---|---|
| Error rate > 5% | 5 min window | Warning |
| Error rate > 20% | 5 min window | Critical |
| P95 latency > 15s | 5 min window | Warning |
| Health check failed | 2 consecutive | Critical |
Dashboard created
Log aggregation configured
Graceful degradation implemented
async function clinicalQueryWithFallback(question: string) {
try {
return await openEvidenceQuery(question);
} catch (error) {
// Log error, alert, return cached or default response
await alertService.send('OpenEvidence unavailable');
return {
answer: 'Clinical evidence service temporarily unavailable. Please consult current guidelines directly.',
fallback: true,
};
}
}
Retry logic tested
Error classification implemented
openevidence-common-errorsResponse caching strategy
Connection pooling configured
Query optimization reviewed
Load testing completed
Runbook created
openevidence-incident-runbookOn-call training completed
User documentation updated
Clinical staff training
Integration tests passing
End-to-end tests passing
Clinical validation completed
Performance benchmarks met
Blue-green or canary deployment planned
Rollback procedure documented
Feature flags configured
Database migrations completed
Monitoring dashboard reviewed daily (first week)
Error reports triaged immediately
User feedback collection active
Performance baseline established
// config/openevidence.production.ts
export const productionConfig = {
// Credentials from secret manager
credentials: {
source: 'secret-manager',
apiKeyPath: 'projects/prod/secrets/openevidence-api-key',
orgIdPath: 'projects/prod/secrets/openevidence-org-id',
},
// Endpoints
api: {
baseUrl: 'https://api.openevidence.com',
timeout: 30000,
retries: 3,
},
// Rate limiting
rateLimits: {
enabled: true,
maxConcurrent: 10,
requestsPerMinute: 100,
},
// Circuit breaker
circuitBreaker: {
enabled: true,
errorThreshold: 50,
resetTimeout: 30000,
},
// Caching
cache: {
enabled: true,
ttlSeconds: 3600,
maxEntries: 10000,
},
// Monitoring
monitoring: {
metricsEnabled: true,
tracingEnabled: true,
logLevel: 'info',
},
};
For version upgrades, see openevidence-upgrade-migration.