feat(validate): extract followUps and knownLimitations in parseSummary (#2622)
Slice summaries capture Follow-ups and Known Limitations sections during completion, but parseSummary() never extracts them. This makes the data write-only — no downstream code can access it programmatically. Add followUps and knownLimitations fields to the Summary interface, extract them via extractSection() in parseSummary(), and aggregate outstanding items from all slices into the validate-milestone prompt context so the validator can assess unresolved work. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0db5edd7fe
commit
9c81efa9f2
3 changed files with 23 additions and 1 deletions
|
|
@ -1392,6 +1392,21 @@ export async function buildValidateMilestonePrompt(
|
|||
if (uatInline) inlined.push(uatInline);
|
||||
}
|
||||
|
||||
// Aggregate unresolved follow-ups and known limitations across slices
|
||||
const outstandingItems: string[] = [];
|
||||
for (const sid of valSliceIds) {
|
||||
const summaryPath = resolveSliceFile(base, mid, sid, "SUMMARY");
|
||||
if (!summaryPath) continue;
|
||||
const content = await loadFile(summaryPath);
|
||||
if (!content) continue;
|
||||
const summary = parseSummary(content);
|
||||
if (summary.followUps) outstandingItems.push(`- **${sid} Follow-ups:** ${summary.followUps.trim()}`);
|
||||
if (summary.knownLimitations) outstandingItems.push(`- **${sid} Known Limitations:** ${summary.knownLimitations.trim()}`);
|
||||
}
|
||||
if (outstandingItems.length > 0) {
|
||||
inlined.push(`### Outstanding Items (aggregated from slice summaries)\n\nThese follow-ups and known limitations were documented during slice completion but have not been resolved.\n\n${outstandingItems.join('\n')}`);
|
||||
}
|
||||
|
||||
// Inline existing VALIDATION file if this is a re-validation round
|
||||
const validationPath = resolveMilestoneFile(base, mid, "VALIDATION");
|
||||
const validationRel = relMilestoneFile(base, mid, "VALIDATION");
|
||||
|
|
|
|||
|
|
@ -269,6 +269,8 @@ function _parseSummaryImpl(content: string): Summary {
|
|||
whatHappened: nativeResult.whatHappened,
|
||||
deviations: nativeResult.deviations,
|
||||
filesModified: nativeResult.filesModified,
|
||||
followUps: extractSection(content, 'Follow-ups') ?? '',
|
||||
knownLimitations: extractSection(content, 'Known Limitations') ?? '',
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -330,7 +332,10 @@ function _parseSummaryImpl(content: string): Summary {
|
|||
}
|
||||
}
|
||||
|
||||
return { frontmatter, title, oneLiner, whatHappened, deviations, filesModified };
|
||||
const followUps = extractSection(body, 'Follow-ups') ?? '';
|
||||
const knownLimitations = extractSection(body, 'Known Limitations') ?? '';
|
||||
|
||||
return { frontmatter, title, oneLiner, whatHappened, deviations, filesModified, followUps, knownLimitations };
|
||||
}
|
||||
|
||||
// ─── Continue Parser ───────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -157,6 +157,8 @@ export interface Summary {
|
|||
whatHappened: string;
|
||||
deviations: string;
|
||||
filesModified: FileModified[];
|
||||
followUps: string;
|
||||
knownLimitations: string;
|
||||
}
|
||||
|
||||
// ─── Continue-Here ─────────────────────────────────────────────────────────
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue