AgentSkillsCN

linear-task-creation

以受让人、项目、团队以及分支/提交约定为基础,统一 Linear 任务的创建规范。适用于在被要求创建 Linear 任务或问题时使用。

SKILL.md
--- frontmatter
name: linear-task-creation
description:
  Standardize Linear task creation with assignee, project, team, and
  branch/commit conventions. Use when asked to create a Linear task or issue.

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)

  1. Assignee: "Assign to who? (me | unassigned)"
    • Resolve "me" via MCP Linear current user.
  2. Project: "Which project? (default: <app-specific default>)"
    • Present the app-specific default (see below) as a suggestion; let user confirm or override.
  3. Team: "Which team? (default: Build)"
  4. 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/webVana App v2
    • apps/stakeVana 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 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
  • 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

  1. Ask the “Required questions”.
  2. Create the Linear issue with team, project, assignee, labels/priority per answers/defaults.
  3. Echo back: issue link, identifier, and branch name to be created.
  4. Checkout the Linear task branch (prefer gitBranchName if provided by Linear; otherwise create one).
  5. Do not run the dev server automatically. Avoid long-running processes.
  6. Use pinned pnpm version from repo root when making dependency changes. Commit updated pnpm-lock.yaml only when changes are deliberate.
  7. 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/web or apps/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.