Linear Task Creation Workflow
When asked to “create a Linear task”, follow this exact flow. Ask the required questions first, then proceed.
Required questions (ask before creating)
- •Assignee: "Assign to who? (me | unassigned)"
- •Resolve "me" via MCP Linear current user.
- •Project: "Which project? (default: <app-specific default>)"
- •Present the app-specific default (see below) as a suggestion; let user confirm or override.
- •Team: "Which team? (default: Build)"
- •Priority/Labels (optional): "Any priority or labels to add?"
If the user gives terse instructions like "assign to me" or "no project", respect that.
Defaults (when not specified)
- •team: Build
- •assignee: unassigned
- •project: determined by current working directory:
- •
apps/web→ Vana App v2 - •
apps/stake→ Vana Staking Upgrade - •other → ask user (no automatic fallback)
- •
- •labels: none
- •priority: none
Issue composition
- •Title: concise imperative summary
- •Description:
- •Short problem statement and context
- •Acceptance Criteria list (bullet points)
- •Notes/links if relevant
Branch, commits, PR
- •Always work on the Linear task branch.
- •If Linear returns
gitBranchName: checkout that exact branch before making any code changes/commits. - •If Linear does not return a branch: create and checkout a new branch after the issue is created (to include the identifier).
- •If Linear returns
- •If the task already has a branch (or multiple branches already exist):
- •Do not try to reuse the same branch name (it will collide).
- •Create a new uniquely-named branch for the same ISSUE_ID by suffixing
-2,-3, or a short purpose tag.- •Example:
callum/app-628-resolve-nextjs-warning-2 - •Example:
callum/app-628-resolve-nextjs-warning-fix-telemetry
- •Example:
- •Branch name (when creating one):
<assigneeHandle-or-gitUser>/<ISSUE_ID>-<kebab-title>
- •Example: callum/app-628-resolve-nextjs-externalization-warning-for-graphql-in
- •Commit prefix: ISSUE_ID: <commit message>
- •Example: APP-628: add graphql dependency to apps/web
- •PR title: ISSUE_ID: <issue title>
- •Include the Linear issue link in the chat after creation.
Execution steps
- •Ask the “Required questions”.
- •Create the Linear issue with team, project, assignee, labels/priority per answers/defaults.
- •Echo back: issue link, identifier, and branch name to be created.
- •Checkout the Linear task branch (prefer
gitBranchNameif provided by Linear; otherwise create one). - •Do not run the dev server automatically. Avoid long-running processes.
- •Use pinned pnpm version from repo root when making dependency changes. Commit
updated
pnpm-lock.yamlonly when changes are deliberate. - •Do not commit unless the user explicitly asks you to commit. When asked, reference the ISSUE_ID in commit messages.
Edge cases
- •If working outside
apps/weborapps/stake: ask the user which project to use (no silent fallback). - •If the app-specific project is not found in Linear: ask whether to use "no project" or a different project.
- •If "me" cannot be resolved via MCP: fall back to unassigned and notify the user.
- •If the user says "create, then immediately branch": do steps 2 and 4 without additional prompts.