Skillshub evernote-incident-runbook

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/evernote-incident-runbook" ~/.claude/skills/comeonoliver-skillshub-evernote-incident-runbook && rm -rf "$T"
manifest: skills/jeremylongshore/claude-code-plugins-plus-skills/evernote-incident-runbook/SKILL.md
source content

Evernote Incident Runbook

Overview

Step-by-step procedures for responding to Evernote integration incidents including API outages, rate limit escalations, authentication failures, data sync issues, and quota exhaustion.

Prerequisites

  • Access to monitoring dashboards and production logs
  • Production Evernote API credentials
  • Communication channels for escalation (Slack, PagerDuty)

Instructions

Incident Classification

SeveritySymptomsResponse Time
P1 - CriticalAll Evernote API calls failing, data loss risk15 minutes
P2 - HighPersistent rate limits, auth failures for multiple users1 hour
P3 - MediumIntermittent errors, degraded sync performance4 hours
P4 - LowSingle user issues, non-critical feature affectedNext business day

Step 1: Triage

Check Evernote's status page first. If Evernote is down, activate the circuit breaker and wait.

# Check Evernote service status
curl -sf https://status.evernote.com/api/v2/status.json | jq '.status'

# Check your API connectivity
curl -sf -H "Authorization: Bearer $EVERNOTE_TOKEN" \
  https://www.evernote.com/shard/s1/notestore | head -20

# Check error rate in logs (last 15 min)
grep -c 'EDAMSystemException' /var/log/evernote-app.log

Step 2: Rate Limit Escalation

If rate limits are persistent: reduce API call frequency, increase delays between batch operations, and contact Evernote developer support for a rate limit increase.

Step 3: Authentication Failure

For auth failures: verify tokens are not expired (

edam_expires
), check that production credentials match the production endpoint (
sandbox: false
), and test with a fresh Developer Token to isolate the issue.

Step 4: Sync Failure Recovery

For sync issues: compare local USN with server USN via

getSyncState()
. If gap is too large, reset to full sync from USN 0. Verify data integrity after re-sync.

Step 5: Mitigation Strategies

  • Circuit breaker: Disable Evernote API calls after N consecutive failures. Retry after cooldown period.
  • Graceful degradation: Serve cached data when API is unavailable. Queue writes for retry.
  • Failover: Switch to polling-based sync if webhooks stop arriving.

Post-Incident

  • Document root cause and timeline
  • Update runbook with new failure modes discovered
  • Adjust alert thresholds if false positive or missed detection
  • Review and improve circuit breaker settings

For the complete diagnostic scripts, mitigation implementations, and communication templates, see Implementation Guide.

Output

  • Incident severity classification table
  • Triage diagnostic commands for quick assessment
  • Rate limit, auth, and sync failure response procedures
  • Circuit breaker and graceful degradation patterns
  • Post-incident review checklist

Error Handling

Incident TypeDiagnosticMitigation
API outageCheck
status.evernote.com
Activate circuit breaker, serve cached data
Rate limit stormCheck
evernote_rate_limits_total
metric
Reduce batch sizes, increase delays
Mass auth failureVerify token expiration dates in DBTrigger re-auth flow for affected users
Sync data lossCompare local vs server note countsFull re-sync from USN 0

Resources

Next Steps

For data handling best practices, see

evernote-data-handling
.

Examples

API outage response: Alert fires, on-call checks status page, confirms Evernote outage, activates circuit breaker, posts status update to internal Slack, monitors for recovery, then gradually re-enables API calls.

Rate limit recovery: Persistent

RATE_LIMIT_REACHED
errors detected. Reduce batch size from 100 to 10, increase delay to 500ms, clear the request queue, and contact Evernote support if limits continue after 1 hour.