본문으로 건너뛰기
cccskills
무료GitHub에 공개

resilient-data-gathering

Continue analysis after repeated tool failures by embedding known data in Python scripts run through run_shell. Save intermediate results as JSON with timestamps and source metadata, creating records that can be checked and reused in later steps.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Fallback pattern when primary tools fail - embed known data in scripts and persist to JSON for auditability

설치 방법 보기

이럴 때 유용합니다

  • Continuing analysis when search and execution tools fail
  • Comparing prices using competitor data already available
  • Saving intermediate results for later review
  • Resuming analysis from previously saved JSON files

포함된 파일(2)

  • SKILL.md8.5 KB
  • .skill_id38 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Resilient Data Gathering Workflow

Purpose

When search_web, shell_agent, and execute_code_sandbox all fail repeatedly with 'unknown error' or similar tool execution failures, fall back to embedding known domain data directly into run_shell Python scripts and persisting intermediate data to JSON files for auditability and recovery.

When to Use This Pattern

Apply this pattern when:

  1. Trigger condition: 2-3 consecutive failures across multiple tools (search_web, shell_agent, execute_code_sandbox) with 'unknown error' messages
  2. You have domain knowledge: The required data is known or can be reasonably estimated from context
  3. Auditability needed: Intermediate results must be preserved for verification or rollback

Step-by-Step Instructions

Step 1: Recognize Tool Failure Pattern

Monitor for repeated failures across multiple execution tools:

  • search_web returns errors or empty results
  • shell_agent fails to complete autonomous tasks
  • execute_code_sandbox throws 'unknown error' repeatedly

Decision point: After 2-3 failures, switch to the fallback pattern rather than continuing to retry failing tools.

Step 2: Gather Known Domain Data

Collect all data you already know or can reasonably infer:

  • Product specifications, prices, SKUs
  • Competitor information from context
  • Business rules and constraints
  • Historical data from previous task phases

Document this data in a structured format before embedding.

Step 3: Embed Data in run_shell Python Script

Create a Python script that embeds the known data directly as literals or constants:

import json
import os
from datetime import datetime

# ============================================
# EMBEDDED DOMAIN DATA (known from context)
# ============================================
PRODUCT_DATA = {
    "sku_001": {
        "name": "Product A",
        "competitor_price": 29.99,
        "weight_oz": 12,
        "category": "beverage"
    },
    "sku_002": {
        "name": "Product B", 
        "competitor_price": 34.99,
        "weight_oz": 16,
        "category": "snack"
    }
}

BUSINESS_RULES = {
    "margin_target": 0.25,
    "price_floor": 19.99,
    "price_ceiling": 99.99
}

# ============================================
# ANALYSIS LOGIC
# ============================================
def analyze_products(products, rules):
    results = {}
    for sku, data in products.items():
        price_per_oz = data["competitor_price"] / data["weight_oz"]
        recommended_price = data["competitor_price"] * (1 + rules["margin_target"])
        recommended_price = max(rules["price_floor"], min(rules["price_ceiling"], recommended_price))
        
        results[sku] = {
            **data,
            "price_per_oz": round(price_per_oz, 2),
            "recommended_price": round(recommended_price, 2),
            "analysis_timestamp": datetime.now().isoformat()
        }
    return results

# Execute analysis
analysis_results = analyze_products(PRODUCT_DATA, BUSINESS_RULES)

# ============================================
# PERSIST INTERMEDIATE DATA (audit trail)
# ============================================
output_file = "intermediate_analysis.json"
with open(output_file, "w") as f:
    json.dump({
        "metadata": {
            "generated_at": datetime.now().isoformat(),
            "source": "embedded_domain_data",
            "fallback_reason": "tool_execution_failures"
        },
        "results": analysis_results
    }, f, indent=2)

# Signal artifact location for downstream tools
print(f"ARTIFACT_PATH:{os.path.abspath(output_file)}")

# Output results for immediate consumption
print("\n=== ANALYSIS RESULTS ===")
print(json.dumps(analysis_results, indent=2))

Step 4: Execute via run_shell

Run the embedded script using run_shell:

python3 << 'EOF'
[paste the full script from Step 3]
EOF

Or save to a file first:

cat > analysis_script.py << 'SCRIPT'
[paste script content]
SCRIPT

python3 analysis_script.py

Step 5: Persist and Verify Intermediate Results

Ensure JSON files are created and contain valid data:

import json

# Verify persistence
with open("intermediate_analysis.json", "r") as f:
   验证数据 = json.load(f)
    assert "results" in 验证数据
    assert "metadata" in 验证数据
    print(f"✓ Persisted {len(验证数据['results'])} records")

Step 6: Chain Subsequent Operations

Use persisted JSON as input for downstream operations:

import json

# Load previous intermediate results
with open("intermediate_analysis.json", "r") as f:
    previous_results = json.load(f)["results"]

# Build on previous work
for sku, data in previous_results.items():
    # Continue analysis using persisted data
    pass

Best Practices

1. Data Versioning

Always include timestamps and source metadata in persisted JSON:

{
  "metadata": {
    "generated_at": "2024-01-15T10:30:00",
    "source": "embedded_domain_data",
    "version": "1.0"
  },
  "results": {...}
}

2. Incremental Persistence

Save intermediate results at each major step, not just at the end:

# After each significant transformation
with open(f"step_{step_num}_results.json", "w") as f:
    json.dump(current_state, f, indent=2)

3. Clear Artifact Signaling

Use ARTIFACT_PATH: prefix to mark files for downstream tools:

print(f"ARTIFACT_PATH:{os.path.abspath('output.json')}")

4. Error Boundaries

Wrap operations in try/except to ensure partial results are saved:

try:
    results = complex_analysis(data)
except Exception as e:
    print(f"Warning: {e}, saving partial results")
    results = partial_results

with open("results.json", "w") as f:
    json.dump(results, f, indent=2)

5. Documentation Trail

Include fallback reason in metadata for post-execution analysis:

"metadata": {
    "fallback_reason": "search_web and shell_agent failed 3x",
    "original_approach": "web_research_then_analysis",
    "fallback_approach": "embedded_data_direct_analysis"
}

Example: Complete Fallback Workflow

# ===== FALLBACK DATA GATHERING SCRIPT =====
import json
import os
from datetime import datetime

# Known data embedded directly (no external calls)
KNOWN_COMPETITORS = {
    "competitor_a": {"product_x": 24.99, "product_y": 34.99},
    "competitor_b": {"product_x": 26.99, "product_y": 32.99}
}

OUR_PRODUCTS = ["product_x", "product_y"]

# Step 1: Calculate benchmarks
benchmarks = {}
for product in OUR_PRODUCTS:
    prices = [KNOWN_COMPETITORS[c][product] for c in KNOWN_COMPETITORS if product in KNOWN_COMPETITORS[c]]
    benchmarks[product] = {
        "min_price": min(prices),
        "max_price": max(prices),
        "avg_price": sum(prices) / len(prices)
    }

# Step 2: Persist Step 1 results
with open("step1_benchmarks.json", "w") as f:
    json.dump(benchmarks, f, indent=2)
print("ARTIFACT_PATH:step1_benchmarks.json")

# Step 3: Generate recommendations
recommendations = {}
for product, benchmark in benchmarks.items():
    recommendations[product] = {
        "recommended_price": round(benchmark["avg_price"] * 0.95, 2),
        "rationale": f"5% below competitor average of ${benchmark['avg_price']:.2f}"
    }

# Step 4: Persist final results
final_output = {
    "metadata": {
        "created": datetime.now().isoformat(),
        "method": "embedded_data_fallback",
        "preceding_artifact": "step1_benchmarks.json"
    },
    "benchmarks": benchmarks,
    "recommendations": recommendations
}

with open("final_recommendations.json", "w") as f:
    json.dump(final_output, f, indent=2)
print("ARTIFACT_PATH:final_recommendations.json")

print(json.dumps(final_output, indent=2))

Recovery and Audit

After execution, verify the audit trail:

# List all generated artifacts
ls -la *.json

# Validate JSON structure
python3 -c "import json; [json.load(open(f)) for f in ['step1_benchmarks.json', 'final_recommendations.json']]; print('✓ All JSON files valid')"

# Review metadata for fallback context
python3 -c "import json; print(json.load(open('final_recommendations.json'))['metadata'])"

When to Return to Primary Tools

After completing the task with this fallback pattern:

  1. Document which tools failed and why
  2. Report the successful fallback completion
  3. Suggest investigating root cause of tool failures for future runs
  4. Note that the pattern preserved data integrity despite tool issues

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Prepare audio stems, the separate parts of a track, for mixing by matching their durations with silence, loops, or crossfades. Verify each generated and processed file before moving to the next production step.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Match audio parts with different durations
  • Extend drums and melodic parts using suitable methods
  • Check audio specifications before mixing
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

Produce audio in separate stems, meaning individual instrument tracks, and verify each output as you go. Align track lengths with silence, loops, or crossfades, then apply effects, mix a master, and package the files.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Align instrument tracks to a reference audio file
  • Choose how to extend tracks that are too short
  • Verify audio properties after generation and effects
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

Build serverless endpoints that relay external API requests for a dashboard while keeping API keys on the server. Includes Vercel examples for input checks, caching, cross-origin access, and consistent JSON responses.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Connect a dashboard to external APIs without exposing API keys
  • Create endpoints for stock quotes and news
  • Standardize API responses and error handling
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

Produce a master track and separate audio parts through a structured Python workflow. Apply filters and reverb, export WAV files with consistent settings, package them in a ZIP archive, and check that the deliverables meet the requested specifications.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Export a master track with separate audio parts
  • Apply filters and reverb to audio
  • Check duration and format across deliverables
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

Keep document creation moving when web searches and page retrieval repeatedly fail. The skill preserves the original task, uses the model’s existing knowledge, and clearly identifies information that could not be checked against external sources.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Continue drafting after repeated web retrieval failures
  • Preserve task requirements during network errors
  • Mark information that could not be externally verified
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

When Python execution repeatedly fails in execute_code_sandbox, use a file-based alternative: save the script, run it through the shell, and capture results or errors. The guidance covers paths, imports, timeouts, structured output, and optional cleanup.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Retry Python work through the shell after repeated sandbox failures
  • Run longer tasks with an adjusted timeout
  • Execute Python work that needs multiple files or system utilities
HKUDS/OpenSpace7.8천2026년 8월 13일 업데이트

HKUDS의 스킬 모두 보기

이 스킬의 문제 신고