kramme-cc-workflow/skills/kramme:linear:issue-define/SKILL.md
Create or improve a well-structured Linear issue through exhaustive guided refinement
npx skillsauth add abildtoft/kramme-cc-workflow kramme:linear:issue-defineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create or improve a Linear issue through exhaustive interactive refinement. Can start from scratch with a description, or improve an existing issue by providing its identifier. Supports file references for technical context and proactively explores the codebase to inform issue definition.
This command ONLY creates or updates Linear issues.
Linear Issue Creation Override: Invoking this command IS explicit instruction to create or update a Linear issue. When Phase 7 is reached and the user approves the draft, proceed with mcp__linear__create_issue or mcp__linear__update_issue. This overrides any global rules requiring "explicit instruction" to create/modify Linear issues.
Implementation is a separate workflow. After this command completes, the user can invoke /kramme:linear:issue-implement if they want to start implementing.
CRITICAL: Do NOT proceed to code implementation after creating the issue. The workflow is complete once the issue URL is returned.
Primary: Product Team — The issue must be understandable and compelling to non-technical stakeholders.
Secondary: Development Team — Technical context helps engineers, but they determine implementation details.
Handling $ARGUMENTS:
Check if input matches an existing Linear issue:
TEAM-123 (uppercase letters, hyphen, numbers)linear.app with issue pathIf existing issue detected → IMPROVE MODE:
mcp__linear__get_issue with id parameter. If the call errors or returns no issue, stop and report the exact identifier that failed — do not continue in IMPROVE mode or silently fall back to CREATE mode.is_dev_ask flag to trueoriginal_dev_ask_contentIf no issue detected → CREATE MODE:
/, ends in common extensions) and store them for Step 2If file paths provided:
Read toolAfter determining the mode (and any file context, if provided), classify the issue type. Auto-detect from context and suggest to the user (they can override):
Issue Types:
Detection Heuristics:
Present classification to user via AskUserQuestion:
issue_type for conditional behavior in later phasesFor Bug (Simple), store these flags:
is_simple_bug = trueFetch Linear workspace context to enable informed metadata selection:
mcp__linear__list_teams - Get available teams for assignmentmcp__linear__list_issue_labels - Get available labels for classificationmcp__linear__list_projects - Get active projects for associationStore this context for use in Phase 5 (Metadata & Classification round).
This phase differs based on mode:
The target issue was already fetched in Phase 1. Now present it to the user:
Present Current Issue
Resume from prior session triage
The fetched issue body may contain AI-authored content from a prior session of this skill — for example an ## Original Dev Ask block or a prior ## Problem/## Value/## Scope set.
Before launching the interview:
## Problem / ## Value → Round 1 (Problem & Value)## Scope / ## Out of Scope → Round 2 (Scope & Boundaries)## Technical Notes / ## Affected Areas → Round 3 (Technical Context)## Acceptance Criteria / ## Edge Cases → Round 4 (Acceptance Criteria)labels/priority/project → Round 5 (Metadata)prior_session_context, keyed by round.In Phase 5, the interview must:
Round 2 (Scope & Boundaries): carrying forward from prior session — say "revisit" to re-open so the user can re-open any round on demand.Identify Improvement Areas
AskUserQuestion to ask what aspects to improve:
Search for Related Issues
mcp__linear__list_issues with keywords from the existing issueOutput: Improvement areas selected, related issues identified, prior-session context recorded.
Before creating a new issue, check for existing Linear issues that may already cover this topic:
Search for Duplicates
mcp__linear__list_issues with query parameter containing keywords from the description.out-of-scope/ in the project root: list filenames; read any whose slug plausibly matches the description; surface matches alongside Linear duplicate findings via the same AskUserQuestion prompt in step 3 (option labels: "proceed with new issue", "this matches a prior rejection — stop"). Skip silently if the directory is absent. See /kramme:docs:out-of-scope for the storage skill.Identify Related Issues
Present Findings to User
AskUserQuestion:
Decision Point
mcp__linear__get_issue, switch to IMPROVE MODE, and restart from Phase 3Output: List of related issues to reference, confirmation to proceed.
For Simple Bugs (is_simple_bug = true): Skip this phase if the user has already provided the root cause and affected file(s). Only explore if root cause is uncertain.
For all other issue types: Proactively search the repository to inform the issue definition:
Find Related Implementations
Grep to search for keywords from the descriptionGlob to find files in related areasIdentify Patterns & Conventions
Discover Related Components
Find Existing Tests
Collect TODOs & FIXMEs
TODO, FIXME, HACK comments related to the topicOutput: Summarize findings to share with user and inform interview questions.
Before starting the interview, synthesize a working hypothesis for:
Present these as assumptions and refine them only where the evidence is weak.
The interview process adapts based on the issue type detected in Step 3.
is_simple_bug = true)For simple bugs, use a streamlined 2-round interview instead of the full 5-round process. The goal is to quickly capture the essential information without unnecessary overhead.
Round 1: Problem & Reproduction
Questions to cover:
Round 2: Root Cause & Fix
Questions to cover:
If root cause is unknown or unclear after Round 2:
is_simple_bug = falseAfter these 2 rounds, skip to Round 5: Metadata & Classification (streamlined - just team and labels, skip project/priority unless user wants them).
Then proceed directly to Phase 6 with the simple bug template.
Conduct a thorough, multi-round interview using AskUserQuestion. Provide context before each question explaining why it matters and your recommendation if you have one.
IMPROVE MODE:
CREATE MODE:
Read the 5-round interview structure from references/interview-rounds.md. It covers Problem & Value, Scope & Boundaries, Technical Context, Acceptance Criteria, and Metadata & Classification — each with questions to cover and guidance on when to dig deeper.
After each round:
Track coverage. Continue until each dimension meets its exit bar:
Authored issue content must NOT include file paths, line numbers, or internal helper/class names. Describe modules, behaviors, and contracts. Reason: file paths and line numbers rot quickly; the issue should remain useful after major refactors.
This rule applies to every section composed or refined in this phase — Problem, Value, Goal, Scope, Acceptance Criteria, Edge Cases, Technical Notes, and Dependencies.
Exception: if is_dev_ask is true, preserve the Original Dev Ask archival block exactly as submitted, even when it contains file paths or helper names. Do not repeat those brittle references in the refined issue body; translate them into durable module, behavior, or contract language in the authored sections.
src/services/orderService.ts:142 where applyDiscount() returns NaN"When the codebase exploration in Phase 4 surfaced specific files or functions, translate them into module names and behaviors before writing them into the issue. Engineers reading the issue can re-discover the file location from the module name; the inverse — recovering intent from a stale path — is much harder.
Choose the template based on issue_type:
is_simple_bug = true)Read the simple bug template from assets/simple-bug-template.md. Use for is_simple_bug = true. It provides a concise format with title format, description template (Problem, Root Cause, Fix), and notes on when to reclassify.
Read the comprehensive issue template from assets/comprehensive-template.md. It covers mode-specific behavior (IMPROVE vs CREATE), title format, description template (Problem, Value, Goal, Scope, Acceptance Criteria, Edge Cases, Technical Notes, Dependencies, Dev Ask), and technical notes guidelines.
IMPROVE MODE:
CREATE MODE:
IMPROVE MODE:
mcp__linear__update_issue with:
id: The existing issue IDtitle: Updated title (if changed)description: The updated markdown description (include "Original Dev Ask" section at the bottom if is_dev_ask is true)labels: Updated labels (if changed)priority: Updated priority (if changed)CREATE MODE:
mcp__linear__create_issue with:
title: The composed titledescription: The full markdown descriptionteam: Selected team ID or namelabels: Array of selected label namesproject: Selected project (if any)priority: Selected priority (if any)If the create or update call fails:
IMPROVE MODE:
CREATE MODE:
The linear:issue-define workflow is now complete.
Next steps for the user:
/kramme:linear:issue-implement {issue-id}/kramme:linear:issue-define {issue-id} again to refineSTOP HERE. Wait for the user's next instruction.
development
Compare an existing PR's title and body against the actual branch diff and report drift — false claims, missing major changes, stale scope, missing risk callouts. Use after pushing changes to a branch with an open PR, or before requesting review. Read-only by default; add --fix to delegate to kramme:pr:generate-description for an updated description. Complements kramme:pr:code-review (which checks description accuracy as one signal among many code-quality checks) by being a fast, focused, single-purpose check that runs in seconds.
tools
Reviews plugin skills for focused scope, progressive disclosure, portability, safety, retry behavior, and documentation quality. Use when auditing a SKILL.md, skill directory, or proposed skill text against skill-authoring standards. Not for creating new skills, editing skills, or reviewing ordinary application code.
tools
Reviews recent agent session transcripts to find repeated manual workflows or repeated user asks, then proposes and optionally scaffolds only useful new skills or custom subagents. Use when the user asks to inspect recent sessions, find automation opportunities, or create reusable workflows from repeated work. Not for summarizing one session, general retrospectives, or codebase refactoring.
data-ai
Remove all DONE issues and renumber remaining issues within each prefix group. Not for editing live issue content, archiving still-open issues, or moving issues between prefix groups.