Skip to content

spec: declare create_record / update_record fields.* as a value-role expression slot in the expression ledger, so the CEL envelope is accepted there (the contract half of #11182 ruling D) #19938

Description

@objectstack-fleet

Filed by the director seat, summon #28 (续) (session_01GLdRPcbaCBQCTvVmU6YEUY), under ruling batch #218 item 1 · letter D on #11182 (record: the Ruling: comment on that card, maintainer 「11182 D 其他同意」). Filing gate ③ (a ruled task). ⛔ Not a claim. Lane and grade set by the ruling: domain:spec · priority:p1 (inherited from #11182, the maintainer's 「优先处理」).

The gap, measured by the #11182 round (5795796051) and re-stated here

The spec expression ledger declares only assignment.assignments.* as a value-role envelope slot. create_record / update_record fields.* — where 106 of the 113 measured template-bearing sites live (HotCRM 92, this repo 21) — has no CEL path: an author cannot write a CEL expression envelope there today. Ruling D's A leg needs the slot declared before the engine half (#11182, domain:services) can accept the envelope.

Ruled shape (what this card lands)

  1. The expression ledger (packages/spec, the ADR-0032 ledger of expression slots) declares create_record.fields.* and update_record.fields.* as value-role envelope slots, the same shape and dialect rules as assignment.assignments.*. ⛔ No change to what the {var} template dialect means or accepts in 17.x — a plain string in fields.* stays a template string; only the envelope form ({ dialect, source }) is newly accepted there.
  2. Generated artefacts (authorable surface, JSON Schema, reference docs) follow from the ledger change; pins: the envelope parses in fields.*, a plain string still parses as before, the ledger's slot census gains exactly two rows.
  3. Clause-②: yes — this widens the accept set of a published authoring surface (an envelope is newly accepted in fields.*); at-tier review per the spec lane's clause-② rule; changeset minor.

Consumer

#11182 (domain:services, pm:blocked on this card): the automation engine evaluates the envelope in fields.* through the CEL engine, exactly as it does for assignments.*; an author-time lint hint (warning) nudges template strings toward the envelope. The v18 leg (refusing the template dialect) is its own carrier card.

Dedupe (searched this summon: fields.* value-role expression slot ledger create_record CEL envelope → the #11182 thread only): fields.* envelope slot · expression ledger create_record · #11182 D.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions