kotlin/file-youtrack-issue
> File YouTrack issues for the kotlinx-rpc project (KRPC). Use this skill whenever the user wants to create a bug report, feature request, task, or any issue in YouTrack for kotlinx-rpc. Also use it when the user mentions filing a ticket, reporting a bug, creating a task, logging an issue, or tracking work in YouTrack — even if they don't say "YouTrack" explicitly but the context is clearly about issue tracking for this project. Covers choosing the right issue type, scope, priority, tags, and writing well-structured descriptions that match the team's conventions.
npx skills add https://github.com/Kotlin/kotlinx-rpc --skill file-youtrack-issue
This skill guides you through creating well-formed issues in the KRPC YouTrack project.
The project key is KRPC and issues are tracked at https://youtrack.jetbrains.com/issue/KRPC-*.
kRPC and gRPC are protocols, not transports. This distinction matters throughout the
project. kRPC is the custom RPC protocol; gRPC is the HTTP/2 + Protocol Buffers RPC protocol.
Always refer to them as protocols in issue descriptions and summaries.
Use the mcp__youtrack__* MCP tools for standard operations (create, search, update, tag).
Before creating an issue, always confirm the summary, type, scope, and description with
the user — issues are visible to the team immediately.
If MCP tools lack a capability you need (e.g., bulk operations, complex queries, attachment
uploads, or reading fields not exposed by the MCP tools), fall back to the YouTrack REST API
directly. The YOUTRACK_TOKEN environment variable contains a permanent Bearer token:
curl -s -H "Authorization: Bearer $YOUTRACK_TOKEN" \
"https://youtrack.jetbrains.com/api/issues?query=project:KRPC&fields=id,summary"
The REST API base URL is https://youtrack.jetbrains.com/api. See the
for available endpoints.
Read references/krpc-fields.md for the full field reference (scopes, types, priority, tags,
optional fields). The key points:
not the serialization format.
Normal.Vibe-report tag after creation (mandatory for AI-created issues).Scope must be a JSON array, even for a single value.Read references/description-templates.md for per-type templates (Bug, Feature/Task,
Meta Issue, Usability/Performance).
The critical rule: Do NOT include proposed solutions or implementation approaches.
The agent's job is to analyze and report the problem clearly, not to solve it. Only include
an approach if the user explicitly dictates one.
YouTrack does not have semantic search — it only matches exact keywords. A single broad
query will miss duplicates. Run at least 3-5 targeted queries using different keyword
combinations and synonyms:
mcp__youtrack__search_issues(query="project: KRPC <exact keyword 1>")
mcp__youtrack__search_issues(query="project: KRPC <exact keyword 2>")
mcp__youtrack__search_issues(query="project: KRPC <synonym or related term>")
mcp__youtrack__search_issues(query="project: KRPC Scope: {<relevant scope>}")
For example, for a streaming flow completion bug, search for:
project: KRPC callServerStreamingproject: KRPC streaming flow completesproject: KRPC flow hangproject: KRPC Scope: {kRPC. Client}Also use scope-filtered searches to browse related issues. If a potential duplicate exists,
mention it to the user and let them decide.
Use mcp__youtrack__create_issue with these parameters:
project: "KRPC"
summary: "<concise title — imperative or noun phrase>"
description: "<markdown description following templates from references/description-templates.md>"
customFields: {
"Type": "<one of the types from references/krpc-fields.md>",
"Priority": "<priority>",
"Scope": ["<scope1>", "<scope2>"] # MUST be a JSON array, not a comma-separated string, even if there's only one
}
Multiline text fields (description, summary): The parameter value must contain
actual newlines, not literal \n escape sequences. YouTrack stores the string as-is —
literal \n will render as visible \n characters instead of line breaks.
Then immediately add the Vibe-report tag (mandatory for AI-created issues) plus any other
relevant tags with mcp__youtrack__manage_issue_tags.
[GitHub]After creating the issue, report back:
KRPC-540 https://youtrack.jetbrains.com/issue/KRPC-540)If the user wants to link it to a parent issue, use the parentIssue parameter. If they want
to add comments or other modifications after creation, use mcp__youtrack__update_issue.
User reports a bug while coding:
Vibe-report tag + any other relevant tagsUser wants to track a task:
Vibe-report tag + any other relevant tagsUser mentions a GitHub issue to track:
[GitHub] prefix and link in descriptiongithub-issue tag — it's auto-importedVibe-report tagTake kotlin/file-youtrack-issue from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.