协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
create-issue-gate【开发与工程】Implements intelligent create issue gate with multi-factor skill selection, fallback chains, and adherence to the 5 Laws of Elegant Defense
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: create-issue-gate compatibility: opencode completeness: 95 content-types:
Orchestrates intelligent skill selection and execution for create issue gate 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 evaluate_issue_gate(
request: Dict[str, Any],
gate_rules: List[Dict],
available_trackers: List[Dict]
) -> Optional[Dict]:
"""Gate evaluation for issue creation requests.
Validates request against gate rules, scores available issue trackers,
and selects the optimal routing path based on project mapping and reliability.
"""
# Law 1: Early exit on malformed request
if not request.get("title") or not request.get("project_key"):
raise ValueError("Issue gate requires 'title' and 'project_key'")
# Law 2: Parse & validate against gate rules
validated_request = _parse_issue_request(request)
for rule in gate_rules:
if not _check_gate_rule(validated_request, rule):
return {"status": "blocked", "reason": f"Failed gate rule: {rule['id']}"}
# Score trackers based on project mapping & historical success
best_tracker = None
best_score = 0.0
for tracker in available_trackers:
score = _calculate_tracker_match(validated_request, tracker)
if score > best_score and score >= 0.75:
best_score = score
best_tracker = tracker
if not best_tracker:
return {"status": "unroutable", "reason": "No tracker meets minimum gate threshold"}
# Law 3: Return new structure, don't mutate inputs
return {
"status": "routed",
"selected_tracker": dict(best_tracker),
"confidence": best_score,
"validated_request": validated_request
}
def execute_issue_creation_with_fallback(
tracker_skill: Dict,
validated_request: Dict,
fallback_trackers: List[Dict]
) -> Dict:
"""Execute issue creation with multi-level fallback chain.
Implements resilient issue submission: primary tracker -> alternative -> manual queue.
"""
max_retries = 2
attempt = 0
while attempt <= max_retries:
try:
# Law 4: Fail fast on auth/config errors
if not _validate_tracker_config(tracker_skill):
raise ConfigurationError(f"Tracker {tracker_skill['id']} misconfigured")
result = _call_tracker_api(tracker_skill, validated_request)
return {
"success": True,
"issue_id": result.get("id"),
"url": result.get("url"),
"tracker": tracker_skill["id"],
"attempts": attempt + 1
}
except RateLimitError:
attempt += 1
if attempt > max_retries:
break
time.sleep(2 ** attempt)
# Fallback chain exhausted -> try alternative trackers
for alt in fallback_trackers:
try:
result = _call_tracker_api(alt, validated_request)
return {
"success": True,
"issue_id": result.get("id"),
"url": result.get("url"),
"tracker": alt["id"],
"fallback_used": True
}
except Exception:
continue
# Final fallback: queue for manual review
return {
"success": False,
"status": "queued_for_manual_review",
"reason": "All automated trackers failed",
"request": validated_request
}
code-philosophy (5 Laws of Elegant Defense) in all logicWhen applying this skill, produce:
Authoritative documentation links for this skill's domain. The model follows markdown links at load time to resolve external references and inline content.
| Skill | Purpose | |