Skip to content

[plan] Fix compiler to add explicit outputs: block to pre_activation job in generated lock files #17493

Description

@github-actions

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

  1. Locate the pre_activation job generation code in pkg/workflow/ (search for pre_activation in Go compiler files)
  2. Add the outputs: block declaration mapping activated and matched_command to the step that produces them
  3. Run make recompile to regenerate all .lock.yml files
  4. Run actionlint against the regenerated files to verify the 208 errors are gone
  5. Run make agent-finish before committing

Acceptance Criteria

  • Compiler generates outputs: block on pre_activation job
  • make recompile succeeds without errors
  • Actionlint reports 0 pre_activation undefined property errors on regenerated files
  • All existing tests pass (make test-unit)

Generated by Plan Command for issue #discussion #17412

  • expires on Feb 23, 2026, 12:57 PM UTC

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions