Skip to content

Language-independent policy is transcribed once per language #935

Description

@jeremy

Six idiomatic SDKs is the product, and six hand-written generators follow from it. That is not the problem. The problem is that language-independent policy is transcribed once per language, so a rule with one meaning has six implementations that can and do diverge.

Four instances surfaced in a single day:

The pattern is the same each time: the parity checks prove the six copies agree, but nothing prevents them from encoding the rule six ways in the first place, and a checker that compares copies cannot see a rule that every copy gets wrong identically.

The question worth deciding

For each policy below, should it keep N hand-written expressions with parity checks, or have one definition that the generators consume without re-deriving?

Policy Expressed in Current guard
Emittable verbs (resolved — enumeration removed in #931) —
Declaration validity 6 loaders #933 in progress
Tag → service 6 generators + SPEC.md 3 parity checkers
Service splits 6 generators 3 parity checkers
Operation identification 6 generators drift checks only

Not a proposal to collapse the generators. The generators should stay hand-written and idiomatic — that is why the SDKs are worth using. The question is only whether a rule that is the same in every language should be written in every language.

Why this is filed rather than fixed in passing

Each instance is individually small, which is how all four got written, and fixing them opportunistically inside whatever PR happens to surface one produces half-migrations. Worth deciding as a set, then sequencing.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions