Files
oh-my-opencode/packages/omo-codex/plugin/scripts/sync-skills.mjs
T
2026-05-28 13:58:12 +09:00

31 lines
1.1 KiB
JavaScript

#!/usr/bin/env node
import { cp, mkdir, readdir, rm } from "node:fs/promises";
import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";
const root = dirname(dirname(fileURLToPath(import.meta.url)));
const sharedSkillsRoot = join(root, "..", "..", "shared-skills", "skills");
const skillSources = [
["comment-checker", "components/comment-checker/skills/comment-checker"],
["lsp", "components/lsp/skills/lsp"],
["rules", "components/rules/skills/rules"],
["ultragoal", "components/ultragoal/skills/ultragoal"],
];
await rm(join(root, "skills"), { recursive: true, force: true });
await mkdir(join(root, "skills"), { recursive: true });
for (const [name, source] of skillSources) {
await cp(join(root, source), join(root, "skills", name), { recursive: true });
}
const sharedSkillEntries = await readdir(sharedSkillsRoot, { withFileTypes: true });
const sharedSkillNames = sharedSkillEntries
.filter((entry) => entry.isDirectory())
.map((entry) => entry.name)
.sort();
for (const skillName of sharedSkillNames) {
await cp(join(sharedSkillsRoot, skillName), join(root, "skills", skillName), { recursive: true });
}