smithery/jeremylongshore

evernote-debug-bundle

Debug Evernote API issues with diagnostic tools and techniques. Use when troubleshooting API calls, inspecting requests/responses, or diagnosing integration problems. Trigger with phrases like "debug evernote", "evernote diagnostic", "troubleshoot evernote", "evernote logs", "inspect evernote". '

Installation

$ npx skills add smithery/jeremylongshore --skill evernote-debug-bundle

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/jeremylongshore · top by installs.

npx skills add smithery/jeremylongshore

Browse all from smithery/jeremylongshore

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.13.0
LicenseMIT
CompatibilityDesigned for Claude Code
Allowed toolsRead, Write, Edit, Bash(npm:*), Bash(node:*), Grep
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,742 B
  • docs SUMMARY.md 328 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Evernote Debug Bundle

Current State

!node --version 2>/dev/null || echo 'N/A' !python3 --version 2>/dev/null || echo 'N/A'

Overview

Comprehensive debugging toolkit for Evernote API integrations, including request/response logging, ENML validation with auto-fix, token inspection, and diagnostic CLI utilities.

Prerequisites

  • Evernote SDK installed
  • Node.js environment
  • Understanding of common Evernote errors (see evernote-common-errors)

Instructions

Step 1: Debug Logger

Create a logger that captures API method names, arguments (with token redaction), response times, and error details. Write to both console and file for post-mortem analysis.

class EvernoteDebugLogger {
  constructor(logFile = 'evernote-debug.log') {
    this.logFile = logFile;
    this.requests = [];
  }

  logRequest(method, args, response, duration, error) {
    const entry = {
      timestamp: new Date().toISOString(),
      method,
      duration: `${duration}ms`,
      success: !error,
      error: error?.message || error?.errorCode
    };
    this.requests.push(entry);
    fs.appendFileSync(this.logFile, JSON.stringify(entry) + '\n');
  }
}

Step 2: Instrumented Client Wrapper

Wrap the NoteStore with a Proxy that automatically logs every API call, measures response time, and catches errors. This adds zero-config debugging to any existing integration.

function instrumentNoteStore(noteStore, logger) {
  return new Proxy(noteStore, {
    get(target, prop) {
      if (typeof target[prop] !== 'function') return target[prop];
      return async (...args) => {
        const start = Date.now();
        try {
          const result = await targetprop;
          logger.logRequest(prop, args, result, Date.now() - start);
          return result;
        } catch (error) {
          logger.logRequest(prop, args, null, Date.now() - start, error);
          throw error;
        }
      };
    }
  });
}

Step 3: ENML Validator

Validate ENML content against the DTD rules: check for XML declaration, DOCTYPE, <en-note> root, forbidden elements, and unclosed tags. Optionally auto-fix common issues (add missing headers, close tags, strip forbidden elements).

Step 4: Token Inspector

Check token validity by calling userStore.getUser(). Report token owner, expiration date (edam_expires), account type, and remaining upload quota.

Step 5: Diagnostic CLI

Create a CLI script with commands: diagnose (run all checks), validate-enml <file> (validate ENML content), inspect-token (show token info), test-api (verify API connectivity).

For the full debug logger, instrumented client, ENML auto-fixer, token inspector, and diagnostic CLI, see [Implementation Guide](references/implementation-guide.md).

Output

  • EvernoteDebugLogger with file and console output
  • Proxy-based instrumented NoteStore wrapper
  • ENML validator with auto-fix capability
  • Token and account inspector utility
  • Diagnostic CLI with diagnose, validate-enml, inspect-token commands

Error Handling

Issue Diagnostic Solution
Auth failures Run inspect-token to check expiration Re-authenticate if expired
ENML errors Run validate-enml on content Auto-fix or manually correct
Rate limits Check request frequency in debug log Increase delay between calls
Missing data Inspect response in debug log Verify API parameters (withContent flags)

Resources

Next Steps

For rate limit handling, see evernote-rate-limits.

Examples

Request tracing: Wrap NoteStore with the instrumented proxy, run your workflow, then review evernote-debug.log for slow calls (>2s), failed requests, and rate limit hits.

ENML debugging: Pipe note content through the ENML validator to find missing DOCTYPE, forbidden <script> tags, or unclosed elements. Use auto-fix mode to correct issues automatically.