--- name: evernote-core-workflow-a description: 'Execute Evernote primary workflow: Note Creation and Management. Use when creating notes, organizing content, managing notebooks, or implementing note-taking features. Trigger with phrases like "create evernote note", "evernote note workflow", "manage evernote notes", "evernote content". ' allowed-tools: Read, Write, Edit, Bash(npm:*), Grep version: 1.0.0 license: MIT author: Jeremy Longshore tags: - saas - evernote - workflow compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw --- # Evernote Core Workflow A: Note Creation & Management ## Overview Primary workflow for creating, organizing, and managing notes in Evernote. Covers CRUD operations, ENML formatting, notebook organization, and tag management. ## Prerequisites - Completed `evernote-install-auth` setup - Understanding of ENML format - Valid access token configured ## Instructions ### Step 1: Note Creation Service Build a `NoteService` class that wraps NoteStore operations. Key methods: `createNote()` with ENML wrapping, `createTextNote()` for plain text, `createChecklistNote()` for `` items. Always sanitize titles (max 255 chars, no newlines) and wrap content in the required ENML envelope. ```javascript // Wrap raw HTML in required ENML envelope function wrapInENML(content) { return ` ${content}`; } const note = new Evernote.Types.Note(); note.title = 'Meeting Notes'; note.content = wrapInENML('

Discussion points...

'); note.tagNames = ['meeting', 'team']; const created = await noteStore.createNote(note); ``` ### Step 2: Note Retrieval and Reading Use `getNote(guid, withContent, withResources, withRecognition, withAltData)` to control response size. Extract plain text from ENML by stripping tags. Check for uncompleted todos with `/` tag. Add tags via `note.tagNames` array. Move notes between notebooks by changing `note.notebookGuid`. ### Step 4: Note Organization Manage notebooks with `listNotebooks()`, `createNotebook()`, and `getDefaultNotebook()`. Use `notebook.stack` to group notebooks into stacks. Implement `ensureNotebook(name)` to find-or-create by name. ### Step 5: Complete Workflow Example See [Implementation Guide](references/implementation-guide.md) for the full `NoteService`, `NotebookService`, and a combined workflow that creates meeting notes with checklists, appends content, and toggles todos. ## Output - `NoteService` class with create, read, update, and delete operations - ENML content formatting and validation helpers - `NotebookService` for notebook CRUD and stack organization - Tag management (add, remove, find-or-create) - Checklist note support with `` elements ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | `BAD_DATA_FORMAT` | Invalid ENML | Use `wrapInENML()` helper; remove forbidden elements (`