Context
From discussion #17412 — Static Analysis Report 2026-02-21.
Problem
Actionlint reports 208 expression type errors across 104 compiled workflow files because the compiler-generated pre_activation job does not include an explicit outputs: block. Actionlint cannot verify that outputs.activated and outputs.matched_command exist, producing errors like:
property "pre_activation" is not defined in object type {}
property "matched_command" is not defined in object type {activated: string}
Required Fix
In the workflow compiler (pkg/workflow/), find where the pre_activation job is generated and add an explicit outputs: block that maps each output to its producing step.
Before (missing outputs declaration):
jobs:
pre_activation:
runs-on: ubuntu-latest
steps:
- id: check
run: |
echo "activated=true" >> $GITHUB_OUTPUT
echo "matched_command=..." >> $GITHUB_OUTPUT
After (with explicit outputs):
jobs:
pre_activation:
runs-on: ubuntu-latest
outputs:
activated: ${{ steps.check.outputs.activated }}
matched_command: ${{ steps.check.outputs.matched_command }}
steps:
- id: check
run: |
echo "activated=true" >> $GITHUB_OUTPUT
echo "matched_command=..." >> $GITHUB_OUTPUT
Steps
- Locate the
pre_activation job generation code in pkg/workflow/ (search for pre_activation in Go compiler files)
- Add the
outputs: block declaration mapping activated and matched_command to the step that produces them
- Run
make recompile to regenerate all .lock.yml files
- Run actionlint against the regenerated files to verify the 208 errors are gone
- Run
make agent-finish before committing
Acceptance Criteria
Generated by Plan Command for issue #discussion #17412
Context
From discussion #17412 — Static Analysis Report 2026-02-21.
Problem
Actionlint reports 208 expression type errors across 104 compiled workflow files because the compiler-generated
pre_activationjob does not include an explicitoutputs:block. Actionlint cannot verify thatoutputs.activatedandoutputs.matched_commandexist, producing errors like:property "pre_activation" is not defined in object type {}property "matched_command" is not defined in object type {activated: string}Required Fix
In the workflow compiler (
pkg/workflow/), find where thepre_activationjob is generated and add an explicitoutputs:block that maps each output to its producing step.Before (missing outputs declaration):
After (with explicit outputs):
Steps
pre_activationjob generation code inpkg/workflow/(search forpre_activationin Go compiler files)outputs:block declaration mappingactivatedandmatched_commandto the step that produces themmake recompileto regenerate all.lock.ymlfilesmake agent-finishbefore committingAcceptance Criteria
outputs:block onpre_activationjobmake recompilesucceeds without errorspre_activationundefined property errors on regenerated filesmake test-unit)