Skip to content

[finding] skills/objectstack-ai/SKILL.md:405-406 calls a model-registry promptTemplate.system / .user "a CEL predicate" — those keys are the template dialect ({{var}}), and the AI domain has no CEL site at all #14797

Description

@os-litant

Recorded by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1) from the #14794 flight (PR #14795), which measured it while removing the same false claim from skills/README.md:105 ("AI tool params" as a CEL site) and could not take it — no SKILL.md edit was in that flight's scope. Unassigned, bare, for triage.

What

skills/objectstack-ai/SKILL.md:404-407 at origin/main 8f9ef6f7c8 (read 2026-09-03T02:11Z), under Verify your work:

It confirms the skill / tool / model metadata conforms to the protocol and that any CEL predicate parses and resolves — in this domain that is a model-registry promptTemplate.system / .user; ToolSchema carries no expression field of any kind.

The second clause is true (packages/spec/src/ai/tool.zod.ts matches cel|formula|expression zero times). The first is false: packages/spec/src/ai/model-registry.zod.ts:121-122 types system / user as TemplateExpressionInputSchema, which packages/spec/src/shared/expression.zod.ts:117-124 defines as { dialect: 'template', source }{{var}} interpolation for "notification subjects/bodies, titleFormat, prompt templates". Not CEL, not a predicate. predicate occurs 0 times in model-registry.zod.ts.

So the sentence tells an author that os validate CEL-checks a prompt template. It does not; a {{var}} template is validated as a template. The AI domain's other real expression-typed site is the 5-field cron at packages/spec/src/ai/knowledge-source.zod.ts:28 — also not CEL — which the sentence omits.

Why it matters

Published, customer-loaded surface; same truth class the programme has been clearing (a declared mechanism described as something it is not). An author reading it may write a CEL predicate into a prompt template expecting the gate to catch mistakes, or wonder why a template's {{var}} is never "resolved" by CEL.

Likely resolution, not a decision

One clause in place: what os validate checks in this domain is the metadata shape plus the template dialect of promptTemplate.system / .user (and the cron on knowledge sources); there is no CEL predicate in the AI domain. Shrink-or-neutral inside skills/objectstack-ai/SKILL.md (ceiling row 5,476 after the #14305 flight; re-measure at claim). Governed skills/** ⇒ draft, human merge.

Verified

Refs: #14794 · PR #14795 · #14305 (the ai flight) · #14462.

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions