{"id":10365,"plugin_id":"plugin_asdk_app_6a828957773081918f27a9987cf74d63","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:57:00.950Z","digest":"f4c35df326103d4043a911ed83e4872242e1ba44dafa5899b28e22a4ac8380aa","against":null,"payload":{"name":"dictionary","description":"Read, add, update, delete, or additively import manual items in a user's VoiceCursor dictionary through the OAuth MCP. Use for VoiceCursor word or mapping management on macOS, iOS, Android, or explicit default.","included_files":[],"skill_md_contents":"---\nname: dictionary\ndescription: Read, add, update, delete, or additively import manual items in a user's VoiceCursor dictionary through the OAuth MCP. Use for VoiceCursor word or mapping management on macOS, iOS, Android, or explicit default.\n---\n\n# VoiceCursor Dictionary\n\nUse the bundled `voicecursor_dictionary` MCP server. If the connection requests\nauthentication, let the user complete the VoiceCursor Clerk OAuth consent flow.\n\n## Reads\n\n- Use `list_dictionaries` to discover available language and OS targets.\n- Use `get_dictionary_items` only with one exact language and OS.\n- Never claim that this plugin reads or modifies the operating system's native\n  user dictionary. It manages the user's VoiceCursor dictionaries, which\n  VoiceCursor clients consume on their platforms.\n\n## Mutations\n\nEvery create, update, delete, and import uses its matching prepare/commit pair.\n\n1. Obtain the exact language and exactly one target OS: `ios`, `mac`, `android`,\n   or `default`.\n2. Never infer the OS from the current computer, project, client, prior usage,\n   or a generic request. Use `default` only when the user explicitly says it.\n3. Call the matching prepare tool with the complete proposed mutation.\n4. Show the complete returned plan and `confirmation_prompt`. The user's\n   original mutation request is not post-prepare confirmation.\n5. Wait for the user to explicitly confirm the exact OS shown in the plan.\n6. Call only the matching commit tool, once, with the token and that same OS as\n   `confirmed_os`.\n\nUse these pairs:\n\n- create: `prepare_dictionary_item_write` / `commit_dictionary_item_write`;\n- update: `prepare_dictionary_item_update` / `commit_dictionary_item_update`;\n- delete: `prepare_dictionary_item_delete` / `commit_dictionary_item_delete`;\n- import: `prepare_dictionary_items_import` / `commit_dictionary_items_import`.\n\nFor update and delete, first read the exact target and use its stable `item_id`.\nNever target by a similar-looking word or mapping key. Only manual items are\nmutable; item type cannot change. Word update changes its value. Mapping update\nmay change its key, value, or both.\n\nImport accepts up to 100 `word`/`mapping` objects for one exact language and OS.\nIt is an atomic additive merge: it never deletes omitted entries, replaces a\ndictionary, imports learning metadata, or silently overwrites a mapping.\nDisplay every `create`, `unchanged`, and `conflict` result. A conflict produces\nno committable plan.\n\nIf the user changes any plan field, discard the plan and prepare again. If\ncommit is ambiguous, stale, expired, already used, or rejected, do not retry the\ntoken; read current state and prepare a fresh plan. Report `unchanged` as\nsuccess. Report `conflict` or `stale_plan` without claiming a mutation occurred.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}