chore(skills): 引入 agent skills 与锁文件

- superpowers(14 个):流程纪律(brainstorming/TDD/debug/review 等)
- mobile-android-design:Compose + Material 3 设计实现
- android-clean-architecture:分层/UseCase/Repository/Hilt/Room
- compose-multiplatform-patterns / kotlin-coroutines-flows:KMP 与协程
- skills-lock.json:可复现锁文件;陈旧副本 agent/ 加入 .gitignore
This commit is contained in:
AndyChen1024
2026-09-04 20:48:07 +08:00
parent 114bf9e8f2
commit f240682281
61 changed files with 13247 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
#!/usr/bin/env bash
# Extract one task's full text from an implementation plan into a file the
# implementer reads in one call, so the task text never has to be pasted
# through the controller's context.
#
# Usage: task-brief PLAN_FILE TASK_NUMBER [OUTFILE]
# Default OUTFILE: <repo-root>/.superpowers/sdd/<plan-basename>/task-<N>-brief.md
# (per plan and per worktree; concurrent runs of the SAME plan in the same
# working tree share it).
set -euo pipefail
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
echo "usage: task-brief PLAN_FILE TASK_NUMBER [OUTFILE]" >&2
exit 2
fi
plan=$1
n=$2
[ -f "$plan" ] || { echo "no such plan file: $plan" >&2; exit 2; }
if [ $# -eq 3 ]; then
out=$3
else
dir=$("$(cd "$(dirname "$0")" && pwd)/sdd-workspace" "$plan")
out="$dir/task-${n}-brief.md"
fi
awk -v n="$n" '
/^```/ { infence = !infence }
!infence && /^#+[ \t]+Task[ \t]+[0-9]+/ {
intask = ($0 ~ ("^#+[ \t]+Task[ \t]+" n "([^0-9]|$)"))
}
intask { print }
' "$plan" > "$out"
if [ ! -s "$out" ]; then
echo "task ${n} not found in ${plan} (no heading matching 'Task ${n}')" >&2
exit 3
fi
echo "wrote ${out}: $(wc -l < "$out" | tr -d ' ') lines"