(stack)
| 146 | } |
| 147 | |
| 148 | function boundaryForStack(stack) { |
| 149 | if (stack.status === 'blocked') { |
| 150 | return { |
| 151 | kind: 'stack-readiness-blocked', |
| 152 | risk: 'medium', |
| 153 | request: 'Resolve blocked PR readiness reports before requesting stack approval.', |
| 154 | verification: [ |
| 155 | 'Run `npm run stack:plan` and confirm blocked PR readiness reports are identified.', |
| 156 | 'Rerun `node scripts/pr-ready.js --pr <pull-request-url> --run-verification` for each blocked PR.', |
| 157 | ], |
| 158 | }; |
| 159 | } |
| 160 | return { |
| 161 | kind: 'stack-approval', |
| 162 | risk: 'medium-high', |
| 163 | request: `Approve landing stack in order: ${stack.nextAction.command}`, |
| 164 | verification: [ |
| 165 | 'Run `npm run stack:plan` and confirm the landing order matches the intended stack.', |
| 166 | 'Confirm each listed PR readiness report is current before marking drafts ready or merging.', |
| 167 | ], |
| 168 | }; |
| 169 | } |
| 170 | |
| 171 | function applyStackDecision(consoleState, stack) { |
| 172 | consoleState.stack = stack ? { |
no outgoing calls
no test coverage detected