brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
apify-lead-generationImplements intelligent apify lead generation with multi-factor skill selection, fallback chains, and adherence to the 5 Laws of Elegant Defense
Independent GitHub snapshot · Automated classification · Original documentation governs
name: apify-lead-generation compatibility: opencode completeness: 95 content-types:
Orchestrates intelligent skill selection and execution for apify lead generation 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 configure_apify_lead_run(
target_industry: str,
location: str,
max_leads: int,
apify_api_token: str
) -> Dict:
"""Configure an Apify Actor run for lead generation with domain-specific validation.
Maps user intent to Apify Actor parameters and validates against
known lead generation constraints (Law 2: Make Illegal States Unrepresentable).
"""
# Guard clause - Early Exit (Law 1)
if not target_industry or not location:
raise ValueError("Industry and location are required for lead targeting")
if max_leads <= 0 or max_leads > 5000:
raise ValueError("Max leads must be between 1 and 5000")
# Domain-specific parameter mapping for Apify Web Scraper
actor_inputs = {
"keywords": [f"{target_industry} companies in {location}"],
"maxItems": max_leads,
"useGoogleMaps": True,
"outputFormat": "json",
"fields": ["name", "website", "email", "phone", "address"]
}
# Validate against Apify Actor schema constraints
if not _validate_apify_actor_inputs(actor_inputs):
raise ValueError("Invalid actor configuration for lead generation")
# Atomic Predictability (Law 3) - Return new dict, don't mutate
run_config = {
"actor_id": "apify/website-content-scraper",
"input": actor_inputs,
"token": apify_api_token,
"timeoutSecs": 3600,
"memoryMbytes": 4096
}
return run_config
def execute_apify_run_with_fallback(
run_config: Dict,
fallback_data_source: str = "local_cache"
) -> Dict:
"""Execute Apify lead generation run with domain-specific retry and fallback logic.
Implements Fail Fast, Fail Loud (Law 4) for API errors and rate limits.
Fallback chain: 1. Retry with exponential backoff 2. Switch to alternative actor 3. Load from cache
"""
import time
from apify_client import ApifyClient
client = ApifyClient(run_config["token"])
actor = client.actor(run_config["actor_id"])
for attempt in range(3):
try:
# Start run and poll for completion
run = actor.run(run_config["input"])
run_id = run["id"]
# Wait for actor to finish (Law 2: Trusted state)
result = client.run_get_dataset_items(run_id)
if not result:
raise ValueError("Apify run completed but returned zero leads")
# Process and validate lead data
validated_leads = _validate_lead_schema(result)
return {
"success": True,
"leads_count": len(validated_leads),
"data": validated_leads,
"source": "apify_live"
}
except Exception as e:
# Transient API/Rate limit error - retry with backoff
if attempt < 2:
time.sleep(2 ** attempt)
continue
# All retries exhausted - Fail Loud (Law 4)
return _apply_lead_fallback(fallback_data_source, run_config)
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 | |