Borrowing it
Nothing to install: this file belongs to kwanpham2195/symphony-go. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kwanpham2195/symphony-go/main/.agents/skills/linear/SKILL.mdgit clone --depth 1 https://github.com/kwanpham2195/symphony-goWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kwanpham2195/symphony-go/linear)<a href="https://agentmods.dev/skills/kwanpham2195/symphony-go/linear"><img src="https://agentmods.dev/badge/skills/kwanpham2195/symphony-go/linear/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kwanpham2195/symphony-go/linear"><img src="https://agentmods.dev/badge/skills/kwanpham2195/symphony-go/linear.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00028 | $0.00775 |
| Opus 5.5 | $0.00011 | $0.00310 |
| Sonnet 5.5 | $0.00006 | $0.00155 |
| Haiku 4.5 | $0.00003 | $0.00077 |
Grade A, and why
linear scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Linear GraphQL
Use the linear_graphql tool exposed by Symphony's app-server session for raw Linear API access.
Tool Input
{
"query": "query or mutation document",
"variables": { "optional": "graphql variables" }
}
One operation per call. Top-level errors array means the operation failed.
Common Operations
Query an issue
query IssueByKey($key: String!) {
issue(id: $key) {
id identifier title
state { id name }
project { id name }
url description
}
}
Get team workflow states
query IssueTeamStates($id: String!) {
issue(id: $id) {
team {
states { nodes { id name type } }
}
}
}
Move issue to a state
mutation MoveIssue($id: String!, $stateId: String!) {
issueUpdate(id: $id, input: { stateId: $stateId }) {
success
issue { id identifier state { name } }
}
}
Create a comment
mutation CreateComment($issueId: String!, $body: String!) {
commentCreate(input: { issueId: $issueId, body: $body }) {
success
comment { id url }
}
}
Update a comment
mutation UpdateComment($id: String!, $body: String!) {
commentUpdate(id: $id, input: { body: $body }) {
success
comment { id body }
}
}
Attach a GitHub PR
mutation AttachPR($issueId: String!, $url: String!, $title: String) {
attachmentLinkGitHubPR(issueId: $issueId, url: $url, title: $title, linkKind: links) {
success
attachment { id url }
}
}
Schema introspection
query ListMutations {
__type(name: "Mutation") { fields { name } }
}
query InspectInput($name: String!) {
__type(name: $name) {
inputFields { name type { kind name ofType { kind name } } }
}
}
Post-PR Workflow
After pushing a PR, move the issue to In Review so the orchestrator stops re-dispatching:
- Fetch the team's workflow states to get the exact
stateIdfor "In Review". - Update the issue state:
mutation MoveIssue($id: String!, $stateId: String!) { issueUpdate(id: $id, input: { stateId: $stateId }) { success issue { id identifier state { name } } } } - Attach the PR URL to the issue.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 137 lines · 28 tokens per session scan A 48838751bd9e
linear is a skill published in the GitHub repository kwanpham2195/symphony-go (10 stars, last pushed 5mo ago), licensed MIT. It adds 28 tokens to every session and 775 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
codex-symphony
Install and operate a portable OpenAI Symphony + Linear orchestration setup in any Git repository. Use when the user wants a one-command local Symphony runner, a reusable WORKFLOW template, background launch scripts, or a Codex wrapper that restarts Symphony automatically when reopening the CLI.
linear-cli
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
cyrus-setup-repository
Add one or more Git repositories to Cyrus configuration so it can process issues from those repos.
summarize
Format a final summary message for Linear. Your output is automatically streamed to the Linear agent session — just format it well, do not post it yourself.
linearis
Manage Linear.app work from the command line with the linearis CLI (bins linearis / linear), which outputs JSON: issues/tickets, projects, cycles (sprints), milestones, initiatives (roadmap), documents, labels, teams, users, and issue discussions/comments. Use when the user mentions Linear, a ticket identifier like…
cyrus-setup-linear
Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.