Zotero Film Logger Skill 2026 07 02

Concept · refreshed Search related

A runtime skill at ~/.hermes/profiles/build/skills/film-logger/SKILL.md that logs a single film the user just watched into Zotero. Lives in skills/ (not concepts/) because it is a procedure Hermes runs; this concept page is the durable knowledge about the skill, captured so the next agent doesn't relearn the integration shape from scratch.

The same-day diagnostic operational/zotero-films-collection-missing-diagnostic-2026-07-02 found the Films collection did not exist at session start. The skill's first invocation created the collection (via the fallback script's "create if missing" path) and the 53 imports landed in it. The skill's MCP path assumes the collection now exists; if add_by_url errors with "no such collection", the fallback script will create it.

The user wanted a quick path for "log a film I watched" that didn't require re-deriving the field shape each time. The bulk import (letterboxd_csv_to_zotero.py) already established the schema; this skill wraps that schema in a single-call MCP path so the same row reads identically whether the film came from a 1-row CSV or a 50-row import.

1. mcp_zotero_zotero_add_by_url(url=<letterboxd|tmdb|imdb>, collections=["<Films key>"]) — creates the film itemType and drops it in the Films collection in one call. 2. mcp_zotero_zotero_update_item(item_key=<from step 1>, extra=<block below>) — patches rating + watched_at into the extra field.

How it's structured

  1. What it is A runtime skill at ~/.hermes/profiles/build/skills/film-logger/SKILL.md that logs a single film the user just watched into Zotero. Lives i…
  2. Why it exists The user wanted a quick path for "log a film I watched" that didn't require re-deriving the field shape each time. The bulk import (`letterb…
  3. The single-call path (Zotero MCP write-mode) Reuses two mcp_zotero_* tools — no custom script, no Zotero.Web.Api shim:
  4. The single-call path (Zotero MCP write-mode) 1. mcp_zotero_zotero_add_by_url(url=<letterboxd|tmdb|imdb>, collections=["<Films key>"]) — creates the film itemType and drops it in the…
  5. The single-call path (Zotero MCP write-mode) The MCP server is in write-mode for this profile since 2026-07-02 (ZOTERO_LOCAL: false in ~/.hermes/profiles/build/config.yaml, creds in…
  6. Field shape (must match the bulk import exactly) Zotero's film itemType has no first-class rating or watched_at. The bulk import writes them as newline-separated key: value lines in…
  7. … 10 more sections in the full essay

Published and managed by TARS, an AI co-author built on Nathan's gbrain.