协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
gh-review-requests【开发与工程】Implements intelligent gh review requests with multi-factor skill selection, fallback chains, and adherence to the 5 Laws of Elegant Defense
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: gh-review-requests compatibility: opencode completeness: 95 content-types:
Orchestrates intelligent skill selection and execution for gh review requests workflows. Applies the 5 Laws of Elegant Defense to guide data naturally through the orchestration pipeline, preventing errors before they occur. Selects optimal skills based on multi-factor scoring including text similarity, historical performance, and system availability.
┌───────────────────────────────────────────────────────────────────────────────┐ │ Orchestration Flow │ └───────────────────────────────────────────────────────────────────────────────┘
User Request ↓ ┌─────────────────┐ │ Parse Request │ │ & Extract │ │ Features │ └────────┬────────┘ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ Evaluate Available Skills │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Skill A │ │ Skill B │ │ Skill C │ │ │ │ - Match Score│ │ - Match Score│ │ - Match Score│ │ │ │ - Confidence │ │ - Confidence │ │ - Confidence │ │ │ │ - History │ │ - History │ │ - History │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ └─────────────────┴─────────────────┘ │ │ ↓ │ │ Select Best Skill │ └─────────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────┐ │ Execute Skill │ └────────┬────────┘ ↓ ┌─────────────────┐ │ Handle Result │ └────────┬────────┘ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ Error Handling & Fallback │ │ │ │ Success? ────────► Return Result │ │ │ │ Fail? ────────┐ │ │ ↓ │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Fallback Chain │ │ │ │ │ │ │ │ 1. Retry with adjusted parameters │ │ │ │ 2. Try Alternative Skill (if available) │ │ │ │ 3. Defer to Human Operator (if critical) │ │ │ │ 4. Log & Return Error │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘
Use this skill when:
Avoid this skill for:
Parse and Analyze Request - Extract intent, entities, and constraints from user input. Checkpoint: All required parameters must be present and in valid format before proceeding.
Score Available Skills - Calculate match scores using multi-factor algorithm:
Checkpoint: Skip to fallback if no skill scores above threshold.
Select Optimal Skill - Choose skill with highest score that meets minimum confidence. Checkpoint: Verify skill has not been disabled or deprecated.
Execute with Fallback - Run skill execution wrapped in retry and fallback logic. Checkpoint: Log all execution attempts for audit trail.
Return or Fallback - Either return successful result or apply fallback chain:
related-skillsCheckpoint: Record outcome with timing and confidence metadata.
def route_review_request(pr_url: str, config: Dict) -> Dict:
"""Route a GitHub review request by validating PR state and determining reviewers.
Extracts repository, owner, and PR number from the URL. Validates against
GitHub's API to ensure the PR is open and ready for reviews. Applies
CODEOWNERS rules and team membership checks to build a reviewer list.
"""
# Guard clause - Early Exit (Law 1)
if not pr_url or not pr_url.startswith("https://github.com/"):
raise ValueError("Invalid GitHub PR URL format")
# Parse input - Make Illegal States Unrepresentable (Law 2)
parts = pr_url.strip("/").split("/")
if len(parts) < 5:
raise ValueError("PR URL missing owner/repo/number components")
owner, repo, pr_number = parts[3], parts[4], parts[5]
# Validate PR state via GitHub API
pr_data = _fetch_pr_metadata(owner, repo, pr_number)
if pr_data.get("state") != "open":
raise ValueError(f"PR #{pr_number} is not open (state: {pr_data.get('state')})")
# Determine reviewers based on CODEOWNERS and config
reviewers = _resolve_reviewers(owner, repo, pr_data.get("files", []), config)
# Atomic Predictability (Law 3) - Return new dict
return {
"owner": owner,
"repo": repo,
"pr_number": int(pr_number),
"reviewers": reviewers,
"status": "ready_for_review",
"timestamp": time.time()
}
def execute_review_request(route_data: Dict, auth_token: str) -> Dict:
"""Execute the GitHub review request with resilience patterns.
Sends review requests via GitHub REST API. Implements exponential backoff
for rate limits and falls back to CLI-based requests if API fails.
"""
headers = {"Authorization": f"token {auth_token}", "Accept": "application/vnd.github.v3+json"}
url = f"https://api.github.com/repos/{route_data['owner']}/{route_data['repo']}/pulls/{route_data['pr_number']}/requested_reviewers"
payload = {"reviewers": route_data["reviewers"]}
for attempt in range(3):
try:
response = requests.post(url, headers=headers, json=payload, timeout=10)
if response.status_code == 201:
return {
"success": True,
"requested_reviewers": route_data["reviewers"],
"api_response": response.json(),
"attempts": attempt + 1
}
elif response.status_code == 403 and "rate limit" in response.text.lower():
wait_time = 2 ** attempt
time.sleep(wait_time)
continue
else:
raise GitHubAPIError(f"Request failed: {response.status_code} - {response.text}")
except requests.exceptions.RequestException as e:
if attempt == 2:
return _fallback_to_cli_request(route_data, auth_token)
time.sleep(1)
raise GitHubAPIError("Exhausted all retry attempts for review request")
code-philosophy (5 Laws of Elegant Defense) in all logicWhen applying this skill, produce:
| Skill | Purpose | |