From e9790f1efe9f46faae6ee639a1e8dac4875178ae Mon Sep 17 00:00:00 2001 From: "ci[bot]" Date: Fri, 19 Jun 2026 16:05:53 +0000 Subject: [PATCH] :package: deps(skills): sync thirdparty skills --- .../subagent-driven-development/SKILL.md | 4 +++- .../scripts/review-package | 9 +++----- .../scripts/sdd-workspace | 22 +++++++++++++++++++ .../scripts/task-brief | 8 +++---- 4 files changed, 31 insertions(+), 12 deletions(-) create mode 100755 skills/thirdparty/subagent-driven-development/scripts/sdd-workspace diff --git a/skills/thirdparty/subagent-driven-development/SKILL.md b/skills/thirdparty/subagent-driven-development/SKILL.md index 26760430..d8ca0815 100644 --- a/skills/thirdparty/subagent-driven-development/SKILL.md +++ b/skills/thirdparty/subagent-driven-development/SKILL.md @@ -251,7 +251,7 @@ sequences — the single most expensive failure observed. Track progress in a ledger file, not only in todos. - At skill start, check for a ledger: - `cat "$(git rev-parse --git-path sdd)/progress.md"`. Tasks listed there + `cat "$(git rev-parse --show-toplevel)/.superpowers/sdd/progress.md"`. Tasks listed there as complete are DONE — do not re-dispatch them; resume at the first task not marked complete. - When a task's review comes back clean, append one line to the ledger in @@ -260,6 +260,8 @@ a ledger file, not only in todos. - The ledger is your recovery map: the commits it names exist in git even when your context no longer remembers creating them. After compaction, trust the ledger and `git log` over your own recollection. +- `git clean -fdx` will destroy the ledger (it's git-ignored scratch); if + that happens, recover from `git log`. ## Prompt Templates diff --git a/skills/thirdparty/subagent-driven-development/scripts/review-package b/skills/thirdparty/subagent-driven-development/scripts/review-package index 88a00224..33bb20f7 100755 --- a/skills/thirdparty/subagent-driven-development/scripts/review-package +++ b/skills/thirdparty/subagent-driven-development/scripts/review-package @@ -5,9 +5,8 @@ # tasks intact. # # Usage: review-package BASE HEAD [OUTFILE] -# Default OUTFILE: /sdd/review-...diff — unique per -# repo instance and per range, so concurrent sessions cannot collide and a -# re-review after fixes always gets a distinctly named fresh file. +# Default OUTFILE: /.superpowers/sdd/review-...diff +# (named per range, so a re-review after fixes gets a distinct fresh file). set -euo pipefail if [ $# -lt 2 ] || [ $# -gt 3 ]; then @@ -24,9 +23,7 @@ git rev-parse --verify --quiet "$head" >/dev/null || { echo "bad HEAD: $head" >& if [ $# -eq 3 ]; then out=$3 else - dir=$(git rev-parse --git-path sdd) - mkdir -p "$dir" - dir=$(cd "$dir" && pwd) + dir=$("$(cd "$(dirname "$0")" && pwd)/sdd-workspace") out="$dir/review-$(git rev-parse --short "$base")..$(git rev-parse --short "$head").diff" fi diff --git a/skills/thirdparty/subagent-driven-development/scripts/sdd-workspace b/skills/thirdparty/subagent-driven-development/scripts/sdd-workspace new file mode 100755 index 00000000..ea9bb08f --- /dev/null +++ b/skills/thirdparty/subagent-driven-development/scripts/sdd-workspace @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Resolve and ensure the working-tree directory SDD uses for its short-lived +# artifacts: task briefs, implementer reports, review packages, and the +# progress ledger. Print the directory's absolute path. +# +# The workspace lives in the working tree (not under .git/) because Claude Code +# treats .git/ as a protected path and denies agent writes there — which blocks +# an implementer subagent from writing its report file. A self-ignoring +# .gitignore keeps the workspace out of `git status` and out of accidental +# commits without modifying any tracked file. +# +# Single source of truth for the workspace location, so task-brief and +# review-package cannot drift to different directories. +# +# Usage: sdd-workspace +set -euo pipefail + +root=$(git rev-parse --show-toplevel) +dir="$root/.superpowers/sdd" +mkdir -p "$dir" +printf '*\n' > "$dir/.gitignore" +cd "$dir" && pwd diff --git a/skills/thirdparty/subagent-driven-development/scripts/task-brief b/skills/thirdparty/subagent-driven-development/scripts/task-brief index b046a2bb..247a7670 100755 --- a/skills/thirdparty/subagent-driven-development/scripts/task-brief +++ b/skills/thirdparty/subagent-driven-development/scripts/task-brief @@ -4,8 +4,8 @@ # through the controller's context. # # Usage: task-brief PLAN_FILE TASK_NUMBER [OUTFILE] -# Default OUTFILE: /sdd/task--brief.md — unique per repo -# instance, so concurrent sessions cannot collide. +# Default OUTFILE: /.superpowers/sdd/task--brief.md +# (per worktree; concurrent runs in the same working tree share it). set -euo pipefail if [ $# -lt 2 ] || [ $# -gt 3 ]; then @@ -20,9 +20,7 @@ n=$2 if [ $# -eq 3 ]; then out=$3 else - dir=$(git rev-parse --git-path sdd) - mkdir -p "$dir" - dir=$(cd "$dir" && pwd) + dir=$("$(cd "$(dirname "$0")" && pwd)/sdd-workspace") out="$dir/task-${n}-brief.md" fi