界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

linear-local-dev-loop

linear-local-dev-loop

【数据与研究】Build a fast Linear integration development loop using fixtures, contract boundaries, and an isolated test workspace. Use when iterating locally without polluting production Linear data. Trigger with "develop Linear locally", "mock Linear GraphQL", or "test Linear webhooks locally".

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: linear-local-dev-loop description: >- Build a fast Linear integration development loop using fixtures, contract boundaries, and an isolated test workspace. Use when iterating locally without polluting production Linear data. Trigger with "develop Linear locally", "mock Linear GraphQL", or "test Linear webhooks locally". argument-hint: "[repository-path] [graphql|sdk|webhook]" allowed-tools: Read, Glob, Grep, WebFetch, Write, Edit version: 1.13.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT tags:

  • saas
  • linear
  • local-development model: inherit effort: high compatibility: Designed for Claude Code; live verification requires network access and an approved Linear workspace credential

Linear Local Development Loop

Overview

Keep routine tests deterministic and offline, then use a deliberate read-only or sandbox-workspace probe to detect contract drift.

Prerequisites

  • The target repository, Linear workspace, environment, and accountable owner
  • Current security, privacy, compliance, capacity, and change-control requirements
  • An approved Linear credential only when a bounded live verification is necessary

Tool Discipline

Use Read, Glob, and Grep to inspect code, configuration, and evidence. Use WebFetch only for current first-party Linear documentation and package metadata. Use Write or Edit only for requested implementation with known target files. Never write credentials, customer content, unrestricted environment output, or unredacted GraphQL variables.

Current Contract

  • Webhook delivery requires a publicly accessible HTTPS, non-localhost URL; localhost-only receivers are not a production-equivalent test.
  • Signature verification requires the exact raw request body, so body-parser ordering belongs in local contract tests.
  • GraphQL introspection and official generated SDK types are better schema authorities than hand-written guessed fixtures.

Authentication

Use a personal API key only for owner-controlled scripts, OAuth with PKCE for user-delegated applications, or an enabled client-credentials grant for approved automation. Personal keys use Authorization: <API_KEY>; OAuth tokens use Authorization: Bearer <ACCESS_TOKEN>. Store credentials server-side in an approved secret manager.

Treat app approval, team access, scope changes, credential creation, rotation, revocation, and production access as owner-approved actions.

Instructions

  1. Inspect the repository's test framework, GraphQL client boundary, fixtures, environment loading, and webhook middleware order.
  2. Record minimal redacted success, partial-error, auth-error, throttling, pagination, and webhook fixtures.
  3. Inject a fake client at the adapter boundary; do not mock every SDK model method across the application.
  4. Test raw-body signature verification, duplicate delivery IDs, five-second acknowledgement behavior, and queued processing.
  5. Use an isolated workspace and approved tunnel only for explicit end-to-end checks; label and clean up test records.
  6. Add a protected contract probe that detects schema/package drift without mutating production.

Approval Boundaries

Do not create, reveal, rotate, or revoke credentials; authorize an OAuth app; change scopes or team access; create, mutate, archive, or delete workspace data; configure or re-enable webhooks; import or export data; change roles, SCIM, or audit streaming; transmit diagnostics; change paid entitlements; or perform another production mutation without explicit approval from the accountable owner. Keep diagnosis read-only unless implementation was requested.

Output

Return the workspace and team scope, auth mode without credential value, files and contracts inspected, exact operation names, evidence collected, validation result, sensitive fields redacted, remaining risk, accountable owner, approval state, and rollback or next action.

Error Handling

ConditionResponse
Fixture contains customer dataReplace it with a synthetic equivalent and purge retained copies.
Signature fails locallyConfirm the raw bytes reach verification before JSON parsing.
Tunnel unavailableRun signed synthetic requests locally and defer the real-delivery proof.
Test reaches productionFail closed unless the protected live-test gate is explicitly enabled.

Examples

Use a compact handoff that makes scope, mutation authority, and verification evidence reviewable.

Input:

adapter=graphql; fixtures=synthetic; webhook=raw-body; live=false

Expected handoff:

unit=offline; contract=deterministic; production-writes=blocked

Resources

我的收藏