* fix(#1551): match dash-separated milestone phase IDs in roadmap analyze checklist scan The checklist scanner in cmdRoadmapAnalyze allowed only a dot separator (?:\.\d+)* while the detail-heading scanner allows [.-], so milestone-prefixed IDs (1-01) truncated at the dash (-> 1) and reported phantom missing detail sections on every well-formed milestone roadmap. Widen the char class to (?:[.-]\d+)* to match the detail scanner and the shared phaseMarkdownRegexSource helper. Fixes #1551 Claude-Session: https://claude.ai/code/session_01H96MxPGMJJUiJLV2NgzV16 * chore(changeset): Fixed fragment for #1552 (roadmap milestone-id checklist scan) Claude-Session: https://claude.ai/code/session_01H96MxPGMJJUiJLV2NgzV16 --------- Co-authored-by: Tom Boucher <trekkie@nomorestars.com>
This commit is contained in:
@@ -426,8 +426,11 @@ function cmdRoadmapAnalyze(cwd: string, raw: boolean): void {
|
||||
const totalSummaries = phases.reduce((sum, p) => sum + p.summary_count, 0);
|
||||
const completedPhases = phases.filter(p => p.disk_status === 'complete').length;
|
||||
|
||||
// Detect phases in summary list without detail sections (malformed ROADMAP)
|
||||
const checklistPattern = /-\s*\[[ x]\]\s*\*\*Phase\s+(\d+[A-Z]?(?:\.\d+)*)/gi;
|
||||
// Detect phases in summary list without detail sections (malformed ROADMAP).
|
||||
// The char class must allow `-` (not just `.`) so dash-separated milestone-prefixed
|
||||
// IDs (e.g. `1-01`) match the detail-heading scanner above; otherwise they truncate
|
||||
// at the dash (`1-01` -> `1`) and every such phase reports a phantom missing detail.
|
||||
const checklistPattern = /-\s*\[[ x]\]\s*\*\*Phase\s+(\d+[A-Z]?(?:[.-]\d+)*)/gi;
|
||||
const checklistPhases = new Set<string>();
|
||||
let checklistMatch: RegExpExecArray | null;
|
||||
while ((checklistMatch = checklistPattern.exec(content)) !== null) {
|
||||
|
||||
Reference in New Issue
Block a user