Emit engine-independent MCP usage metadata in lockfiles - #54398
Conversation
|
Hey
Since this is a core-team agentic PR, your agent can continue implementing these steps. When ready for review, mark the draft as ready and the maintainers will take it from there. If you need help breaking down the tasks or want to discuss the manifest format, feel free to sync up in the related issue #53870!
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
PR Triage
|
|
✅ Ponytail Reviewer completed successfully!
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
❌ Design Decision Gate 🏗️ failed during design decision gate check. Warning Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding. What happenedThe threat detection engine failed to produce results. Review the workflow run logs for details.
|
Comment MemoryNote This comment is managed by comment memory.It stores persistent context for this thread in the code block at the top of this comment.
|
There was a problem hiding this comment.
Verdict
No blocking issues found in the changed lines I reviewed.
Themes
The new `mcp_servers` manifest emission is wired through the shared header path, normalized deterministically, and covered by focused tests. I did not find a changed-line correctness, safety, or maintainability issue that justifies a review comment.🔎 Code quality review by PR Code Quality Reviewer · gpt54 · 36 AIC · ⌖ 6.74 AIC · ⊞ 7K
Comment /review to run again
There was a problem hiding this comment.
The lockfile changes correctly emit the new mcp_servers field in gh-aw-manifest headers. Spot-checking the visible diff:
mcp_serversis an array of{name, tools}objects ✅- Wildcard access is represented as
["*"](e.g.agenticworkflows) ✅ - Explicit tool allowlists are correctly scoped per server ✅
- The field is placed after
containersin the manifest, consistent across all lockfiles ✅
The source code changes (compiler, workflow analysis) are not visible in the capped diff, but the lockfile output is well-structured and matches the design described in the PR body. No blocking issues found.
🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · sonnet46 · 31.8 AIC · ⌖ 8.81 AIC · ⊞ 5.7K
There was a problem hiding this comment.
Ponytail review (over-engineering only).
net: -10 lines possible.
Generated by ✂️ Ponytail Reviewer for #54398 · auto · 32.9 AIC · ⌖ 8.66 AIC · ⊞ 7.3K
Comment /ponytail to run again
| } | ||
| } | ||
| return keys | ||
| } |
There was a problem hiding this comment.
L131-146: yagni: normalizedMapKeys uses reflect.ValueOf/Kind/MapKeys to extract keys, but all 3 call sites pass map[string]*T. A generic func normalizedMapKeys[V any](m map[string]V) []string does the same with zero reflection, matching sliceutil.SortedKeys[K,V] already used on L58 in this same file.
Run: https://github.com/github/gh-aw/actions/runs/32515777962
|
…rack-mcp-usage # Conflicts: # .github/workflows/impeccable-skills-reviewer.lock.yml # .github/workflows/linter-miner.lock.yml Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Maintainer handoff: refreshed main in |
|
Please run the
Your latest handoff says the branch was refreshed and remaining validation blockers are mostly stale/action-required checks. If that is still true, say exactly which issues are already fixed on head
|
Current head Maintainer handoff: |
|
This PR still shows merge conflicts ( Run: https://github.com/github/gh-aw/actions/runs/32525213052
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Resolved the The visible MCP threads remain already addressed by |
|
@copilot resolve the merge conflicts in this pull request |
Run: https://github.com/github/gh-aw/actions/runs/32529011926
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Resolved in merge commit |
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Merged current |
|
🎉 This pull request is included in a new release. Release: |
MCP adoption reporting depended on Claude-only
# - mcp__...comment scraping, leaving non-Claude workflow engines undercounted. This adds structured MCP server/tool metadata to compiled lockfiles so analysis can work across engines.Lockfile manifest
gh-aw-manifestwithmcp_servers.["*"].Compiler support
Lockfile stats workflow
gh-aw-manifest.mcp_servers.Example lockfile header metadata:
# gh-aw-manifest: {"engine":"copilot","mcp_servers":[{"name":"github","tools":["get_issue","list_issues"]},{"name":"custom-server","tools":["*"]}]}pr-sous-chef run: https://github.com/github/gh-aw/actions/runs/32477751698> Generated by 👨🍳 PR Sous Chef · gpt54 · 16.4 AIC · ⌖ 8.3 AIC · ⊞ 6.9K · ◷