diff --git a/get-shit-done/workflows/resume-project.md b/get-shit-done/workflows/resume-project.md index c92893830..f07582857 100644 --- a/get-shit-done/workflows/resume-project.md +++ b/get-shit-done/workflows/resume-project.md @@ -225,9 +225,11 @@ Wait for user selection. -Based on user selection, route to appropriate workflow: +Based on user selection, route to appropriate workflow. -- **Execute plan** → Show command for user to run after clearing: +Resume-specific exception: do **not** emit `/clear then:` here. Resume is already a session-entry flow, so the next command should be shown directly. + +- **Execute plan** → Show direct next command: ``` --- @@ -235,13 +237,11 @@ Based on user selection, route to appropriate workflow: **{phase}-{plan}: [Plan Name]** — [objective from PLAN.md] - `/clear` then: - `/gsd-execute-phase {phase} ${GSD_WS}` --- ``` -- **Plan phase** → Show command for user to run after clearing: +- **Plan phase** → Show direct next command: ``` --- @@ -249,8 +249,6 @@ Based on user selection, route to appropriate workflow: **Phase [N]: [Name]** — [Goal from ROADMAP.md] - `/clear` then: - `/gsd-plan-phase [phase-number] ${GSD_WS}` --- diff --git a/tests/bug-3083-resume-route-clear.test.cjs b/tests/bug-3083-resume-route-clear.test.cjs new file mode 100644 index 000000000..1a8ba2a13 --- /dev/null +++ b/tests/bug-3083-resume-route-clear.test.cjs @@ -0,0 +1,28 @@ +'use strict'; + +const { test, describe } = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); + +describe('bug #3083: resume-project next-step routing should not include /clear then:', () => { + test('route_to_workflow block omits /clear then: in resume templates', () => { + const workflowPath = path.join(__dirname, '..', 'get-shit-done', 'workflows', 'resume-project.md'); + const content = fs.readFileSync(workflowPath, 'utf-8'); + const routeStart = content.indexOf(''); + const routeEnd = content.indexOf('', routeStart); + const routeBlock = content.slice(routeStart, routeEnd); + + assert.equal(routeBlock.includes('/clear` then:'), false, 'resume route templates must not include `/clear` then:'); + }); + + test('route_to_workflow block includes exception note explaining resume behavior', () => { + const workflowPath = path.join(__dirname, '..', 'get-shit-done', 'workflows', 'resume-project.md'); + const content = fs.readFileSync(workflowPath, 'utf-8'); + const routeStart = content.indexOf(''); + const routeEnd = content.indexOf('', routeStart); + const routeBlock = content.slice(routeStart, routeEnd); + + assert.match(routeBlock, /resume.*exception|exception.*resume/i); + }); +});