@@ -169,6 +169,15 @@ hidden commandBanner = (workflowName: String) -> packageOnlyBlock.apply("\(workf
169169hidden inlinePhaseBody = (phaseBody : WorkflowBody ) ->
170170 compositeOnlyBlock.apply(phaseBody.render.apply("composite" ))
171171
172+ /// Non-SCE skills may help with work inside the active workflow step without
173+ /// becoming an alternate owner of the workflow's control flow.
174+ helperSkillCompositionRule = """
175+ Relevant non-SCE skills may be used as helper capabilities during the active step.
176+ They are not workflow handoffs: when a helper returns, control returns to the active
177+ step. Helper use must preserve the canonical phase order, gates, waits, writes,
178+ validation, stops, and terminal user-visible output.
179+ """
180+
172181/// Canonical composite workflow bodies and package-local references for the
173182/// four phase-based workflows. Target renderers add only supported entrypoint
174183/// frontmatter; all operational and persisted-document content remains
@@ -180,9 +189,9 @@ nextTaskSkillBody = """
180189
181190Own this workflow from input parsing through its terminal user-visible response.
182191Execute the phases below directly and in order. Phase statuses are internal state,
183- not inter-skill handoffs. Do not invoke another SCE skill, sibling package, or
184- workflow command except `sce-decision`, and invoke `sce-decision` only from the
185- successful context-synchronization decision gate. Follow the canonical workflow's steps, gates,
192+ not inter-SCE workflow handoffs. Do not invoke another SCE skill, sibling SCE
193+ package, or SCE workflow command except `sce-decision`, and invoke `sce-decision`
194+ only from the successful context-synchronization decision gate. Follow the canonical workflow's steps, gates,
186195and stops exactly as written: never invent, skip, reorder, or merge a step.
187196
188197## Phase references
@@ -219,6 +228,8 @@ Approval, clarification, revision, failed-validation repair, and bootstrap waits
219228resume this same skill in the same session. Never expose an internal phase result
220229as the workflow's final response.
221230
231+ \(helperSkillCompositionRule)
232+
222233## Input
223234
224235Parse `$ARGUMENTS` into three positional parts before invoking any phase:
@@ -342,9 +353,9 @@ validateSkillBody = """
342353
343354Own this workflow from input parsing through its terminal user-visible response.
344355Execute the phases below directly and in order. Phase statuses are internal state,
345- not inter-skill handoffs. Do not invoke another SCE skill, sibling package, or
346- workflow command except `sce-decision`, and invoke `sce-decision` only from the
347- successful context-synchronization decision gate. Follow the canonical workflow's steps, gates,
356+ not inter-SCE workflow handoffs. Do not invoke another SCE skill, sibling SCE
357+ package, or SCE workflow command except `sce-decision`, and invoke `sce-decision`
358+ only from the successful context-synchronization decision gate. Follow the canonical workflow's steps, gates,
348359and stops exactly as written: never invent, skip, reorder, or merge a step.
349360
350361## Phase references
@@ -381,6 +392,8 @@ Approval, clarification, revision, failed-validation repair, and bootstrap waits
381392resume this same skill in the same session. Never expose an internal phase result
382393as the workflow's final response.
383394
395+ \(helperSkillCompositionRule)
396+
384397## Input
385398
386399`$ARGUMENTS` is the plan name or plan path.
0 commit comments