Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
flyio-local-dev-loop【部署与运维】Build a repeatable local Fly.io development loop with containers, config validation, private-service access, and disposable remote verification. Use when aligning local behavior with Fly Machines. Trigger with: "develop Fly app locally", "proxy Fly database", "test fly.toml before deploy".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: flyio-local-dev-loop description: >- Build a repeatable local Fly.io development loop with containers, config validation, private-service access, and disposable remote verification. Use when aligning local behavior with Fly Machines. Trigger with: "develop Fly app locally", "proxy Fly database", "test fly.toml before deploy". allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[app-service-and-dev-environment]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Keep local unit and container checks separate from provider integration checks. Use synthetic fixtures by default, validate configuration before deployment, and treat fly proxy or WireGuard access to a remote service as production-adjacent even when initiated from a laptop.
Record runtime image, architecture, process command, port, environment names, health route, filesystem expectations, and provider-only dependencies.
Use deterministic dependencies and synthetic fixtures. Exercise startup, health, shutdown, migration, and failure paths without Fly.io credentials.
Review fly.toml against the app contract, including process groups, services, checks, signals, resources, and mounts. Keep secrets out of the file.
If remote access is necessary, target a development service through an approved proxy or WireGuard path, bind locally, limit time, and never copy remote data into fixtures.
Use a dedicated development app or temporary Machine, immutable image, modest resource size, and clear expiry. Do not reuse the production app as a test target.
Compare local and remote health, logs, architecture, and timing; capture differences, then stop or remove approved disposable resources.
Use an interactive operator session or a development-app token with no production scope. Database credentials remain in the secret manager and are injected only for the bounded session. Close proxies and revoke temporary access after use.
Use Read and Grep to inspect application configuration, deployment evidence, provider documentation, fixtures, logs, schemas, and existing tests before proposing a change. Use Write or Edit only for an approved plan, configuration, implementation, test, or redacted receipt. Do not create, deploy, scale, restart, stop, suspend, destroy, rotate, revoke, expose, or migrate live Fly.io resources without explicit operator approval.
Return the target organization, app, environment, region set, Machine or database identifiers, source-contract fingerprint, evidence, unresolved risks, rollback state, and final decision without exposing tokens, secrets, connection strings, or customer data.
A developer tests the container and health route locally with synthetic data, validates fly.toml, opens a time-bounded proxy to a development database, runs a read-only schema check, deploys to a disposable app, and removes the app after reconciliation.
| Failure | Response |
|---|---|
| Local container passes but remote fails | Compare architecture, listening address, filesystem, environment names, health timing, and remote builder output. |
| Proxy exposes the service broadly | Stop it, bind to the approved local interface and port, rotate if necessary, and record the exposure. |
| Disposable app remains billable | Escalate to the owner and remove it only after confirming no data or rollback dependency. |