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), Структурирование вывода, Извлечение по типам, Качество текста, Изображения из документов, Антипаттерны.