update convert to phased and phase authoring
This commit is contained in:
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
# phase-status.sh — phase pipeline state for the Phase Architect.
|
||||
#
|
||||
# Finds the project root (nearest ancestor with .agent/phases/todo), prints
|
||||
# the todo/ and complete/ phase listings, and computes the next free phase
|
||||
# number NN (counting both directories together, zero-padded to 2 digits).
|
||||
#
|
||||
# Usage: bash phase-status.sh # from anywhere in the project tree
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
root="$(pwd)"
|
||||
while :; do
|
||||
if [[ -d "$root/.agent/phases/todo" ]]; then break; fi
|
||||
[[ "$root" == "/" ]] && { echo "✗ ERROR: no .agent/phases/todo found at or above $(pwd)" >&2; exit 1; }
|
||||
root="$(dirname "$root")"
|
||||
done
|
||||
|
||||
list() {
|
||||
local d="$root/.agent/phases/$1" f found=0
|
||||
for f in "$d"/*.md; do
|
||||
[[ -e "$f" ]] || continue
|
||||
found=1
|
||||
printf ' %s\n' "$(basename "$f")"
|
||||
done
|
||||
if (( ! found )); then printf ' (empty)\n'; fi
|
||||
}
|
||||
|
||||
max=0
|
||||
for d in todo complete; do
|
||||
for f in "$root/.agent/phases/$d"/*.md; do
|
||||
[[ -e "$f" ]] || continue
|
||||
n="$(basename "$f" .md)"
|
||||
if [[ "$n" =~ ^([0-9]+) ]]; then
|
||||
n=$((10#${BASH_REMATCH[1]}))
|
||||
if (( n > max )); then max=$n; fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
echo "project root: $root"
|
||||
echo "todo:"
|
||||
list todo
|
||||
echo "complete:"
|
||||
list complete
|
||||
echo "next number: $(printf '%02d' $((max + 1)))"
|
||||
Reference in New Issue
Block a user