Imported from composite/korean-skills (
skills/kordoc-compare-documents/SKILL.md). Install upstream withnpx skills add composite/korean-skills --skill kordoc-compare-documents. Copyright stays with the author.
kordoc: compare_documents
Reproduce the compare_documents logic from src/mcp.ts with the public compare export.
Input Requirements
- Require exactly two target documents.
- Require the user to attach both documents or provide two concrete local paths.
- Accept only supported formats:
.hwp,.hwpx,.pdf. - Do not proceed if either document is missing.
- Preserve the user-provided ordering so source and target are not swapped implicitly.
Command
npm exec --yes --package=kordoc --package=pdfjs-dist -- node <<'SCRIPT'
const p = require("path"), fs = require("fs");
const nmBin = process.env.PATH.split(p.delimiter).find(d => d.endsWith(".bin"));
const kUrl = "file:///" + p.join(p.resolve(nmBin, ".."), "kordoc", "dist", "index.js").split(p.sep).join("/");
import(kUrl).then(async (k) => {
const fileA = "/abs/path/old.hwpx";
const fileB = "/abs/path/new.hwpx";
const rawA = fs.readFileSync(fileA);
const rawB = fs.readFileSync(fileB);
const bufA = rawA.buffer.slice(rawA.byteOffset, rawA.byteOffset + rawA.byteLength);
const bufB = rawB.buffer.slice(rawB.byteOffset, rawB.byteOffset + rawB.byteLength);
const result = await k.compare(bufA, bufB);
console.log(JSON.stringify(result, null, 2));
}).catch(e => { console.error(e); process.exit(1); });
SCRIPT
Workflow
- Resolve both files to absolute paths.
- Run
compare. - Read
statsfirst:added,removed,modified,unchanged. - Summarize the major deltas instead of repeating unchanged blocks.
- Keep source and target ordering explicit.
Guardrails
- Call out when the comparison is cross-format.
- Do not overstate semantic meaning from block-level diffs.
- Separate added, removed, and modified content in the final explanation.
- Refuse to continue when fewer than two supported documents were provided.