♻️ refactor(skills): separate thirdparty skills into thirdparty/ subdirectory
- Move all third-party skills from codex/skills/ to codex/skills/thirdparty/ - Move .sources/ to codex/skills/thirdparty/.sources/ - Delete systematic-debugging/CREATION-LOG.md (internal dev note, not skill content) - Update sync_thirdparty_skills.sh paths and conflict detection - Update thirdparty_skills.json source_list paths - Update install_skills_action to collect from both own and thirdparty dirs, logging [thirdparty] tag for third-party installs - Update SKILLS.md directory structure docs - Update tests to reflect new paths Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -101,10 +101,8 @@ PY
|
||||
|
||||
tracked_skill_exists() {
|
||||
local name="$1"
|
||||
if git ls-files --error-unmatch -- "codex/skills/$name" >/dev/null 2>&1; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
# conflict only if a first-party SKILL.md exists directly under codex/skills/<name>/
|
||||
[ -f "codex/skills/$name/SKILL.md" ]
|
||||
}
|
||||
|
||||
cd "$REPO_DIR"
|
||||
@@ -123,7 +121,7 @@ trap cleanup EXIT
|
||||
|
||||
git checkout -B "$TARGET_BRANCH" "origin/$TARGET_BRANCH"
|
||||
|
||||
mkdir -p "codex/skills/.sources"
|
||||
mkdir -p "codex/skills/thirdparty/.sources"
|
||||
|
||||
sources_file="$tmp_dir/sources.tsv"
|
||||
if ! emit_sources_tsv > "$sources_file"; then
|
||||
@@ -165,13 +163,13 @@ while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_su
|
||||
echo "ERROR: duplicate third-party skill name: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -d "codex/skills/$name" ] && tracked_skill_exists "$name"; then
|
||||
if [ -d "codex/skills/thirdparty/$name" ] && tracked_skill_exists "$name"; then
|
||||
echo "ERROR: skill name conflict with tracked skill: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "codex/skills/$name"
|
||||
cp -R "$dir" "codex/skills/$name"
|
||||
rm -rf "codex/skills/thirdparty/$name"
|
||||
cp -R "$dir" "codex/skills/thirdparty/$name"
|
||||
names+=("$name")
|
||||
owners["$name"]="$source_id"
|
||||
done
|
||||
@@ -182,12 +180,12 @@ while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_su
|
||||
echo "ERROR: duplicate third-party skill name: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -d "codex/skills/$name" ] && tracked_skill_exists "$name"; then
|
||||
if [ -d "codex/skills/thirdparty/$name" ] && tracked_skill_exists "$name"; then
|
||||
echo "ERROR: skill name conflict with tracked skill: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
render_codex_skill "$snapshot_root" "codex/skills/$name" "$platform_config" "$template_root" "$data_dir" "$scripts_dir"
|
||||
render_codex_skill "$snapshot_root" "codex/skills/thirdparty/$name" "$platform_config" "$template_root" "$data_dir" "$scripts_dir"
|
||||
names+=("$name")
|
||||
owners["$name"]="$source_id"
|
||||
;;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"upstream_ref": "main",
|
||||
"snapshot_dir": "superpowers",
|
||||
"sync_mode": "copy_skill_dirs",
|
||||
"source_list": "codex/skills/.sources/superpowers.list",
|
||||
"source_list": "codex/skills/thirdparty/.sources/superpowers.list",
|
||||
"skills_subdir": "skills",
|
||||
"remove_paths": ["skills/ui-ux-pro-max"]
|
||||
},
|
||||
@@ -16,7 +16,7 @@
|
||||
"upstream_ref": "main",
|
||||
"snapshot_dir": "ui-ux-pro-max",
|
||||
"sync_mode": "render_codex_skill",
|
||||
"source_list": "codex/skills/.sources/ui-ux-pro-max.list",
|
||||
"source_list": "codex/skills/thirdparty/.sources/ui-ux-pro-max.list",
|
||||
"output_name": "ui-ux-pro-max",
|
||||
"platform_config": "src/ui-ux-pro-max/templates/platforms/codex.json",
|
||||
"template_root": "src/ui-ux-pro-max/templates",
|
||||
@@ -29,7 +29,7 @@
|
||||
"upstream_ref": "main",
|
||||
"snapshot_dir": "andrej-karpathy-skills",
|
||||
"sync_mode": "copy_skill_dirs",
|
||||
"source_list": "codex/skills/.sources/andrej-karpathy-skills.list",
|
||||
"source_list": "codex/skills/thirdparty/.sources/andrej-karpathy-skills.list",
|
||||
"skills_subdir": "skills"
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user