Skip to content
Automation
Skill

/merit-documents

Keep every Merit Aktiva transaction backed by its source document (receipt / supplier invoice). Audits Merit for invoices missing an attachment, searches configured sources (local folders, or Gmail/Drive/etc. via a command adapter) for the matching PDF, stages or attaches it,

From plugin
merit-aktiva-workspace
1018 skills3 agents5 commands1 MCP

Claude Code

$ npx -y skills add Elnora-AI/elnora-merit-aktiva --skill merit-documents --agent claude-code

SKILL.md

merit-documents.SKILL.md
name: merit-documents
version: 1.0.0
description: >
  Keep every Merit Aktiva transaction backed by its source document (receipt / supplier
  invoice). Audits Merit for invoices missing an attachment, searches configured sources
  (local folders, or Gmail/Drive/etc. via a command adapter) for the matching PDF, stages
  or attaches it, and reports what it cannot find to a Slack-compatible webhook. Runs on a
  schedule. Use when: "missing receipts", "which invoices have no document", "attach
  receipts", "receipt audit", "documents without invoices", "find missing invoices",
  "auto-attach receipts", "receipt reminder", "document compliance".
  TRIGGERS: "missing receipt", "missing invoice", "no attachment", "receipt audit",
  "document sync", "attach receipt", "which transactions lack a receipt", "unattached
  invoice", "receipt reminder", "merit documents".

Merit document sync

Every transaction needs its original receipt/invoice for accounting. This skill finds the ones that don't have it, tries to locate the file, and flags the rest.

Full design + config: `docs/document-sync.md`.

Audit (read-only)

List invoices with no attached document. Purchases by default (an expense with no receipt is the real gap); `--sales` also checks issued invoices.

elnora-merit documents list-missing --from 2026-01-01 --to 2026-07-31
elnora-merit documents list-missing --sales

Output: `{ count, missing: [{ kind, id, billNo, partyName, docDate, grossTotal, currency, paid }] }`. The signal is Merit's own `FileExists` flag on each invoice header.

Find + resolve

elnora-merit documents run                 # audit → search → match → digest (READ-ONLY)
elnora-merit documents run --apply         # also stage matched PDFs for a UI upload
elnora-merit documents run --apply --rebook        # attach in place (delete+recreate; unpaid)
elnora-merit documents run --apply --rebook --force  # also paid (drops payment link — re-book it)

**Matching** scores each candidate PDF on amount (0.5) + date (0.3) + party name (0.2); ≥0.9 auto-resolves, 0.6–0.9 is reported to confirm by hand.

**Attach limit:** Merit's API only accepts a file at invoice *creation* time — there is no attach-to-existing endpoint. So `run --apply` defaults to **staging** (copy the PDF to a folder, named by invoice, for a 2-second drag into the Merit UI). `--rebook` delete+recreates instead; avoid it on paid invoices unless you will re-book the payment. Best practice: attach the receipt in the same `purchase-invoices create` call for new bills.

Sources (local + Gmail/Drive/anything)

Configure in `~/.config/elnora-merit/docsync.json` (see `docsync.example.json`):

  • `{ "type": "dir", "path": "~/Downloads" }` — scan a local folder for PDFs and image receipts (`.jpg`/`.png`/`.heic`/`.webp`/…).
  • `{ "type": "command", "command": "…" }` — run your own fetcher for Gmail/Drive/scanner;

it writes files locally and prints one JSON line per candidate (`{"path":"…","amounts":[…],"dates":[…],"text":"…"}`). No provider SDK or secret lives in this package.

Reporting

Digest goes to `MERIT_DOCSYNC_WEBHOOK` (Slack-compatible incoming webhook), or a `notifyCommand` (stdin), or is printed. Never commit the webhook URL.

Schedule

elnora-merit documents install-schedule --interval-hours 6
launchctl load ~/Library/LaunchAgents/com.merit-aktiva.docsync.plist

Interval-based (not a fixed clock time), plus at-login, so a laptop that is closed at any given moment still catches up on next wake, and it follows the machine's timezone. Remove with `documents uninstall-schedule`. Non-macOS: the command prints a cron snippet.

Read more
@elnora-ai
Ships withmerit-aktiva-workspace

Do your Merit Aktiva accounting from the command line — or let Claude Code do it for you. Merit Aktiva is Estonia's cloud accounting platform.

1018 skills3 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
10
Star history of Elnora-AI/elnora-merit-aktiva on GitHub, a chart by star-history.com

Other skills on merit-aktiva-workspace.

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about merit-documents.

Which coding agents can use merit-documents?
merit-documents installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.