LearnNewsExamplesServices
Frontmatter
id14195
titleTag github-workflow MCP tools with tier projection (read/write/extended/admin) — #14164 slice
stateClosed
labels
enhancementaiarchitecture
assigneesneo-opus-vega
createdAtJun 27, 2026, 5:20 AM
updatedAtJun 27, 2026, 8:58 AM
githubUrlhttps://github.com/neomjs/neo/issues/14195
authorneo-opus-vega
commentsCount0
parentIssue14164
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 27, 2026, 8:58 AM

Tag github-workflow MCP tools with tier projection (read/write/extended/admin) — #14164 slice

Closed v13.1.0/archive-v13-1-0-chunk-7 enhancementaiarchitecture
neo-opus-vega
neo-opus-vega commented on Jun 27, 2026, 5:20 AM

Context — child of #14164

Sibling of #14188 (kb tagging). Tags github-workflow, applying the #14164 tier-projection mechanism. Landed together with the kb slice in the same PR (the compliance tests share OpenApiValidatorCompliance.spec.mjs, so the slices are naturally stacked).

Scope (this leaf — delivered by the PR)

  • github-workflow openapi: every operation tagged x-neo-tool-tier + the root x-neo-harness-tool-projection policy (defaultVisibleTiers: [read, write], operatorOnlyTiers: [admin]).
  • Tier split (24 tools → 10 read / 8 write / 5 extended / 1 admin):
    • read (always-on): healthcheck, get_mcp_tool_handbook, list_labels, list_pull_requests, get_pull_request_diff, get_conversation, get_local_issue_by_id, list_issues, get_discussion_conversation, get_viewer_permission
    • write (always-on core-maintainer writes): manage_issue_comment, manage_issue_labels, manage_issue_assignees, manage_pr_review, manage_pr_reviewers, create_issue, update_issue_relationship, signal_state_transition
    • extended (on-demand): manage_issue_projects, create_discussion, manage_discussion, manage_discussion_comment, sync_all
    • admin (operator-only, dangerous): checkout_pull_request (desyncs the canonical clone)
  • Compliance tests lock the tagging (policy + classification + dangerous-not-read).

→ harness-embedded loads 18 of 24 (a 25% cut — smaller than kb because a maintainer's core surface on gh genuinely includes the writes); the 6 withheld stay reachable via get_mcp_tool_handbook. No capability removed.

Why gh's visible set differs from kb

kb's writes are all admin-destructive, so visible=[read] was clean. gh has core maintainer-writes (review, comment, create, assign, label, link, transition) that a maintainer uses constantly — so visible=[read, write]. The cross-server tier vocab (read/write/extended/admin) is shared; each server's defaultVisibleTiers reflects its own core. The core-line is review-adjustable — flagged for peer sanity-check on #14164.

Acceptance Criteria

  • Every gh op carries a valid x-neo-tool-tier; the policy declares defaultVisibleTiers: [read, write].
  • Mutating ops are NOT read; checkout_pull_request is admin.
  • Compliance tests assert policy + classification + dangerous-not-read.
  • No capability removed — extended/admin reachable via the handbook.

Test Evidence

OpenApiValidatorCompliance.spec.mjs — 3 new gh tier tests + the existing gh per-server loop green (37 passed total with kb). YAML parse + tier distribution verified.

Authored by Vega (Claude Opus 4.8, Claude Code). Origin session 1bb8a27b-ae0d-4668-a9a2-acbbe2387512.

tobiu referenced in commit ae0b6b1 - "feat(ai): tag knowledge-base + github-workflow MCP tools with tier projection — #14164 slices (#14190) on Jun 27, 2026, 8:58 AM
tobiu closed this issue on Jun 27, 2026, 8:58 AM