协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
clari-sdk-patterns【开发与工程】Build and validate a typed local Clari REST client with bounded retries, job polling, pagination, and redaction. Use when standardizing application code around public contracts. Trigger with: "build a Clari client", "wrap the Clari API", "type Clari responses".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: clari-sdk-patterns description: >- Build and validate a typed local Clari REST client with bounded retries, job polling, pagination, and redaction. Use when standardizing application code around public contracts. Trigger with: "build a Clari client", "wrap the Clari API", "type Clari responses". allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[surface-language-and-owned-endpoints]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Wrap only the endpoints the application owns instead of inventing a broad unofficial SDK. Keep Revenue, v2 ingestion, and Copilot clients separate so their base URLs, headers, limits, schemas, and mutation policies cannot bleed across boundaries.
Create separate Revenue, ingestion, and Copilot transports with immutable base URLs and header builders.
Represent identifiers, timestamps, pagination, export job states, error bodies, and optional fields explicitly; reject unknown destructive actions by default.
Set connect and response timeouts, user-agent identity, bounded retries for eligible transient failures, and correlation metadata without logging credentials or payloads.
Expose queue, status, cancel, and result operations as an explicit state machine; do not hide long-running work behind an unbounded method.
Schema-check provider responses before domain mapping and preserve the redacted original error ID when validation fails.
Run offline contract tests, one non-production read smoke test, and a rollback test against the previously pinned client version.
Construct apikey, partnerkey, X-Api-Key, and X-Api-Password headers only inside the matching transport. Accept secret references rather than literal values and guarantee header redaction in errors, traces, and snapshots.
Use Read and Grep to inspect configuration, provider contracts, fixtures, logs, schemas, and existing tests before proposing a change. Use Write or Edit only for the approved plan, implementation, test, or redacted receipt; do not issue, rotate, revoke, create, update, cancel, delete, export, ingest, or publish provider data without explicit operator approval.
Return the exact surface, environment, resource or job identifiers, contract fingerprint, evidence, unresolved risks, and final decision without exposing credentials or sensitive customer data.
A Revenue client returns a typed job handle from a forecast request and requires the caller to poll to DONE before fetching results. A separate Copilot client cannot access or serialize the Revenue token.
| Failure | Response |
|---|---|
| Response fails schema validation | Preserve a redacted sample and contract fingerprint, then stop downstream loading. |
| Retry repeats a mutation | Require an explicit idempotency decision and operator review; never assume POST or PUT is safe to replay. |
| Wrong credential reaches a surface | Fail before network I/O through separate credential types and header builders. |