What It Does
Read-only dashboard of the local plan corpus. Walks plans/*.md (open) and
plans/complete/*.md (archived), counts checked/unchecked task boxes in each
file, and renders a plain-text table. Open plans at 100% completion are
annotated -- ready to complete so the next archival step is obvious.
When to Use
- Reviewing which plans are ready to archive.
- Checking work-in-flight across the plan corpus at a glance.
- Confirming a plan has no remaining unchecked boxes before starting its archival workflow.
Usage
Phase 1: Open plans
set -euo pipefail
if ! ls plans/*.md >/dev/null 2>&1; then
printf 'plans/ is empty (no open plans).\n\n'
exit 0
fi
printf 'Open plans (plans/):\n'
printf '%-60s %s\n' 'File' 'Progress'
printf '%-60s %s\n' '----' '--------'
for f in plans/*.md; do
[ -f "$f" ] || continue
checked=$(grep -ciE '^[[:space:]]*- \[x\]' "$f" 2>/dev/null || true)
unchecked=$(grep -cE '^[[:space:]]*- \[ \]' "$f" 2>/dev/null || true)
: "${checked:=0}"
: "${unchecked:=0}"
total=$((checked + unchecked))
annotation=''
if [ "$total" -gt 0 ] && [ "$unchecked" -eq 0 ]; then
annotation=' -- ready to complete'
fi
printf '%-60s [ %d/%d ]%s\n' "$f" "$checked" "$total" "$annotation"
done
printf '\n'
Phase 2: Archived plans
Each Bash code block runs in its own subprocess — variables from Phase 1 do not survive. Re-derive locally.
set -euo pipefail
if [ ! -d plans/complete ]; then
printf 'Archived plans (plans/complete/): (0) — directory does not exist yet.\n'
exit 0
fi
count=$(find plans/complete -maxdepth 1 -name '*.md' -type f 2>/dev/null | wc -l | tr -d ' ')
if [ "$count" -eq 0 ]; then
printf 'Archived plans (plans/complete/): (0)\n'
exit 0
fi
printf 'Archived plans (plans/complete/): (%d)\n' "$count"
printf '%-60s %s\n' 'File' 'Progress'
printf '%-60s %s\n' '----' '--------'
for f in plans/complete/*.md; do
[ -f "$f" ] || continue
checked=$(grep -ciE '^[[:space:]]*- \[x\]' "$f" 2>/dev/null || true)
unchecked=$(grep -cE '^[[:space:]]*- \[ \]' "$f" 2>/dev/null || true)
: "${checked:=0}"
: "${unchecked:=0}"
total=$((checked + unchecked))
printf '%-60s [ %d/%d ]\n' "$f" "$checked" "$total"
done
Notes
- The
[ 0/0 ]rendering for zero-task plans is intentional and surfaces prose-style or research-style plan files that have no task list. - The
-- ready to completeannotation appears ONLY on files inplans/(not on already-archived files). It is purely advisory — running the plan-completion workflow is the explicit archival action. - Archived files with stray
- [ ]lines are visible in this dashboard but are NOT blocked: PR-diff-scoped validation only checks files newly added or modified by the current PR. The dashboard exists to surface those cases for opportunistic cleanup.