(projectRoot)
| 98 | } |
| 99 | |
| 100 | function readReadinessReports(projectRoot) { |
| 101 | const dir = path.join(projectRoot, '.planning', 'pr-readiness'); |
| 102 | if (!fs.existsSync(dir)) return []; |
| 103 | return fs.readdirSync(dir) |
| 104 | .filter((name) => name.endsWith('.md')) |
| 105 | .map((name) => parseReadinessReport(projectRoot, path.join(dir, name))) |
| 106 | .filter(Boolean); |
| 107 | } |
| 108 | |
| 109 | function defaultIsAncestor(projectRoot, ancestor, descendant) { |
| 110 | if (!ancestor || !descendant || ancestor === descendant) return false; |
no test coverage detected