Linear Redacted Debug Bundle
Overview
Collect contract, version, timing, and failure metadata while excluding credentials, raw environment dumps, customer content, and unrestricted GraphQL variables.
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
- Useful evidence includes operation name, timestamp, status, GraphQL error code/path, SDK version, redacted rate headers, and webhook delivery ID.
- SDK errors can contain queries, variables, response data, and raw errors; each field requires redaction before sharing.
- Webhook payloads can contain issue, comment, customer, and actor data; a delivery ID is safer evidence than the full payload.
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
- Define the recipient, purpose, incident window, and approved data classes before collection.
- Record package and runtime versions, endpoint host, auth mode—not token—and the smallest failing operation name.
- Extract only allowlisted status, error-code/path, timing, request ID, delivery ID, and rate-budget fields.
- Redact authorization, cookies, secrets, URLs with tokens, GraphQL variables, issue text, comments, emails, and user names.
- Review the archive manifest and sample every included file before transmission.
- Record recipient, retention deadline, deletion owner, and the exact secure transfer channel.
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
| Condition | Response |
|---|---|
| Unrestricted env dump requested | Refuse it and collect named allowlisted variables without values. |
| Raw payload required | Use a synthetic reproduction or owner-approved minimized excerpt. |
| Secret detected | Stop, rotate if exposed, scrub the bundle, and re-review. |
| Recipient unclear | Keep the bundle local and do not transmit. |
Examples
Use a compact handoff that makes scope, mutation authority, and verification evidence reviewable.
Input:
incident=LIN-INC-42; operation=IssueLookup; status=400; content=excluded
Expected handoff:
bundle=local; fields=allowlisted; secrets=0; transfer=approval-pending