金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

superpowers-python-automation

superpowers-python-automation 是面向效率工具的 Agent Skill,来自 anthonylee991/gemini-superpowers-antigravity。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

SKILL.md

下载 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)

来源:anthonylee991/gemini-superpowers-antigravity · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本