| name | linear |
| description | Use Symphony's `linear_graphql` tool for raw Linear GraphQL operations during
app-server sessions.
|
Linear GraphQL
Use this skill for direct Linear GraphQL work inside Symphony-managed Codex sessions.
Primary tool
Use the linear_graphql client tool exposed by Symphony. It reuses the session's configured Linear auth.
Tool input:
{
"query": "query or mutation document",
"variables": {
"optional": "graphql variables object"
}
}
Rules:
- Send one GraphQL operation per tool call.
- Treat a top-level
errors array as failure even if the tool call itself succeeds.
- Keep reads and mutations narrow.
Common queries
Read an issue by key
query IssueByKey($key: String!) {
issue(id: $key) {
id
identifier
title
description
url
branchName
state {
id
name
type
}
project {
id
name
}
attachments {
nodes {
id
title
url
sourceType
}
}
}
}
Read team workflow states
query IssueTeamStates($id: String!) {
issue(id: $id) {
id
team {
id
key
name
states {
nodes {
id
name
type
}
}
}
}
}
Create or update the workpad comment
mutation CreateComment($issueId: String!, $body: String!) {
commentCreate(input: { issueId: $issueId, body: $body }) {
success
comment {
id
url
}
}
}
mutation UpdateComment($id: String!, $body: String!) {
commentUpdate(id: $id, input: { body: $body }) {
success
comment {
id
body
}
}
}
Move an issue to another state
mutation MoveIssueToState($id: String!, $stateId: String!) {
issueUpdate(id: $id, input: { stateId: $stateId }) {
success
issue {
id
identifier
state {
id
name
}
}
}
}
Attach a GitHub PR
mutation AttachGitHubPR($issueId: String!, $url: String!, $title: String) {
attachmentLinkGitHubPR(
issueId: $issueId
url: $url
title: $title
linkKind: links
) {
success
attachment {
id
title
url
}
}
}
Discovery
When you do not know an input type or mutation shape, use targeted schema introspection:
query ListMutations {
__type(name: "Mutation") {
fields {
name
}
}
}