fix(rectification): ask relationship and career before dated collect
Independent Staging Quality Gate / validate (push) Successful in 10m6s
Independent Staging Quality Gate / publish (push) Has been cancelled

Move nextDatedCollectFollowup after family coverage so a new case still
asks D9 then D10. Dated third-event collect stays education → finance →
relocation → health. Admin input padding contract follows --space-3.

BUG-531 and BUG-532.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-04 19:06:54 +08:00
parent 846b60642f
commit 0be51e65f5
12 changed files with 257 additions and 90 deletions
@@ -1843,10 +1843,6 @@ export function buildMethodFollowupPlan(input: {
source: "method_coverage",
});
}
if (!next && !meetsAcceptanceEventQuality(input.evidence)) {
const dated = nextDatedCollectFollowup(input.evidence, declined);
if (dated) next = makeFollowup(dated);
}
if (!next && dashaCovered && coverageComplete && occupationCovered) {
const allowLowGainDiscriminator = !coverageComplete || !candidatesSeparated;
const yearless = yearlessDiscriminators[0];
@@ -1911,6 +1907,7 @@ export function buildMethodFollowupPlan(input: {
const candidate = followupFromRanked(ranked);
return candidate.choice_frame ? candidate : null;
};
let datedCollect: MethodFollowup | null = null;
if (!next) {
if (!relationshipCovered && !declined.has("relationship")) {
next = sameDomainYearlessCard("relationship") ?? makeFollowup({
@@ -1956,6 +1953,11 @@ export function buildMethodFollowupPlan(input: {
source: "method_coverage",
...collectionYearFields(familyCollect),
});
} else if (
!meetsAcceptanceEventQuality(input.evidence)
&& (datedCollect = nextDatedCollectFollowup(input.evidence, declined))
) {
next = makeFollowup(datedCollect);
} else if (!occupationCovered) {
if (meetsAcceptanceEventQuality(input.evidence)) {
for (const ranked of yearlessDiscriminators) {