Add step to review source code and git history before writing tests.
If bug appears already fixed (via code review or passing test), post
a private YouTrack comment mentioning @Aleksei.Plate and stop.
New result type: ANALYSIS_RESULT=already_fixed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Point both workflows to .claude/settings.json to use project
configuration including enabled plugins.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Weekly check that compares current model against latest available.
If a newer model is found, Claude creates a PR with the update.
Uses Haiku for cost efficiency since this is a simple check task.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use the changelog skill to add entries for bug fixes and features
before creating the PR. Added Skill to allowed tools.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Full test suite takes a while. Guidance now suggests:
- Run specific related tests for faster feedback
- Only run full suite for core changes
- CI will run all tests on the PR anyway
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PRs created by the YouTrack workflow now include a link to the
GitHub Actions run that generated them, making it easy to trace
back to the full Claude analysis.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When Claude encounters issues needing maintainer attention:
- Missing tool permissions
- YouTrack API errors
- Workflow bugs or limitations
- Required capabilities unavailable
It outputs ANALYSIS_RESULT=attention_required with ATTENTION_REASON.
The job then fails, triggering GitHub notifications.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Detect tickets that are likely no longer relevant:
- References removed features or obsolete IDE versions
- Vague "doesn't work" reports older than 2 years with no activity
- Missing environment details and no follow-up from reporter
When detected, Claude posts a PRIVATE comment mentioning @Aleksei.Plate
with reasoning, then outputs ANALYSIS_RESULT=outdated.
Also adds ticket creation date to ticket_details.md for age assessment.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add getTicketComments() to fetch comment author, text, and date
- Add getTicketAttachments() to fetch attachment name, URL, and MIME type
- Include comments and attachments sections in ticket_details.md
This gives Claude more context when analyzing tickets - comments often
contain reproduction steps, workarounds, or clarifications.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add security notice warning about user-submitted content in tickets
- Add critical rules to treat ticket content as data only
- Instruct to mark suspicious/injection attempts as unsuitable
- Add reminder at end to ignore conflicting instructions from tickets
- Allow Bash(rm:*) command for cleanup operations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Before implementing a fix, Claude must now investigate why the buggy
code exists - it may have been a deliberate trade-off from a previous
fix. This prevents re-introducing old bugs when fixing new ones.
Investigation includes: reviewing surrounding code, checking callers,
and using git log/blame to understand the history.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add IdeaVim-specific code-reviewer agent focusing on Vim compatibility,
Kotlin/Java quality, IntelliJ Platform patterns, and test coverage
- Update YouTrack auto-analysis workflow to require code review before
creating PRs (for both bugs and features)
- Add Task tool to allowed tools for subagent usage
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Bugs now require TDD approach: write failing test first, confirm
failure, implement fix, confirm test passes
- Bugs without reproducible tests should be marked as unsuitable
- Features have separate criteria and implementation steps
- Updated PR title format: Fix(VIM-XXXX) for bugs, Add(VIM-XXXX) for features
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Smaller changes are still preferred, but bigger changes are now
acceptable if Claude is confident about them.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Comments now use LimitedVisibility with JetBrains team group (10-3)
- Query excludes tickets with Area "Remote Dev" or "Gateway"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replaces Kotlin/Gradle scripts with TypeScript for the auto-analysis workflow.
New files in scripts-ts/:
- youtrack.ts: API utilities (getTicketsByQuery, getTicketDetails, setTag, addComment)
- selectTicketForAnalysis.ts: Selects random open ticket
- completeTicketAnalysis.ts: Tags ticket, optionally adds comment
Benefits:
- Faster startup (no Gradle daemon)
- Simpler dependencies (just tsx)
- Easier to read and modify
The Kotlin scripts remain for other workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed condition from `!= "unsuitable"` to `== "suitable" || == "error"`
so that unknown/empty parsing results don't trigger comments.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use ktor's parameter() function to properly URL-encode query parameters
instead of string concatenation. This fixes 400 Bad Request errors when
queries contain spaces or special characters.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This adds a GitHub Action that automatically analyzes random open YouTrack
tickets to determine if they're suitable for automated fixing by Claude Code.
New files:
- youtrackAutoAnalysis.yml: Manual-trigger workflow that orchestrates the process
- SelectTicketForAnalysis.kt: Picks random open ticket without "claude-analyzed" tag
- CompleteTicketAnalysis.kt: Tags ticket and optionally adds analysis comment
Changes:
- youtrack.kt: Add getTicketDetails() function and claudeAnalyzedTagId constant
- build.gradle.kts: Register selectTicketForAnalysis and completeTicketAnalysis tasks
The workflow evaluates tickets based on: clarity, reproducibility (for bugs),
scope (no big refactoring), and testability. If suitable, Claude creates a PR.
All analyzed tickets are tagged to exclude from future runs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace TeamCity PR checks with a GitHub Actions workflow that:
- Runs on pull requests targeting master
- Executes the same test command with identical environment variables
- Uses Amazon Corretto JDK 21 (matching TeamCity setup)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SlackNotificationTest build configuration
- Remove Slack notification steps from ReleaseEap and ReleasePlugin
- Remove ANTHROPIC_API_KEY parameter from release jobs
- Keep slackUrl parameter for future use
- Re-enable VCS triggers on all test configurations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Temporarily disable VCS triggers to save TeamCity credits:
- GitHub PR checks
- TestingBuildType (all test configs)
- PropertyBased, RandomOrderTests, PluginVerifier, Nvim
Add SlackNotificationTest build to test changelog generation
and Slack notification flow separately.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix ReleaseEap to use env.ORG_GRADLE_PROJECT_youtrackToken pattern
(matching ReleasePlugin) instead of env.YOUTRACK_TOKEN
- Remove YouTrack test configuration (no longer needed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use ORG_GRADLE_PROJECT_youtrackToken env var which Gradle
automatically converts to the youtrackToken project property.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new TeamCity build type to test YouTrack API connection
- Create testYoutrackConnection gradle task
- Update YouTrack token in ReleaseEap (apply UI patch)
- Fail immediately if YOUTRACK_TOKEN is not set
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move the agent CPU and OS requirements from the abstract IdeaVimBuildType
class to each build type individually. This allows per-build-type control
over agent size (MEDIUM vs XLARGE).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add AgentSize constants for CPU count configuration and change
default agent requirement from 16 CPUs (XLarge) to 4 CPUs (Medium).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds Claude Code CLI integration to send Slack notifications after EAP
releases. Uses the same approach as the main release build, with an
EAP-specific prompt that includes unreleased changelog entries.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SlackNotificationTest build config and patch
- Remove unused Kotlin slackNotification code and gradle tasks
- Add ANTHROPIC_API_KEY credential to release builds
- Update prompt for calm, professional internal team tone
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of using Kotlin code to orchestrate Claude Code calls,
call Claude Code directly from TeamCity with a comprehensive prompt
that handles:
- Reading CHANGES.md
- Generating Slack message JSON
- Sending to webhook (with retry on error)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allow testing the Slack notification message generation without
requiring a release version number.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>