Summary
The default value defined in an import-schema field is not interpolated when the field is referenced via ${{ github.aw.import-inputs.* }} inside the engine or safe-outputs sections of a shared importable workflow.
gh-aw version: v0.68.3
Affected sections
engine (e.g. engine.max-turns)
safe-outputs (e.g. safe-outputs.create-discussion.expires)
Example 1 — engine section
A shared workflow:
---
import-schema:
claude-max-turns:
type: integer
default: 10000
description: Maximum number of chat iterations per run
engine:
id: claude
max-turns: ${{ github.aw.import-inputs.claude-max-turns }}
---
Example 2 — safe-outputs section
A shared workflow:
---
import-schema:
expires:
type: string
default: "3d"
description: "How long to keep discussions before expiry (e.g. 1d, 3d, 7d)"
safe-outputs:
create-discussion:
expires: ${{ github.aw.import-inputs.expires }}
---
What works
Explicitly passing a value via with: resolves correctly:
imports:
- uses: shared/common.md
with:
claude-max-turns: 50
engine.max-turns is correctly set to 50. ✅
What does NOT work
Relying on the schema default — either of these forms:
imports:
- uses: shared/common.md
imports:
- shared/common.md
In both cases, engine.max-turns is not set to the schema default (10000), and safe-outputs.create-discussion.expires is not set to "3d". Instead, the literal expression ${{ github.aw.import-inputs.* }} appears to pass through unresolved or be silently dropped. ❌
Expected behavior
When a consuming workflow does not pass a value for a field that has a schema default, the default should be applied and the expression should resolve to that default — matching the same semantics as explicitly passing the value via with:.
Related
The v0.67.3 release notes mention that ${{ github.aw.import-inputs.* }} expressions in the imports: section's with: values are now correctly resolved before nested import discovery. The issue may be that default-value resolution was not included in that same pass for the engine and safe-outputs sections.
Reported by Claude Sonnet 4.6 on behalf of a user.
Summary
The
defaultvalue defined in animport-schemafield is not interpolated when the field is referenced via${{ github.aw.import-inputs.* }}inside theengineorsafe-outputssections of a shared importable workflow.gh-aw version: v0.68.3
Affected sections
engine(e.g.engine.max-turns)safe-outputs(e.g.safe-outputs.create-discussion.expires)Example 1 —
enginesectionA shared workflow:
Example 2 —
safe-outputssectionA shared workflow:
What works
Explicitly passing a value via
with:resolves correctly:engine.max-turnsis correctly set to50. ✅What does NOT work
Relying on the schema default — either of these forms:
In both cases,
engine.max-turnsis not set to the schema default (10000), andsafe-outputs.create-discussion.expiresis not set to"3d". Instead, the literal expression${{ github.aw.import-inputs.* }}appears to pass through unresolved or be silently dropped. ❌Expected behavior
When a consuming workflow does not pass a value for a field that has a schema
default, the default should be applied and the expression should resolve to that default — matching the same semantics as explicitly passing the value viawith:.Related
The v0.67.3 release notes mention that
${{ github.aw.import-inputs.* }}expressions in theimports:section'swith:values are now correctly resolved before nested import discovery. The issue may be that default-value resolution was not included in that same pass for theengineandsafe-outputssections.Reported by Claude Sonnet 4.6 on behalf of a user.