// 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})`);
