Skip to content

Commit 118d918

Browse files
authored
Merge branch 'main' into fix/web-reload-agents-api-server-scope
2 parents d59dde7 + ae95a97 commit 118d918

91 files changed

Lines changed: 5477 additions & 1556 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/adk-git/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Self-check before committing: read your subject line and ask "does this tell me
7373
4. **50 char limit** on subject line when possible, max 72.
7474
5. **Use body for context** - Add a blank line then explain _why_,
7575
not _how_, when the subject alone isn't enough.
76+
6. **Reference GitHub issues** - If the commit fixes a GitHub issue, include "Fixes #<issue-number>" or "Closes #<issue-number>" (or the full issue URL if cross-repository) in the commit message body.
7677

7778
### Examples
7879

.agents/skills/adk-issue/SKILL.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
name: adk-issue
3+
description: Analyze and triage GitHub issues for the adk-python repository. Use this skill when the user provides an issue number or link to investigate whether the issue is legitimate, whether it should be fixed, and if there is an existing PR addressing it. Triggers on "analyze issue", "issue #", "github issue", "github.com/google/adk-python/issues/".
4+
---
5+
6+
# ADK Issue Analyzer & Triager
7+
8+
This skill provides a structured workflow for analyzing, verifying, and triaging GitHub issues from the `google/adk-python` repository. When a user provides a GitHub issue number or link, use this skill to perform deep investigation and report your findings.
9+
10+
> [!IMPORTANT]
11+
> ## CRITICAL EXECUTION RULE: STOP AFTER STEP 2
12+
> * **Phase 1 (Triage & Report) is strictly read-only**: Do NOT modify any code, create new branches, or write any implementation in your first response.
13+
> * **STOP and ask**: You must present the analysis report first and explicitly ask the user:
14+
> > "Would you like me to create and implement a fix for this issue in the workspace? (Note: The changes and tests will be created in a new branch but NOT committed, so you can review and iterate on them.)"
15+
> * **Wait for Approval**: Only proceed with Phase 2 (Step 3: Implementation) in a subsequent turn *after* the user explicitly approves the recommendation.
16+
17+
## Phase 1: Triage and Analysis (Read-Only)
18+
19+
### Step 1: Retrieve and Parse the Issue
20+
1. **Extract the issue number**: Parse the number from the link or prompt (e.g., `https://github.com/google/adk-python/issues/5882` -> `5882`).
21+
2. **Fetch issue details**: Use the `gh` CLI tool to fetch issue details in JSON format:
22+
```bash
23+
gh issue view <issue_number> --repo google/adk-python --json number,title,body,state,labels,comments,assignees,createdAt,closedAt
24+
```
25+
*If the `gh` CLI is not available or errors out, use `read_url_content` to fetch the public GitHub issue page:*
26+
```
27+
https://github.com/google/adk-python/issues/<issue_number>
28+
```
29+
30+
---
31+
32+
### Step 2: Deep Investigation & Analysis
33+
Address the following four critical questions and present your findings in a structured, premium report.
34+
35+
#### 1. What is broken?
36+
Explain the root cause of the issue or failure:
37+
- **Trace the execution flow**: Identify which components, classes, or functions are malfunctioning.
38+
- **Pinpoint the bug**: Detail why the system is behaving incorrectly and where the failure originates (e.g. incorrect logic, missing configuration, unhandled states).
39+
40+
#### 2. Is the issue legitimate?
41+
Inspect the codebase to confirm if the issue represents a real problem:
42+
- **Examine the description**: Identify the component, class, function, or file referenced.
43+
- **Search the codebase**: Use `grep_search` to locate the relevant files/functions in the local workspace.
44+
- **Inspect the code**: Open the files using `view_file` to analyze the code's current logic.
45+
- **Verify the bug**:
46+
- Is the reported problem actually present in the code?
47+
- Does it produce the reported error or behavior under the current version (ADK 2.0)?
48+
- Is it a documentation typo, setup discrepancy, or a genuine code/logic bug?
49+
- **Document your code evidence**: Reference specific file paths and line ranges (using clickable markdown file links, e.g., `[skill_toolset.py](file:///path/to/file#L123)`) in your report.
50+
51+
#### 3. Should we fix it?
52+
Formulate a recommendation on whether the issue should be addressed:
53+
- **Assess the impact**:
54+
- Does it break core functionality?
55+
- Does it affect standard developer workflows or introduce brittle workarounds?
56+
- Is it a high-priority bug or a low-impact cosmetic/feature request?
57+
- **Check alignment**:
58+
- Does the suggested solution align with `adk-architecture` and `adk-style`?
59+
- Is it consistent with Python idioms and Pydantic validation rules?
60+
- **Evaluate workarounds**: Is there a clean workaround, or is a core fix necessary?
61+
- **Final Recommendation**: Clearly declare whether we should fix it, along with the reasoning and estimated complexity/scope of the fix.
62+
63+
#### 4. Is there a linked PR that fixes this issue?
64+
Search for any existing pull requests that attempt to resolve the issue:
65+
- **Search PRs**: Run `gh pr list --repo google/adk-python --search "<issue_number>"` to list pull requests mentioning the issue number in the branch name, title, or body.
66+
- **Verify the PR details**: If PRs are found, fetch their details:
67+
```bash
68+
gh pr view <pr_number> --repo google/adk-python --json number,title,state,url,body,author
69+
```
70+
- **Analyze progress**: Check if the PR is open, merged, or closed, and if it successfully fixes the issue according to the repository's testing patterns.
71+
- **Present the structured report**: Format and present your findings structured as a premium report following the **Report Template** below.
72+
- **Offer to create a fix**: If no existing PR is found, you MUST explicitly ask the user: "Would you like me to create and implement a fix for this issue in the workspace? (Note: The changes and tests will be created in a new branch but NOT committed, so you can review and iterate on them.)"
73+
74+
---
75+
76+
## Phase 2: Implementation (After User Approval)
77+
78+
### Step 3: Propose and Implement Fix
79+
Once the user has approved the implementation of the fix in the workspace, follow these rules:
80+
- **Do NOT commit the changes**: Leave them uncommitted in the workspace so the user can review and iterate on them.
81+
- **Base the branch on remote HEAD**: When creating the new branch, ensure it is based on the remote tracking branch HEAD (`origin/main`), not the current local branch. For example:
82+
```bash
83+
git checkout -b fix/<issue_number>-<desc> origin/main
84+
```
85+
- **Follow these implementation steps**:
86+
1. **Create the fix**: Modify the necessary source files implementing clean, robust logic following `adk-style` and `adk-architecture`.
87+
2. **Add or update unittests**: Write comprehensive unit tests to verify the behavior and prevent regressions.
88+
3. **Update documentation**: Update `/docs/design` and `/docs/guides` if applicable to the changes.
89+
4. **Update samples**: Update `/contributing/samples` if applicable to demonstrate the new capability or updated behavior.
90+
91+
---
92+
93+
## Report Template
94+
95+
Present your final analysis as a high-quality markdown response using the following structure:
96+
97+
```markdown
98+
# GitHub Issue #<issue_number> Analysis: <Issue Title>
99+
100+
## Detailed Analysis
101+
102+
### 1. Root Cause Analysis ("What is broken?")
103+
- Explanation of the failure or bug (what is failing and why).
104+
- Pinpoint the exact file, function, or design component that is malfunctioning.
105+
106+
### 2. Legitimacy Analysis
107+
- **Status**: [Legitimate Bug / Feature Request / Duplicate / Invalid / Not Reproducible]
108+
- **Evidence**:
109+
- Code references: [filename.py](file:///absolute/path/to/file#L100-L120)
110+
- Analysis of code behavior and why the issue occurs.
111+
112+
### 3. Fix Recommendation
113+
- **Recommendation**: [Should Fix (High Priority) / Should Fix (Medium/Low Priority) / Won't Fix / Needs Discussion]
114+
- **Rationale**:
115+
- Impact on user experience, workflows, or architecture.
116+
- Implementation complexity and risk of side effects.
117+
118+
### 4. Existing Pull Requests
119+
- **Linked PR**: [None / Pull Request #<pr_number> - <PR Title> (<state>)]
120+
- **PR URL**: <PR URL>
121+
- **Analysis**: Brief summary of the PR's approach and status (e.g., "Fixes the bug by implementing X in Y, currently awaiting review").
122+
123+
---
124+
125+
## Executive Summary
126+
1. **What is broken?** [Brief explanation of the root cause or error]
127+
2. **Is the issue legitimate?** [Yes / No - brief explanation]
128+
3. **Should we fix it?** [Yes / No / Needs Discussion - priority & brief reasoning]
129+
4. **Is there a linked PR that fixes this issue?** [None / Yes, PR #<pr_number> - <state>]
130+
```
131+
132+
---
133+
134+
## Tips & Best Practices
135+
> [!TIP]
136+
> Always use explicit repository qualifiers (`--repo google/adk-python`) when running `gh` commands to avoid failures due to custom internal or local git remotes.
137+
138+
> [!IMPORTANT]
139+
> When presenting code files and lines, always use markdown file links that point directly to the files in the workspace. Make sure the link is clickable and formatted as `[filename.py](file:///absolute/path/to/file#L100-L120)` without surrounding backticks around the brackets.

0 commit comments

Comments
 (0)