Repository navigation
Remove clm_signature.notes, which only the demo seed fills (#38 ruling C) - #121
Merged
Merged
Conversation
Ruling C on #38 (batch 5): a signature round's notes were written by the demo seed alone, no flow or action produces them, and the record page's Discussion panel (sys_comment) already carries what a person would type. Drop the field, its seed value, the four SIGNATURE_NOTES strings per demo locale with their DemoStrings slot, the plan's noteIndex that only fed them, and the field's en and zh-CN bundle keys. clm_contract_version.notes stays: three of the product's flows write it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017nzWFRUo2U7evMkPdVniAn
Contributor
Author
席位核对 — ACCEPT · head
|
| check | reading |
|---|---|
| shape | draft → main, Part of #38, no closing keyword; assignee zhuangjianguo |
| CI on the head | both Validate check-runs success on 134ebef = PR head.sha; mergeable clean |
| scope | 10 files, deletions only (+0/−34): clm_signature.notes, its seed value, the signatureNotes slot and its four strings per locale, noteIndex (nothing else read it), both bundle keys; clm_contract_version.notes untouched; nothing governed. plan-children.ts and the two prose.ts files go beyond the claim's list only to delete what fed the removed slot — accepted |
| the ruling | 6398275254 letter C — delivered |
| measured (dev, 18.1.0) | seed 823 / 404 identical to main; WARN digest diff empty; clm_signature 18 fields (main 19), PATCH {notes} → 400; signature page shows no Notes and keeps Discussion, en + zh-CN; a version record still shows its notes |
| PR-body correction (seat) | Acceptance note 3: "Completed At shows in the header once the round has one" — a sent round shows Method and Status only |
Landing: under the maintainer's merge authorization (project thread: 「你可以自己审核的就自己合并」). The §03 line rides PR #120 (already edited there).
Generated by Claude Code
zhuangjianguo
marked this pull request as ready for review
October 25, 2026 13:58
This was referenced Oct 25, 2026
Draft
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #38 — ruling C (batch 5): remove clm_signature.notes, which only the demo seed fills
Clause-②: no
Metadata-protocol: none
#38 remains open: the governed
DESIGN.md§03 field-line sync still has to land through the seat's design-doc PR (exact edit under Acceptance notes).clm_contract_version.notesis untouched, as the ruling says: three of the product's own flows write it.What changed (head
134ebef, rebased onorigin/main4460d31)Ruling 6398275254, letter C: a signature round's
noteswas filled only by the demo seed. No flow or action writes it, and the signature record page already draws the Discussion panel (sys_comment) for what a person would type. It is removed with everything that only existed to fill it:src/objects/signature.object.ts: thenotestextarea is gone fromclm_signature.src/data/negotiation.seed.ts: the seed no longer writesnoteson the 30 rounds.src/data/strings.ts: thesignatureNotesslot is gone fromDemoStrings.src/data/demo-en/index.ts,src/data/demo-zh/index.ts: thesignatureNotesentry and theSIGNATURE_NOTESimport are gone.src/data/demo-en/prose.ts,src/data/demo-zh/prose.ts: the fourSIGNATURE_NOTESstrings per locale are gone. Without the slot they would be a dead export.src/data/plan-children.ts:SignaturePlan.noteIndexand its two assignments are gone. A grep showed it had no other reader:noteIndexappeared only at its declaration, its two assignments andnegotiation.seed.ts:141.src/translations/en/objects.lifecycle.ts,src/translations/zh-CN/objects.lifecycle.ts: theclm_signature.fields.noteskey is gone from both bundles.No view, page, profile or flow names
clm_signature.notes. Grep: the only'notes'column insrc/viewsispayment-plan.view.ts:98, which isclm_payment_plan. 10 files, +0 / −34.Rebase note: PR #118 (signing entities) landed while this was in flight. The conflict was in the two demo
index.tsimport lists. The resolution keeps #118'sSIGNING_ENTITIESand dropsSIGNATURE_NOTES. Everything below was measured on the rebased head.Proof
Zero references.
git grep -n -E "signatureNotes|SIGNATURE_NOTES|noteIndex"gives exit 1 with no lines. The remainingnoteshits insrc/belong toclm_contract_version,clm_obligation,clm_payment_plan, the three flows' version writes and comments. None is aclm_signaturereference.pnpm demoon a clean.objectstack/data. Both runs usedrm -rf .objectstack/data, thenpnpm demo:4460d31134ebefSeed loading completed{"inserted":823,"updated":0,"skipped":0,"errored":404,"referencesDropped":0}sort | uniq -c)diffexit 0, no new linedegraded/no such tableGET /api/v1/data/clm_signaturenotesfilled on 30noteskey on anyGET /api/v1/meta/object/clm_signaturenotesnotesGET /api/v1/meta/object/clm_contract_versionnotesnotes(control)PATCH /api/v1/data/clm_signature/ID {notes}400 {"error":"Unknown field 'notes' on object 'clm_signature'","code":"INVALID_FIELD"}The 404 errored rows are the known SeedLoader lines for users that were never seeded:
clm_obligation.owner199,clm_contract.owner_id120,legal_owner68,clm_deviation.decided_by17. Main has the same counts.Browser. Playwright on
/opt/pw-browsers/chromium-1243, signed in as admin, en-US and zh-CN contexts. Main was driven the same way for comparison./_console/apps/clm/clm_signature/record/2HOHV660TOTTs4g1(Wet ink · Sent):1A3mxzcUCDCgFaro) shows an Execution section withNOTES Notarisation booked; the witnessed copy is still outstanding.(zh 备注).total 0), so each run created one through the API, uploading a PDF and thenPOST /api/v1/data/clm_contract_versionwithnotes, which answered 201. Its record page…/clm_contract_version/record/VLv_qvT4ymiH_GufshowsNOTES(en) /备注(zh-CN) with the note text. This control is unchanged from main.401 GET /api/v1/auth/get-sessionbefore sign-in, plus one 404 resource load.Gates (on
134ebef, each exit code captured to its own file before any pipe)pnpm installDone in 781ms using pnpm v10.28.0pnpm validate✓ Validation passed (864ms)·Data: 11 Objects 167 Fields(main4460d31: 168) · 6 warnings, allapproval-approvers-may-resolve-empty, same as mainpnpm lint6 suggestion(s) (967ms)pnpm typechecktsc --noEmitcleanpnpm lint:i18n-gate✓ i18n gate·COVERAGE : 0 missing keys across 2 locale(s)Acceptance notes
Governed §03 sync, for the seat's design-doc PR. This PR does not touch it. In
DESIGN.mdline 110 (theclm_signaturerow of the §03 field table), the row's tail changes from· executed_file file · completed_at · notes |to
· executed_file file · completed_at |No other part of the row changes. The
clm_contract_versionrow keeps itsnotes. The same PR still carries theclm_partyrow drift and §08 line 289 from PR Remove clm_party.screened_at and clm_contract_type.template_placeholders; note the e-sign fields' scheduled consumer (#38 groups 3 and 1) #116's notes.The file list grew by two files, both mechanical.
src/data/plan-children.ts(noteIndex) is the plan field the dispatch named.demo-en/prose.tsanddemo-zh/prose.tshold theSIGNATURE_NOTESconstants that only fedSTRINGS.signatureNotes; keeping them would leave a dead export in each.What the record page shows now. On a round with no formalities ticked and no executed copy, notes was the only field in the
executiongroup that had a value. The platform does not draw a section whose fields are all empty, so on such a round the Execution section no longer appears;Completed Atstill shows in the header. Rounds that have formalities or an executed copy keep the section. Thecontract_typeTemplate section in PR Remove clm_party.screened_at and clm_contract_type.template_placeholders; note the e-sign fields' scheduled consumer (#38 groups 3 and 1) #116 behaves the same way. The fields remain on the object and in the edit form'sexecutiongroup. That last point comes from the metadata; I did not open the edit form in the browser.Existing databases. An existing database keeps an orphaned
clm_signature.notescolumn. PR Remove clm_party.screened_at and clm_contract_type.template_placeholders; note the e-sign fields' scheduled consumer (#38 groups 3 and 1) #116 measured what happens with an orphaned column on 18.1: boot prints[schema-drift] … column exists in the database but not in metadata (orphaned), the column stays untilos migrate apply --allow-destructive, and writes naming the field get400 INVALID_FIELD(measured here as well). I did not re-run the existing-database boot for this field. Demo databases are rebuilt clean.🤖 Generated with Claude Code
https://claude.ai/code/session_017nzWFRUo2U7evMkPdVniAn