vet
Analyze GitHub issues to identify suitable contribution opportunities by evaluating clarity, scope, assignment status, and activity level.
Instructions
Analyze a GitHub issue to determine if it is a good candidate for contribution. Checks for clarity, scope, existing assignees, and staleness.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issueUrl | Yes | Full GitHub issue URL to vet (e.g. https://github.com/owner/repo/issues/123) |
Implementation Reference
- packages/core/src/commands/vet.ts:24-48 (handler)The main logic function for vetting a GitHub issue.
export async function runVet(options: VetOptions): Promise<VetOutput> { validateUrl(options.issueUrl); validateGitHubUrl(options.issueUrl, ISSUE_URL_PATTERN, 'issue'); const token = requireGitHubToken(); const discovery = new IssueDiscovery(token); const candidate = await discovery.vetIssue(options.issueUrl); return { issue: { repo: candidate.issue.repo, number: candidate.issue.number, title: candidate.issue.title, url: candidate.issue.url, labels: candidate.issue.labels, }, recommendation: candidate.recommendation, reasonsToApprove: candidate.reasonsToApprove, reasonsToSkip: candidate.reasonsToSkip, projectHealth: candidate.projectHealth, vettingResult: candidate.vettingResult, }; } - packages/mcp-server/src/tools.ts:116-128 (registration)MCP tool registration for the 'vet' command.
// 4. vet — Vet an issue for contribution suitability server.registerTool( 'vet', { description: 'Analyze a GitHub issue to determine if it is a good candidate for contribution. Checks for clarity, scope, existing assignees, and staleness.', inputSchema: { issueUrl: z.string().describe('Full GitHub issue URL to vet (e.g. https://github.com/owner/repo/issues/123)'), }, annotations: { readOnlyHint: true }, }, wrapTool(runVet), ); - Zod input schema definition for the 'vet' tool.
inputSchema: { issueUrl: z.string().describe('Full GitHub issue URL to vet (e.g. https://github.com/owner/repo/issues/123)'), }, annotations: { readOnlyHint: true }, },