From b013523a4e0071e5fbda63c4172bc3245422ecb5 Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Sun, 1 Nov 2026 23:11:59 +0100 Subject: [PATCH 1/2] fix(params): restore the projection to the canonical cue@v0.16.1 output The previous change regenerated this file with `charly candy params`, which is NOT the instrument this repo is graded on. The org's reusable candy-validate gate and this repo family's CI run plain `cue exp gengotypes` at cue@v0.16.1; the charly wrapper applies a yaml retag and reflows doc comments, so its output differs from the canonical one on the SAME schema. Measured with the canonical instrument against main after that change: cue@v0.16.1 gengotypes vs the committed file -> 4 diff lines (FAIL) Restoring the file to exactly what cue@v0.16.1 emits, so the committed projection matches the gate that grades it. Nothing else changes. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (analysed on a live system) --- candy/plugin-feature/params/cue_types_gen.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/candy/plugin-feature/params/cue_types_gen.go b/candy/plugin-feature/params/cue_types_gen.go index 47658c6..634d79e 100644 --- a/candy/plugin-feature/params/cue_types_gen.go +++ b/candy/plugin-feature/params/cue_types_gen.go @@ -19,9 +19,9 @@ package params // it compiles STANDALONE (the property that lets the SDK compile it serve-side). type FeaturePlugin struct { // The capability word the plugin serves. - Command string `yaml:"command,omitempty" json:"command"` + Command string `json:"command"` // What the command does, in one line (the public-docs surface): inspect a // project's plan-shaped entity descriptions (list / pending / validate). - Contract string `yaml:"contract,omitempty" json:"contract"` + Contract string `json:"contract"` } From 661d82f32fef22e515125c0a7ca05795ab0fe58e Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Sun, 1 Nov 2026 23:17:08 +0100 Subject: [PATCH 2/2] chore(pr): re-freeze so the validator reads the corrected body Body-only round: the decode-path proof (JSON never YAML), the filed issue, and the untrimmed module gate are now in the PR body. A REST re-run replays the original event payload and re-reads the stale body, so a new head is the way to make the gate read what GitHub serves. Empty by design. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (documentation reviewed)