document-import
Извлечь текст и изображения из PDF / DOCX / PPTX / напканного скетча. Чтобы скармливать прототипу или деку.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Извлечь текст и изображения из PDF / DOCX / PPTX / напканного скетча. Чтобы скармливать прототипу или деку.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Research a company or person for sales intel — web search standalone, richer with enrichment tools or CRM connected. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]".
AI-музыка локально на your GPU (ACE-Step 1.5): инструменталы и песни, авто/кастомная лирика, модели base/xl-turbo; CLI scripts/generate.py. Триггеры: «напиши песню», jingle, soundtrack, background music. НЕ Suno (skill suno), не ElevenLabs Music.
OpenAI-совместимый HTTP-сервер поверх ЛОКАЛЬНОГО claude CLI (подписка Max, без API-ключа) — отдаёт Claude как /v1/chat/completions для n8n, OpenAI-SDK, IDE, curl, Open WebUI; SSE-стрим, X-Session-Id. НЕ: наружу к OpenAI/Perplexity/Runway→local-gateway; разовый вызов из Python→claude-cli-runner; боевые Hermes-боты→agent-builder tooling.
Prepare for a sales call — account context, attendee research, suggested agenda; richer with CRM, email, chat or transcripts connected. Trigger with "prep me for my call with [company]", "call prep [company]", "get me ready for [meeting]".
Создание визуальных карточек-каруселей для Telegram-канала — editorial стиль. HTML+CSS шаблон → Playwright render → PNG-серия 1080×1350. Библиотека шаблонов лежит в templates/ (read-only образцы); новая серия создаётся в рабочей директории (CWD). Вызывается сам или из tg-post. Триггеры — «карточки для канала», «карусель в канал», «сделай series», «нарисуй cover», «slides для поста».
Verify any fact, claim, number, statement, citation or AI-generated output for hallucinations — cross-check sources, validate research findings. Triggers: "/check-skill-solo", «проверь», «перепроверь», "verify", "fact-check".
| name | document-import |
| description | Извлечь текст и изображения из PDF / DOCX / PPTX / напканного скетча. Чтобы скармливать прототипу или деку. |
| when_to_use | Пользователь приложил PRD в PDF, бриф в DOCX, референс-дек в PPTX, или фото скетча. |
Все документы — это zip-архивы с XML или текстом. Открыть и извлечь можно без специальных SDK.
.docx = zip. Текст лежит в word/document.xml. Картинки в word/media/.
unzip -o file.docx -d docx-out
# Текст: docx-out/word/document.xml — выдерни <w:t> элементы
# Картинки: docx-out/word/media/*.{png,jpg}
Извлечь текст:
import fs from 'node:fs/promises';
import { XMLParser } from 'fast-xml-parser';
const xml = await fs.readFile('docx-out/word/document.xml', 'utf8');
const j = new XMLParser({ ignoreAttributes: false }).parse(xml);
function collect(n, out = []) {
if (!n) return out;
if (typeof n === 'string') { out.push(n); return out; }
for (const k of Object.keys(n)) {
if (k === 'w:t') {
const v = n[k];
if (typeof v === 'string') out.push(v);
else if (Array.isArray(v)) v.forEach(x => out.push(x['#text'] || x));
else out.push(v['#text'] || '');
} else if (typeof n[k] === 'object') {
Array.isArray(n[k]) ? n[k].forEach(c => collect(c, out)) : collect(n[k], out);
}
}
return out;
}
console.log(collect(j).join(' '));
.pptx = zip. Каждый слайд — ppt/slides/slide1.xml, slide2.xml, …
Текст — в <a:t> тегах. Картинки в ppt/media/.
unzip -o file.pptx -d pptx-out
ls pptx-out/ppt/slides/ # slide1.xml slide2.xml ...
ls pptx-out/ppt/media/ # image1.png image2.jpeg ...
Тот же подход что для docx, только другой XML-namespace.
Без бинарных тулов сложно. Варианты:
pdf-parse (Node, чистый JS) — текст:
npm i pdf-parse
import fs from 'node:fs/promises';
import pdf from 'pdf-parse';
const buf = await fs.readFile('brief.pdf');
const data = await pdf(buf);
console.log(data.text);
pdftotext (poppler-utils, через CLI) — лучше качество:
pdftotext -layout brief.pdf brief.txt
pdfimages — извлечь картинки:
pdfimages -all brief.pdf out/img
Если пользователь кинул фото маркерной доски или скетч от руки — это просто картинка. Не пытайся «распознать» руками. Действия:
Если файл .napkin — это рисовалка с JSON-данными внутри. Картинка-превью обычно лежит рядом — её и читай.
templates/extract-doc.sh:
#!/usr/bin/env bash
set -e
file="$1"; out="${2:-extracted}"
mkdir -p "$out"
case "${file##*.}" in
docx|DOCX) unzip -qo "$file" -d "$out/docx";;
pptx|PPTX) unzip -qo "$file" -d "$out/pptx";;
pdf|PDF)
command -v pdftotext >/dev/null && pdftotext -layout "$file" "$out/text.txt"
command -v pdfimages >/dev/null && pdfimages -all "$file" "$out/img" || true
;;
*) echo "Не понимаю расширение: $file"; exit 1;;
esac
echo "✓ См. $out/"
Прежняя расширенная версия скилла (дерево @2026-04-30) сохранена целиком в references/legacy-document-import.md. Секции там: PDF, DOCX, PPTX, Sketch (legacy), Структурирование вывода, Извлечение по типам, Качество текста, Изображения из документов, Антипаттерны.