kramme-cc-workflow/skills/kramme:siw:issue-define/SKILL.md
Define or improve a local SIW issue file through a guided interview. For Linear or other external trackers use kramme:linear:issue-define.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:siw:issue-defineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 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 local issue through guided 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.
Issue Naming: New issues default to G-XXX (General). Use P1-, P2-, etc. for phase-specific issues. When creating a new issue, recommend a phase prefix if the issue fits an active (not completed) phase.
This command ONLY creates or updates local issue files.
Implementation is a separate workflow. This skill ends when the issue file is written and the tracker is updated. After it completes, the user can invoke /kramme:siw:issue-implement if they want to start implementing.
Workflow files should exist. If siw/OPEN_ISSUES_OVERVIEW.md doesn't exist, suggest running /kramme:siw:init first. If the file is still missing after that suggestion, stop without creating an issue.
Primary: Future You — The issue must be clear enough to understand days or weeks later.
Secondary: Other Developers — Technical context helps others understand the work.
Handling $ARGUMENTS:
Check if input matches an existing issue:
ISSUE-G-001, ISSUE-P1-001, ISSUE-P2-001, etc.G-001, P1-001, P2-001, etc.ISSUE-001 or 001 (treated as G-001)Detection rule: Only treat it as an existing issue if a matching file exists in siw/issues/ISSUE-{prefix}-{number}-*.md.
If existing issue detected → IMPROVE MODE:
G and 001 from ISSUE-G-001, or P1 and 002 from P1-002)siw/issues/ISSUE-{prefix}-{number}-*.mdIf an identifier-like argument was provided but no file exists:
AskUserQuestion to confirm whether they want to create a new issue insteadrequested_prefix and ignore the provided numberIf no issue detected → CREATE MODE:
$ARGUMENTS:
G, G-, P1, P1-, P2, P2-, etc.requested_prefix (without trailing -) and strip it from the description/ or ending in common extensions) and store for Step 2AskUserQuestion to gather the initial conceptIf file paths provided:
Read toolAuto-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 behaviorFor Bug (Simple), store:
is_simple_bug = trueOnly for CREATE MODE. Skip for IMPROVE MODE.
Goal: recommend a phase prefix (P1-, P2-, etc.) when the issue clearly fits an active (not completed) phase. If the issue doesn't suit a phase well, or the relevant phase is completed, recommend G (General, i.e., IDs like G-001).
Inputs to check:
siw/ spec file created by /kramme:siw:init (phase breakdown and tasks).siw/LOG.md for phase completion notes (e.g., "Phase 1 complete", "Status: DONE").siw/OPEN_ISSUES_OVERVIEW.md for existing phase sections and active work.If multiple candidate spec files exist under siw/, ask the user which one is the main spec (exclude siw/LOG.md, siw/OPEN_ISSUES_OVERVIEW.md, and siw/DISCOVERY_BRIEF.md).
Heuristics:
siw/OPEN_ISSUES_OVERVIEW.md is marked with (DONE), treat the phase as completed.siw/OPEN_ISSUES_OVERVIEW.md has a Phase N section and all issues in that phase are DONE, treat the phase as completed.G.requested_prefix), treat it as preferred, but warn if the phase appears completed and offer alternatives.AskUserQuestion (recommendation + confirmation):
header: "Choose Issue Prefix"
question: "Which prefix should we use? Recommendation: {recommended_prefix}- ({reason})."
options:
- label: "Use {recommended_prefix}- (recommended)"
description: "Matches the spec/tasks and the phase isn't completed"
- label: "Use a different phase prefix"
description: "Pick P1-, P2-, P3-, etc."
- label: "Use G- (General)"
description: "Standalone or doesn't fit a phase well"
If {recommended_prefix} is G, omit the separate "Use G-" option to avoid duplicates.
Store issue_prefix based on the selection without the trailing dash (e.g., P1, P2, G).
Present the existing issue to the user:
Present Current Issue
Identify Improvement Areas
AskUserQuestion:
Before creating a new issue, check for existing similar issues:
Scan Existing Issues
siw/issues/ directorysiw/OPEN_ISSUES_OVERVIEW.md for existing issue titlesCheck for Similar Issues
AskUserQuestion:
Generate Next Issue Number
issue_prefix (from Step 4; fallback to requested_prefix if present; otherwise default G)siw/OPEN_ISSUES_OVERVIEW.md table to find highest issue number within that prefix groupsiw/issues/ISSUE-{issue_prefix}-{candidate}-*.md. If any file matches, the tracker is out of sync with siw/issues/. Increment the candidate and re-check until no file matches, then warn the user that the tracker may need a reindex via /kramme:siw:issue-reindex.issue_number{issue_prefix}-{issue_number} (e.g., G-001, P1-002)For Simple Bugs (is_simple_bug = true): Skip if user provided root cause and affected file(s).
For all other issue types: Proactively search the repository:
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
Output: Summarize findings to share with user and inform interview.
Before the interview, synthesize a working hypothesis for:
Use these as assumptions to validate instead of asking the user to restate obvious context.
The interview adapts based on issue type.
is_simple_bug = true)Streamlined 2-round interview:
Round 1: Problem & Reproduction
Round 2: Root Cause & Fix
If root cause unknown after Round 2:
AskUserQuestion (one question, defaulting to "reclassify as Bug (Complex)").Then run a streamlined Metadata pass and store the answers for Phase 5:
AUTO. Localized simple bugs with a known fix and automatable verification are the canonical AUTO case.HITL — <one-line reason> only when the fix has a concrete human-input requirement (external access, manual testing that can't be automated, design review, or an unsettled architectural/judgment call). When unclear, choose AUTO.Confirm inferred metadata with the user before composing. Then proceed to Phase 5 with the simple template.
Multi-round interview using AskUserQuestion.
IMPROVE MODE: Focus on selected improvement areas. Show current content first.
CREATE MODE: Follow standard flow below.
Questions:
Dig deep:
Questions:
Questions:
Leverage exploration findings:
Questions:
Guide toward testable criteria:
Questions:
If the answer isn't supplied, infer Mode from the issue type and exploration findings. Default to AUTO; only choose HITL when you can name a specific blocking human requirement, and confirm before composing.
Read references/issue-templates.md and select the appropriate template:
is_simple_bug = true.Both templates include the Mode: field. When emitting the issue, fill Mode: AUTO or Mode: HITL — <one-line reason> from Round 5.
The references file also defines the Durability rule: issue bodies must describe modules, behaviors, and contracts — not file paths, line numbers, or internal helper/class names. Apply it to every section of the composed issue (Problem, Context, Technical Notes, References).
IMPROVE MODE: Show updated issue with change indicators.
CREATE MODE: Show complete issue.
Create/Update issue file:
siw/issues/ISSUE-{prefix}-{number}-{sanitized-title}.md
Sanitize title:
Issues are grouped by prefix (General, Phase 1, Phase 2, etc.).
For new issues: Add a row to the appropriate section. If the section doesn't exist yet, create the section header and table first.
For updated issues: Update the existing row if title, priority, status, or mode changed.
Read references/tracker-schema.md for the column-layout rules (three coexisting layouts, when to use each, when to migrate), the parallelization-summary recomputation rules, and the (DONE) phase-marker rules.
IMPROVE MODE:
CREATE MODE:
The skill ends here. Surface the file path and tell the user that if they want to implement next, they can run /kramme:siw:issue-implement {prefix}-{number}, or re-run /kramme:siw:issue-define {prefix}-{number} to refine. Do not start implementation.
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.