You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found while measuring #47. ⚠️ This is a semantics question, not a defect report: one of the two readings below is right and the fixture currently asserts the other without saying so.
Measured
claude/issue-47-seed-legal-owner, from the compiled artifact:
contracts with a legal_owner 68
of those, is_backfilled = true 34
of those 34, review_started_at null (all 34)
So a third of the corpus carries a named lawyer on a row that also says, in its own columns, that nobody ever reviewed it.
The contradiction, in the declarations' own words
clm_contract.legal_owner, src/objects/contract.object.ts: description "The lawyer who accepted the review. Required before a submitted contract enters review."
clm_contract.is_backfilled, DESIGN.md §13 Q8: 补录的已签合同 — an already-executed contract entered after the fact, which starts active and skipped review and approval. src/data/plan-contracts.ts says the same at length: the backfilled population "claims nothing they do not have … no submitted_at, no review_started_at, no approved_at, no review, no deviation and no signature round".
F16 (executed_upload) is the action that produces such a contract in the running app, and it assigns no legal owner.
The fixture's rule is hasLegalOwner = pastSubmission && type.requiresLegalReview && status !== 'submitted', which does not consult backfilled. That is why the two claims sit on the same row.
The two readings, and what each costs
A. legal_owner means "the lawyer who accepted the review". Then a backfilled contract must not carry one, and hasLegalOwner gains && !backfilled. ⚠️ Cost, and it is real: DESIGN.md §10 draws the expiring corpus from the backfilled contracts, so those 34 rows are precisely F12 renewal_notice and F13 expiration_sweep's population. Both copy legal_owner beside owner_id, so every renewal and expiry notice would drop from two recipients to one — the opposite direction from The demo makes M3's reminder layer look broken: 54 of 120 contracts have no legal_owner, so four of six scheduled jobs notify nobody #47.
B. legal_owner means "the lawyer who owns this file in legal". Then the data is right and the field description is what is wrong, and it should say so — custodianship, with the review-acceptance sentence demoted to how the column is normally first written.
B is the cheaper answer and, for a records-keeping product, arguably the truer one: a backfilled contract still has somebody in legal responsible for it. But that is a product decision about what a column means, not a developer's, and either way something has to change so the row stops asserting both.
Not urgent, and ⛔ not a rider
Nothing measured is broken: no gate, no flow and no screen misbehaves. It is on the "places the product lies" list from #45 — a column that says one thing while the column next to it says the opposite — which is why it is filed rather than left in a PR body.
Related
#47 (where this was measured; it deals this column but deliberately does not change WHICH rows carry it) · #39 / PR #42 (F12/F13, and F16 which creates backfilled contracts) · #45 (the dogfood pass and its "places the product lies" category) · DESIGN.md §13 Q8
Found while measuring #47.⚠️ This is a semantics question, not a defect report: one of the two readings below is right and the fixture currently asserts the other without saying so.
Measured
claude/issue-47-seed-legal-owner, from the compiled artifact:So a third of the corpus carries a named lawyer on a row that also says, in its own columns, that nobody ever reviewed it.
The contradiction, in the declarations' own words
clm_contract.legal_owner,src/objects/contract.object.ts: description "The lawyer who accepted the review. Required before a submitted contract enters review."clm_contract.is_backfilled, DESIGN.md §13 Q8: 补录的已签合同 — an already-executed contract entered after the fact, which starts active and skipped review and approval.src/data/plan-contracts.tssays the same at length: the backfilled population "claims nothing they do not have … nosubmitted_at, noreview_started_at, noapproved_at, no review, no deviation and no signature round".executed_upload) is the action that produces such a contract in the running app, and it assigns no legal owner.The fixture's rule is
hasLegalOwner = pastSubmission && type.requiresLegalReview && status !== 'submitted', which does not consultbackfilled. That is why the two claims sit on the same row.The two readings, and what each costs
legal_ownermeans "the lawyer who accepted the review". Then a backfilled contract must not carry one, andhasLegalOwnergains&& !backfilled.renewal_noticeand F13expiration_sweep's population. Both copylegal_ownerbesideowner_id, so every renewal and expiry notice would drop from two recipients to one — the opposite direction from The demo makes M3's reminder layer look broken: 54 of 120 contracts have nolegal_owner, so four of six scheduled jobs notify nobody #47.legal_ownermeans "the lawyer who owns this file in legal". Then the data is right and the field description is what is wrong, and it should say so — custodianship, with the review-acceptance sentence demoted to how the column is normally first written.B is the cheaper answer and, for a records-keeping product, arguably the truer one: a backfilled contract still has somebody in legal responsible for it. But that is a product decision about what a column means, not a developer's, and either way something has to change so the row stops asserting both.
Not urgent, and ⛔ not a rider
Nothing measured is broken: no gate, no flow and no screen misbehaves. It is on the "places the product lies" list from #45 — a column that says one thing while the column next to it says the opposite — which is why it is filed rather than left in a PR body.
Related
#47 (where this was measured; it deals this column but deliberately does not change WHICH rows carry it) · #39 / PR #42 (F12/F13, and F16 which creates backfilled contracts) · #45 (the dogfood pass and its "places the product lies" category) · DESIGN.md §13 Q8