You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document that version_constraint decides an action's output path shape (#34)
* Document that version_constraint decides an action's output path shape
Adding a version_constraint to an existing workflow without shortening its ${data['...']} references produces YAML that imports cleanly and then fails at release. Nothing in the skill documentation said so, and the two forms are mutually exclusive rather than aliases: unpinned, a reference carries the action's namespace as in ${data['DeviceQuery.Device.query.devices']}, while pinned at ~1 the same field is ${data['DeviceQuery.devices']}.
The schema and best-practices references now describe the pin and the path rewrite as a single two-part edit, and the authoring skill gains a counter-rationalization row for the half-applied case. Verified against a live tenant for Device Query, Get device details, and Event Query: with ~1 the short form resolves and the long form is rejected at release with `property "..." contains unknown variable`; without the pin, the long form resolves.
Two smaller corrections came out of the same check. Only class-based actions strictly require a version_constraint at import, since a non-class action such as Device Query imports and releases without one, so that claim is now scoped accordingly. And the workflows copies of both references had drifted from the authoring copies, still saying to always use ~1 and claiming every CrowdStrike action sits at major version 1, which is wrong for the 0.x actions such as Charlotte AI. Both are now in line.
* Leave authoring SKILL.md at its token budget
The counter-rationalization row added in the previous commit pushed authoring/SKILL.md from 5491 to 5570 tokens, over its 5500 budget, and CI's size check failed. The file had 35 characters of headroom, so the row cannot fit without evicting unrelated guidance, and merging it into the adjacent version_constraint row still lands 10 tokens over.
Reverting that hunk. The guidance lives in the schema and best-practices references, which is where the detail belongs anyway. Deciding what to evict from SKILL.md to make room is a separate change.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/), and this
19
19
### Fixed
20
20
21
21
- Three authoring-doc corrections from a Fusion engineer's tech review. `version_constraint` is no longer framed as class-specific — nearly every action carries one whether or not it declares a `class`, so include it on every action node. The event-trigger and system-level variables (`Trigger.CID`, `Workflow.Execution.ID`, `Workflow.Definition.Name`, etc.) are now shown in the `${data['...']}` form and are documented as living in the `data` namespace like any other field rather than as an exception. And the action `name:` field is described as a relabelable display label — renaming it does not break references, which resolve by node key and action `id`.
22
+
-**`version_constraint` decides the shape of an action's output paths, and that was undocumented.** Unpinned, a reference carries the action's namespace (`${data['DeviceQuery.Device.query.devices']}`); pinned at `~1` the same field is `${data['DeviceQuery.devices']}`. The two forms are mutually exclusive, so adding a `version_constraint` to an existing workflow without shortening its `${data['...']}` references produces YAML that imports cleanly and then fails at release with `property "..." contains unknown variable`. The schema and best-practices references now document this as a single two-part edit. Verified against a live tenant for Device Query, Get device details, and Event Query. The `workflows` copies of both references were also brought in line with the `authoring` copies, which had drifted: they still said to "always use `~1`" and claimed all CrowdStrike actions sit at major version 1, which is wrong for the 0.x actions such as Charlotte AI.
23
+
- Clarified that only class-based actions strictly *require* a `version_constraint` at import. A non-class action such as Device Query imports and releases without one; it just keeps the older, longer output paths.
0 commit comments