Skip to content

Comments

Extract Serena Go Analysis Tool Configuration into shared component#17798

Merged
pelikhan merged 2 commits intomainfrom
copilot/refactor-serena-tool-configuration
Feb 23, 2026
Merged

Extract Serena Go Analysis Tool Configuration into shared component#17798
pelikhan merged 2 commits intomainfrom
copilot/refactor-serena-tool-configuration

Conversation

Copy link
Contributor

Copilot AI commented Feb 23, 2026

16 workflows each declared serena: ["go"] inline with no shared abstraction, making Serena tool updates require 16 separate edits.

Changes

  • New shared component shared/mcp/serena-go.md: centralizes serena: ["go"] tool config with project activation guidance and analysis constraints
  • 16 workflows updated to imports: - shared/mcp/serena-go.md with inline serena: ["go"] removed: archie, cloclo, daily-compiler-quality, daily-file-diet, daily-testify-uber-super-expert, developer-docs-consolidator, duplicate-code-detector, glossary-maintainer, go-fan, mcp-inspector, q, repository-quality-improver, semantic-function-refactor, sergo, terminal-stylist, typist
  • Lock files regenerated — all 158 workflows compile cleanly

Design note

The shared component intentionally contains only serena: ["go"] (no edit: or bash: entries). The import merge semantics cause imported tools to win over inline tool configs on type conflicts — adding a bash allowlist to the shared component would silently restrict workflows using bash: true or bash: ["*"]. Each workflow retains its own bash and edit configuration.

# shared/mcp/serena-go.md
---
tools:
  serena: ["go"]
---

# Usage in a workflow
imports:
  - shared/mcp/serena-go.md

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 (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 ota=5% yHigh=170M (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 --property=CPUQu-C --property=Memor/home/REDACTED/work/gh-aw/gh-aw/.github/workflows docker-buildx --no�� rt -collect-logs r: $owner, name: $name) { hasDiscussionsEnabled } } (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 runs/20260223-003148-22638/test-2554335287/.github/workflows 64/pkg/tool/linux_amd64/compile /usr/bin/awk l config 64/pkg/tool/linu--show-toplevel awk 9744�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/duplicate-code-d-p (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel git /usr/bin/git niHc/ZaQaOsozRERgit 64/pkg/tool/linurev-parse /home/REDACTED/.ca--show-toplevel git rev-�� HEAD bash /usr/bin/git --noprofile 974473/b393/_tesrev-parse /opt/hostedtoolc--show-toplevel git (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 d -n 10 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha HEAD (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha ithub/workflows (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 a99dfdb74aa0c4ccaaa1146d:.github/workflows/q.md git /home/REDACTED/.config/composer/vendor/bin/git ignore-path ../.git config x_amd64/compile git show�� a99dfdb74aa0c4ccaaa1146d:.github/workflows/shared/mcp/serena-go.md x_amd64/compile cfg /home/REDACTED/worgit l x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel /bin/sh /usr/bin/git a99dfdb74aa0c4ccgit git k/_temp/ghcca-no--show-toplevel git rev-�� --show-toplevel git /usr/bin/git a99dfdb74aa0c4ccgit node cal/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 b25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/mcp-i-p x_amd64/vet Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle d git x_amd64/vet git show�� runs/20260223-003148-22638/test-2292560247/.github/workflows x_amd64/vet 974473/b291/vet.cfg l remote.origin.urrev-parse 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha b25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/q.loc-errorsas x_amd64/vet /opt/pipx_bin/git d git x_amd64/link git show�� b25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/sergo.md x_amd64/link 974473/b354/vet.cfg prover.lock.yml rev-parse es/.bin/node git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha uts.branch 974473/b434/_testmain.go /usr/bin/git /workflows/mcp-igit rev-parse son git rev-�� --show-toplevel /opt/hostedtoolcconfig /usr/bin/git /workflows/sergogit /tmp/go-build408rev-parse k/gh-aw/gh-aw/no--show-toplevel 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 aaa1146d:.github/workflows/sergo.lock.yml --write nfig/composer/vendor/bin/git **/*.ts **/*.json --ignore-path /bin/sh -c aaa1146d:scratchpad/dev.md infocmp 64/pkg/tool/linux_amd64/vet tierignore infocmp ache/uv/0.10.4/x-nilfunc 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/blog-auditor.md -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git rev-�� --show-toplevel -tests /usr/bin/git itory-quality-imgit config tions/setup/node--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha user.email test@example.com /usr/bin/git /workflows/semangit /usr/bin/gh 0/x64/bin/git git rev-�� --show-toplevel /opt/hostedtoolcremote.origin.url /usr/bin/git ub/workflows /tmp/go-build408rev-parse rgo/bin/sh /usr/bin/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 er-super-expert.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha HEAD (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --noprofile (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha figuration --local r: $owner, name:-f credential.userngit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha submodules | hea-f --local /opt/hostedtoolc-f user.name (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 nspector.md config ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile l config /home/REDACTED/go/b25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/typist.lock.yml ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile api .lock.yml -f .cfg -f /testdeps -f ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha tic-function-refactor.lock.yml 1462982/b014/vet.cfg .cfg remote.origin.urbash rev-parse /usr/bin/gh ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -1 t.lock.yml /usr/bin/gh ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet graphql -f me: String!) { /tmp/go-build251974473/b393/_pkg_.a ache/go/1.25.0/x-trimpath (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-build251974473/b395/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha = get && echo "******"; }; f get--stats = get && echo "******"; }; f get ash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha k/gh-aw/gh-aw/.github/workflows /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/sergo.md (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 b25ee24177809c29a99dfdb74aa0c4cc-test.timeout=10m0s x_amd64/vet 0/x64/bin/node d git /usr/bin/grep git t-ha�� vaScript1060105940/001/test-frontmatter-with-arrays.md grep 974473/b349/vet.cfg prover.lock.yml infocmp 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/link /usr/bin/bash bot-detection.mdgit x_amd64/vet /usr/local/bin/g--show-toplevel bash -c source '/home/REDACTED/work/gh-aw/gh-aw/actions/setup/sh/sanitize_path.sh' '/usr/bin:::/usr/local/git git /usr/bin/git runs/20260223-00git bash /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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha --verify main 64/bin/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha --verify main bash (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha uality.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha d -n 10 (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 _.a x_amd64/vet es.test d /usr/bin/gh me: String!) { --show-toplevel es.test 5197�� bQ29M6A5H git 974473/b297/vet.cfg prover.lock.yml config 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel Felv9JRhwFqUyQBZNC/pli6CI7tI0XjxW7EA6fh/F6C7R90I92APqoyvcbvX /usr/bin/bash b25ee24177809c29git x_amd64/vet _.a bash -c source '/home/REDACTED/work/gh-aw/gh-aw/actions/setup/sh/sanitize_path.sh' '/usr/bin::/usr/local/bgit git /usr/bin/git b25ee24177809c29git head 0/x64/bin/node 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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha it} (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha --get-regexp --local /usr/local/.ghcup/bin/git (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha ithub/workflows (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha --local user.name tnet/tools/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha ithub/workflows origin (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha ithub/workflows (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha --noprofile om/github/gh-aw tnet/tools/bash (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha ithub/workflows (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha --noprofile les repository(owne-f (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha --noprofile (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 -buildtags ndor/bin/git -errorsas -ifaceassert -nilfunc bash --no�� aaa1146d:.github/workflows/repository-quality-improver.md -tests cal/bin/git --noprofile est (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 -buildtags n-dir/git -errorsas -ifaceassert -nilfunc git stlo�� aaa1146d:.github/workflows/repository-quality-improver.md -tests it k/gh-aw/gh-aw/.gnode git r: $owner, name:/tmp/TestHashConsistency_WithImports2865831530/001/main.md node (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 duplicate-code-detector.lock.yml-ifaceassert x_amd64/compile ithub/workflows config /home/REDACTED/.lo--show-toplevel x_amd64/compile rev-�� aaa1146d:.github/workflows/repository-quality-improver.md bash /home/node_modules/.bin/node ithub/workflows git n-dir/bash node (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 /tmp/go-build4081462982/b241/vetgithub.com/github/gh-aw/pkg/cli /opt/pipx_bin/bash ithub/workflows --jq r: $owner, name: $name) { has/tmp/gh-aw-test-runs/20260223-003148-22638/test-729418271/.github/workflows bash --no�� aaa1146d:.github/workflows/repos-c=4 bash t --noprofile /usr/bin/git ndor/bin/bash node (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 -buildtags cal/bin/git -errorsas -ifaceassert ode-gyp-bin/nodeuser.name bash --no�� aaa1146d:.github/workflows/reposremote.origin.url -tests rgo/bin/git --noprofile /usr/bin/git /usr/bin/gh node (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 /tmp/go-build4081462982/b169/vetgithub.com/aymanbagabas/go-udiff/lcs t ithub/workflows rev-parse /usr/local/bin/buser.email bash --no�� hub/workflows bash nfig/composer/vendor/bin/git ainer.md /usr/bin/gh r: $owner, name: $name) { hasuser.email node (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 /tmp/go-build4081462982/b263/vetgithub.com/aymanbagabas/go-udiff rgo/bin/git ithub/workflows config /usr/sbin/bash bash --no�� hub/workflows bash p/bin/git k/gh-aw/gh-aw/.ggit infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path k.yml config 86_64/node l config /usr/bin/git ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet 0/x6�� .md rev-parse 64/bin/node ithub/workflows config (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 owner=github -f ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (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 -f r: $owner, name:--git-dir x_amd64/compile -ato�� aaa1146d:.github/workflows/q.md -buildtags /home/REDACTED/work/_temp/uv-python-dir/sh ./../.prettieriggit -ifaceassert -nilfunc sh (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/a70c5eada06553e3510ac27f2c3bda9d3705bccb --jq .object.sha --local user.name n-dir/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/a70c5eada06553e3510ac27f2c3bda9d3705bccb --jq .object.sha ithub/workflows REDACTED (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 aaa1146d:.github/workflows/q.md -buildtags ache/go/1.25.0/x64/bin/git ./../.prettierig/opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -ifaceassert -nilfunc sh -c aaa1146d:.github/workflows/shared/mcp/serena-go.md -tests k/_temp/ghcca-node/node/bin/git k/gh-aw/gh-aw/.gnode git repository(owne/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/archie.md sh (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 /opt/hostedtoolcache/go/1.25.0/x-buildtags /usr/bin/git aaa1146d:.githubgit 1462982/b001/_terev-parse x_amd64/link git rev-�� --show-toplevel x_amd64/link /usr/bin/git aaa1146d:.githubgit infocmp rgo/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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha origin main repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha --noprofile (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 aaa1146d:.github/workflows/q.md -buildtags ndor/bin/git ./../.prettieriggit -ifaceassert -nilfunc sh -c 3679853197/.github/workflows -tests ndor/bin/bash /home/REDACTED/worgh config /usr/bin/git sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --get-regexp ^remote\..*\.gh-resolved$ n-dir/node aaa1146d:.githubgit /tmp/go-build408rev-parse bin/git git 0/x6�� --show-toplevel bash /usr/bin/git aaa1146d:.githubgit bash ache/node/24.13.--show-toplevel 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 /../../.prettiergit erignore -nilfunc x_amd64/link -c aaa1146d:.github/workflows/semanremote.origin.url -tests ache/go/1.25.0/x64/bin/git k/gh-aw/gh-aw/.ggit 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 ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile k/gh-aw/gh-aw/.ggit rev-parse repository(owneb25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/typist.md oPyCygJJJgiA api .md -f utofind -f chr/testify/requ--norc -f utofind (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo tions/setup/node_modules/.bin/sh k/gh-aw/gh-aw/.ggit rev-parse (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build251974473/b381/cli.test /tmp/go-build251974473/b381/cli.test -test.testlogfile=/tmp/go-build251974473/b381/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true l bash /usr/bin/git ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (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 nspector.md rev-parse ode ithub/workflows rev-parse repository(owneb25ee24177809c29a99dfdb74aa0c4ccaaa1146d:.github/workflows/typist.lock.yml ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet 0/x6�� .lock.yml 1462982/b090/vet.cfg 0/x64/bin/npm remote.origin.urbash cat $name) { has--noprofile ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (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>[refactoring] Extract Serena Go Analysis Tool Configuration into shared component</issue_title>
<issue_description>### Skill Overview

16 workflows use the Serena MCP server for Go code analysis (serena: ["go"]), all with nearly identical tool configurations and none of them importing a shared Serena component. Extracting this pattern into a shared component would standardize the tool setup, reduce duplication, and ensure all workflows benefit from any improvements to the Serena configuration.

Current Usage

This skill appears in the following workflows (all manually configured, no shared import):

  • archie.md
  • cloclo.md
  • daily-compiler-quality.md
  • daily-file-diet.md
  • daily-testify-uber-super-expert.md
  • developer-docs-consolidator.md
  • duplicate-code-detector.md
  • glossary-maintainer.md
  • go-fan.md
  • mcp-inspector.md
  • q.md
  • repository-quality-improver.md
  • semantic-function-refactor.md
  • sergo.md
  • terminal-stylist.md
  • typist.md

Proposed Shared Component

File: .github/workflows/shared/mcp/serena-go.md

Configuration:

---
tools:
  serena: ["go"]
  edit:
  bash:
    - "find pkg -name '*.go' ! -name '*_test.go' -type f"
    - "find pkg -type f -name '*.go' ! -name '*_test.go'"
    - "find pkg/ -maxdepth 1 -ls"
    - "wc -l pkg/**/*.go"
    - "cat pkg/**/*.go"
    - "head -n * pkg/**/*.go"
    - "grep -r 'func ' pkg --include='*.go'"
---

Markdown body (prompt guidance):

## Serena Go Code Analysis

The Serena MCP server is configured for Go code analysis in this workspace:
- **Workspace**: `$\{\{ github.workspace }}`
- **Memory**: `/tmp/gh-aw/cache-memory/serena/`

### Project Activation

Before analyzing code, activate the Serena project:
```
Tool: activate_project
Args: { "path": "$\{\{ github.workspace }}" }
```

### Analysis Constraints

1. **Only analyze `.go` files** — Ignore all other file types
2. **Skip test files** — Never analyze files ending in `_test.go`
3. **Focus on `pkg/` directory** — Primary analysis area
4. **Use Serena for semantic analysis** — Leverage LSP capabilities for deeper insights

Usage Example:

imports:
  - shared/mcp/serena-go.md

Workflows needing edit: or github: toolsets can still declare them inline — the shared component only adds the serena tool config and common bash allowlists.

Impact

  • Workflows affected: 16 workflows
  • Lines saved: ~10–15 lines of tool configuration per workflow = ~160–240 lines total
  • Maintenance benefit: Serena tool updates (version bumps, new bash patterns) propagate to all 16 workflows automatically instead of requiring 16 separate edits

Implementation Plan

  1. Create .github/workflows/shared/mcp/serena-go.md with standardized tool config and activation guidance
  2. Update glossary-maintainer.md to import the shared component
  3. Update daily-file-diet.md to import the shared component
  4. Update semantic-function-refactor.md to import the shared component
  5. Update typist.md to import the shared component
  6. Update remaining 12 workflows to import the shared component
  7. Run make recompile to regenerate all lock files
  8. Verify all workflows compile without errors
  9. Update documentation

Related Analysis

This recommendation comes from the Workflow Skill Extractor analysis run on 2026-02-22.

See full analysis report in the linked discussion.

Generated by Workflow Skill Extractor

  • expires on Feb 24, 2026, 4:19 PM UTC

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

Custom agent used: agentic-workflows
GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…o.md

Create shared/mcp/serena-go.md with serena: ["go"] configuration and
Go analysis guidance. Update all 16 workflows to import this shared
component instead of declaring serena inline. Recompile all lock files.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor Serena Go analysis tool configuration into shared component Extract Serena Go Analysis Tool Configuration into shared component Feb 23, 2026
@pelikhan pelikhan marked this pull request as ready for review February 23, 2026 00:53
Copilot AI review requested due to automatic review settings February 23, 2026 00:53
@pelikhan pelikhan merged commit d744ebd into main Feb 23, 2026
@pelikhan pelikhan deleted the copilot/refactor-serena-tool-configuration branch February 23, 2026 00:53
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

This PR extracts the duplicated serena: ["go"] tool configuration from 16 workflows into a centralized shared component at .github/workflows/shared/mcp/serena-go.md. This refactoring standardizes Serena Go code analysis configuration across workflows and ensures future updates propagate automatically.

Changes:

  • Created new shared component shared/mcp/serena-go.md containing only serena: ["go"] tool configuration with comprehensive usage documentation
  • Updated 16 workflows to import the shared component and removed inline serena: ["go"] declarations
  • Regenerated all lock files with updated metadata hashes reflecting the new import dependencies

Reviewed changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/shared/mcp/serena-go.md New shared component centralizing Serena Go tool configuration with LSP-based analysis documentation
.github/workflows/archie.md Added import of serena-go.md, removed inline serena config
.github/workflows/cloclo.md Added import of serena-go.md, removed inline serena config
.github/workflows/daily-compiler-quality.md Added import of serena-go.md, removed inline serena config
.github/workflows/daily-file-diet.md Added import of serena-go.md, removed inline serena config
.github/workflows/daily-testify-uber-super-expert.md Added import of serena-go.md, removed inline serena config
.github/workflows/developer-docs-consolidator.md Added import of serena-go.md, removed inline serena config
.github/workflows/duplicate-code-detector.md Added import of serena-go.md, removed inline serena config
.github/workflows/glossary-maintainer.md Added import of serena-go.md, removed inline serena config
.github/workflows/go-fan.md Added import of serena-go.md, removed inline serena config
.github/workflows/mcp-inspector.md Added import of serena-go.md, removed inline serena config
.github/workflows/q.md Added import of serena-go.md, removed inline serena config
.github/workflows/repository-quality-improver.md Added import of serena-go.md, removed inline serena config
.github/workflows/semantic-function-refactor.md Added import of serena-go.md, removed inline serena config
.github/workflows/sergo.md Added import of serena-go.md, removed inline serena config
.github/workflows/terminal-stylist.md Added import of serena-go.md, removed inline serena config
.github/workflows/typist.md Added import of serena-go.md, removed inline serena config
.github/workflows/*.lock.yml Regenerated lock files with updated frontmatter hashes and import directives

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

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.

[refactoring] Extract Serena Go Analysis Tool Configuration into shared component

2 participants