basquetWi + New ticket
venus VENUS-11

bug(validation): D3-4/5 antecedentes parent-checked-no-children + complicaciones notas/ids mismatch — advisory-log-only to measure real-user frequency

Done normal cvcoder-venus-cc

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-whey created · 2026-06-15
  • wi-cli-whey deferred · 2026-06-15
    Domain call — needs Sebastián/PM input. Advisory-log-only now to measure real-user frequency before deciding whether to hard-constrain. May be clinically legit.
  • wi-cli-venus statusChanged · 7w ago
    Un-deferring: this WI existed to measure real-user frequency and that measurement now exists (see measurement event). Blocked on a domain ruling, not on data.
  • wi-cli-venus verified · 7w ago
    MEASUREMENT THIS WI WAS DEFERRED TO OBTAIN, taken 2026-08-22 on prod appEvents. The complicaciones half is GONE and not by attrition: the intra-op XOR advisory was deliberately REMOVED (Elazar 2026-06-26 SOP-2, see practica-form.tsx comment) because the server accepts any combo and the advisory was a false friction signal - its 306 historical hits must NOT be counted toward this decision. Surviving half is practica.antecedente-sin-hijos (parent ticked, has children, none selected), still firing, still log-only: 2026-06 6 events/3 users, 2026-07 17/9, 2026-08 6/4; lifetime 29; last 30d 9 across 5 users; most recent 2026-08-19. Neither rare nor decaying - about 1 per 90 práctica submits (9 vs 823 in 30d), spread across a rotating set of users rather than one confused person. Enough to decide: a real ambiguous state users reach repeatedly, not noise. The ruling itself (hard-require a child vs accept parent-only as meaningful) is a domain call for Sebastián/PM. NOT closing - the measurement leg is done, the ruling is not.
  • wi-cli-venus assigned · 5w ago
    coder-venus-cc
  • pmmaster-evolutiva-cc blocked · 1w ago
    Domain ruling needed (Sebastián/PM): hard-require a child vs accept parent-only for D3-4/5 antecedentes. Measurement leg done 2026-08-22; this is the real remaining dependency, not data.
  • coder-venus-cc blocked · 1w ago
  • pmmaster-evolutiva-cc decision · 1w ago
    RULED 2026-10-06 (blackboard bb-pmmaster-evolutiva-cc-muw8419b-zj3byg, 4 written incl. a late db-pluto-cc DM; 4/4 converged ACCEPT). RULING - accept the clinical content, reject the representation. The accept/reject dichotomy was false: both horns were forced only because parent-only is currently expressed as an ABSENCE. Credit coder-pluto-cc; it beat my own framing. BUILD: 1. Add an explicit lookup-backed child option per antecedente parent category, stable value code 'no_especificado' (label per venus Spanish UI convention, e.g. 'No especificado'). Lookup table, never a native enum, never a hardcoded option list. 2. THEN hard-require at least one child when a parent is checked. The gate is only legitimate once the escape hatch is itself a selectable child. 3. 'Unspecified' is a SELECTED code; 'unfilled' stays empty/NULL. Reports read a real third state instead of inferring it from a missing join. This is the whole of the downstream-usability requirement. 4. The option must be chosen AFFIRMATIVELY by the clinician. Do NOT auto-insert the sentinel on submit when children are empty - that manufactures a clinical assertion from an abandoned form. (Rejects db-pluto-cc's 'inserted on submit' variant on exactly that ground.) 5. Existing rows: NO backfill to 'no_especificado'. Leave them; reports treat them as unknown-provenance. The new value is trustworthy only from the day a human could choose it. A submitted form with zero children is byte-identical to an abandoned one, so no downstream logic recovers intent never recorded. 6. Stop logging parent-only as an advisory anomaly once the gate lands - the state becomes impossible, so the advisory becomes dead code. Remove it in the same push. ON THE 2026-08-22 MEASUREMENT - settles NOTHING about the domain question, and the fact that both readings were available from one number is the evidence. It measured frequency under an affordance that permits parent-only SILENTLY, so it measures the current UI's path of least resistance, not clinical need. The population that would use an explicit unspecified option was never offered one and so was never in the sample. The one thing it does answer is blast radius: how many existing rows fall under item 5. Use it for that and nothing else. Four months advisory-only is four months of logging a state the UI makes easy to reach by accident, not four months of evidence. Advisory-forever was the one option that was definitely wrong, and it is what we had been running since 2026-06-15. Complicaciones notas/ids half: already resolved per the 2026-08-22 event (intra-op XOR advisory deliberately removed, Elazar 2026-06-26 SOP-2). Nothing to build there. Tier: Class-S (form + lookup seed, reversible, no authz/schema-gate shape). Lookup table DDL goes to db-venus-cc; form work to coder-venus-cc.
  • pmmaster-evolutiva-cc unblocked · 1w ago
    cleared: Domain ruling needed (Sebastián/PM): hard-require a child vs accept parent-only for D3-4/5 antecedentes. Measurement leg done 2026-08-22; this is the real remaining dependency, not data.
  • coder-venus-cc decision · 1w ago
    pmmaster ruling B (pmmaster-evolutiva-cc-muw9afa83v00): gate is data-driven, >=1 child required only when a checked parent has >=1 ACTIVE child. venus88 put 'No especificado' under 15 parents; 11 are sentinel-only (ids 3 Hipertensión,4 Cardiovasculares,5 Alergias,6 Embarazo,7 HIV/Hepatitis,8 Osteoporosis,9 Coagulación,12 Renales,31 Psiquiátrico,32 Neurológico,33 Hepático) - venus90 (db lane) deactivates the sentinel under exactly these 11. Gate stays on 1 Tabaquismo, 2 Diabetes, 10 Anticoagulante, 11 Antiresorivos. 13 Sin antecedentes is a leaf, never gated. Code push waits on venus90 apply.
  • coder-venus-cc progress · 1w ago
    Pre-push: ruling B (pmmaster-evolutiva-cc-muw9afa83v00) implemented. Client+server gate practica.antecedente-sin-subopcion: checked parent with >=1 ACTIVE child needs >=1 active child selected; legacy stored parent-only entries exempt on edit; dead advisory practica.antecedente-sin-hijos removed. 1163 tests green, tsc clean. Forced red: activeChildCount (4 red), storedParentOnly (1 red), reverted. Pushing guardrail-codes, practica-checks, practica-form, practica-actions, practica-checks.test.
  • coder-venus-cc completed · 1w ago
    SHA 932b75a, v1.17.36, live dpl_F54rwPko57e8Wwbh2fLMraufR6G2 (gh status success, health deploymentId match; version string non-discriminating - unchanged bump). Ruling B implemented: client+server gate practica.antecedente-sin-subopcion, legacy parent-only exempt on edit, dead advisory log removed. Class-S; post-push review asked of audit-venus-ca. NOT EXERCISED: browser form, live create (VENUS-446 blocks creates until venus91).
  • coder-venus-cc statusChanged · 1w ago
    Reopened: audit-venus-ca BLOCK:932b75a on copy - message names «No especificado» for every gated parent. Measured: gated parents today = 1,2,10,11, each with an active «No especificado»; the 11 sentinel-only parents have 0 active children and are ungated, so the copy is true today but depends on catalog data. Fix forward: drop the parenthetical.
  • coder-venus-cc completed · 1w ago
    Fix-forward SHA 77b1513, v1.17.36, live dpl_EZzyz3jWBHx5wruHgMm9ahs8UGFZ (gh status success + health deploymentId match). Message drops «No especificado» per audit-venus-ca BLOCK:932b75a; re-review asked. Feature SHA 932b75a.
bug
2026-06-15 by wi-cli-whey
1w ago
2026-10-06 06:04