{"id":84103,"plugin_id":"plugin_asdk_app_6adcdb5e71948191a00ad2b15d58ed1e","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-06T07:28:27.246Z","digest":"0cb2b1b6ac9d8cc415e43a75df84c37d5fd495e217de70b81918d90688a8d8e7","against":null,"payload":{"description":"Import a user-provided local document into an Aixcut Project library. Do not use for media assets or reading only.","included_files":[],"name":"aixcut-documents","skill_md_contents":"---\nname: aixcut-documents\ndescription: \"Import a user-provided local document into an Aixcut Project library. Do not use for media assets or reading only.\"\n---\n\n# Import Project Documents\n\n## Conversation guidance\n\nState what is being imported and what happens next when useful. Continue when the document and target Project are clear. If the user must select or provide a file, say exactly what to do and what will let the import continue. Report imported only after confirming the result.\n\n## When to use\n\n`aixcut_document` is a local-MCP-only path. A hosted MCP server cannot read a path on the user's computer. Call it only when the MCP process itself has access to that path; otherwise call `aixcut_frontend` with `{\"action\":\"prompt_add_document\"}` and ask the user to choose the file in the Project Documents panel. Never send the computer path to the Tool.\n\n- If the user only wants the document read, summarized, or used to answer a question, read it yourself and do not call this Tool.\n- If no locally accessible path is provided, call `aixcut_frontend(action=\"prompt_add_document\")`, wait for the user to choose the document, then call `aixcut_frontend(action=\"list_documents\")` to confirm it appeared. Do not guess paths, scan directories, or fabricate content from a filename.\n- Images, video, and audio are media assets. Use the `aixcut_frontend` media flow, not this Tool.\n\n## Document content\n\n| File type | `content` |\n| --- | --- |\n| Markdown, TXT, CSV, TSV | Optional. When omitted, the Tool reads the file directly. |\n| PDF, Word, PowerPoint, Excel, HTML, RTF | Required. Read the file and provide its actual content as Markdown; the server does not parse these formats. |\n\n- `content` must come from the file you actually read. Never infer it from the filename, invent it, or replace it with only a summary.\n- Missing required content returns `MCP_DOCUMENT_CONTENT_REQUIRED`.\n- If a text file is not valid UTF-8 (`MCP_DOCUMENT_ENCODING_INVALID`), read it and pass the text as `content`.\n- Supported types are a fixed allowlist: Markdown, TXT, CSV, TSV, HTML, PDF, Word, PowerPoint, Excel, and RTF. Unsupported files such as ZIP or video return `MCP_DOCUMENT_MIME_UNSUPPORTED`; report that accurately and do not rename the extension to bypass validation.\n- Preserve the source language and wording unless the user explicitly asks for a translation or rewrite. Apply the shared language policy from `aixcut-basics` when generating translated content.\n\n## Call\n\nThe hosted MCP path does not support this call for a user-computer file. Use the browser-owned upload flow:\n\n```json aixcut_frontend\n{\"action\":\"prompt_add_document\"}\n```\n\nRead `aixcut_frontend(action=\"list_documents\")` before opening the prompt to establish the existing document IDs. The action only opens the Project Documents upload entry. It does not upload or confirm a file. The user must choose the document; call `aixcut_frontend(action=\"list_documents\")` and confirm the selected filename and document ID before reporting success. A stored document with `parse_status=parsing` still needs parsing; `error` means parsing failed. Poll only the document list while parsing and never reopen the upload prompt to check status. Do not pass `file_path`, `content`, or a local URL to this hosted action.\n\nA local MCP process may use:\n\n```json aixcut_document\n{\"action\":\"import\",\"file_path\":\"/path-visible-to-the-mcp-process/notes/product-overview.md\"}\n```\n\n```json aixcut_document\n{\"action\":\"import\",\"file_path\":\"/Users/me/docs/quarterly-review.pdf\",\"content\":\"# Quarterly Review\\n\\nActual document text in Markdown.\"}\n```\n\n- `file_path` must be an absolute local path. Relative paths return `MCP_DOCUMENT_PATH_INVALID`.\n- `file_name` changes the name shown in the Documents panel; when omitted, the original filename is used.\n- Add `mime_type` only when the extension is missing or incorrect.\n- If `project_id` is omitted, the current Project is used.\n- This Tool has no `idempotency_key`; do not add one. Duplicate detection is based on content.\n\n## Persistence facts\n\n- The original file is uploaded in full and remains available to open or download; the text is stored separately.\n- Reimporting identical content returns `deduped`, even when the filename differs.\n- Limits: 200 MiB per file and 32 MiB for extracted document text.\n- The result is in `result.data.document`: `doc_id`, `relative_path`, `display_name`, `source`, `parse_status`, and `content_hash`. `result.status` is `imported` or `deduped`.\n- The document appears in the Project document library, not on the timeline. It is visible in the Studio Documents panel.\n\n## Recovery\n\n| Error | Recovery |\n| --- | --- |\n| `MCP_DOCUMENT_PATH_INVALID` | Confirm that the path is absolute and visible to the MCP process, then retry once. |\n| `MCP_DOCUMENT_NOT_FOUND` | If this is a hosted MCP and the file exists only on the user's computer, do not retry or send that path again. Use `aixcut_frontend(action=\"prompt_add_document\")`, then verify with `list_documents`. For a local MCP process, confirm the path is visible to that process before retrying. |\n| `MCP_DOCUMENT_EMPTY`, `MCP_DOCUMENT_TOO_LARGE` | Report that the file is empty or over the limit and ask for another file. |\n| `MCP_DOCUMENT_MIME_UNSUPPORTED` | Report that the type is unsupported; do not relabel it to force an upload. |\n| `MCP_DOCUMENT_CONTENT_REQUIRED`, `MCP_DOCUMENT_ENCODING_INVALID`, `MCP_DOCUMENT_CONTENT_TOO_LARGE` | Supply actual `content` or reduce the extracted text, then retry. |\n| `MCP_DOCUMENT_UPLOAD_FAILED` | Retry the same file once; if it fails again, report the failure. |\n\nPath, file, and type errors in the first three rows will not be fixed by resending identical arguments.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}