linear-claude-skill — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linear-claude-skill (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.
Manage Linear issues, projects, and teams
Use this skill when working with manage linear issues, projects, and teams.
Tools and workflows for managing issues, projects, and teams in Linear.
This skill supports multiple tool backends. Use whichever is available:
If MCP tools are NOT available, use the Linear CLI via Bash:
# View an issue
linear issues view ENG-123
# Create an issue
linear issues create --title "Issue title" --description "Description"
# Update issue status (get state IDs first)
linear issues update ENG-123 -s "STATE_ID"
# Add a comment
linear issues comment add ENG-123 -m "Comment text"
# List issues
linear issues listDo NOT report "MCP tools not available" as a blocker - use CLI instead.
CRITICAL: Never expose API keys in terminal output or Claude's context.
# Validate LINEAR_API_KEY is set (masked output)
varlock load 2>&1 | grep LINEAR
# Run commands with secrets injected
varlock run -- npx tsx scripts/query.ts "query { viewer { name } }"
# Check schema (safe - no values)
cat .env.schema | grep LINEAR# ❌ NEVER - exposes key to Claude's context
linear config show
echo $LINEAR_API_KEY
printenv | grep LINEAR
cat .env.env.schema with @sensitive annotation: # @type=string(startsWith=lin_api_) @required @sensitive
LINEAR_API_KEY=LINEAR_API_KEY to .env (never commit this file) {
"mcpServers": {
"linear": {
"env": { "LINEAR_API_KEY": "${LINEAR_API_KEY}" }
}
}
}varlock load to validate before operationsRun the setup check to verify your configuration:
npx tsx ~/.claude/skills/linear/scripts/setup.tsThis will check:
If setup reports a missing API key:
lin_api_)# Option A: Add to shell profile (~/.zshrc or ~/.bashrc)
export LINEAR_API_KEY="lin_api_your_key_here"
# Option B: Add to Claude Code environment
echo 'LINEAR_API_KEY=lin_api_your_key_here' >> ~/.claude/.env
# Then reload your shell or restart Claude CodeVerify everything works:
npx tsx ~/.claude/skills/linear/scripts/query.ts "query { viewer { name } }"You should see your name from Linear.
# Create issue in a project
npx tsx scripts/linear-ops.ts create-issue "Project" "Title" "Description"
# Update issue status
npx tsx scripts/linear-ops.ts status Done ENG-123 ENG-124
# Create sub-issue
npx tsx scripts/linear-ops.ts create-sub-issue ENG-100 "Sub-task" "Details"
# Update project status
npx tsx scripts/linear-ops.ts project-status "Phase 1" completed
# Show all commands
npx tsx scripts/linear-ops.ts helpSee Project Management Commands for full reference.
Best Practice: When planning a new phase or initiative, create the project and its issues together in a single planning session. Avoid creating issues in a catch-all project and moving them later.
#### Recommended Workflow
npx tsx scripts/linear-ops.ts create-project "Phase X: Feature Name" "My Initiative" npx tsx scripts/linear-ops.ts project-status "Phase X: Feature Name" planned npx tsx scripts/linear-ops.ts create-issue "Phase X: Feature Name" "Parent task" "Description"
npx tsx scripts/linear-ops.ts create-sub-issue ENG-XXX "Sub-task 1" "Description"
npx tsx scripts/linear-ops.ts create-sub-issue ENG-XXX "Sub-task 2" "Description" npx tsx scripts/linear-ops.ts project-status "Phase X: Feature Name" in-progress#### Why This Matters
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.