(projectRoot)
| 199 | detail = `${command} exited ${result.exitCode}`; |
| 200 | } |
| 201 | |
| 202 | return { |
| 203 | id: 'verify', |
| 204 | status, |
| 205 | detail, |
| 206 | evidence: [ |
| 207 | `profile=${profile.id}`, |
| 208 | `primary=${profile.primaryCommand}`, |
| 209 | ...profile.commands.slice(0, 4), |
| 210 | ], |
| 211 | profile, |
| 212 | result, |
| 213 | }; |
| 214 | } |
| 215 | |
| 216 | function checkReport(projectRoot) { |
| 217 | const evidence = listExisting(projectRoot, [ |
| 218 | '.planning/operator-console/latest.md', |
| 219 | '.planning/next-actions/latest.md', |
| 220 | '.planning/stack-readiness/latest.md', |
| 221 | '.planning/approval-capsules/latest.md', |
| 222 | ]); |
| 223 | |
| 224 | let prReadiness = []; |
| 225 | const readinessDir = path.join(projectRoot, '.planning', 'pr-readiness'); |
| 226 | try { |
| 227 | prReadiness = fs.readdirSync(readinessDir) |
| 228 | .filter((entry) => entry.endsWith('.md')) |
| 229 | .slice(0, 5) |
| 230 | .map((entry) => normalizePath(path.join('.planning', 'pr-readiness', entry))); |
| 231 | } catch { |
| 232 | prReadiness = []; |
no test coverage detected