youtrack
YouTrack issue tracker domain knowledge — data model, custom fields, query language, commands, linking, state machines, and tags. Invoke whenever task involves any interaction with YouTrack — creating issues, searching, updating fields, linking, querying, or understanding workflows.
What this skill does
# YouTrack
YouTrack domain knowledge for agents that interact with YouTrack through MCP tools or API. This skill teaches the data
model, conventions, and query language — the _what_ and _why_ of YouTrack. The `task-creation` skill in the same plugin
teaches _how_ to write good task descriptions regardless of tracker.
<prerequisite>
When creating YouTrack issues, invoke `task-creation` first for description quality, then
use this skill for YouTrack-specific field handling, linking, and categorization.
</prerequisite>
## References
- **Query language** — `${CLAUDE_SKILL_DIR}/references/query-language.md` — Full search syntax, operators, symbols,
relative dates, BNF grammar
- **Commands** — `${CLAUDE_SKILL_DIR}/references/commands.md` — Command syntax, field updates, link/tag commands, work
items
- **Workflows & state machines** — `${CLAUDE_SKILL_DIR}/references/workflows.md` — State machine model, rule types,
transition properties
## Issue Data Model
Every YouTrack issue has:
- **Summary** — required, the issue title
- **Description** — optional, supports Markdown
- **Project** — required, determines available fields, workflows, and boards
- **Custom fields** — project-specific set of typed fields (see below)
- **Links** — typed relationships to other issues
- **Tags** — arbitrary labels, personal or shared
- **Attachments** — files, cannot be added during issue creation via API
- **Comments** — threaded discussion with visibility controls
## Custom Fields
Custom fields are the core of YouTrack's data model. Every project defines its own set of fields with project-specific
values. Never assume field names or values — always discover them from the project configuration.
### Field Type Categories
**Simple types** store raw values:
- `string` — unformatted text
- `integer` — whole numbers
- `float` — decimal numbers
- `date` — calendar date
- `date and time` — date with time component
- `period` — time duration (e.g., `2w 3d`)
- `text` — formatted text (Markdown), displayed below description, not in sidebar
**Enumerated types** store predefined value sets:
- `enum` — arbitrary named values (e.g., Type: Bug, Feature, Task)
- `state` — issue states with resolved/unresolved property (e.g., Open, In Progress, Fixed)
- `user` — user accounts (e.g., Assignee)
- `version` — product versions with released/archived properties
- `build` — build numbers
- `ownedField` — enum values with an owner (user assigned to each value)
- `group` — user groups
Enumerated fields can store single or multiple values (`enum[1]` vs `enum[*]`).
### Default Fields
Most YouTrack projects include these fields out of the box, though names and values are customizable:
- **Type** — `enum`: Bug, Feature, Task, Epic, Story, etc.
- **State** — `state`: Open, In Progress, Fixed, Verified, etc.
- **Priority** — `enum`: Show-stopper, Critical, Major, Normal, Minor
- **Assignee** — `user`: single user responsible for the issue
- **Subsystem** — `ownedField`: component within the project
- **Fix versions** — `version[*]`: versions where the fix ships
- **Affected versions** — `version[*]`: versions where the problem exists
- **Fixed in build** — `build`: specific build containing the fix
### Required Fields
A field is required when configured with "Cannot be empty" in the project:
- **Simple types** — field is required when Empty Value = "Cannot be empty"
- **Enumerated types** — field is required when Empty Value = "Cannot be empty" AND Default Value = "No value
(required)"
Gotchas:
- If a required field is also private, users without private field permissions are blocked from creating issues entirely
- Conditional required fields are only enforced when the condition is met
- Required fields are checked on creation and direct edit only — moving an issue to a different project does NOT enforce
the new project's requirements
### Per-Project Field Configuration
The same field name can have different value sets, defaults, visibility, and required status in different projects.
Always query the target project's field configuration before creating or updating issues.
Fields can be:
- **Private** — visible only to users with Read/Update Issue Private Fields permission
- **Conditional** — shown only when another field matches a specific value
- **Auto-attached** — automatically added to new projects using the Default template
## Issue Links
Links express typed relationships between issues. Adding a link to issue A automatically creates the reciprocal link on
issue B.
### Link Directions
- **Directed** — subordinate relationship with inward/outward names (e.g., "depends on" / "is required for")
- **Undirected** — symmetric relationship, same name both ways (e.g., "relates to")
- **Aggregation** — combining relationship with inward/outward names (e.g., "subtask of" / "parent for")
### Default Link Types
- **depends on / is required for** (Directed) — issue must be resolved before dependent
- **subtask of / parent for** (Aggregation) — parent-child task hierarchy
- **duplicates / is duplicated by** (Aggregation) — same condition, resolving one resolves the other
- **relates to / relates to** (Undirected) — related but not dependent
Always use native links instead of mentioning issue IDs in descriptions. Native links are visible in dedicated UI,
enable dependency tracking, and stay current when issues move.
A single pair of issues can have multiple link types — add every relationship that applies.
## State Machines
Projects can enforce state transitions through workflow rules. When a state machine is active, only defined transitions
are allowed — all undefined transitions are prohibited at every level (manual, command, automation).
### Key Concepts
- **Initial state** — the state assigned to new issues (exactly one per machine)
- **Transitions** — named paths between states, optionally with guards and actions
- **Guards** — conditions that must be true for a transition to execute
- **Per-issue-type machines** — different state transitions based on the Type field (e.g., Bugs can go to "Can't
Reproduce", Features can go to "Rejected")
Before setting state values, check whether the project has state machine rules — attempting a prohibited transition will
fail silently or error.
## Tags
Tags are arbitrary labels independent of custom fields. Key properties:
- **Personal vs shared** — personal tags are visible only to the creator; shared tags have configurable visibility,
usage, and edit permissions
- **Auto-remove on resolution** — tags can be configured to drop automatically when an issue transitions to a resolved
state
- **Search integration** — `tag: {tag name}` or `#{tag name}` in queries
- **Command syntax** — `tag <name>` to add, `untag <name>` to remove
Tags are useful for cross-project categorization and temporary workflow markers (e.g., "needs-review",
"blocked-by-external") without creating custom fields.
## Query Language Essentials
YouTrack has its own query language — not Lucene, not JQL. Working-resolution rules:
- **Attribute search** — `attribute: value` (e.g., `State: Open`, `for: me`)
- **Single value shorthand** — `#value` or `-value` (e.g., `#Unresolved`, `-Minor`)
- **Multi-value** — comma-separated: `State: Open, {In Progress}`
- **Braces for spaces** — `{In Progress}`, `{to be tested}`
- **Negation** — `-` before value: `Priority: -Minor`
- **Boolean** — `and`, `or`, parentheses for grouping
- **has/lacks** — `has: attachments`, `has: -comments`
- **Link search** — `depends on: PROJ-123`, `subtask of: (State: Open)`
- **Date ranges** — `created: 2024-01-01 .. 2024-12-31`, `updated: {minus 7d} .. Today`
- **Sort** — `sort by: priority asc, created desc`
- **Resolved/Unresolved** — keywords, not field values: `#Resolved`, `#Unresolved`
For the full syntax, operators, relative date parameters, and BNF grammar, see
`${CLAUDE_SKILL_DIR}/references/query-language.md`.
## Command Essentials
Commands apply changes to one or more iRelated in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.