kordoc-parse-table — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited kordoc-parse-table (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reproduce the parse_table logic from src/mcp.ts with a one-off Node run inside the npx package context.
.hwp, .hwpx, .pdf.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 filePath = "/abs/path/document.hwpx";
const tableIndex = 0;
const raw = fs.readFileSync(filePath);
const buffer = raw.buffer.slice(raw.byteOffset, raw.byteOffset + raw.byteLength);
const result = await k.parse(buffer);
if (!result.success) throw new Error(result.error);
const tables = result.blocks.filter(b => b.type === "table" && b.table);
if (tables.length === 0) throw new Error("문서에 테이블이 없습니다.");
if (tableIndex >= tables.length) {
throw new Error("테이블 인덱스 초과: " + tableIndex + " (총 " + tables.length + "개 테이블)");
}
console.log(k.blocksToMarkdown([tables[tableIndex]]));
}).catch(e => { console.error(e); process.exit(1); });
SCRIPTtableIndex.result.blocks to table blocks only.0, "second table" to 1.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.