+ "description": "Read operations for GitHub Projects V2.\n\nMethods: get_project, list_projects, get_project_field, list_project_fields, get_project_item, list_project_items\n\nIMPORTANT DISTINCTION:\nProjects (list_projects) and Project Items (list_project_items) use DIFFERENT query intent patterns.\n\n1. Project queries (list_projects) target PROJECT METADATA ONLY (e.g. title, state, updated time). DO NOT use item-only qualifiers like 'is:issue', 'is:pr', labels, assignee, sprint-name, parent-issue, etc. Those belong to items.\n2. Item queries (list_project_items) target ISSUES or PULL REQUESTS inside a project. MUST specify content type using 'is:issue' or 'is:pr' unless the user explicitly wants a mixed set.\n\nUSAGE GUIDANCE (CRITICAL):\n1. Call list_project_fields BEFORE requesting item field values so you can supply correct field IDs in 'fields'.\n2. For list_projects: keep queries lightweight and focused (e.g. title:*roadmap* state:open). Avoid item-level qualifiers.\n3. For list_project_items: ALWAYS build a precise, multi-filter query mapping user intent (see examples below). Start with type filter if scope is issues or PRs.\n4. To retrieve field values for items, pass discovered field IDs via 'fields' on EVERY paginated call; otherwise only title metadata returns.\n5. Pagination: After any list_* call, if pageInfo.hasNextPage=true, immediately repeat with after=pageInfo.nextCursor (same method, query, fields, per_page) until false. Don't change per_page mid-stream.\n6. Aggregate ALL pages BEFORE summarizing or analyzing to avoid incomplete results.\n\nCOMMON PROJECT (list_projects) QUERY EXAMPLES:\n- title:*roadmap*\n- state:open title:*2025*\n- updated:>@today-30d state:open\n\nCOMMON PROJECT ITEM (list_project_items) QUERY EXAMPLES:\n- state:open is:issue priority:p1\n- is:pr status:\"In Review\" team-name:\"Backend Team\"\n- is:issue sprint-name:\"Q1 Planning\" assignee:@me\n- unblocks:*copilot* is:issue state:open\n\nLOGIC RULES (items): Space-separated qualifiers = AND; commas inside one qualifier = OR (label:bug,critical). Use leading '-' for negation ( -label:wontfix ).",
0 commit comments