agentsclimarketplace

Kordoc compare documents

Skill composite/korean-skills/skills/kordoc-compare-documents

Use when diffing two Korean documents with `npx` and kordoc. Covers HWP, HWPX, and cross-format comparisons for requests such as 신구대조표 preparation, change review between document versions, block-level additions and removals, or invoking `kordoc:compare_documents` on two local files.From its SKILL.md

Install
npx -y skills add composite/korean-skills --skill kordoc-compare-documents

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 1 command, including `npm exec --yes --package=kordoc --package=pdfjs-dist -- node <<'SCRIPT' ... SCRIPT`.

SKILL.md

2.1 KB, 463 tokens by cl100k_base, as published. Nobody here has run it

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

  1. Resolve both files to absolute paths.
  2. Run compare.
  3. Read stats first: added, removed, modified, unchanged.
  4. Summarize the major deltas instead of repeating unchanged blocks.
  5. 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.

What ships with it: 1 file

216 B alongside SKILL.md

agents/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.