What this does
Clipboard reads whatever's already copied and applies it in one tap — copy Claude's JSON in the chat, come here, tap the button. Choose File does the same from a saved .json/.txt file instead of the clipboard. Either way it applies immediately, nothing is shown or held for review first, and it never replaces the whole database — only the ids named are touched. A plain entries file/paste only ever adds or updates; it removes entries only if it carries an explicit "deletions" list. If clipboard access is denied (permission, or an installed-to-homescreen quirk), you'll see an error and can use Paste manually instead below, which works exactly as before.
Deleting. Add a "deletions" list of ids alongside (or instead of) "entries":
{"deletions":["em-ferrara-1171"],"entries":[…]}
An entry object written as {"id":"old-id","op":"delete"} works too. Deletions run before adds, so a paste can retire an old stub and add its replacement in one step. Ids that don't exist are reported rather than silently ignored. This cannot be undone — take an Export backup first.
Holding for review. Add "review": true to any entry to keep it off the public timeline until you approve it; send "review": false (or clear the checkbox in the editor) to publish it.
Cross-links. A curated link list also works — one per line, entryId :: exact text :: targetId, with an optional 4th field to pick which occurrence of that text (default: first). Use this for links the Auto-Link Cross-References tool above can't make safely: a different name for the same person (“Saul” → St. Paul), a title instead of a name (“the beloved disciple” → St. John), or a bare “Mary” meant specifically as the Blessed Virgin. The exact text must appear verbatim in that entry's article body, including case. Existing links are skipped automatically, so re-running a list that already applied is harmless.
Carlo Acutis links. A separate table from art.links, one row per Eucharistic Miracle entry: {"carloLinks":[{"entityId":"em-id","status":"found","url":"https://miracolieucaristici.org/…"}]} for a located page, or {"entityId":"em-id","status":"pending","note":"what was searched and why nothing turned up"} while still researching. Delete a row with {"carloLinkDeletions":["row-id"]} (row id defaults to {entityId}-carlo). A "found" row renders its own dedicated section on the article; a "pending" row (or no row at all) shows nothing to visitors, and shows the note only when Review Mode is on.
Patches. For one small fix instead of resending a whole entry — fix a fact, swap a sentence, drop a stray quote — send {"patches":{"entry-id":[[section, element, "I|U|D", value]]}}. Say the id once, list every edit to it underneath as a plain array: section is one of field · facts · alt · article · quotes · links · carloLink; element is a field name, a fact/alt/quote/link label or position, or a verbatim snippet of article text (append @2 etc. if it appears more than once); I inserts, U replaces, D removes (omit value for D). Patches to the same entity apply in order. An unmatched snippet, an out-of-range position, or an attempt to delete a required field (n/y/t/r/d) is reported as a skip, never applied silently. patches only edits things that already exist — it never creates a new entry, so a brand-new fact needs "I" on an id that's already in the database. Full spec: json-import-skill.md.