← Back to list

superpowers-python-automation
by anthonylee991
Superpowers for Gemini's Antigravity (like Claude Superpowers)
⭐ 348🍴 39📅 Jan 23, 2026
SKILL.md
name: superpowers-python-automation description: Implements reliable automations in Python for REST APIs: httpx/requests patterns, retries, timeouts, pagination, typing, config, logging, and tests. Use when writing Python scripts/services that call external APIs.
Python Automation Skill
This skill provides concrete Python patterns to implement robust REST API automations.
When to use this skill
- Python scripts that call one or more REST APIs
- ETL jobs, sync tools, webhook handlers
- CLI tools or small services that integrate external systems
Preferred stack (defaults)
- HTTP client: httpx (preferred) or requests
- Config: env vars +
.env(optional) with pydantic-settings if appropriate - Logging: stdlib
loggingwith structured-ish fields - Testing: pytest (+ respx for httpx mocking when useful)
If the project already uses different tools, follow project conventions.
Reference architecture (small but scalable)
client.py: API client wrapper (auth headers, retries, pagination helpers)models.py: typed payload models (dataclasses or pydantic)sync.py: orchestration logic (fetch -> transform -> upsert)main.py: CLI entrypointtests/: unit tests for transform + client behavior
HTTP rules (mandatory)
- Always set timeouts (connect + read)
- Centralize request sending in one function so retries/logging are consistent
- Never log secrets (Authorization headers, tokens)
Retry policy guidance
Retry on:
- network errors/timeouts
- 429 (respect Retry-After when present)
- 500–599 Optional: 408, and 409 only if operation is safe and semantics known
Do NOT retry on:
- most 400–499 (unless explicitly safe)
Timeouts
- Set explicit timeouts; do not rely on defaults.
- Use smaller connect timeout; moderate read timeout.
Pagination patterns
Support at least one helper that can handle:
nextURL in response- cursor token in response
- page/limit parameters
Add a hard stop:
- max pages OR max items OR max elapsed time
Idempotency patterns (Python)
Choose and document:
- Use an
Idempotency-Keyheader when supported - Upsert using a stable
external_id - Persist a lightweight state store:
- simplest: SQLite file (recommended for OSS)
- alternative: JSONL log + compaction
Minimum: ensure repeated runs don’t create duplicates.
Observability (Python)
Minimum logs should include:
run_id- request: method, url/path, status_code, elapsed_ms, attempt
- record counts: processed/created/updated/skipped/failed
Also include a final summary log line.
Verification requirements
For non-trivial work, add:
- unit tests for mapping/transform logic
- at least one test for pagination or retry behavior (mocked)
- a “dry-run” CLI flag (prints intended writes)
Output format when writing code
- Provide a small directory layout
- Explain how to configure env vars
- Include exact commands to run (and test)
Score
Total Score
70/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 100以上
+5
✓最近の活動
3ヶ月以内に更新
+5
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon