linear-initiativeby sentry
Creates Linear projects for SDK repositories based on a Linear initiative. Use when rolling out a feature across multiple SDKs, creating SDK projects from…
npx skills add https://github.com/getsentry/sdk-skills --skill linear-initiativeLinear Project Creator
Uses the content of a Linear initiative and creates projects for selected SDKs.
Requirements
This skill requires the Linear MCP server to be configured.
SDK Teams
Only teams with Enabled=Yes are included when creating projects.
| Team | Suffix | Category | Enabled |
|---|---|---|---|
| sentry-java | Android | Mobile | Yes |
| sentry-capacitor | Capacitor | JavaScript, Mobile | Yes |
| sentry-cocoa | Apple | Mobile | Yes |
| sentry-cordova | Cordova | Mobile | Yes |
| sentry-dart | Dart/Flutter | Mobile | Yes |
| sentry-dotnet | .NET | Backend | Yes |
| sentry-electron | Electron | JavaScript | Yes |
| sentry-elixir | Elixir | Backend | Yes |
| sentry-go | Go | Backend | Yes |
| sentry-godot | Godot | Gaming | Yes |
| sentry-java | Java | Backend | Yes |
| sentry-javascript | JavaScript | JavaScript | Yes |
| sentry-kotlin-multiplatform | KMP | Mobile | Yes |
| sentry-laravel | Laravel | Backend | Yes |
| sentry-lynx | Lynx | Mobile | No |
| sentry-native | Native | Gaming | Yes |
| sentry-php | PHP | Backend | Yes |
| sentry-powershell | PowerShell | Backend | No |
| sentry-python | Python | Backend | Yes |
| sentry-react-native | React Native | JavaScript, Mobile | Yes |
| sentry-ruby | Ruby | Backend | Yes |
| sentry-rust | Rust | Backend | Yes |
| sentry-symfony | Symfony | Backend | Yes |
| sentry-unity | Unity | Gaming | Yes |
| sentry-unreal | Unreal | Gaming | Yes |
Project Naming
Naming rules:
- Remove any text in parentheses or brackets from the initiative name
- Add suffix in square brackets
Format: [Clean Initiative Name] [[Suffix]]
Example: Initiative "SDK Handling HTTP 413 (Content Too Large)" → "SDK Handling HTTP 413 [Python]"
Instructions
-
Get the initiative identifier from the user if not provided. This can be an initiative ID, name, or URL.
-
Fetch the initiative details using
mcp__linear-server__query_data:Query: "Get initiative [identifier] with its name, description, targetDate, and any associated projects" -
Present initiative summary to the user including:
- Initiative name
- Description/content
- Target date (if set)
- Any existing projects already linked
-
Ask which SDK teams should have projects created. Present options:
- All SDK teams (all enabled teams from the table)
- By category: JavaScript, Backend, Mobile, or Gaming (filter by Category column, only enabled)
- Individual selection (let user specify specific teams)
-
If user selects individual, ask them to specify which teams from the table.
-
Ask about project naming:
- Default: Use initiative name with team suffix (e.g., "Session Replay [Python]")
- No suffix: Use initiative name only (same name for all projects)
- Custom: Let user specify a custom naming pattern
-
For each selected team, create a project using
mcp__linear-server__create_project:- name: Use the initiative name with suffix from the SDK Teams table (if suffixes enabled)
- team: The team name
- description: "Have a look at the initiative for a full description of this project."
- initiative: Link to the source initiative
- state: Set to "Backlog" (use status ID
d4127831-7550-41f2-918c-d7699c6c7b95) - targetDate: If the initiative has a target date set, apply it to the project
-
Report results showing:
- Successfully created projects with links
- Any failures and reasons
-
(Optional) Ask about creating issues in each project:
- Warn the user: "Issues may be automatically synced to GitHub. Do you want to create an issue in each project?"
- Require explicit confirmation before proceeding
- If confirmed, ask for issue content preference:
- Full description: Use the complete initiative description as the issue body
- Placeholder: "Have a look at the initiative for a full description."
- Create one issue per project using
mcp__linear-server__create_issue:- title: Same as project name (e.g., "SDK Handling HTTP 413 [Python]")
- team: The team name
- project: Link to the created project
- description: Based on user's choice above
Example Usage
User: "Create projects for the Session Replay initiative across all Mobile SDKs"
Response flow:
- Fetch "Session Replay" initiative details
- Confirm the initiative found is correct
- Ask about naming preference (with suffix, no suffix, or custom)
- Create projects with names like:
- "Session Replay [Android]" (sentry-java)
- "Session Replay [Capacitor]" (sentry-capacitor)
- "Session Replay [Apple]" (sentry-cocoa)
- "Session Replay [Dart/Flutter]" (sentry-dart)
- etc.
- Report created project links
Notes
- Always confirm the initiative details before creating projects
- Check for existing projects to avoid duplicates
- Projects are automatically linked to the initiative when the
initiativeparameter is provided - If a project already exists for a team under this initiative, skip it and notify the user
- GitHub Sync Warning: Some teams have Linear-GitHub sync enabled. Issues created in Linear may automatically create corresponding GitHub issues. Always confirm with the user before creating issues.