// publish 직전 최종 점검 — 스킬이 빠진 채로 배포되는 사고를 막는다. import fs from "node:fs/promises"; import path from "node:path"; import { fileURLToPath } from "node:url"; const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); const must = ["dist/index.js", "dist/skill/SKILL.md", "dist/skill/.designpaca_version"]; const missing = []; for (const rel of must) { try { await fs.access(path.join(root, rel)); } catch { missing.push(rel); } } if (missing.length) { console.error(`배포물에 빠진 파일:\n${missing.map((m) => ` - ${m}`).join("\n")}`); console.error("pnpm build 를 먼저 실행해라."); process.exit(1); } const pkg = JSON.parse(await fs.readFile(path.join(root, "package.json"), "utf8")); const stamp = (await fs.readFile(path.join(root, "dist/skill/.designpaca_version"), "utf8")).trim(); if (stamp !== pkg.version) { console.error(`버전 불일치: package.json=${pkg.version} / 스킬 스탬프=${stamp}`); process.exit(1); } console.log(`배포 점검 통과 (v${pkg.version})`);