enhance(#3180): the sibling validators share one envelope and one owner — Phase 12 (#3407)

This commit is contained in:
Tom Boucher
2026-08-13 11:31:16 -04:00
committed by GitHub
parent bf05479928
commit 6dbc124018
27 changed files with 2212 additions and 354 deletions

View File

@@ -151,13 +151,15 @@ const CORE_UTILS_EXEMPT_FUNCTIONS = new Set([
// #2296/#2070/#2838) byte-for-behaviour rather than the phase-scoped
// plan-scan owner's root+nested rule — "rescue every summary before a
// merge blows it away" is not a live-plan/completion count.
// - verify.cts cmdValidateConsistency: the strict `-(\d{2})-PLAN\.md$`
// match extracts a zero-padded SEQUENCE NUMBER from filenames the owner
// (`allPlanFiles`) already classified as plans — it does not re-derive
// "is this a plan", it answers a different, narrower question (does the
// canonical 2-digit numbering sequence have a gap) that the owner's
// boolean plan/summary classification cannot answer. See the extended
// inline comment at that call site for the full Question 1/2/3 split.
// - planning-snapshot.cts buildPerPhasePlanScanFields (Phase 12, #3310,
// ADR-3180 §8.4): a strict `-(\d{2})-PLAN\.md$` match extracts a
// zero-padded SEQUENCE NUMBER from filenames the owner (`allPlanFiles`)
// already classified as plans, into the `perPhasePlanNumbering`
// `PlanningSnapshot` field so `validate.consistency`'s C002 rule can read
// it via the shared snapshot instead of re-scanning disk. It does not
// re-derive "is this a plan" — it answers a different, narrower question
// (does the canonical 2-digit numbering sequence have a gap) that the
// owner's boolean plan/summary classification cannot answer.
const FUNCTION_SCOPED_EXEMPTIONS = new Map([
[CORE_UTILS_FILE, CORE_UTILS_EXEMPT_FUNCTIONS],
[path.join('src', 'audit.cts'), new Set(['scanQuickTasks'])],
@@ -165,7 +167,7 @@ const FUNCTION_SCOPED_EXEMPTIONS = new Map([
[path.join('src', 'estimate-cli.cts'), new Set(['collectCalibrationSamples'])],
[path.join('src', 'roadmap.cts'), new Set(['cmdRoadmapAnnotateDependencies'])],
[path.join('src', 'worktree-safety.cts'), new Set(['defaultFindSummaryFiles'])],
[path.join('src', 'verify.cts'), new Set(['cmdValidateConsistency'])],
[path.join('src', 'planning-snapshot.cts'), new Set(['buildPerPhasePlanScanFields'])],
]);
// Optional `export ` modifier: `collectCalibrationSamples` (estimate-cli.cts)