diff --git a/CHANGELOG.md b/CHANGELOG.md index 94bcfd9..4794a87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ ## [0.7.0] - Unreleased +### Fixes + +- **`build_standing_set.py` exemplar bias — added declarative-posture + patterns.** The pre-fix `CONSTRAINT_EXEMPLARS` list leaned heavily + imperative ("never," "always," "must," "default to"). Surfaced + 2026-05-22: against the real prod vault the auto-selected top-10 + was 100% engineering rules — career / lifestyle / posture + constraints spanning multi-year load-bearing facts (runway, + recruiter posture, start-date framing, job-search mode) did not + surface despite being equally durable, because the user encodes + them declaratively ("Brian's stance," "current preference," + "passive/selective mode") rather than imperatively. Added 10 + declarative-posture exemplars representing the same constraint + class in declarative shape. Exemplar list 22 → 30; imperative / + declarative split now roughly balanced. ROADMAP audit-finding + follow-up per `feedback_audit_findings_become_roadmap_followups`. + Operator should re-run `scripts/salience_phase0.sh snapshot && + scripts/salience_phase0.sh score` to verify the bias fix surfaces + career-context memories alongside the engineering rules in the + top-10. + ### Features - **Salience tier Phase 1 — first-class standing-context recall diff --git a/scripts/build_standing_set.py b/scripts/build_standing_set.py index 57f2fd4..fc46cb4 100644 --- a/scripts/build_standing_set.py +++ b/scripts/build_standing_set.py @@ -107,6 +107,27 @@ "runway is not a constraint, optimize for preference not necessity", "X is not Y — assert the constraint explicitly", "this fact conditions reasoning regardless of query similarity", + # ── Declarative-posture exemplars (added 2026-05-22 per ROADMAP P1) ── + # Imperative-shape exemplars above ("never," "always," "must," + # "default to") under-weight career / lifestyle / posture constraints + # that the user encodes declaratively. The 2026-05-22 finding: the + # auto-selected top-10 against the real vault was 100% engineering + # rules; career-context memories spanning multi-year load-bearing + # posture (runway, recruiter posture, start-date framing, search + # mode) did not surface despite being equally durable. These + # exemplars represent the declarative shape of the same constraint + # class — facts stated as if they govern future advice across many + # domains, but phrased as posture not as imperative. + "Brian's stance is correct as-is, posture is by design", + "current preference is to wait, not to push", + "his stated preference: keep replies minimal, not desperate", + "passive / selective mode is correct given runway and pipeline", + "their silence is information; outreach signals desperation", + "this decouples cash pressure from outreach push timing", + "lump sum severance through August is in hand, not biweekly", + "deliberately niche, not chasing scale or virality", + "the constraint binding decisions is preference, not necessity", + "soft target for start date preserves negotiating leverage", ] TIME_BOUNDED_EXEMPLARS = [