Skip to content

Comments

Fix invalid needs.pre_activation.outputs.* references in activation job for workflows without pre_activation#17499

Merged
pelikhan merged 2 commits intomainfrom
copilot/fix-pre-activation-outputs
Feb 21, 2026
Merged

Fix invalid needs.pre_activation.outputs.* references in activation job for workflows without pre_activation#17499
pelikhan merged 2 commits intomainfrom
copilot/fix-pre-activation-outputs

Conversation

Copy link
Contributor

Copilot AI commented Feb 21, 2026

The activation job's substitution step unconditionally referenced needs.pre_activation.outputs.activated and needs.pre_activation.outputs.matched_command, even for workflows with no pre_activation job (e.g., schedule/workflow_dispatch-only workflows). This caused 208 actionlint expression type errors across 104 compiled lock files.

Changes

  • known_needs_expressions.go: generateKnownNeedsExpressions() now accepts preActivationJobCreated bool; skips activated mapping entirely when false, and only emits matched_command when the workflow has a command trigger (len(data.Command) > 0)

  • compiler_yaml.go / compiler_activation_jobs.go: Threads preActivationJobCreated through buildActivationJobgeneratePromptInActivationJobgeneratePromptgenerateKnownNeedsExpressions

  • Lock files: All 157 workflows recompiled — needs.pre_activation.outputs.* env vars removed from 104 activation jobs that had no pre_activation dependency

Before (non-command workflow, no pre_activation job — invalid):

- name: Substitute placeholders
  env:
    GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_ACTIVATED: ${{ needs.pre_activation.outputs.activated }}
    GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_MATCHED_COMMAND: ${{ needs.pre_activation.outputs.matched_command }}

After (correct — neither env var emitted when no pre_activation job exists):

- name: Substitute placeholders
  env:
    GH_AW_GITHUB_ACTOR: ${{ github.actor }}
    # ... only valid context variables

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw bash -e 54,SC2157,SC2043/tmp/go-build984851219/b238/vet.cfg --no�� -f nd.go onfig_shared_test.go gs_test.go ox_mounts_test.g--norc outputs_custom_j--noprofile rk_merge_import_test.go (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw bash -e 54,SC2157,SC2043-buildtags --no�� -f nd.go onfig_shared_tes-nilfunc gs_test.go ox_mounts_test.g--norc outputs_custom_j--noprofile rk_merge_import_-tests (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw bash -e 54,SC2157,SC2043/tmp/go-build984851219/b224/vet.cfg --no�� -f nd.go onfig_shared_test.go gs_test.go ox_mounts_test.g--norc outputs_custom_j--noprofile rk_merge_import_test.go (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha SameOutput4277962243/001/stability-test.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git -f json /home/REDACTED/wor--show-toplevel git rev-�� --show-toplevel sh /usr/bin/bash "prettier" --wrigit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-current git 0/x64/bin/node --show-toplevel sh DiscussionsEnabl--show-toplevel git rev-�� --show-toplevel wc 0/x64/bin/node eck sh (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha g_.a json k/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/sh nore ole -e 2050,SC2153,SC2154,SC2157,SC2043 --no�� VAyE7WnBC json e_modules/.bin/node --shell bash -e ortcfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel eck /usr/bin/git *.json' '!../../git json 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -f json ache/node/24.13.--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel nly /usr/bin/git git rev-�� 65ad3b40771befe723bc5a8d..HEAD git /usr/bin/git --show-toplevel 2050,SC2153,SC21rev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha brave.md 1629960/b125/vet.cfg ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet ./../.prettieriggit bash -e ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -c npx prettier --write '**/*.cjs' '**/*.ts' '**/*.json' --ignore-path ../../../.pr--ignore-path (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha -f json 0/x64/bin/node ./../.prettieriggit bash -e npx hash�� SameOutput4277962243/001/stability-test.md **/*.cjs 1629960/b355/vet.cfg **/*.json --ignore-path ../../../.pretti--show-toplevel sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha user.email test@example.com /usr/bin/git -f json eck git init�� -e (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 1809022771/.github/workflows json eck --shell bash -e eck 0/x6�� -f json 64/pkg/tool/linux_amd64/vet --shell bash -e 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha ithub/workflows/bot-detection.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043-buildtags --no�� -f json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043-buildtags --no�� -f json eck --shell bash -e 54,SC2157,SC2043-tests (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -f json eck --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -c=4 -nolocalimports -importcfg /tmp/go-build3851629960/b391/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/envutil/envutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/envutil/envutil_test.go --no�� re json eck --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -c=4 -nolocalimports -importcfg /tmp/go-build3851629960/b394/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil_test.go --no�� re json eck --shell bash -e (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha brave.md json /home/REDACTED/.dotnet/tools/sh ./../.prettieriggit bash -e sh -c runs/20260221-132053-49081/test-3635367590/.github/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel erignore /usr/bin/git rite '../../../*git json 0/x64/bin/node git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/find vaScript28804300git 1629960/b359/vetrev-parse /home/REDACTED/wor--show-toplevel find (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git conf�� user.email test@example.com 0/x64/bin/node --show-toplevel sh /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e 54,SC2157,SC2043-s -w -X main.version=24f0eb9-dirty --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e 54,SC2157,SC2043log --no�� activation.outpu-n1 g/workflow/actio--format=format:%H %ct %D x_amd64/vet g/workflow/actio/usr/bin/gh g/workflow/actioapi g/workflow/actiographql x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043/tmp/go-build984851219/b178/vet.cfg --no�� -f json eck --shell bash -e 54,SC2157,SC2043-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043/tmp/go-build984851219/b303/vet.cfg --no�� -f json eck --shell bash -e 54,SC2157,SC2043-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043/tmp/go-build984851219/b302/vet.cfg --no�� -f json 0/x64/bin/bash --shell bash -e 54,SC2157,SC2043 (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -f json Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle ./../.prettieriggit bash -e sh -c runs/20260221-132053-49081/test-3635367590/.github/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel erignore /usr/bin/infocmp rite '../../../*git json ache/go/1.25.0/x--show-toplevel infocmp -1 xterm-color ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/bash -f json Name,createdAt,s--show-toplevel bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.0/xrev-parse /usr/bin/git git desc�� --exact-match --tags 0/x64/bin/node --show-toplevel sh /usr/lib/git-cor--show-toplevel git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043/tmp/go-build984851219/b200/vet.cfg --no�� -f json eck --shell bash -e 54,SC2157,SC2043-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043-buildtags --no�� -f json eck --shell bash -e 54,SC2157,SC2043-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha -f json r: $owner, name:-f --shell bash -e x_amd64/vet --no�� ts json 64/pkg/tool/linux_amd64/vet --shell bash -e 64/pkg/tool/linumcp/arxiv-mcp-server (http block)
  • https://api.github.com/repos/anchore/sbom-action/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/docker/build-push-action/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha -f json $name) { hasDiscussionsEnabled } } --shell bash -e (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/docker/metadata-action/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha ./cmd/gh-aw json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha -f json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha ./cmd/gh-aw json eck --shell bash -e (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 json x_amd64/link --shell bash -e x_amd64/link --no�� -f json bin/node --shell bash -e -j/NEbzTRrGx3Hf7l9Ai1Xn/DcrjArqgCZ0F2zfYcPZo (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 git /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git conf�� user.name Test User 0/x64/bin/node --show-toplevel git ache/node/24.13.0/x64/bin/node git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 json eck --shell bash -e 54,SC2157,SC2043test@example.com --no�� matter-with-arrays.md json ules/.bin/node --shell bash -e 54,SC2157,SC2043Test User (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 git /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git rev-�� --show-toplevel git 0/x64/bin/node --show-toplevel git ache/node/24.13.--git-dir git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 json eck --shell bash -e 54,SC2157,SC2043 --no�� -f json bin/node --shell bash -e 54,SC2157,SC2043test@example.com (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 git /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git rev-�� hub/workflows git 0/x64/bin/node --show-toplevel git ache/node/24.13.--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 json x_amd64/vet --shell bash -e x_amd64/vet --no�� -f json eck --shell bash -e 54,SC2157,SC2043 (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 --jq /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git add initial.txt git 0/x64/bin/node --show-toplevel git ndor/bin/bash git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 json eck --shell bash -e 54,SC2157,SC2043 --no�� -f json eck --shell bash -e 54,SC2157,SC2043 (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 git /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git comm�� -m Initial commit 0/x64/bin/node --show-toplevel git ache/node/24.13.--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 json eck --shell bash -e 54,SC2157,SC2043 --no�� hub/workflows json ules/.bin/node --shell bash -e 54,SC2157,SC2043 (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 git /usr/lib/git-cor-nilfunc --show-toplevel git ndor/bin/bash /usr/lib/git-cor-tests main�� run --auto 0/x64/bin/node --detach git ache/node/24.13.--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 json eck --shell bash -e 54,SC2157,SC2043Test User --no�� -f json ode --shell bash -e 54,SC2157,SC2043 (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 git /usr/bin/git --show-toplevel git ache/node/24.13.--show-toplevel git rev-�� HEAD git x_amd64/vet --show-toplevel git ache/node/24.13.vars.MY_VAR x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -f json eck --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 bash -e (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 bash -e 54,SC2157,SC2043 estl�� -f json 64/bin/sh --shell bash -e 54,SC2157,SC2043 (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/a70c5eada06553e3510ac27f2c3bda9d3705bccb
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/a70c5eada06553e3510ac27f2c3bda9d3705bccb --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043-test.timeout=10m0s --no�� TOKEN"; }; f get-test.run=TestGeneratePrompt|TestMissingTool TOKEN"; }; f get x_amd64/vet --shell bash -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/a70c5eada06553e3510ac27f2c3bda9d3705bccb --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha -f json eck --shell bash -e 54,SC2157,SC2043test@example.com --no�� */*.ts' '**/*.json' --ignore-patgo1.25.0 json de_modules/.bin/node --shell bash -e eck (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/blog-auditor.md 54,SC2157,SC2043-trimpath /usr/bin/git -f json x_amd64/compile git rev-�� --show-toplevel x_amd64/compile /usr/bin/git -f json h git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel x_amd64/compile /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel 54,SC2157,SC2043js/fuzz_sanitize_label_harness.cjs /usr/bin/git git (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha -f json x_amd64/compile --shell bash -e x_amd64/compile --no�� -f json x_amd64/vet --shell s $k => $v) echo-C -e x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha -f json eck --shell bash -e (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha -f json 0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh --shell bash -e 54,SC2157,SC2043 --no�� ty-test.md json bin/node --shell bash -e eck (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/bot-detection.md A4npJ9bo6g4b /usr/bin/git ../pkg/workflow/git json x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git -f json eck git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel 54,SC2157,SC2043js/fuzz_mentions_harness.cjs /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel 54,SC2157,SC2043js/fuzz_sanitize_label_harness.cjs /usr/bin/git git (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion --shell bash -e x_amd64/vet --no�� '**/*.ts' '**/*.json' --ignore-path ../../../.pr**/*.json json de_modules/.bin/node --shell bash -e eck (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion --show-toplevel git ache/node/24.13.--git-dir head -500�� /tmp/gh-aw/aw-master.patch git 0/x64/bin/node --show-toplevel git ache/node/24.13.--git-dir git (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo eck --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /usr/bin/git TH" git /usr/bin/git git rev-�� --show-toplevel git ch --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build3851629960/b380/cli.test /tmp/go-build3851629960/b380/cli.test -test.testlogfile=/tmp/go-build3851629960/b380/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true --shell bash -e (http block)
    • Triggering command: /tmp/go-build3628497891/b001/cli.test /tmp/go-build3628497891/b001/cli.test -test.testlogfile=/tmp/go-build3628497891/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s rev-�� --show-toplevel git /usr/bin/git --show-toplevel infocmp e/git git rev-�� --show-toplevel e/git /usr/bin/git --show-toplevel bash /usr/bin/git git (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -f json eck --shell bash -e (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/bash git (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>[plan] Fix compiler to add explicit outputs: block to pre_activation job in generated lock files</issue_title>
<issue_description>## 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

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

…ctivation job exists

- Update generateKnownNeedsExpressions to accept preActivationJobCreated bool
- Only generate activated output mapping when pre_activation job exists
- Only generate matched_command output mapping when pre_activation job exists AND workflow has a command trigger
- Update generatePrompt and generatePromptInActivationJob signatures to pass the flag
- Update test files and golden files to reflect new behavior
- Recompile all 157 lock files, removing invalid needs.pre_activation.outputs.* references
- Fixes 208 actionlint expression type errors across 104 compiled workflow files"

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix compiler to add outputs block to pre_activation job Fix invalid needs.pre_activation.outputs.* references in activation job for workflows without pre_activation Feb 21, 2026
@pelikhan pelikhan marked this pull request as ready for review February 21, 2026 16:22
Copilot AI review requested due to automatic review settings February 21, 2026 16:22
@pelikhan pelikhan merged commit cb85814 into main Feb 21, 2026
118 checks passed
@pelikhan pelikhan deleted the copilot/fix-pre-activation-outputs branch February 21, 2026 16:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes actionlint expression errors in compiled workflows by ensuring the activation job only emits needs.pre_activation.outputs.* substitutions when a pre_activation job (and relevant outputs) actually exist.

Changes:

  • Gate generation of known needs.* substitution env vars on whether pre_activation was created, and only emit matched_command for command-trigger workflows.
  • Thread preActivationJobCreated through activation-job prompt generation so substitution mapping matches the workflow’s actual job graph.
  • Recompile workflow lock files and update golden fixtures/tests to reflect the new, conditional substitutions.

Reviewed changes

Copilot reviewed 151 out of 151 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pkg/workflow/known_needs_expressions.go Conditionally generates needs.pre_activation.outputs.* mappings based on preActivationJobCreated and data.Command.
pkg/workflow/compiler_yaml.go Extends generatePrompt signature and passes preActivationJobCreated into known-needs mapping generation.
pkg/workflow/compiler_activation_jobs.go Threads preActivationJobCreated into activation-job prompt generation.
pkg/workflow/known_needs_expressions_test.go Updates coverage to validate conditional inclusion/exclusion of activated and matched_command mappings.
pkg/workflow/missing_tool_test.go Updates generatePrompt call sites for the new signature.
pkg/workflow/xml_comments_test.go Updates generatePrompt call site for the new signature.
pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden Removes matched_command substitution in golden output where not applicable.
pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden Removes matched_command substitution in golden output where not applicable.
pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden Removes matched_command substitution in golden output where not applicable.
.github/workflows/workflow-skill-extractor.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/workflow-normalizer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/workflow-health-manager.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/workflow-generator.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/weekly-safe-outputs-spec-review.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/weekly-issue-summary.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/video-analyzer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/ubuntu-image-analyzer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/typist.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/test-workflow.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/test-project-url-default.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/test-dispatcher.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/test-create-pr-error-handling.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/terminal-stylist.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/technical-doc-writer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/super-linter.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/sub-issue-closer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/step-name-alignment.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/static-analysis-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/stale-repo-identifier.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/smoke-test-tools.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-temporary-id.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-project.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-multi-pr.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-gemini.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-copilot.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-copilot-arm.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-codex.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-claude.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/smoke-agent.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/slide-deck-maintainer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/sergo.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/semantic-function-refactor.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/security-compliance.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/schema-consistency-checker.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/safe-output-health.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/research.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/repository-quality-improver.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/repo-tree-map.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/repo-audit-analyzer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/release.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/refiner.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/python-data-charts.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/prompt-clustering-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/pr-triage-agent.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/portfolio-analyst.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/org-health-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/notion-issue-summary.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/metrics-collector.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/mcp-inspector.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/lockfile-stats.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/layout-spec-maintainer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/jsweep.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/issue-triage-agent.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/issue-monster.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/issue-arborist.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/instructions-janitor.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/hourly-ci-cleaner.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/gpclean.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/go-pattern-detector.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/go-logger.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/go-fan.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/glossary-maintainer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/github-remote-mcp-auth-test.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/github-mcp-tools-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/github-mcp-structural-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/functional-pragmatist.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/firewall.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/firewall-escape.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/example-workflow-analyzer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/example-permissions-warning.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/example-custom-error-patterns.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/duplicate-code-detector.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/draft-pr-cleanup.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/docs-noob-tester.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/discussion-task-miner.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/dictation-prompt.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/developer-docs-consolidator.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/dev.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/dev-hawk.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/dependabot-go-checker.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/dependabot-burner.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/delight.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/deep-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-workflow-updater.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-testify-uber-super-expert.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-team-status.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-team-evolution-insights.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-syntax-error-quality.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-semgrep-scan.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-security-red-team.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-secrets-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-safe-outputs-conformance.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-safe-output-optimizer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-repo-chronicle.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-rendering-scripts-verifier.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-regulatory.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-performance-summary.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-observability-report.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-news.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-multi-device-docs-tester.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-mcp-concurrency-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-malicious-code-scan.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-issues-report.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-firewall-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-file-diet.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/daily-fact.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-doc-updater.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-copilot-token-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-compiler-quality.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-code-metrics.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-cli-tools-tester.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-cli-performance.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-choice-test.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/daily-assign-issue-to-user.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-session-insights.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-pr-prompt-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-pr-nlp-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-pr-merged-report.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-cli-deep-research.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/copilot-agent-analysis.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/contribution-check.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/commit-changes-analyzer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/codex-github-remote-mcp-test.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/code-simplifier.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/code-scanning-fixer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/cli-version-checker.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/cli-consistency-checker.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/claude-code-user-docs-review.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/ci-doctor.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/ci-coach.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/chroma-issue-indexer.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/changeset.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/breaking-change-checker.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/bot-detection.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/blog-auditor.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/auto-triage-issues.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/audit-workflows.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/artifacts-summary.lock.yml Recompiled lockfile removing invalid needs.pre_activation.outputs.* substitutions when pre_activation is absent.
.github/workflows/ai-moderator.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/agent-persona-explorer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.
.github/workflows/agent-performance-analyzer.lock.yml Recompiled lockfile removing matched_command substitution when no command trigger.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 17 to 21
// IMPORTANT: The prompt is generated in the ACTIVATION job, so it can only access outputs
// from jobs that the activation job depends on (i.e., jobs that run BEFORE activation).
// This typically includes:
// - needs.pre_activation.outputs.* (activated, matched_command)
// - needs.pre_activation.outputs.* (activated, matched_command) - only when pre_activation job exists
// - needs.<custom-job>.outputs.* for custom jobs that run before activation
Copy link

Copilot AI Feb 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The header comment says needs.pre_activation.outputs.* (activated, matched_command) are included when the pre_activation job exists, but matched_command is now only generated for command workflows. Please update the comment to reflect that matched_command is conditional on the command trigger (and/or remove it from the example list) so the doc stays accurate.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants