Prompt file imported from PauloHYBEX/Nexus-TCMS (
.windsurf/workflows/progress.md). Copyright stays with the author.
Progress
Check where you are in the project, what's been done, and what comes next.
Step 1: Check for Planning Structure
node -e "const fs=require('fs'); console.log(fs.existsSync('.planning/PROJECT.md') ? 'EXISTS' : 'MISSING')"
If .planning/ doesn't exist: stop — run new-project to initialize.
Step 2: Load Context
Read the key state files:
cat .planning/STATE.md
cat .planning/ROADMAP.md
Find the 2-3 most recent SUMMARY.md files:
node -e "const fs=require('fs'),path=require('path');function find(d){let r=[];try{for(const e of fs.readdirSync(d,{withFileTypes:true})){const f=path.join(d,e.name);r=r.concat(e.isDirectory()?find(f):e.name.endsWith('-SUMMARY.md')?[f]:[]);}}catch(e){}return r;}const files=find('.planning').map(f=>({f,t:fs.statSync(f).mtimeMs})).sort((a,b)=>b.t-a.t).slice(0,3).map(x=>x.f);files.forEach(f=>console.log(f));"
Read each to extract what was recently accomplished (one-liner per plan).
Step 3: Analyze Phase Status
For the current phase directory, count:
ls ".planning/phases/[current_phase_dir]/"*-PLAN.md 2>/dev/null | wc -l
ls ".planning/phases/[current_phase_dir]/"*-SUMMARY.md 2>/dev/null | wc -l
ls ".planning/phases/[current_phase_dir]/"*-UAT.md 2>/dev/null | wc -l
Check for UAT files with gaps (issues found during testing):
grep -l "status: diagnosed" .planning/phases/[current_phase_dir]/*-UAT.md 2>/dev/null
Check for a .continue-here.md handoff file:
find .planning/phases -name ".continue-here.md" 2>/dev/null
Step 4: Report Status
Calculate overall progress: count completed phases / total phases.
Display:
# [Project Name]
**Progress:** [████████░░] [X]% — Phase [N] of [total]
## Recent Work
- [Phase, Plan]: [what was accomplished — 1 line]
- [Phase, Plan]: [what was accomplished — 1 line]
## Current Position
Phase [N] of [total]: [phase-name]
Status: [planned | in-progress | complete]
Context: [✓ CONTEXT.md exists | — not yet]
## Key Decisions
- [Key decision from STATE.md]
## Blockers / Concerns
- [Any blockers from STATE.md, or "None"]
Step 5: Route to Next Action
Check conditions in order:
-
.continue-here.mdexists → mid-plan handoff found⚠️ Handoff detected: .planning/phases/[phase]/.continue-here.md ▶ Next: resume-work -
UAT gaps exist (status: diagnosed) → fix plans needed
⚠️ UAT Gaps Found in Phase [X] ▶ Next: plan-phase [X] (gap closure mode) -
Plans exist but summaries < plans → unfinished execution
## ▶ Next Up **Phase [X]-[plan]: [Plan Name]** — [objective] ▶ Next: execute-phase [X] -
Plans = 0 → phase not yet planned
- If CONTEXT.md exists:
▶ Next: plan-phase [X] - If no CONTEXT.md:
▶ Next: discuss-phase [X](recommended) orplan-phase [X]
- If CONTEXT.md exists:
-
Summaries = plans AND plans > 0, UAT not done → verify first
▶ Next: verify-work [X]
-
Summaries = plans, UAT passed, more phases remain → move forward
▶ Next: discuss-phase [X+1]- Suggest:
/review→/ship→/compoundbefore starting next phase
-
All phases done → ready to ship
▶ Next: audit-milestone
After presenting the recommended next step, ask:
▶ Next: [workflow-name] [args if any]
Run it now? Type "yes" to proceed, or just keep chatting.
If the user responds with "yes", "go", "do it", "run it", or "proceed" — immediately invoke that workflow.
For full auto-pilot with no prompt, use /next instead.