Closed
Conversation
Implements semantic versioning for agent prompts to enable tracking, testing, comparison, rollback, and A/B experiments. - Add 'version' field to JSON schema with semver pattern validation - Extract version from frontmatter in compiler - Include version in WorkflowData struct and compiled workflow header - Add prompt_version to aw_info JSON for runtime tracking - Create comprehensive tests for version extraction and rendering - Add example test workflow demonstrating the feature Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Document the new version field in both the complete frontmatter reference and the user-friendly frontmatter guide. Includes usage examples and explanation of where version information appears in compiled workflows. Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add versioning for agent prompts management
Add semantic versioning for agent prompts
Feb 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Agent prompts need version tracking for A/B testing, rollback, and production management.
Changes
Schema & Extraction
versionfield to frontmatter schema with semver pattern validation (^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$)WorkflowData.VersionOutput Integration
# Prompt Version: 1.0.0aw_infoJSON asprompt_versionfor runtime trackingExample
Compiles to:
Supports standard semver formats:
1.0.0,2.1.3-beta.1,1.0.0+build.123Warning
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/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(http block)/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 -run 64/pkg/tool/linugit status --porcelain --ignore-submodules | head -n 10 git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/link /usr/bin/git(http block)/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 m0s 64/pkg/tool/linugit status --porcelain --ignore-submodules | head -n 10 git rev-�� --show-toplevel 64/pkg/tool/linu-test.v=true /usr/bin/git 7/001/test-complsh -buildtags in/sh git(http block)https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha LhFz/VYO4ESm_-Z6FhwPILhFz(http block)https://api.github.com/repos/actions/ai-inference/git/ref/tags/v2/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha --show-toplevel ortcfg /usr/bin/git g/cli/access_loggit g/cli/actionlint-C ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git "prettier" --wrigit(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha --show-toplevel frastructure.md /usr/bin/git g/cli/fileutil/finfocmp g/cli/fileutil/f-1 ache/go/1.25.0/xxterm-color git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile /usr/bin/git 5232835/b371/_pkgit **/*.cjs 5232835/b371=> git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha c053d9fc8b6b51aa-f /opt/hostedtoolcowner=github /usr/bin/git rd -trimpath ache/go/1.25.0/xxterm-color git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/link /usr/bin/find bot-detection.mdinfocmp -dwarf=false /home/REDACTED/worxterm-color find(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v3/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -bool -buildtags sh -errorsas -ifaceassert erignore /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linurev-parse -ato�� 5842-11325/test-2423659832/.github/workflows -buildtags h -errorsas -ifaceassert -nilfunc bash(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha "prettier" --write '**/*.cjs' '*nonexistent/repo(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha artifacts-summary.md(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha -test.paniconexit0 -test.v=true /tmp/go-build1375232835/b418/timeutil.test -test.timeout=10git -test.run=^Test -test.short=true--show-toplevel /tmp/go-build1375232835/b418/timeutil.test -tes�� -test.paniconexit0 -test.v=true /usr/bin/git -test.timeout=10git -test.run=^Test -test.short=true--show-toplevel git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v5/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 1978826881/.github/workflows(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha run --auto om/testorg/testrepo.git --detach(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha run --auto /usr/bin/git --detach .cfg node git rev-�� tup/sh/sanitize_path.sh' '/usr/bin:/usr/local/bin:::' && echo "$PATH" 64/pkg/tool/linuconfig /usr/bin/git rt(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v6/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel bash /usr/bin/git /ref/tags/v8(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.0/xowner=github(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel node /usr/bin/git --write **/*.cjs /home/REDACTED/worgraphql git rev-�� --show-toplevel prettier /usr/bin/git runs/20260217-12/usr/bin/unpigz !../../../pkg/wo-d /usr/bin/head git(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v7/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha --show-toplevel gcc /usr/bin/git submodules | heagit c 64/pkg/tool/linu. git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -unreachable=falsh /tmp/go-build214-c bin/sh git(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha --show-toplevel /opt/hostedtoolc-j /usr/bin/git submodules | heagit -trimpath 64/pkg/tool/linu. git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -bool -buildtags /opt/hostedtoolctsup git(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git --write **/*.cjs /home/REDACTED/wor/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� to pkg/workflow/data/action_pins.json..." node /usr/bin/git runs/20260217-12/usr/bin/unpigz ../../../**/*.js-d 5232835/b375/vet-c git(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v8/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha h ../../../.pret.prettierignore(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha w/js/**/*.json' --ignore-path --global x_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha w/js/**/*.json' --ignore-path ../../../.prettierignore ion_cache.go de/node/bin/bash ion_mode.go ion_pins.go ion_pins_integra-m ortcfg lida�� g/cli/access_log.go g/cli/actionlint.go 64/pkg/tool/linux_amd64/vet ion_resolver_tesgit ion_sha_checker.rev-parse ion_sha_checker_--show-toplevel 64/pkg/tool/linux_amd64/vet(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha --package-lock-only ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git prettier --write /node_modules/.bgraphql git rev-�� " -o gh-aw ./cmd-f node /usr/bin/git --write ../../../**/*.js-d 5232835/b373/vet-c git(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha _messages.go _messages_test.go ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v5/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha --show-toplevel sion field in both the complete frontmatter reference and the user-friendly frontmatter guide. I-C /usr/bin/git -bool -buildtags .cfg git rev-�� --show-toplevel /opt/hostedtoolcowner=github /usr/bin/git ced successfullyinfocmp -tests 64/pkg/tool/linuxterm-color git(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha tmp/TestGetNpmBinPathSetup_GorootOrdering220053677/001/go/1.25.0/x64"; export PATH="$(find "/tmpgit /opt/hostedtoolc--jq ode 97608514 -buildtags tnet/tools/git git sup --show-toplevel c053d9fc8b6b51aafa32385d /usr/bin/git rd -tests 0/x64/bin/node git(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v6/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linuTest User /usr/bin/git --noprofile(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha image:v1.0.0 ache/go/1.25.0/x64/pkg/tool/linuorigin /usr/bin/git --noprofile(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha --show-toplevel /systemd-executor /usr/bin/git 3390949404/custogit(http block)https://api.github.com/repos/actions/setup-node/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha g_.a 5232835/b125/vet.cfg 5232835/b395/mathutil.test(http block)https://api.github.com/repos/actions/setup-node/git/ref/tags/v6/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha --show-toplevel DN4nYXdTDQWE /usr/bin/git --noprofile(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha --show-toplevel if [ -n "$diff_output" ]; then \remote.origin.url /usr/bin/git 2769793716/.githgit(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linuremote.origin.url /usr/bin/git 8063716/b062/_pkgit(http block)https://api.github.com/repos/anchore/sbom-action/git/ref/tags/v0/usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha --show-toplevel ingutil.test(http block)/usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha --show-toplevel 5232835/b001/gh-owner=github /usr/bin/git t0 **/*.cjs(http block)/usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha install --package-lock-oowner=github /usr/bin/git 5232835/b368/cligit x_amd64/asm 5232835/b368/imp/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� --show-toplevel MY97uHOCtUTjb/PHsY8ti1O1EN4asbD_F5/77svoZAXzVNnX2OC_FUa/46GZ9LWMY97uHOCtUTjb /usr/bin/git ry=1 ../../../**/*.js-d 5232835/b368/_pk-c git(http block)https://api.github.com/repos/docker/build-push-action/git/ref/tags/v6/usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.0/xowner=github /usr/bin/git --write **/*.cjs ache/go/1.25.0/xgraphql git rev-�� --show-toplevel ache/go/1.25.0/xowner=github rror.md eep-analysis.md(http block)/usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha --show-toplevel node /usr/bin/git --write **/*.cjs /usr/sbin/sh git rev-�� --show-toplevel sh /bin/sh "prettier" --wridocker(http block)/usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.0/xowner=github /usr/bin/git 5232835/b379/_pkgit **/*.cjs 5232835/b379=> git rev-�� --show-toplevel node /usr/bin/ls UYAk/G9aHOEMzJDw/usr/bin/unpigz ../../../**/*.js-d /home/REDACTED/wor-c ls(http block)https://api.github.com/repos/docker/login-action/git/ref/tags/v3/usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha --show-toplevel node /usr/bin/git --write **/*.cjs /usr/local/.ghcu/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� --show-toplevel sh rror.md eep-analysis.md(http block)/usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/link /usr/bin/git 5232835/b380/con/usr/bin/gh **/*.cjs 5232835/b380/impgraphql git rev-�� --show-toplevel R7L4RZbH1mMcc/vXowner=github /usr/bin/cut runs/20260217-12/usr/bin/unpigz ../../../**/*.js-d 5232835/b380/_pk-c cut(http block)https://api.github.com/repos/docker/metadata-action/git/ref/tags/v5/usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha --show-toplevel node /usr/bin/git g/cli **/*.cjs /usr/local/sbin/graphql git rev-�� --show-toplevel sh rror.md eep-analysis.md(http block)/usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha --show-toplevel ache/go/1.25.0/xowner=github /usr/bin/git 5232835/b377/_pkgit --write 5232835/b377=> git rev-�� --show-toplevel node 0/x64/bin/bash 6YQX/dJX6jGO59YHdocker ../../../**/*.jsimage /home/REDACTED/.cainspect grep(http block)https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v3/usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/link /usr/bin/git 5232835/b371/fil/usr/bin/gh **/*.cjs 5232835/b371/impgraphql git rev-�� --show-toplevel kbE9ZJqrMibdS/xMowner=github rror.md eep-analysis.md(http block)/usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git g_.a **/*.cjs /home/REDACTED/.cagraphql git rev-�� --show-toplevel sh rror.md eep-analysis.md(http block)/usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha --package-lock-only 5232835/b371/fileutil.test /usr/bin/git t0 x_amd64/compile(http block)https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts/usr/bin/gh gh run download 1 --dir test-logs/run-1 9865735/b155/vet.cfg x_amd64/vet(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifactsImplements semantic vgithub.com/aymanbagabas/go-udiff/lcs .cfg` (http block)
Implements semantic v-ifaceassert .cfg` (http block)
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.