1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-05-04 02:03:07 +02:00
Commit Graph

283 Commits

Author SHA1 Message Date
Alex Plate
264ccd5119 Add Claude Code AI analysis step to UI test workflows
When UI tests fail, Claude Code now automatically analyzes the failure by examining test reports, video recordings, and IDE logs. The analysis is saved to build/reports/ai-analysis/analysis.txt and included in uploaded artifacts.

Requires ANTHROPIC_API_KEY secret to be configured in GitHub repository settings.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 19:23:38 +02:00
Alex Plate
1d2b7b7be5 Add grep and ls commands to YouTrack auto-analysis allowed tools
Extend allowed bash tools in all workflow steps to include:
- Bash(grep:*) for text searching and filtering
- Bash(ls:*) for directory listing

This resolves permission denials when Claude needs to run compound
bash commands with grep or ls in the YouTrack auto-analysis workflow.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:37:24 +02:00
Alex Plate
e4e59a1b50 Re-enable Claude Code action in changelog workflow
Uncomment the Claude Code action step now that we've migrated to
API-based tracking.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 10:14:21 +02:00
Alex Plate
17ba420e16 Migrate changelog workflow to use GitHub API instead of tags
Replace tag-based tracking (workflow-changelog) with GitHub Actions API
to track last successful workflow run. This approach is more reliable and
eliminates the need to manage tags.

Changes:
- Use gh run list to get last successful run's commit SHA
- Remove tag creation/deletion step
- Delete workflow-changelog tag from repository
- Update changelog skill documentation

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 10:13:53 +02:00
Alex Plate
3c30b1e9a8 Test tag update without Claude action
Revert ssh-key addition and comment out Claude Code action step to
test if the tag push works in isolation.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 10:09:25 +02:00
Alex Plate
16627917e6 Fix authentication for tag push in updateChangelogClaude workflow
The workflow was failing with "Authentication failed" when attempting
to push the workflow-changelog tag. The anthropics/claude-code-action
modifies git configuration during PR creation, which breaks subsequent
tag pushes.

Added ssh-key parameter to checkout step to use SSH authentication,
matching the approach in updateAuthors.yml and other workflows.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 09:59:58 +02:00
Alex Plate
74fd5e7550 Include test reports in PR verification workflow artifacts
Updates artifact paths to use workspace-relative paths starting with
"ideavim" and includes entire reports directories from both main module
and java-tests module. This ensures test reports are available for
debugging failed PR checks.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 23:30:18 +02:00
Alex Plate
f60ce5df8e Add note about changelog-only PRs to Claude Code review workflow
Informs the reviewer that PRs containing only CHANGES.md and
build.gradle.kts changeNotes are created automatically by
updateChangelogClaude.yml workflow, with actual implementation
in previous commits. Prevents false reports of missing implementation.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 23:30:17 +02:00
Alex Plate
375a8ec87e Add IDEAVIM_API_USED skip reason for Neovim tests
This skip reason is used when tests call IdeaVim API functions (both
public plugin API and internal API) that prevent proper Neovim state
synchronization. When these APIs are used directly in tests, we cannot
update the Neovim state accordingly, making test verification impossible.

Tests should only use VimTestCase functions for Neovim compatibility.

Updated the Tests Maintenance workflow to document this constraint,
clarifying that Neovim can only test methods using VimTestCase functions.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 01:09:48 +02:00
Alex Plate
5a8299df27 Remove Kover code coverage integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 23:32:38 +02:00
Alex Plate
679c1ccbc3 Add problems report artifact to PR verification workflow
Upload the Gradle problems report as an artifact so it can be
downloaded and viewed when tests fail.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 23:31:01 +02:00
Alex Plate
9a9b846754 Add gradlew to allowed tools in all YouTrack workflow steps
Previously only bug-fix and feature-impl steps had Bash(./gradlew:*)
in their allowed tools. Now all 8 Claude steps can run gradle commands
without requiring manual approval.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 15:39:28 +02:00
Alex Plate
b8d4d38253 Add YouTrack skill for Claude Code integration
Create a Claude skill for interacting with YouTrack issue tracker:
- Add CLI wrapper scripts in scripts-ts/src/youtrack-cli/
- Add release management functions to youtrack.ts (ported from Kotlin)
- Update youtrackAutoAnalysis.yml to use the skill instead of curl
- Document YouTrack usage in CLAUDE.md

CLI scripts:
- add-comment.ts, add-tag.ts, remove-tag.ts
- set-status.ts, get-ticket.ts, set-fix-version.ts
- create-version.ts, delete-version.ts

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:44:27 +02:00
Alex Plate
372d9535a6 Fix checkClaudeModel workflow OIDC authentication
Add missing permissions block with id-token: write required for
anthropics/claude-code-action to obtain OIDC token.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:58:41 +02:00
Alex Plate
890efcb6e7 Refactor: Migrate updateAuthors to TypeScript
Move the author update script from Kotlin to TypeScript, including tests.

Changes:
- Create scripts-ts/src/updateAuthors.ts
- Create scripts-ts/src/updateAuthors.test.ts with vitest
- Add vitest to package.json
- Create scriptsTests.yml workflow for running tests
- Update updateAuthors.yml workflow to use Node.js
- Remove Kotlin implementation and test
- Remove unused github-api dependency

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:13:37 +02:00
Alex Plate
a14c8a5ab8 Refactor: Migrate checkNewPluginDependencies to TypeScript
Move the plugin dependency checker from Kotlin to TypeScript for
consistency with other scripts.

- Create scripts-ts/src/checkNewPluginDependencies.ts
- Update workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and Gradle task

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:05:57 +02:00
Alex Plate
69691845bb Remove CI integrations test workflow and related code
Delete unused integration test infrastructure:
- .github/workflows/integrationsTest.yml
- scripts/src/main/kotlin/scripts/integrationsTest.kt
- Gradle task from build.gradle.kts

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:02:00 +02:00
Alex Plate
57d477199e Refactor: Migrate updateYoutrackOnCommit to TypeScript
Move the script from Kotlin (scripts/) to TypeScript (scripts-ts/)
for consistency with other YouTrack automation scripts.

Changes:
- Add setStatus() function to youtrack.ts
- Create updateYoutrackOnCommit.ts with git log parsing
- Update GitHub workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and changelogUtils.kt

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:01:59 +02:00
Alex Plate
e8ead1fe88 Add context7 MCP tools to allowed-tools list
The context7 plugin tools need to be explicitly listed in claude_args
allowed-tools for Claude to use them without permission prompts.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 15:00:04 +02:00
Alex Plate
dd030701f1 Add context7 plugin reminder to workflow prompts
Added a reminder about the available context7 MCP plugin to all Claude
prompts that have it enabled (triage, planning, bug-fix, feature-impl).
This helps Claude know it can look up Vim documentation when needed.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 14:23:33 +02:00
Alex Plate
aaf3e75821 Fix: Add Edit and Write tools to planning step
The planning step needs to update analysis_state.json with the plan.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 14:19:46 +02:00
Alex Plate
1ba8ddab1d Add planning step and smart clarification handling to YouTrack workflow
Introduces a planning phase between triage and implementation that:
- Explores the codebase to understand what needs to be implemented
- Creates a detailed implementation plan for bug fixes/features
- Asks for clarification when genuinely ambiguous (posts YouTrack comment)

Smart ticket selection with automatic answer detection:
- Prioritizes tickets with pending clarifications
- Uses AI to check if owner has answered questions
- Automatically removes pending tag when answered
- Falls back to random selection if no pending answers

Key changes:
- youtrack.ts: Add pending clarification tag constant and removeTag()
- selectTicketForAnalysis.ts: Query pending tickets first, add state fields
- completeTicketAnalysis.ts: Skip tagging for needs_clarification/no_answer
- Workflow: Add Step 0 (check answers) and Step 2 (planning)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 14:06:35 +02:00
Alex Plate
fb562267fb Fix workflow run link in PR body using GitHub context
Use ${{ github.* }} context instead of shell env vars so the
URL is properly expanded before being passed to Claude.
2025-12-27 13:24:43 +02:00
Alex Plate
c6fad01ffb Add attention_reason to code review step
- Added attention_reason to review prompt
- Added review.attention_reason to JSON structure
- Added permission denial detection to parse-review
- Added review attention to workflow summary
- Added review attention to fail condition
2025-12-27 13:21:52 +02:00
Alex Plate
d0a7199dde Clarify outdated ticket criteria: age alone is not a factor
Age is NEVER a reason to mark a ticket as outdated. Many 10-15+ year
old tickets are still valid. A ticket is outdated only when it has
BOTH vague/environment-specific description AND references to
features/APIs that no longer exist.
2025-12-27 11:48:54 +02:00
Alex Plate
40997f4da7 Allow curl -X POST in triage step for YouTrack comments 2025-12-27 11:39:38 +02:00
Alex Plate
242b9106ee Auto-detect permission denials from execution log
Parse the execution_file JSON to find permission_denials array
and automatically report them as attention_reason, even if Claude
doesn't self-report them. This ensures we catch tool permission
issues even when Claude works around them.
2025-12-27 11:38:38 +02:00
Alex Plate
7ed8b1321d Refactor to JSON-only communication between workflow steps
- All Claude steps now only update analysis_state.json (no text flags)
- All parse steps read from analysis_state.json using jq
- Added triage_attention_reason and changelog object to JSON structure
- Simpler and more consistent data flow
2025-12-27 11:36:30 +02:00
Alex Plate
23118a4610 Make attention_reason orthogonal to main workflow results
- attention_reason is now a separate flag that doesn't replace main status
- Workflow continues with main task even when issues are encountered
- Issues are reported alongside the main result (bug/feature/success/etc)
- Workflow fails at the end if any attention_reason was set
2025-12-27 11:23:24 +02:00
Alex Plate
2ef99e7d05 Improve workflow: add tools, split changelog/PR steps
- Add WebSearch and WebFetch to triage, bug-fix, feature, review steps
- Split Step 4 into 4A (Changelog) and 4B (Create PR)
- Add changelog status to workflow summary
- Track changelog attention reasons
2025-12-27 11:20:14 +02:00
Alex Plate
a358641659 Add debug info to parse-triage step
This will help understand:
- What outputs claude-code-action provides
- What the execution_file contains
- Whether the TRIAGE_RESULT pattern can be found
2025-12-27 10:49:56 +02:00
Alex Plate
abb5fe1537 Fix: Read from execution_file instead of non-existent response output
The claude-code-action does not have a 'response' output. Instead, it
provides 'execution_file' which is a path to the execution output file.

Changes:
- All parse steps now read from execution_file instead of response
- Added explicit git subcommand patterns to review and PR steps
- Added gh pr pattern for PR creation step

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 10:43:15 +02:00
Alex Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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 Plate
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