linear-workflow — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linear-workflow (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You collect ideas like a magpie. This skill catches them and puts them somewhere real.
When the user describes work — building something, fixing something, wanting something — create a Linear issue for it. No forms, no ceremony. Draft it from context, confirm, file it.
All linctl commands used by this skill are documented in plugins/linear/LINCTL_REFERENCE.md. Read it before running any linctl commands — it has exact flags and gotchas that prevent wasted calls.
At session start, delegate workspace discovery to a background subagent. This is ~4 calls that only need to happen once, and they shouldn't eat the main context window.
subagent_type="general-purpose" and run_in_background=trueplugins/linear/LINCTL_REFERENCE.mdlinctl whoami, linctl team list --json, linctl project list --team <KEY> --newer-than all_time --json, linctl label list --team <KEY> --jsonThe repo's folder name maps to a Linear project name by converting hyphens to spaces and title-casing:
| Folder | Linear Project |
|---|---|
my-project | My Project |
coolwidget | Coolwidget |
Look up whether a matching project exists. If not, ask: "There's no Linear project for this repo yet. Want me to create one?"
When creating a new project, do it explicitly before creating any issues:
# Step 1: Create the project
linctl project create --name "My Project" --team <TEAM_KEY> --state started
# Step 2: Now create issues in it
linctl issue create --title "..." --team <TEAM_KEY> --project "My Project" ...Don't assume --project on issue create will auto-create a project — it won't. The project must exist first.
This includes:
Before creating, briefly confirm what you're about to file: the title, labels, and (if not obvious) a one-line description. Don't make the user fill out a form — draft it from context and let them correct.
After confirmation, delegate the creation to a background subagent:
subagent_type="general-purpose" and run_in_background=trueplugins/linear/LINCTL_REFERENCE.mdlinctl project createFetch labels at the start of each session:
linctl label list --team <TEAM_KEY> --jsonPick the most relevant labels from what's available. Most issues get one type label (Bug, Feature, Improvement) and optionally one domain label if the team has them.
If the work doesn't fit existing labels, suggest a new one: "This feels like it needs an 'Infrastructure' label — want me to create it?"
linctl label create --team <TEAM_KEY> --name "Infrastructure" --color "#8B5CF6"When starting work on something that already has a ticket, move it to "Growing":
linctl issue update <ISSUE_ID> --state "Growing" --assignee meWhen done:
linctl issue update <ISSUE_ID> --state "Harvested"Attach PRs when relevant:
linctl issue attach <ISSUE_ID> --pr https://github.com/org/repo/pull/123When the user asks "what should I work on next", "what's ready", or "what's on the board" — delegate the query to a background subagent, then present results by priority.
subagent_type="general-purpose" and run_in_background=trueplugins/linear/LINCTL_REFERENCE.mdlinctl issue list --team <TEAM_KEY> --state "Ready" --jsonFilter the results to issues with a product label matching the current repo's folder name (e.g., in the magpie repo, filter to issues labeled magpie). Then sort by priority — 1 (Urgent) first, 4 (Low) last, 0 (None) at the end.
Present them as a short list:
Ready to pick up (magpie):
>
1.MZR-87update linear-setup to use linctl for status renaming (Normal) 2.MZR-88add status descriptions to linear-setup workflow (Normal) 3.MZR-89decide on .claude/ and linear-seed-workspace/ in repo (Normal)
>
Want to start one? I'll move it to Growing and assign it to you.
If there are no Ready issues for this repo, say so. If there are Ready issues without a product label, mention them separately — they might be cross-cutting work.
When the user picks one, move it to Growing and assign:
linctl issue update <ISSUE_ID> --state "Growing" --assignee meFor a broader view beyond just Ready issues, delegate to a background subagent:
subagent_type="general-purpose" and run_in_background=trueplugins/linear/LINCTL_REFERENCE.mdlinctl issue list --team <TEAM_KEY> --state "Growing" --json and linctl issue list --assignee me --newer-than all_time --jsonPresent results grouped by state. Include Linear links when available.
Write titles the way you'd describe the work to a friend — lowercase, concise, action-oriented:
No Jira-speak. No "As a user, I want to...". Just what needs doing.
If you're unsure whether something warrants a ticket, lean toward asking: "Want me to track this in Linear?"
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.