✨ feat(workflow): adopt Matt Pocock ticket workflow
Replace the Superpowers plan pipeline with grill-with-docs, specs, local tickets, and ticket-native execution. BREAKING CHANGE: Remove the legacy Plan CLI, prompt templates, and Superpowers skills.
This commit is contained in:
@@ -416,7 +416,12 @@ jobs:
|
||||
entry["snapshot_dir"],
|
||||
entry["sync_mode"],
|
||||
entry["source_list"],
|
||||
entry.get("skills_subdir", ""),
|
||||
"\x1e".join(
|
||||
entry.get(
|
||||
"skills_subdirs",
|
||||
[entry.get("skills_subdir", "")],
|
||||
)
|
||||
),
|
||||
entry.get("output_name", entry["id"]),
|
||||
entry.get("platform_config", ""),
|
||||
entry.get("template_root", ""),
|
||||
@@ -541,7 +546,7 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdir output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do
|
||||
while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do
|
||||
[ -n "$source_id" ] || continue
|
||||
|
||||
if [ -f "$source_list" ]; then
|
||||
@@ -553,7 +558,7 @@ jobs:
|
||||
done < "$sources_file"
|
||||
|
||||
declare -A owners=()
|
||||
while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdir output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do
|
||||
while IFS=$'\x1f' read -r source_id snapshot_dir sync_mode source_list skills_subdirs output_name platform_config template_root data_dir scripts_dir include_skill_dirs; do
|
||||
[ -n "$source_id" ] || continue
|
||||
|
||||
git archive --format=tar "origin/${THIRDPARTY_BRANCH}" "$snapshot_dir" | tar -xf - -C "$tmp_dir"
|
||||
@@ -562,31 +567,37 @@ jobs:
|
||||
names=()
|
||||
case "$sync_mode" in
|
||||
copy_skill_dirs)
|
||||
source_skills_dir="$snapshot_root/$skills_subdir"
|
||||
if [ ! -d "$source_skills_dir" ]; then
|
||||
echo "ERROR: $skills_subdir not found in snapshot $snapshot_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for dir in "$source_skills_dir"/*; do
|
||||
[ -d "$dir" ] || continue
|
||||
name="$(basename "$dir")"
|
||||
if ! skill_dir_included "$name" "$include_skill_dirs"; then
|
||||
continue
|
||||
fi
|
||||
if [ -n "${owners[$name]:-}" ] && [ "${owners[$name]}" != "$source_id" ]; then
|
||||
echo "ERROR: duplicate third-party skill name: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
if tracked_skill_exists "$name"; then
|
||||
echo "ERROR: skill name conflict with tracked skill: $name" >&2
|
||||
local_ifs="$IFS"
|
||||
IFS=$'\x1e'
|
||||
read -r -a skill_roots <<< "$skills_subdirs"
|
||||
IFS="$local_ifs"
|
||||
for skills_subdir in "${skill_roots[@]}"; do
|
||||
source_skills_dir="$snapshot_root/$skills_subdir"
|
||||
if [ ! -d "$source_skills_dir" ]; then
|
||||
echo "ERROR: $skills_subdir not found in snapshot $snapshot_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "skills/thirdparty/$name"
|
||||
cp -R "$dir" "skills/thirdparty/$name"
|
||||
names+=("$name")
|
||||
owners["$name"]="$source_id"
|
||||
for dir in "$source_skills_dir"/*; do
|
||||
[ -d "$dir" ] || continue
|
||||
name="$(basename "$dir")"
|
||||
if ! skill_dir_included "$name" "$include_skill_dirs"; then
|
||||
continue
|
||||
fi
|
||||
if [ -n "${owners[$name]:-}" ] && [ "${owners[$name]}" != "$source_id" ]; then
|
||||
echo "ERROR: duplicate third-party skill name: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
if tracked_skill_exists "$name"; then
|
||||
echo "ERROR: skill name conflict with tracked skill: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "skills/thirdparty/$name"
|
||||
cp -R "$dir" "skills/thirdparty/$name"
|
||||
names+=("$name")
|
||||
owners["$name"]="$source_id"
|
||||
done
|
||||
done
|
||||
;;
|
||||
render_skill)
|
||||
|
||||
Reference in New Issue
Block a user