Commit Graph
296 Commits
Author SHA1 Message Date
Alex PlateandClaude Opus 4.5 0eb97727d3 Allow specific git subcommands in bug-fix and feature steps
Add explicit patterns for git branch, git log, git blame, git diff,
and git show to ensure these commands are allowed during implementation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 10:38:52 +02:00
Alex PlateandClaude Opus 4.5 8618cedb7c Add attention_required to triage step and allow cat command
- Added attention_required mechanism to Step 1 (Triage)
- Added Bash(cat:*) to allowed tools for triage step
- Updated parse-triage to extract attention_reason
- Updated workflow summary to show triage attention reasons
- Updated fail condition to include triage attention_required

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 10:32:58 +02:00
Alex PlateandClaude Opus 4.5 304eddf8d0 Refactor YouTrack auto-analysis into multi-step Claude workflow
Split the single monolithic Claude prompt (~200 lines) into 5 focused
steps to improve quality and debuggability:

1. Triage: Determines ticket type (bug/feature) and suitability
2. Bug Fix: TDD-based implementation with root cause analysis
3. Feature: Feature implementation with tests
4. Code Review: Uses code-reviewer subagent
5. Changelog & PR: Creates branch, commits, and PR

Key changes:
- Add analysis_state.json for state passing between steps
- Each step has focused prompt with single responsibility
- Conditional execution based on triage result (bug vs feature)
- Preserved attention_required mechanism for all impl steps
- Updated TypeScript scripts to read/write JSON state file

Benefits:
- Focused prompts reduce confusion
- Better debugging (see where pipeline fails)
- Early termination for unsuitable tickets
- Consistent code review (always happens)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 10:16:25 +02:00
Alex PlateandClaude Opus 4.5 7102eda97a Upload Claude execution log as workflow artifact
This helps with debugging workflow runs by preserving the full
execution log in the workflow artifacts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 09:27:17 +02:00
Alex PlateandClaude Opus 4.5 ffdbff8060 Allow WebFetch for GitHub and Vim documentation sites
Add WebFetch permissions for:
- github.com and raw.githubusercontent.com (commits, PRs, raw files)
- vimhelp.org and vimdoc.sourceforge.net (Vim documentation)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 08:50:16 +02:00
Alex PlateandClaude Opus 4.5 4e0145bba5 Add deep root cause analysis guidance for bug fixes
Emphasize that Claude should:
- Focus on bug descriptions, not user-suggested solutions which may be
  inaccurate or too narrow for IdeaVim's architecture
- Find the actual root cause rather than implementing potentially flawed fixes
- Handle tickets with multiple issues by implementing them in separate commits

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 08:45:24 +02:00
Alex PlateandClaude Opus 4.5 ba9d5a17fe Make code review prompt more concise
Instruct Claude to be direct and avoid filler words, extra explanations,
or compliments. Focus on actionable feedback only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 08:35:02 +02:00
Alex PlateandClaude Opus 4.5 5572bafa87 Add tests maintenance skill and daily workflow
New Claude skill for routine test maintenance focusing on:
- Test quality and readability (meaningful content, clear names)
- Reviewing @Disabled tests to check if they can be re-enabled
- Ensuring @TestWithoutNeovim annotations have clear reasons
- Documenting @VimBehaviorDiffers usage

Daily GitHub Actions workflow runs at 7 AM UTC.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 08:30:03 +02:00
Alex PlateandClaude Opus 4.5 003a8aeb5e Emphasize that PR creation is the goal of the workflow
Local changes without a Pull Request are useless - added clear
instruction that the workflow must create a PR on GitHub.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:54:06 +02:00
Alex PlateandClaude Opus 4.5 ac1e19ec94 Download image attachments for Claude analysis
Image attachments from YouTrack tickets are now downloaded locally
so Claude can view them using the Read tool. This enables analysis
of visual bugs and UI issues that require screenshots.

Changes:
- Add downloadAttachment() function to youtrack.ts
- Download images to attachments/ directory during ticket selection
- Update ticket_details.md to reference local image paths
- Add cleanup step to remove temporary files after analysis
- Add prompt instruction about viewing image attachments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:51:18 +02:00
Alex PlateandClaude Opus 4.5 aef3733482 Add explicit branch push steps and PR failure handling
- Add explicit instructions to create branch, commit, push, then create PR
- Add PR creation failure as a trigger for attention_required status

Fixes issue where Claude forgot to push branch before creating PR.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:37:48 +02:00
Alex PlateandClaude Opus 4.5 e84edffa16 Check if bug is already fixed before implementing
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>
2025-12-26 22:32:08 +02:00
Alex PlateandClaude Opus 4.5 43e7b36968 Add Context7 plugin to YouTrack workflow
Enables up-to-date library documentation lookup during ticket analysis.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:25:57 +02:00
Alex PlateandClaude Opus 4.5 32ba35aead Use project settings in Claude Code workflows
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>
2025-12-26 22:22:58 +02:00
Alex PlateandClaude Opus 4.5 95fedeb8c1 Add workflow to check for Claude model updates
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>
2025-12-26 22:15:58 +02:00
Alex PlateandClaude Opus 4.5 e21f4eca2b Use Claude Opus 4.5 for YouTrack ticket analysis
Opus is more capable for complex analysis and bug fixing tasks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:11:36 +02:00
Alex PlateandClaude Opus 4.5 c42fe9ba10 Require changelog update when creating PRs
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>
2025-12-26 22:08:15 +02:00
Alex PlateandClaude Opus 4.5 6c76346647 Prefer running specific tests for faster workflow execution
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>
2025-12-26 22:03:04 +02:00
Alex PlateandClaude Opus 4.5 4f66a0f9c4 Include workflow run link in PR descriptions
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>
2025-12-26 21:40:55 +02:00
Alex PlateandClaude Opus 4.5 e6e68d5bf9 Add attention_required status to YouTrack workflow
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>
2025-12-26 21:39:24 +02:00
Alex PlateandClaude Opus 4.5 33582ecb7d Add outdated ticket detection to YouTrack workflow
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>
2025-12-26 21:36:19 +02:00
Alex PlateandClaude Opus 4.5 85538b1ae7 Add prompt injection hardening and rm command to YouTrack workflow
- 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>
2025-12-26 09:15:55 +02:00
Alex PlateandClaude Opus 4.5 338bd2164b Add bug origin investigation step to YouTrack workflow
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>
2025-12-26 08:59:57 +02:00
Alex PlateandClaude Opus 4.5 5ff820be52 Add code-reviewer subagent and require review before PRs
- 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>
2025-12-26 08:49:16 +02:00
Alex PlateandClaude Opus 4.5 34ca5ec772 Split YouTrack auto-analysis rules for bugs vs features
- 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>
2025-12-26 08:49:15 +02:00
Alex PlateandClaude Opus 4.5 0c741a580e Run YouTrack auto-analysis weekly instead of every 5 minutes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 08:11:46 +02:00
Alex PlateandClaude Opus 4.5 90f1d72233 Remove hard 100 lines limit from YouTrack auto-analysis
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>
2025-12-26 00:35:47 +02:00
Alex PlateandClaude Opus 4.5 efd7eee31b Run YouTrack auto-analysis every 5 minutes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:24:43 +02:00
Alex PlateandClaude Opus 4.5 1d9e01e4ae [Experiment] Migrate YouTrack analysis scripts to TypeScript
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>
2025-12-26 00:04:28 +02:00
Alex PlateandClaude Opus 4.5 402b81c3c9 Add experimental YouTrack auto-analysis workflow with Claude
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>
2025-12-25 23:45:10 +02:00
Alex PlateandClaude Opus 4.5 ef2e069b93 Migrate PR verification from TeamCity to GitHub Actions
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>
2025-12-24 09:27:45 +02:00
Alex PlateandClaude Opus 4.5 9b435ec3ff Make tag update conditional on Claude step success
Only update the workflow-changelog tag if the Claude step completes
successfully, preventing tag advancement on failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:35:18 +02:00
Alex PlateandClaude Opus 4.5 7f939987af Migrate changelog workflow to Claude-managed approach
- Update Claude changelog workflow to use workflow-changelog tag for
  tracking processed commits
- Update changelog skill to document the tag-based commit tracking
- Remove old disabled workflows (updateChangelog.yml, mergePr.yml)
- Remove unused Gradle tasks (updateChangelog, updateMergedPr)
- Delete unused scripts (updateChangelog.kt, updateMergedPr.kt, changelogUtils.kt)
- Remove unused markdown dependency from scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:32:22 +02:00
Alex PlateandClaude Opus 4.5 0cf7dbeb88 Add Skill to allowed tools in changelog workflow
The Skill tool is needed to load the changelog skill instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:14:31 +02:00
Alex PlateandClaude Opus 4.5 2527427d67 Update changelog workflow to use changelog skill
Replace reference to deleted changelog-instructions.md with
the changelog skill for loading maintenance instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:10:49 +02:00
Alex Plate dbf26846ee Update the platform to 2025.3
Also, replace all IC dependencies on IU dependencies. The IC is deprecated since the unified release: https://blog.jetbrains.com/platform/2025/11/intellij-platform-2025-3-what-plugin-developers-should-know/
2025-12-09 10:00:58 +02:00
Alex Plate 66402f499d Restrict claude-review workflow to PRs from the same repository 2025-11-07 16:34:14 +02:00
Alex Plate a4b370bb55 Remove Junie for now 2025-11-07 16:25:00 +02:00
Alex Plate a1032c55c0 Adjust codebase maintenance cron schedule to run weekly 2025-11-07 15:11:01 +02:00
Alex Plate 0b512dc293 Refactor YouTrack update script for better modularity and task integration
- Replaced `updateYoutrackOnCommit` function in build script with a dedicated Kotlin `main()` entry point.
- Simplified task registration with `JavaExec` in `scripts/build.gradle.kts`.
- Integrated argument support for specifying project directory.
- Removed duplicate and redundant code for Change processing.
- Adjusted GitHub workflow to use the new task structure.
2025-10-27 11:17:46 +02:00
Alex Plate 1d60e47bb8 Remove the PR pre-fetch 2025-10-24 14:38:37 +03:00
Alex Plate d60af9afa1 Remove the checkout from the manual command 2025-10-24 13:14:32 +03:00
Alex Plate 1ef919f73a Add checkout step 2025-10-24 13:05:03 +03:00
Alex Plate f6947d73f6 Trying to disable oidc for forkes 2025-10-24 11:22:14 +03:00
Alex Plate 54c12470f3 Claude Code now has an ability to create inline comments 2025-10-24 11:10:51 +03:00
Alex Plate 8aa8725a8d Update Claude Code workflow
I'm mostly trying to force Claude Code to work with the forks
2025-10-24 11:08:35 +03:00
Alex Plate 27f2e56635 Update codebase maintenance workflow to run daily
Change schedule from weekly (Monday) to daily execution at 6 AM UTC to enable more frequent code quality checks.
2025-10-09 14:26:32 +02:00
Alex Plate 747e4053ba Update codebase maintenance workflow to skip PR creation when no changes are made
Previously the workflow instructed Claude to always create a PR even when no
issues were found. This resulted in unnecessary PRs documenting inspections
where no changes were needed.

Now the workflow only creates PRs when actual changes are made to the codebase.
2025-10-09 13:10:41 +02:00
Alex Plate f0edc797dc Add codebase maintenance workflow
This workflow enables automated codebase maintenance by randomly selecting
and inspecting parts of the codebase for quality issues, bugs, and
improvements.

Key features:
- Random file/area selection for inspection
- Comprehensive code review guidelines (style, quality, bugs, architecture)
- Focus on genuine improvements, not pedantic changes
- Always creates PR to document inspection results
- Runs weekly on Mondays, can be triggered manually

The maintenance instructions cover:
- What to check: code style, null safety, test coverage, IdeaVim-specific issues
- When to make changes vs document issues
- Commit best practices (split complex changes into multiple commits)
- IdeaVim-specific considerations (enablement checks, Vim compatibility)
2025-10-09 13:04:55 +02:00
NaMinhyeok ce6822fa82 Add repository condition to updateChangelog workflow
Signed-off-by: NaMinhyeok <nmh9097@gmail.com>
2025-09-05 11:51:48 +03:00