Back to list
anthonylee991

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 logging with 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 entrypoint
  • tests/: 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:

  • next URL 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-Key header 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