# gh-aw-commands: {"payload_version":"v1","schema_version":"v1","compiler_version":"v0.89.21","commands":["add-tests","analyze-build-failure","autofix","parallel-audit","perf-assist","pr-fix","q","review","review-tests","test-assist"],"workflows":["add-tests","autofix.agent","build-failure-analysis-command","parallel-safety-audit-command","perf-improver","pr-fix","q","review.agent","test-improver","test-reviewer.agent"]} # Routing summary (sorted): # slash commands: # /add-tests -> add-tests [pull_request_comment] reaction=eyes # /analyze-build-failure -> build-failure-analysis-command [pull_request_comment] reaction=eyes # /autofix -> autofix.agent [pull_request_comment] reaction=eyes # /parallel-audit -> parallel-safety-audit-command [pull_request_comment] reaction=eyes # /perf-assist -> perf-improver [discussion,discussion_comment,issue_comment,issues,pull_request,pull_request_comment,pull_request_review_comment] reaction=eyes # /pr-fix -> pr-fix [discussion,discussion_comment,issue_comment,issues,pull_request,pull_request_comment,pull_request_review_comment] reaction=eyes # /q -> q [discussion_comment,issue_comment,pull_request_comment] reaction=rocket # /review -> review.agent [pull_request_comment] reaction=eyes # /review-tests -> test-reviewer.agent [pull_request_comment] reaction=eyes # /test-assist -> test-improver [discussion,discussion_comment,issue_comment,issues,pull_request,pull_request_comment,pull_request_review_comment] reaction=eyes # labels: # (none) # This file was automatically generated by gh-aw (v0.89.21). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ # | _ |/ _` |/ _ \ '_ \| __| |/ __| # | | | | (_| | __/ | | | |_| | (__ # \_| |_/\__, |\___|_| |_|\__|_|\___| # __/ | # _ _ |___/ # | | | | / _| | # | | | | ___ _ __ _ __| |_| | _____ ____ # | |/\| |/ _ \ '__| |/ /| _| |/ _ \ \ /\ / / ___| # \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \ # \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/ # # # To regenerate this workflow, run: # gh aw compile # Not all edits will cause changes to this file. # # For more information: https://github.github.com/gh-aw/introduction/overview/ # name: "Agentic Commands" on: issues: types: [edited, opened, reopened] issue_comment: types: [created, edited] pull_request: types: [edited, opened, reopened] pull_request_review_comment: types: [created, edited] discussion: types: [created, edited] discussion_comment: types: [created, edited] permissions: {} jobs: route: runs-on: ubuntu-slim timeout-minutes: 15 permissions: actions: write contents: read issues: write pull-requests: write discussions: write steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Setup Scripts uses: github/gh-aw-actions/setup@924af5fdc64061cfbf66fb584c8b07e2ac230c60 # v0.89.21 with: destination: ${{ runner.temp }}/gh-aw/actions - name: Route slash command uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 # runner-guard:ignore RGS-016 -- routing tables below contain emoji variation selectors (U+FE0F) and zero-width joiners (U+200D) used to render standard emoji sequences, not steganographic payloads. env: GH_AW_SLASH_ROUTING: '{"add-tests":[{"workflow":"add-tests","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"analyze-build-failure":[{"workflow":"build-failure-analysis-command","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"autofix":[{"workflow":"autofix.agent","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"parallel-audit":[{"workflow":"parallel-safety-audit-command","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"perf-assist":[{"workflow":"perf-improver","events":["discussion","discussion_comment","issue_comment","issues","pull_request","pull_request_comment","pull_request_review_comment"],"ai_reaction":"eyes","status_comment":true}],"pr-fix":[{"workflow":"pr-fix","events":["discussion","discussion_comment","issue_comment","issues","pull_request","pull_request_comment","pull_request_review_comment"],"ai_reaction":"eyes","status_comment":true}],"q":[{"workflow":"q","events":["discussion_comment","issue_comment","pull_request_comment"],"ai_reaction":"rocket","status_comment":true}],"review":[{"workflow":"review.agent","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"review-tests":[{"workflow":"test-reviewer.agent","events":["pull_request_comment"],"ai_reaction":"eyes","status_comment":true}],"test-assist":[{"workflow":"test-improver","events":["discussion","discussion_comment","issue_comment","issues","pull_request","pull_request_comment","pull_request_review_comment"],"ai_reaction":"eyes","status_comment":true}]}' GH_AW_LABEL_ROUTING: '{}' GH_AW_HELP_COMMANDS: '[{"command":"add-tests","description":"Generates unit tests for code introduced in a pull request when a maintainer comments /add-tests.","centralized":true,"decentralized":false,"source_file":"add-tests"},{"command":"analyze-build-failure","description":"Rerun the build-failure analysis on a pull request when a maintainer comments `/analyze-build-failure`. Same body as `build-failure-analysis.md` — it does NOT rebuild: it inspects the PR''s **latest** Azure Pipelines `microsoft.testfx` build and, **only when that latest build has failed** (it stops if the newest build is still running or has succeeded), downloads the binary logs that build already produced (all build legs) and delegates to the `build-failure-analyst` agent (which queries the binlogs live via the containerized `binlog-mcp` MCP server). Useful when a previous run was cancelled, the analysis comment was dismissed, or the agent needs another pass. Like the auto workflow it performs **no build**; the generated jobs do check out the repository (and, for the slash-command event, the PR branch) for agent tooling only — the PR''s code is never built or executed.","centralized":true,"decentralized":false,"source_file":"build-failure-analysis-command"},{"command":"autofix","description":"Addresses code review feedback when a maintainer comments /autofix on a PR. Same behavior as the automatic address-review workflow but manually triggered.","centralized":true,"decentralized":false,"source_file":"autofix.agent"},{"command":"parallel-audit","description":"Re-audits the changed MSTest tests of a pull request for parallel-safety when a maintainer comments `/parallel-audit`, then submits one COMMENT review.","centralized":true,"decentralized":false,"source_file":"parallel-safety-audit-command"},{"command":"perf-assist","description":"A performance-focused repository assistant that runs regularly (daily by default) to identify and implement performance improvements.\nCan also be triggered on-demand via ''/perf-assist \u003cinstructions\u003e'' to perform specific tasks.\n- Discovers and validates build, test, and benchmark commands for the repository\n- Identifies performance bottlenecks and optimization opportunities\n- Implements performance improvements with measured impact\n- Maintains performance-related PRs when CI fails or conflicts arise\n- Records performance techniques and learnings in persistent memory\n- Updates a monthly activity summary for maintainer visibility\nAlways methodical, measurement-driven, and mindful of trade-offs.","centralized":true,"decentralized":false,"source_file":"perf-improver"},{"command":"pr-fix","description":"This workflow makes fixes to pull requests on-demand by the ''/pr-fix'' command.\nAnalyzes failing CI checks, identifies root causes from error logs, implements fixes,\nruns tests and formatters, and pushes corrections to the PR branch. Provides detailed\ncomments explaining changes made. Helps rapidly resolve PR blockers and keep\ndevelopment flowing.","centralized":true,"decentralized":false,"source_file":"pr-fix"},{"command":"q","description":"Intelligent assistant that answers questions, analyzes repositories, and can create PRs for workflow optimizations.\nAn expert system that improves, optimizes, and fixes agentic workflows by investigating performance,\nidentifying missing tools, and detecting inefficiencies.","centralized":true,"decentralized":false,"source_file":"q"},{"command":"review","description":"Runs the expert-reviewer agent on /review and submits one consolidated review with bundled inline findings.","centralized":true,"decentralized":false,"source_file":"review.agent"},{"command":"review-tests","description":"Re-reviews changed tests and parallelization configuration when a maintainer comments `/review-tests`. Grades new and modified test methods, audits cross-test parallel-safety, and posts one consolidated COMMENT review with apply-ready inline suggestions.","centralized":true,"decentralized":false,"source_file":"test-reviewer.agent"},{"command":"test-assist","description":"A testing-focused repository assistant that runs regularly (daily by default) to improve test quality and coverage.\nCan also be triggered on-demand via ''/test-assist \u003cinstructions\u003e'' to perform specific tasks.\n- Discovers and validates build, test, and coverage commands for the repository\n- Identifies testing gaps and high-value test opportunities\n- Implements new tests with measured coverage impact\n- Maintains testing-related PRs when CI fails or conflicts arise\n- Records testing techniques and learnings in persistent memory\n- Updates a monthly activity summary for maintainer visibility\nAlways thoughtful, quality-focused, and mindful of test maintainability.","centralized":true,"decentralized":false,"source_file":"test-improver"}]' GH_AW_HELP_COMMAND_ENABLED: 'true' GH_AW_SLASH_COMMAND_DOCS_URL: 'https://github.github.com/gh-aw/reference/command-triggers/' with: script: | const path = require('path'); const actionsDir = path.join(process.env.RUNNER_TEMP, 'gh-aw', 'actions'); const { setupGlobals } = require(path.join(actionsDir, 'setup_globals.cjs')); setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require(path.join(actionsDir, 'route_slash_command.cjs')); await main();