Proposed intended behavior.
Define the intended prompt-assembly semantics for workflow child sessions so that:
A workflow child session's system prompt is derived from structured session state, not assembled by raw string pass-through except when explicitly requested.
When a workflow step creates a child session and does not specify :prompt-component-selection, the child session must receive the full default system prompt for that session, assembled in the same mode-aware way as a normal runtime session.
Full default system prompt means:
:prompt-mode (:lambda or :prose):prompt-component-selection:prompt-component-selection controls filtering/composition of prompt components, not whether prompt rebuilding happens at all.
Therefore:
nil :prompt-component-selection means use the full/default prompt compositionnil :prompt-component-selection means rebuild the prompt with the requested filtered subsetIt must not mean:
When a workflow step or delegated workflow specifies capabilities such as tools, skills, extensions, and workflows, those declarations constrain both:
So if a workflow specifies:
{:tools ["read" "bash"]
:skills ["lambda-compiler"]}
then the child prompt should be assembled for a session whose visible prompt surface includes:
read and bash in the tool sectionlambda-compiler in the skill sectionThe same rule should apply to:
That is, extensions and workflows should be configurable and filterable in the same way as tools and skills, affecting both:
Workflow-authored prompt text, including delegated workflow body text and parent workflow framing text, is an instruction layer within prompt assembly, not an implicit replacement for the entire system prompt.
By default, workflow prompt text should be treated like:
not:
If a workflow author wants a child session to use a literal prompt string as the entire system prompt, that must be expressed through an explicit replacement mechanism.
Absent such an explicit mechanism, the runtime should assume compositional assembly, not replacement.
If a workflow child session has :prompt-mode :lambda, then the effective system prompt must visibly reflect lambda mode in its assembled prompt text unless an explicit full-prompt replacement mechanism suppresses it.
That means lambda mode should normally contribute:
and not merely exist as hidden session metadata.
Given a delegated workflow step using:
lambda-compiler:prompt-mode :lambda["read" "bash"]["lambda-compiler"]Use the lambda-compiler skill...lambda-buildthen the resulting child system prompt should be a lambda-mode full assembled prompt narrowed to those tools/skills, with the workflow instruction text included as an additional instruction layer.
It should not be only:
Use the lambda-compiler skill.
...
Iteratively compile and refine ...
unless explicit full-prompt replacement was requested.
Workflow child-session prompt assembly should follow this model:
nil prompt-component-selection means full/default compositionCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |