From 9e262abb2353238b7a370cb516d9e934e7ec4d1d Mon Sep 17 00:00:00 2001 From: wonder Date: Wed, 2 Sep 2026 20:49:29 +0800 Subject: [PATCH] refactor: flatten skill structure, remove .claude nesting - Move files from exam/.claude/skills/exam/ to exam/ - Update path references in SKILL.md - Fix schema path resolution in validate scripts (1 level up instead of 3) --- exam/{.claude/skills/exam => }/SKILL.md | 12 ++++++------ exam/{.claude/skills/exam => }/validate.mjs | 2 +- exam/{.claude/skills/exam => }/validate.py | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) rename exam/{.claude/skills/exam => }/SKILL.md (90%) rename exam/{.claude/skills/exam => }/validate.mjs (97%) rename exam/{.claude/skills/exam => }/validate.py (96%) diff --git a/exam/.claude/skills/exam/SKILL.md b/exam/SKILL.md similarity index 90% rename from exam/.claude/skills/exam/SKILL.md rename to exam/SKILL.md index 862c75c..1d8a600 100644 --- a/exam/.claude/skills/exam/SKILL.md +++ b/exam/SKILL.md @@ -21,8 +21,8 @@ examination/ │ ├── meta.json # 子主题元信息 │ ├── fill_blank.json # 填空题 │ └── single_choice.json # 单选题 -└── .claude/skills/exam/ - ├── SKILL.md # 本文件 +└── exam/ # 本 skill 目录 + ├── SKILL.md ├── validate.py # Python 校验脚本 └── validate.mjs # Node.js 校验脚本 ``` @@ -73,10 +73,10 @@ ENDJSON ```bash # Python (优先) -python3 .claude/skills/exam/validate.py /tmp/exam_gen.json +python3 exam/validate.py /tmp/exam_gen.json # Node.js (备选) -node .claude/skills/exam/validate.mjs /tmp/exam_gen.json +node exam/validate.mjs /tmp/exam_gen.json ``` - 校验通过 → 继续写入 @@ -115,8 +115,8 @@ node .claude/skills/exam/validate.mjs /tmp/exam_gen.json 两个脚本功能相同,检测可用环境后选用: -- `.claude/skills/exam/validate.py` — 优先用 `jsonschema`,不可用时回退到基础校验 -- `.claude/skills/exam/validate.mjs` — 纯 Node.js 内置模块,无外部依赖 +- `exam/validate.py` — 优先用 `jsonschema`,不可用时回退到基础校验 +- `exam/validate.mjs` — 纯 Node.js 内置模块,无外部依赖 退出码:0=通过,1=有错误,2=用法错误。 diff --git a/exam/.claude/skills/exam/validate.mjs b/exam/validate.mjs similarity index 97% rename from exam/.claude/skills/exam/validate.mjs rename to exam/validate.mjs index 6cea182..928c088 100644 --- a/exam/.claude/skills/exam/validate.mjs +++ b/exam/validate.mjs @@ -15,7 +15,7 @@ import { fileURLToPath } from "node:url"; import { createRequire } from "node:module"; const __dirname = dirname(fileURLToPath(import.meta.url)); -const REPO_ROOT = resolve(__dirname, "../../.."); +const REPO_ROOT = resolve(__dirname, ".."); const SCHEMA_PATH = resolve(REPO_ROOT, "schema/question.schema.json"); function loadJson(path) { diff --git a/exam/.claude/skills/exam/validate.py b/exam/validate.py similarity index 96% rename from exam/.claude/skills/exam/validate.py rename to exam/validate.py index 9592879..4679c26 100644 --- a/exam/.claude/skills/exam/validate.py +++ b/exam/validate.py @@ -11,9 +11,9 @@ import json import sys from pathlib import Path -# Resolve schema path relative to repo root (3 levels up from this script) +# Resolve schema path relative to repo root (1 level up from this script) SCRIPT_DIR = Path(__file__).resolve().parent -REPO_ROOT = SCRIPT_DIR.parent.parent.parent +REPO_ROOT = SCRIPT_DIR.parent SCHEMA_PATH = REPO_ROOT / "schema" / "question.schema.json"