Skip to content

Deprecate needs.activation.outputs.* in workflow markdown; update all docs to use steps.sanitized.outputs.*#21682

Merged
pelikhan merged 4 commits intomainfrom
copilot/fix-output-references-in-docs
Mar 19, 2026
Merged

Deprecate needs.activation.outputs.* in workflow markdown; update all docs to use steps.sanitized.outputs.*#21682
pelikhan merged 4 commits intomainfrom
copilot/fix-output-references-in-docs

Conversation

Copy link
Contributor

Copilot AI commented Mar 18, 2026

All docs recommended ${{ needs.activation.outputs.text }} but every real workflow uses ${{ steps.sanitized.outputs.text }} — because a job cannot reference its own needs.* outputs in GitHub Actions. The compiler silently rewrote the wrong form; now it warns and the docs teach the right form.

Compiler change

pkg/workflow/expression_extraction.go — emits a stderr deprecation warning when the old form is encountered during compilation. Backward-compat transformation is preserved.

⚠ Deprecated expression '${{ needs.activation.outputs.text }}': use '${{ steps.sanitized.outputs.text }}' instead.

Documentation

  • docs/reference/templating.md — replaced "Automatic Expression Transformations" with an "Activation Outputs" section showing the correct form, plus a :::caution[Deprecated] block for the old form.
  • All other user-facing docs (command-triggers.md, triggers.md, patterns/, guides/, troubleshooting/, examples/, slides) — bulk-updated to steps.sanitized.outputs.{text,title,body}.

Agent/skill instructions

.github/aw/, .github/copilot/instructions/, skills/developer/SKILL.md, skills/dictation/SKILL.md, pkg/cli/workflows/test-all.md — updated so AI-generated workflows use the correct form from the start.

AGENTS.md

Updated the "Expression Transformations" section to describe the old form as deprecated and point to steps.sanitized.outputs.* as the canonical form.

Note: needs.activation.outputs.slash_command and other non-text activation outputs used in downstream jobs are unaffected.

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 GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name g/styles/huh_theGOINSECURE g/styles/theme.gGOMOD 64/bin/go GOINSECURE GOMOD erignore ache/go/1.25.0/xGO111MODULE env 5384797/b405/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name _handler=\(.*\)$GOINSECURE scripts/**/*.js 64/bin/go .prettierignore --log-level=erro-c /usr/bin/git /bin/sh -c echo "��� JSON fGOSUMDB git 64/bin/go --show-toplevel ache/go/1.25.0/x/home/REDACTED/.npm/_npx/b388654678d519d9/node_modules/.bin/prettier ache/go/1.25.0/x--check 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 /tmp/gh-aw-test-runs/20260319-000531-28674/test-3491699751 rev-parse /usr/bin/git @{u} **/*.cjs 64/bin/go git rev-�� --show-toplevel /opt/hostedtoolcremote.origin.url /opt/hostedtoolcache/node/24.14.0/x64/bin/node ub/workflows -trimpath 64/bin/go node (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 1578839/b438/_pkg_.a GO111MODULE epo.git GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -ato�� ons-test3674609098 -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git (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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git y-test.md GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/link /usr/bin/git ceutil.test GO111MODULE ortcfg.link git rev-�� --show-toplevel ciyOeui8iZdBzFVrn5/snq0uNwZsuULt4FalH7W/O6Ou1LJuTest User /usr/bin/git ai-moderator.md GO111MODULE g_.a git (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 /tmp/TestHashConsistency_GoAndJavaScript1509674573/001/test-frontest-logs/run-5 go 1578839/b449/workflow.test iydI/oDMWqxFDaStgit GO111MODULE 64/bin/go 1578839/b449/workflow.test e=/t�� t0 test@example.com (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha k/gh-aw/gh-aw/.github/workflows/blog-auditor.md go /usr/bin/git XYh4/7HnJS6srjy8git GO111MODULE 64/bin/go git conf�� user.name Test User /usr/bin/git pkg/mod/github.cgit GOPROXY 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -json .cfg tartedAt,updated--show-toplevel git rev-�� --show-toplevel go /usr/bin/git 0531-28674/test-git GO111MODULE ache/go/1.25.0/x--show-toplevel git (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 GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE ache/go/1.25.0/xGO111MODULE env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node (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 --get remote.origin.url /usr/bin/git bo-7/XRh1dFZCRHhgit GO111MODULE 64/bin/go git bran�� --show-current 5384797/b390/imp-importcfg /usr/bin/git k/gh-aw/gh-aw/cmgit k/gh-aw/gh-aw/cmrev-parse nch,headSha,disp--show-toplevel git (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 user.name Test User /usr/bin/git -json GO111MODULE 64/bin/go git comm�� -m Initial commit /opt/hostedtoolcache/node/24.14.0/x64/bin/node "prettier" --chegit GOPROXY 64/bin/go node (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha ithub-script/git/ref/tags/v8 GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha -json GO111MODULE (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha -json GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go env runs/20260319-000531-28674/test-833249660/custom/workflows GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/bin/go l GOMOD GOMODCACHE go (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 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ub/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE (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 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ub/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path abfc11f840b03ef9GOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD erignore ache/go/1.25.0/xGO111MODULE env 5384797/b429/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GOMOD GOMODCACHE go env LRn8/Ni-a3BQlVKeGOSUMDB GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 5384797/b431/imp^remote\..*\.gh-resolved$ (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 GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 1637951910/.github/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env re GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE sh -c npx prettier --c-errorsas GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 14SwiSQTWv1B -c npx prettier --c-p GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE /bin/sh -c cd actions/setup-errorsas GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env re GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE ns-lock.json does not exist yet"/home/REDACTED/work/gh-aw/gh-aw/pkg/sliceutil/sliceutil_test.go (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 GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE n5/snq0uNwZsuULt4FalH7W/O6Ou1LJuTest User (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE ache/go/1.25.0/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 64/bin/go GOINSECURE GOMOD erignore ache/go/1.25.0/xGO111MODULE env 5384797/b434/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD erignore ache/go/1.25.0/xGO111MODULE env 5384797/b418/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE b/gh-aw/pkg/parsconfig GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go tierignore go /usr/bin/git go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build1691578839/b399/cli.test /tmp/go-build1691578839/b399/cli.test -test.testlogfile=/tmp/go-build1691578839/b399/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE erignore env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /tmp/go-build2544132461/b399/cli.test /tmp/go-build2544132461/b399/cli.test -test.testlogfile=/tmp/go-build2544132461/b399/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true --show-toplevel U8IGZ3xsiiK_VzgS-c /usr/bin/git sh -c "prettier" --wriGOSUMDB git 64/bin/go --show-toplevel go /usr/bin/git go (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 GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE ache/go/1.25.0/xGO111MODULE env 5384797/b421/_pkGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name /php.ini scripts/**/*.js 64/bin/go .prettierignore all("session") a-c /usr/bin/git node /hom�� --write ../../../**/*.jsGOWORK 64/bin/go --ignore-path ../../../.pretti/home/REDACTED/.npm/_npx/b388654678d519d9/node_modules/.bin/prettier run-command-exte--check go (http block)

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


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…e docs to use steps.sanitized.outputs.*

- Add deprecation warning in expression_extraction.go when old form is used in compilation
- Update all user-facing docs to use steps.sanitized.outputs.{text,title,body}
- Update workflow template files, skill files, and AGENTS.md
- templating.md now shows the old form as deprecated with a caution block

Fixes #<issue>"

Co-authored-by: dsyme <7204669+dsyme@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix output reference documentation for needs.activation and steps.sanitized Deprecate needs.activation.outputs.* in workflow markdown; update all docs to use steps.sanitized.outputs.* Mar 19, 2026
Copilot AI requested a review from dsyme March 19, 2026 00:14
@pelikhan pelikhan marked this pull request as ready for review March 19, 2026 00:27
Copilot AI review requested due to automatic review settings March 19, 2026 00:27
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

Updates documentation and compiler behavior to deprecate the invalid needs.activation.outputs.{text,title,body} form in workflow markdown, standardizing on steps.sanitized.outputs.* (which is what actually works inside the activation job).

Changes:

  • Add a compiler-time deprecation warning (stderr) when needs.activation.outputs.{text,title,body} is encountered, while preserving the rewrite for backward compatibility.
  • Update docs, examples, slides, and agent/skill instructions to use steps.sanitized.outputs.{text,title,body}.
  • Refresh reference docs (templating.md) and repo guidance (AGENTS.md) to explain the deprecated vs canonical forms and downstream-job exceptions.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
skills/dictation/SKILL.md Updates dictation/skill guidance to the canonical steps.sanitized.outputs.* outputs.
skills/developer/SKILL.md Updates secure-pattern guidance and checklists to reference steps.sanitized.outputs.text.
pkg/workflow/expression_extraction.go Emits a deprecation warning when rewriting deprecated activation-output expressions during extraction.
pkg/cli/workflows/test-all.md Updates workflow test template content to use steps.sanitized.outputs.text.
docs/src/content/docs/troubleshooting/common-issues.md Updates troubleshooting guidance to reference the correct sanitized output expression.
docs/src/content/docs/reference/triggers.md Updates trigger examples to use steps.sanitized.outputs.text.
docs/src/content/docs/reference/templating.md Replaces “automatic transformations” section with an “Activation Outputs” section + deprecated-form callout.
docs/src/content/docs/reference/custom-safe-outputs.md Updates examples to reference steps.sanitized.outputs.text.
docs/src/content/docs/reference/command-triggers.md Updates command-trigger examples and narrative to steps.sanitized.outputs.text.
docs/src/content/docs/patterns/issue-ops.md Updates pattern docs to use the canonical sanitized output expression.
docs/src/content/docs/patterns/chat-ops.md Updates pattern docs to use the canonical sanitized output expression.
docs/src/content/docs/guides/editing-workflows.md Updates editing guidance to reference steps.sanitized.outputs.text.
docs/src/content/docs/examples/multi-repo/issue-tracking.md Updates multi-repo examples to use steps.sanitized.outputs.text.
docs/slides/index.md Updates slides to reference steps.sanitized.outputs.text.
AGENTS.md Updates repo guidance to mark the old form deprecated and point to steps.sanitized.outputs.*.
.github/copilot/instructions/workflow-performance.md Updates Copilot instruction examples to reference steps.sanitized.outputs.text.
.github/aw/update-agentic-workflow.md Updates workflow-update guidance to the canonical sanitized expression form.
.github/aw/github-agentic-workflows.md Updates agentic workflow guidance to the canonical sanitized expression form.
.github/aw/create-agentic-workflow.md Updates workflow-creation guidance and examples to steps.sanitized.outputs.text.
Comments suppressed due to low confidence (1)

pkg/workflow/expression_extraction.go:76

  • New behavior prints a deprecation warning to stderr when deprecated activation outputs are encountered, but there is no unit test asserting that the warning is emitted (and ideally de-duped) for deprecated expressions. Adding a test that captures stderr would help prevent regressions in warning wording and frequency.
			fmt.Fprintln(os.Stderr, console.FormatWarningMessage(
				fmt.Sprintf("Deprecated expression '${{ %s }}': use '${{ %s }}' instead.", content, transformedContent),
			))

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

You can also share your feedback on Copilot code review. Take the survey.


#### Special Pattern Expressions
- **`${{ needs.* }}`** - Any outputs from previous jobs (e.g., `${{ needs.activation.outputs.text }}`)
- **`${{ needs.* }}`** - Any outputs from previous jobs (e.g., `${{ steps.sanitized.outputs.text }}`)
Comment on lines 71 to 78
transformedContent := transformActivationOutputs(content)
if transformedContent != content {
expressionExtractionLog.Printf("Transformed expression: %s -> %s", content, transformedContent)
fmt.Fprintln(os.Stderr, console.FormatWarningMessage(
fmt.Sprintf("Deprecated expression '${{ %s }}': use '${{ %s }}' instead.", content, transformedContent),
))
content = transformedContent
}
@pelikhan
Copy link
Contributor

@copilot review comments

- Move deprecation warning after the 'already seen' check so each unique
  deprecated expression only warns once per compilation
- Fix misleading example under the needs.* bullet in github-agentic-workflows.md
  (was showing a steps.* expression; now shows needs.pre_activation.outputs.activated)

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 19, 2026

@copilot review comments

Both review comments addressed in 5c48bbc:

  1. De-dup warnings — moved the deprecation warning emit after the already seen check, so each unique deprecated expression warns at most once per compilation.

  2. needs.* bullet example — replaced the misleading steps.sanitized.outputs.text example with needs.pre_activation.outputs.activated, which is an actual needs.<job>.outputs.* reference.

Copilot AI requested a review from pelikhan March 19, 2026 01:19
@pelikhan pelikhan merged commit d07c1af into main Mar 19, 2026
@pelikhan pelikhan deleted the copilot/fix-output-references-in-docs branch March 19, 2026 01:39
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.

Is it correct to use needs.activation.outputs.text or steps.sanitized.outputs.text?

4 participants