Skip to content

test(agentic-engineering): pin the bundled GitHub servers' limits - #657

Merged
devantler merged 1 commit into
mainfrom
claude/plugins-pin-github-exclusions
Nov 4, 2026
Merged

devantler merged 1 commit into
mainfrom
claude/plugins-pin-github-exclusions

Conversation

@devantler

Copy link
Copy Markdown
Contributor

Why

The independent review of #656 found the last open questions about the bundled github server. Two follow-ups came out of it. First, GitHub offers delete_repository only to clients that speak MCP protocol 2026-07-28 and declare elicitation, which is why ordinary probes never listed it while a Claude Code session did. Second, nothing stopped a later edit from silently dropping a tool from github's exclusion list.

What

  • github-mcp-headers.test.sh now fails if any of the 12 excluded tools leaves github's X-MCP-Exclude-Tools. It also fails if github-ghas-tools loses its read-only URL, its X-MCP-Readonly header or its toolsets, or if either server stops signing in through the helper. Two negative controls cover the checks: one drops delete_repository, the other puts github-ghas-tools back on github's URL.
  • The README states the mechanism behind naming delete_repository.
  • Version 7.1.1, with a changelog entry.

Validation

  • The extended self-test passes against the real .mcp.json, and both negative controls are rejected. CI runs this test automatically with the other plugin *.test.sh files.
  • validate-manifests.sh, check-skill-licenses.sh, the version-bump check, the desired-state digests and the changelog tests pass. The bump moved all five manifests, the Codex one included.

🤖 Generated with Claude Code

github's exclusion list is the only thing keeping its merge, repository,
file-write and workflow tools away, and a probe cannot stand in for it:
GitHub offers delete_repository only to clients speaking MCP 2026-07-28
with elicitation. Make the headers helper's self-test fail if any excluded
tool leaves the list, or if github-ghas-tools loses its read-only URL,
header or toolsets, with negative controls for both. Explain the
mechanism in the README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Action performed

Full review finished.

@coderabbitai

coderabbitai Bot commented Nov 4, 2026

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: bb73b1b2-8d5e-40b8-b647-df440e3b6487
Commits

Reviewing files that changed from the base of the PR and between 5e3cd8e and a4154fc.

Files selected for processing: 8
  • .claude-plugin/marketplace.json
  • .github/plugin/marketplace.json
  • plugins/agentic-engineering/.claude-plugin/plugin.json
  • plugins/agentic-engineering/.codex-plugin/plugin.json
  • plugins/agentic-engineering/CHANGELOG.md
  • plugins/agentic-engineering/README.md
  • plugins/agentic-engineering/plugin.json
  • plugins/agentic-engineering/scripts/github-mcp-headers.test.sh

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details
Context from checks skipped due to timeout: 3
  • GitHub Check: CodeRabbit
  • GitHub Check: Test packaged resources
  • GitHub Check: Test marketplace automation
Additional context used
Code guidelines: 3
AGENTS.md — auto-discovered
docs/adr/0001-bundling-mcp-servers-and-custom-agents.md — auto-discovered
docs/installation.md — auto-discovered
Path-based instructions: 3
Source excerpt: The repo ships **two marketplace manifests that must stay byte-for-byte in sync** (modulo key order): [`.github/plugin/marketplace.json`](.github/plugin/marketplace.json) for Copilot / VS Code and [`.claude-plugin/marketplac...

CodeRabbit inference engine (AGENTS.md)

Files:

  • .claude-plugin/marketplace.json
  • .github/plugin/marketplace.json
Applicability reference: AGENTS.md: # devantler-tech/agent-plugins By design the marketplace is **not scoped to skills-only** — a plugin may bundle any agent resource (agent skills today; [MCP](https://modelcontextprotocol.io) servers and c...

CodeRabbit inference engine (docs/adr/0001-bundling-mcp-servers-and-custom-agents.md)

Files:

  • plugins/agentic-engineering/plugin.json
  • .claude-plugin/marketplace.json
  • plugins/agentic-engineering/.codex-plugin/plugin.json
  • plugins/agentic-engineering/.claude-plugin/plugin.json
  • .github/plugin/marketplace.json
  • plugins/agentic-engineering/CHANGELOG.md
  • plugins/agentic-engineering/README.md
  • plugins/agentic-engineering/scripts/github-mcp-headers.test.sh
Applicability reference: AGENTS.md: # devantler-tech/agent-plugins See the [plugin catalogue](docs/plugins.md) and the per-tool [installation instructions](docs/installation.md).

CodeRabbit inference engine (docs/installation.md)

Files:

  • plugins/agentic-engineering/.codex-plugin/plugin.json
  • plugins/agentic-engineering/.claude-plugin/plugin.json
Learnings: 1
Common learnings
Learnt from: CR
Repo: devantler-tech/agent-plugins

Timestamp: 2026-11-04T22:33:27.942Z
Learning: Applicability reference:
AGENTS.md: # devantler-tech/agent-plugins
## Conventions
11. **Improvements to a generic role belong upstream of the consumer that found them.** This
    marketplace ships role behaviour that many deployments install, so a fix written into one
    consumer's own copy or overlay of a bundled agent is drift: it stops inheriting upstream fixes and
    grows what every dispatch loads. Route by asking whether the change would have to be rewritten to
    install the role on a different portfolio — if not, it belongs in the definition's own upstream
    (this repository for `plugins/*/agents/*.agent.md`, this repository for an authored skill, or the repository named in an external skill's `metadata.github-repo`). The `agentic-engineering`
    [plugin README](plugins/agentic-engineering/README.md) states this for its consumers, and both of

Source excerpt:
# `agentic-engineering`

## Improving the plugin

To send one:

5. Move the plugin version in the same pull reques...
Learnt from: CR
Repo: devantler-tech/agent-plugins

Timestamp: 2026-11-04T22:33:29.119Z
Learning: Applicability reference:
AGENTS.md: # devantler-tech/agent-plugins
## Validation
Run before opening any PR, and never weaken a check to pass — fix the root cause. The required gate
is the aggregated **`CI - Required Checks`** job. Every validation command, what each check
observes, and how a new gate reaches pull requests that are already open are in
[docs/validation.md](docs/validation.md): **read it before validating a change, or adding or
altering a CI job.** Every change starts with:

AGENTS.md: # devantler-tech/agent-plugins
## Agent guides
| Guide | Read it before |
|---|---|
| [docs/validation.md](docs/validation.md) | validating a change, opening a PR, or adding or altering a CI job |

AGENTS.md: # devantler-tech/agent-plugins
## Maintenance (autonomous AI engineer)
**Validate before any PR:** run the steps in [docs/validation.md](docs/validation.md) (`./scripts/validate-manifests.sh`,
spec-validate each skill, `actionlint` changed workflows). No app build here — manifest parit...
Learnt from: CR
Repo: devantler-tech/agent-plugins

Timestamp: 2026-11-04T22:33:29.119Z
Learning: Applicability reference:
AGENTS.md: # devantler-tech/agent-plugins
## Validation
Run before opening any PR, and never weaken a check to pass — fix the root cause. The required gate
is the aggregated **`CI - Required Checks`** job. Every validation command, what each check
observes, and how a new gate reaches pull requests that are already open are in
[docs/validation.md](docs/validation.md): **read it before validating a change, or adding or
altering a CI job.** Every change starts with:

AGENTS.md: # devantler-tech/agent-plugins
## Agent guides
| Guide | Read it before |
|---|---|
| [docs/validation.md](docs/validation.md) | validating a change, opening a PR, or adding or altering a CI job |

AGENTS.md: # devantler-tech/agent-plugins
## Maintenance (autonomous AI engineer)
**Validate before any PR:** run the steps in [docs/validation.md](docs/validation.md) (`./scripts/validate-manifests.sh`,
spec-validate each skill, `actionlint` changed workflows). No app build here — manifest parit...
Additional comments: 8
plugins/agentic-engineering/README.md: 1

272-275: LGTM!

plugins/agentic-engineering/scripts/github-mcp-headers.test.sh: 1

126-154: LGTM!

plugins/agentic-engineering/CHANGELOG.md: 1

3-10: LGTM!

.claude-plugin/marketplace.json: 1

23-23: LGTM!

.github/plugin/marketplace.json: 1

23-23: LGTM!

plugins/agentic-engineering/.claude-plugin/plugin.json: 1

4-4: LGTM!

plugins/agentic-engineering/.codex-plugin/plugin.json: 1

4-4: LGTM!

plugins/agentic-engineering/plugin.json: 1

4-4: LGTM!

Walkthrough

The PR updates the agentic-engineering plugin version from 7.1.0 to 7.1.1 across its manifests and marketplace entries. It clarifies when GitHub offers delete_repository and adds self-test checks for the bundled GitHub MCP configuration.

Possibly related PRs

Merge Risk: Minimal · up to a4154

The PR adds targeted MCP checks and consistent release metadata without a material merge risk.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title names the test area and the change: it pins the limits of the bundled GitHub servers. The changeset adds self-test checks to github-mcp-headers.test.sh for the 12 excluded tools, the read-on…
Description check Passed The description gives the reason for the change and explains the README clarification about delete_repository. It lists the test changes, the 7.1.1 version bump with changelog entry, and the validatio…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the test area and the change: it pins the limits of the bundled GitHub servers. The changeset adds self-test checks to github-mcp-headers.test.sh for the 12 excluded tools, the read-only URL, header, toolsets, and sign-in helper of github-ghas-tools, plus negative controls. The title fits the main change, though it does not mention the README or version bump.

Full details: Description check

Explanation

The description gives the reason for the change and explains the README clarification about delete_repository. It lists the test changes, the 7.1.1 version bump with changelog entry, and the validation steps. It is directly related to the changeset.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files. (7 skipped: 7 unsupported.)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@devantler

Copy link
Copy Markdown
Contributor Author

Readiness at a4154fc

  • Checks: every required check passes at this commit. There are no merge conflicts and no review threads.
  • Review: CodeRabbit's full review at this commit is GREEN, with no actionable comments.
  • Tried as a user: this PR changes a self-test and README text, and the test is its runtime surface.
    • I ran github-mcp-headers.test.sh against the real plugins/agentic-engineering/.mcp.json: it passes, and both negative controls are rejected. One drops delete_repository from github's exclusions; the other puts github-ghas-tools back on github's URL.
    • CI runs the test automatically with every plugin *.test.sh.
    • The bump moved all five manifests to 7.1.1, the Codex manifest included.

🤖 Generated with Claude Code

@devantler
devantler marked this pull request as ready for review November 4, 2026 22:43
@devantler
devantler merged commit 52b1d97 into main Nov 4, 2026
24 checks passed
@devantler
devantler deleted the claude/plugins-pin-github-exclusions branch November 4, 2026 22:44
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant