brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
runway-local-dev-loopBuild and test a Runway integration locally with recorded contracts, deterministic task states, and an opt-in paid canary. Use when shortening iteration without duplicate spend. Trigger with: "develop Runway locally", "mock Runway tasks", "Runway dev loop".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: runway-local-dev-loop description: >- Build and test a Runway integration locally with recorded contracts, deterministic task states, and an opt-in paid canary. Use when shortening iteration without duplicate spend. Trigger with: "develop Runway locally", "mock Runway tasks", "Runway dev loop". allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[service-or-test-path]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Make routine development deterministic and non-billable. The local loop should model Runway's asynchronous protocol accurately, while a separately authorized canary detects provider drift without turning every test run into paid generation.
Use Read and Grep to locate direct SDK calls, task persistence, output download code, retries, and cancellation. Introduce one provider interface if application code currently imports the SDK everywhere.
Create fixtures for PENDING, THROTTLED, RUNNING, SUCCEEDED, FAILED, and CANCELLED. Make only SUCCEEDED include output; make failed fixtures include a machine-readable failure code.
Inject polling time, jitter, timeout, and HTTP transport. Tests should advance a fake clock and never wait five real seconds or contact Runway.
Persist an internal operation ID and provider task ID. Simulate a lost response after task creation and prove recovery reads the saved task rather than issuing another paid request.
Use tiny synthetic files and fixtures for public URL, data URI, and runway:// input. Model auto-crop review, upload expiry, output expiry, and owned-storage copy without retaining real signed URLs.
Require an explicit environment switch, safe prompt, model schema check, credit ceiling, and named approver. Keep CI and ordinary local commands on the fake provider.
Fixtures contain no usable secrets. The optional canary reads RUNWAYML_API_SECRET only in the server process, uses the reviewed version header, and refuses to run when the opt-in approval variables are incomplete.
Use Read and Grep to inspect application configuration, provider documentation, lockfiles, fixtures, schemas, tests, and redacted operational evidence before proposing a change. Use Write or Edit only for an approved implementation, configuration, test, runbook, or redacted receipt. Do not create, cancel, delete, retry, deploy, rotate, revoke, publish, or otherwise mutate production Runway resources without explicit operator approval.
Return the environment, organization alias, operation and task identifiers, API and SDK versions, model or router policy, source-contract fingerprint, task-state evidence, credit boundary, output disposition, unresolved risk, rollback state, and final decision without exposing API secrets, prompt or media contents, or temporary signed URLs.
A developer reproduces a timeout after task creation by advancing a fake clock. The service restarts, finds the stored task ID, resumes retrieval, and copies a fixture output without creating a second task or spending credits.
| Failure | Response |
|---|---|
| A unit test reaches the network | Fail closed and replace the unmocked client path. |
| Fixture accepts output on a non-success state | Correct the contract and add a regression assertion. |
| Canary variables are partially set | Refuse the call and print the missing approval fields without printing the secret. |
Run the suite with network access disabled, prove all six task states, simulate a lost create response and expired output, and separately document any approved live canary. Routine local success must not depend on provider availability.