<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Viktoria</title>
    <description>The latest articles on DEV Community by Viktoria (@marketing_explyt_a7b53da9).</description>
    <link>https://dev.to/marketing_explyt_a7b53da9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074488%2F591a7871-a646-4ad3-a738-9f5034840513.png</url>
      <title>DEV Community: Viktoria</title>
      <link>https://dev.to/marketing_explyt_a7b53da9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marketing_explyt_a7b53da9"/>
    <language>en</language>
    <item>
      <title>Explyt 5.17 Lets It Refactor the Project.</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Wed, 19 Aug 2026 07:33:09 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/explyt-517-lets-it-refactor-the-project-3711</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/explyt-517-lets-it-refactor-the-project-3711</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjo8h909gl5olq4p4o70j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjo8h909gl5olq4p4o70j.png" alt=" " width="799" height="414"&gt;&lt;/a&gt;Move, Delete, Rename, run, and debug through JetBrains IDE mechanisms instead of reconstructing project relationships from text alone.&lt;/p&gt;

&lt;p&gt;AI coding agents are good at producing patches. The harder problem begins when a change crosses file, package, module, or runtime boundaries.&lt;/p&gt;

&lt;p&gt;Move a class through the file system and its package may become wrong. Delete an entity without checking usages and another module may stop compiling. Rename a symbol as text and unrelated strings can change with it.&lt;/p&gt;

&lt;p&gt;JetBrains IDEs already resolve many of these relationships. Explyt 5.17 gives agents a direct path to that project knowledge.&lt;/p&gt;

&lt;p&gt;The central change in Explyt 5.17 is simple: an agent can ask the IDE to perform and inspect engineering operations that the IDE already understands.&lt;/p&gt;

&lt;p&gt;Why Are File Edits Not Enough?&lt;br&gt;
A repository is more than a collection of text files.&lt;/p&gt;

&lt;p&gt;Code entities are connected through:&lt;/p&gt;

&lt;p&gt;resolved symbol references;&lt;br&gt;
imports and package declarations;&lt;br&gt;
module and source-root boundaries;&lt;br&gt;
run configurations;&lt;br&gt;
debugger state;&lt;br&gt;
framework and language support;&lt;br&gt;
generated code and configuration.&lt;br&gt;
A text edit can produce a clean-looking diff while missing one of those connections. Explyt 5.17 reduces that risk by routing supported refactoring operations through native JetBrains IDE mechanisms.&lt;/p&gt;

&lt;p&gt;The IDE contributes indexes, symbol resolution, usage search, conflict detection, and refactoring support. The agent contributes task planning, tool selection, and follow-up verification.&lt;/p&gt;

&lt;p&gt;What Changed in Refactoring?&lt;br&gt;
Earlier versions already supported Rename. Explyt 5.17 adds Move and Delete.&lt;/p&gt;

&lt;p&gt;Move&lt;br&gt;
Move can relocate supported files, folders, and code entities through IDE refactoring.&lt;/p&gt;

&lt;p&gt;For a class moved to another package, the IDE can update the package declaration, imports, and resolved references it recognizes in the open project. Before the operation is applied, the agent receives information about affected locations and conflicts.&lt;/p&gt;

&lt;p&gt;This is materially different from moving a file and repairing references afterward with a sequence of searches and edits.&lt;/p&gt;

&lt;p&gt;Delete&lt;br&gt;
Delete checks usages before removing a supported entity.&lt;/p&gt;

&lt;p&gt;The agent can inspect the dependencies found by the IDE, revise its plan, and handle affected code before deletion. This makes the usage check part of the operation rather than an optional cleanup step after the entity has disappeared.&lt;/p&gt;

&lt;p&gt;Rename&lt;br&gt;
Rename continues to operate on code entities and their resolved references rather than every matching character sequence.&lt;/p&gt;

&lt;p&gt;Depending on the language, entity type, and IDE support, the operation may also include related elements. Renaming a class, for example, may include its file name.&lt;/p&gt;

&lt;p&gt;What Does the Agent See Before a Change?&lt;br&gt;
Explyt can expose the IDE's refactoring preview and conflict information to the agent.&lt;/p&gt;

&lt;p&gt;Before Move, Delete, or Rename is applied, the operation can identify:&lt;/p&gt;

&lt;p&gt;the elements selected for the change;&lt;br&gt;
files and references included in the refactoring;&lt;br&gt;
conflicts that block or complicate the operation;&lt;br&gt;
related entities the IDE proposes to update.&lt;br&gt;
That preview matters most when a task spans several packages or modules. It gives the agent evidence about the scope before files are written and creates a checkpoint where the plan can change.&lt;/p&gt;

&lt;p&gt;inspect scope → review conflicts → apply a bounded refactoring → build → test → inspect the diff&lt;/p&gt;

&lt;p&gt;This loop is stronger than treating a successful tool call as proof that the task is complete.&lt;/p&gt;

&lt;p&gt;Where Does IDE Analysis Stop?&lt;br&gt;
IDE-backed refactoring improves the evidence available to an agent. It does not guarantee complete dependency discovery.&lt;/p&gt;

&lt;p&gt;Results depend on:&lt;/p&gt;

&lt;p&gt;language and framework support in the installed JetBrains IDE;&lt;br&gt;
successful completion of project indexing;&lt;br&gt;
the relationships the IDE can resolve;&lt;br&gt;
reflection and other dynamic references;&lt;br&gt;
generated code;&lt;br&gt;
configuration files and templates;&lt;br&gt;
references held in external systems;&lt;br&gt;
text mentions that are not symbol references.&lt;br&gt;
A large refactoring still needs a diff review, a build of affected modules, and relevant tests. If the change touches runtime behavior, reproduce the affected path or inspect it with the debugger.&lt;/p&gt;

&lt;p&gt;Can External Agents Use the Same IDE Tools?&lt;br&gt;
Yes. &lt;a href="https://explyt.ai/t/l/hasantoxr" rel="noopener noreferrer"&gt;Explyt 5.17&lt;/a&gt; includes an MCP server that runs inside the IDE.&lt;/p&gt;

&lt;p&gt;It can connect Claude Code, Codex, Cursor, OpenCode, and other MCP-compatible clients to selected IDE operations in the context of the open project.&lt;/p&gt;

&lt;p&gt;The external client keeps control of its own model, prompts, context, and call sequence. Explyt executes the selected IDE tool calls and does not provide inference in this mode.&lt;/p&gt;

&lt;p&gt;The MCP server is available free without an Explyt subscription.&lt;/p&gt;

&lt;p&gt;This gives developers a practical way to keep their preferred agent while adding structured access to JetBrains IDE capabilities.&lt;/p&gt;

&lt;p&gt;Which Tool Groups Can You Expose?&lt;br&gt;
The server configuration lets you enable only the groups required for the current task:&lt;/p&gt;

&lt;p&gt;project navigation;&lt;br&gt;
run configurations;&lt;br&gt;
debugger operations;&lt;br&gt;
IDE refactoring.&lt;br&gt;
The client does not receive every IDE capability automatically. Its available tools depend on the selected server configuration.&lt;/p&gt;

&lt;p&gt;That boundary supports a narrower setup: a client investigating a failing test may need navigation, run, and debugger tools but no refactoring access. A client reorganizing packages may need navigation and refactoring, followed by a run configuration for verification.&lt;/p&gt;

&lt;p&gt;How Do You Inspect MCP Calls?&lt;br&gt;
The MCP server window includes a call log.&lt;/p&gt;

&lt;p&gt;For each request, you can inspect:&lt;/p&gt;

&lt;p&gt;the tool requested by the external agent;&lt;br&gt;
the arguments sent with the call;&lt;br&gt;
the response returned by the IDE tool;&lt;br&gt;
the step at which an error occurred.&lt;br&gt;
This creates a concrete record of the interaction between the agent and the IDE. If a debugger workflow fails, you can see whether the problem came from the selected tool, its arguments, the run configuration, or the returned state.&lt;/p&gt;

&lt;p&gt;Before sharing logs or server configurations, review them for local paths, source code, and other project data that should remain inside the working environment.&lt;/p&gt;

&lt;p&gt;What Does Chat Branching Actually Separate?&lt;br&gt;
Explyt 5.17 can create a new chat from a selected message.&lt;/p&gt;

&lt;p&gt;The new conversation inherits history up to that point. From there, the two chat histories develop independently. This is useful when one investigation produces several directions:&lt;/p&gt;

&lt;p&gt;tests in one chat and documentation in another;&lt;br&gt;
implementation in one chat and code review in another;&lt;br&gt;
competing architecture discussions from the same initial context;&lt;br&gt;
a fresh path after an unsuccessful approach.&lt;br&gt;
The separation applies to conversation history, not to project files.&lt;/p&gt;

&lt;p&gt;Both chats continue to work with the same open project and the same file system. A change made from one chat is visible to the other. Chat branching does not create a Git branch, worktree, project copy, or isolated workspace.&lt;/p&gt;

&lt;p&gt;Use Git branches or worktrees when parallel alternatives must not modify the same files.&lt;/p&gt;

&lt;p&gt;What Else Improved in 5.17?&lt;br&gt;
The release reduces unnecessary background work by refreshing the context panel less often and processing internal project data more efficiently. Internal log growth is limited as well.&lt;/p&gt;

&lt;p&gt;It also fixes reliability issues in several paths:&lt;/p&gt;

&lt;p&gt;background tools resume work in chats more reliably;&lt;br&gt;
tool calls recover more correctly from incomplete arguments;&lt;br&gt;
absolute Windows paths are handled correctly;&lt;br&gt;
issues involving enterprise models are fixed;&lt;br&gt;
large MCP server responses are handled more reliably.&lt;br&gt;
These fixes require no extra configuration after the update.&lt;/p&gt;

&lt;p&gt;A Practical Verification Loop&lt;br&gt;
IDE access is useful when it shortens the distance between a proposed change and evidence about its effect.&lt;/p&gt;

&lt;p&gt;For a refactoring task, use this loop:&lt;/p&gt;

&lt;p&gt;Wait for indexing to finish.&lt;br&gt;
Ask the agent to identify the target entity and affected scope.&lt;br&gt;
Inspect the IDE preview and conflicts.&lt;br&gt;
Apply one bounded Move, Delete, or Rename operation.&lt;br&gt;
Review the resulting diff, including configuration and generated-code boundaries the IDE may not resolve.&lt;br&gt;
Build the affected modules through the relevant run configuration.&lt;br&gt;
Run focused tests.&lt;br&gt;
For runtime-sensitive changes, reproduce the path and inspect state through the debugger.&lt;br&gt;
Repeat with the next bounded operation.&lt;br&gt;
For an external MCP client, add two checks:&lt;/p&gt;

&lt;p&gt;enable only the tool groups needed for the task;&lt;br&gt;
confirm the first request, arguments, and response in the call log.&lt;br&gt;
This keeps the agent's work observable and makes completion depend on project evidence, not on a plausible patch.&lt;/p&gt;

&lt;p&gt;Try Explyt 5.17&lt;br&gt;
Update Explyt from Settings | Plugins | Installed, restart the IDE if prompted, open the project, and wait for indexing to finish before the first refactoring.&lt;/p&gt;

&lt;p&gt;If you use Claude Code, Codex, Cursor, OpenCode, or another MCP client, open the Explyt MCP Server window, select the required tool groups, start the server, connect the client, and inspect its first call in the log.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://explyt.ai/t/l/hasantoxr" rel="noopener noreferrer"&gt;Explyt is available from the download page.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sources&lt;br&gt;
Explyt 5.17: IDE refactoring and an MCP server for external agents - product facts, capabilities, limitations, setup, and release fixes.&lt;br&gt;
Building a Fair Benchmark for AI Agent Memory Systems - editorial reference for article pacing and section structure only; its benchmark topic, claims, and wording were not reused.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>#java</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Mon, 17 Aug 2026 15:07:53 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/java-59k4</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/java-59k4</guid>
      <description></description>
    </item>
    <item>
      <title>Stop Copying Random Code Snippets And Finally Build Your Persistence Layers With Ease And Confidence!</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:43:04 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/stop-copying-random-code-snippets-and-finally-build-your-persistence-layers-with-ease-and-e15</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/stop-copying-random-code-snippets-and-finally-build-your-persistence-layers-with-ease-and-e15</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k" class="crayons-story__hidden-navigation-link"&gt;How to Configure an AI Agent for Your Project: Context, Rules, Skills, MCP — A Java/Kotlin Playbook&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/marketing_explyt_a7b53da9" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074488%2F591a7871-a646-4ad3-a738-9f5034840513.png" alt="marketing_explyt_a7b53da9 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/marketing_explyt_a7b53da9" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Viktoria
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Viktoria
                
                
              
              &lt;div id="story-author-preview-content-4415747" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/marketing_explyt_a7b53da9" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074488%2F591a7871-a646-4ad3-a738-9f5034840513.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Viktoria&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 17&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k" id="article-link-4415747"&gt;
          How to Configure an AI Agent for Your Project: Context, Rules, Skills, MCP — A Java/Kotlin Playbook
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            9 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>How to Configure an AI Agent for Your Project: Context, Rules, Skills, MCP — A Java/Kotlin Playbook</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Mon, 17 Aug 2026 07:54:19 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/how-to-configure-an-ai-agent-for-your-project-context-rules-skills-mcp-a-javakotlin-playbook-594k</guid>
      <description>&lt;p&gt;&lt;strong&gt;This article distills two of our April webinars with a developer of the &lt;a href="https://explyt.ai/t/l/dev-3" rel="noopener noreferrer"&gt;Explyt agent&lt;/a&gt;. The takeaways are general enough that you can verify every claim on your own project — and if you work in Java or Kotlin, most of them land even harder, because a strongly typed, tooling-heavy stack is exactly where good context wins or loses.&lt;br&gt;
Press enter or click to view image in full size&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwcqgospwf8otv5danamh.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwcqgospwf8otv5danamh.webp" alt=" " width="800" height="768"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agent output quality = context quality. Everything else is downstream.&lt;/p&gt;

&lt;p&gt;There are five customization levers: rules, skills, agent modes, MCP, and AgentIgnore. Each has its own use case.&lt;br&gt;
AGENTS.md is the project's source of truth. The memory bank is long-term memory.&lt;/p&gt;

&lt;p&gt;The two main anti-patterns: insufficient context and overloaded context. Opposite fixes, opposite symptoms.&lt;br&gt;
A TDD/SDD approach with an agent yields the best quality. With local models it’s critical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evolution: from autocomplete to agentic systems&lt;/strong&gt;&lt;br&gt;
The chain is short:&lt;br&gt;
StageWhat it doesMain painAutocompletecontinue a line, finish a functioncontext = current fileChat assistantsdialogue, explaining codehuman = proxy, copy-pasteAgentsread/edit files, run commands, MCPone context overloadsAgentic systemsorchestrator + sub-agents, rolessetup complexity&lt;br&gt;
With chat assistants the developer constantly copied code back and forth — hence “lots of manual work and broken context.” Agents live inside the project, see all the code, and have tools. On top sit agentic systems that coordinate several specialized agents and solve the single-context overflow problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where the agent lives: three classes of tools&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Console agents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They live in the terminal. They run on a remote server or in CI and parallelize easily via git worktree.&lt;br&gt;
ProsConsNo IDE vendor lock-inLess control during developmentCan run in CI/CDNo language semantics — only LSPParallelism across many agentsNo autocomplete for controlled generationRiskier security-wise (filesystem access)&lt;br&gt;
Examples: Claude Code, Codex, Gemini CLI, Aider, Goose, Amp (can commit on its own). Fully autonomous: AutoGPT, SWE-agent, OpenHands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents inside the IDE&lt;/strong&gt;&lt;br&gt;
They understand the language better: PSI / indexes, refactorings via the IDE API, semantic search (Find Usages, Go to Declaration). For a Java/Kotlin codebase this is the difference between an edit that compiles and one that’s a lucky text guess. A familiar UI is an underrated adoption factor for teams.&lt;br&gt;
ProsConsLanguage understanding via PSITied to one IDEDeveloper’s familiar UIHarder to parallelizeHarder to run in CI&lt;br&gt;
Examples: Cursor (a VS Code fork), Explyt, Windsurf, Junie, AI Assistant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents in CI/CD&lt;/strong&gt;&lt;br&gt;
Async PR review, description generation, auto-fixes, changelogs.&lt;br&gt;
ProsConsA single review standardTake the human out of the loop, slow pipelinesUnpredictable token costsFalse positives kill trust in reviewAccess to sensitive infrastructure&lt;br&gt;
Examples: CodeRabbit, PR-Agent (Codium Merge), GitHub Copilot for PRs, GitLab Duo (can hunt for vulnerabilities).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fully autonomous&lt;/strong&gt;&lt;br&gt;
They take a task from a Jira/GitHub issue and go solve it without a human: AutoGPT, SWE-agent, OpenHands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context: where it comes from and how it breaks&lt;/strong&gt;&lt;br&gt;
Manual collection — @-attaching files, classes, methods. Sometimes more reliable than automation, especially when you know exactly what the result should look like.&lt;br&gt;
Automatic collection — three industry approaches:&lt;br&gt;
ApproachWhat it givesWhere it breaksLSP serversAST, syntaxno semantics, poor with broken codePSI (JetBrains)dependency graph, inheritance, inspections, understands broken codetied to the JetBrains platformCode RAGembeddings, flexible searchindivisible code gets chunked; knows nothing about compilation&lt;br&gt;
PSI is the only one of the three that sees code semantically: it knows for a fact that a method is inherited, that an annotation applies, that a function is used right here. This is precisely the Java/Kotlin superpower — overrides, generics, Spring bean wiring, annotation processing. PSI also works with broken code, so it can explain to the agent exactly what the compilation error is.&lt;br&gt;
The one rule&lt;br&gt;
Result quality depends on context quality. No matter how good the agent is, on bad context it won’t produce the right solution.&lt;br&gt;
Anti-pattern 1: insufficient context&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Symptom. The agent solves the wrong task.&lt;br&gt;
Fixes:&lt;/strong&gt;&lt;br&gt;
Edit the message you already sent instead of tacking on a correction. If you reply “no, you misunderstood,” the agent sees both the original task and the fix in context and starts to get confused.&lt;br&gt;
Use rules for repeated instructions that migrate from chat to chat.&lt;br&gt;
Pass the full spec via MCP — from Jira, Confluence, GitHub.&lt;br&gt;
Plan before solving — most agents can decompose a task before starting. That gives you a de facto spec immediately.&lt;br&gt;
Anti-pattern 2: overloaded context&lt;br&gt;
Symptom. The agent mixes different tasks or suddenly starts solving a third thing.&lt;br&gt;
Fixes:&lt;br&gt;
One task = one chat. A big task → decompose into subtasks in separate chats.&lt;br&gt;
Chat compression — a feature in most agents. It compresses the context into a summary so you can move to a second related task without carrying the whole history.&lt;br&gt;
Five levels of customization&lt;br&gt;
LevelWhat it isWhen to use itRulesrules injected into the system promptcode style, working around model bugs, shell instructions, MCP prioritizationSkillsa description of how to solve a specific task (frontmatter + resources + scripts)recurring tasks: test generation, migrations, refactoringsAgent modesown model, system prompt, tools, and skills per rolea dedicated agent for testing, debugging, analyticsMCP serversexternal toolsJira, Confluence, GitHub/GitLab, Figma, Playwright, Chrome, secrets, TDD flowAgentIgnoreread/write restrictionslegacy, secrets, TDD&lt;br&gt;
Rules&lt;br&gt;
Text rules added to every chat’s system prompt.&lt;br&gt;
What to write:&lt;br&gt;
the rule’s scope (where it applies, where it doesn’t);&lt;br&gt;
what is strictly forbidden.&lt;br&gt;
A classic case is PowerShell on Windows. Most models learned on bash/zsh and get confused on PS. One dedicated rule about PowerShell specifics fixes it once and for all.&lt;/p&gt;

&lt;p&gt;Other common uses:&lt;br&gt;
agent style (autonomous vs. controlled);&lt;br&gt;
corporate code style (Google Java Style, parameterized tests — right at home for Java/Kotlin teams);&lt;br&gt;
working around specific model bugs (e.g., Claude 4.5 Sonnet likes to create lots of reports — you can rein it in);&lt;br&gt;
MCP prioritization — if the agent doesn’t call a connected server, spell out when and why to use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills&lt;/strong&gt;&lt;br&gt;
Unlike rules, a skill describes how to solve one specific task.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Structure:
skills/
└── my-skill/
    ├── SKILL.md      # prompt + frontmatter with a description
    ├── scripts/      # scripts the agent can call
    └── references/   # docs and specs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The frontmatter holds the skill’s name and description. From the description the agent decides when to invoke it. Manual invocation — /skill_name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important about context.&lt;/strong&gt; Until the skill is invoked, the agent sees only the frontmatter description — no resources or scripts enter the context. That’s what saves you from pollution.&lt;/p&gt;

&lt;p&gt;Recommendations:&lt;br&gt;
one goal per skill (even if it has subtasks);&lt;br&gt;
scope and prohibitions — mandatory;&lt;br&gt;
reference scripts and resources from SKILL.md, or the agent won't "notice" them;&lt;br&gt;
the folder structure (scripts/, references/) is optional, but the agent navigates it better;&lt;br&gt;
top-down (write everything at once) is slow and blind to whether it’s needed. Bottom-up (extract from frequently repeated requests) is more practical;&lt;br&gt;
you can generate skills with the agent itself, but validate them by hand.&lt;br&gt;
Compatibility. The SKILL.md format has become a cross-vendor standard — supported by Claude Code, Cursor, Codex, Copilot, and Explyt. A skill written for Claude Code works in Explyt and vice versa.&lt;br&gt;
Agent modes (roles / sub-agents)&lt;br&gt;
Customizable:&lt;br&gt;
the model (e.g., a lightweight model is enough for a tester agent, a stronger one for an architect);&lt;br&gt;
the system prompt describing the role;&lt;br&gt;
the set of available tools;&lt;br&gt;
the set of skills.&lt;br&gt;
A common mistake is describing the role via the org chart (“architect,” “team lead,” “DevOps”). Better to start from the tasks the agent solves. The model doesn’t understand “architect”; it does understand “generates dependency diagrams and checks for cycles.”&lt;br&gt;
Most agents ship with Plan mode and Code mode out of the box. Many can orchestrate — picking which sub-agent to call for a given step.&lt;br&gt;
MCP servers&lt;br&gt;
Not a complicated thing: most often an MCP is a proxy between the model and a service. It parses the model’s arguments, makes an HTTP request, squeezes the response to fit the context limit, and hands it back.&lt;br&gt;
&lt;strong&gt;Useful ones:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;GitHub MCP&lt;/strong&gt; — reading repos, search, issues, PRs, branches, commits, review.&lt;br&gt;
&lt;strong&gt;Atlassian MCP&lt;/strong&gt; — Confluence (CQL search, pages) and Jira (JQL search, statuses). Very valuable — that’s where all the company’s domain logic lives.&lt;br&gt;
&lt;strong&gt;Figma MCP&lt;/strong&gt; — project structure, layers, components, variables. Doesn’t handle motion/animation.&lt;br&gt;
Playwright MCP — turning manual clicks into automated tests.&lt;br&gt;
&lt;strong&gt;Chrome MCP&lt;/strong&gt; — DevTools in the agent’s hands.&lt;/p&gt;

&lt;p&gt;If the agent doesn’t call an MCP — write a rule, a skill, or a dedicated agent explicitly meant for that MCP.&lt;br&gt;
AgentIgnore&lt;br&gt;
Same syntax as .gitignore. Vendors use different names: .cursorignore, .codeiumignore; Explyt splits "don't read" and "don't edit" into separate lists.&lt;br&gt;
Scenarios:&lt;br&gt;
SituationWhat to forbidLegacy / stable moduleswriting (reading is fine — for understanding)A module too complex, you don’t trust the agentwritingSecrets, creds, .envreading and writingTDD: don't bend tests to the implementationwriting to the test folder&lt;br&gt;
Important. Via the run-command tool, the agent could in theory bypass AgentIgnore. Good agents put a small checker model next to command execution, but even that can be worked around with a clever script. This applies to every vendor — an open question for the industry.&lt;br&gt;
Documentation for the agent&lt;br&gt;
AGENTS.md&lt;br&gt;
A file in the project root. It goes into the system prompt — the agent always knows about it.&lt;br&gt;
What’s inside:&lt;br&gt;
project structure by folders and modules;&lt;br&gt;
the stack;&lt;br&gt;
build and test commands;&lt;br&gt;
code style;&lt;br&gt;
architectural paradigms;&lt;br&gt;
what is strictly forbidden.&lt;br&gt;
Creation — usually an /init command (often a skill) that walks the project and assembles a first AGENTS.md. After generation, validate it: an error in this file lives in context forever. Version it in the repo as the team's source of truth.&lt;br&gt;
Tip: don’t bloat it. The file is added to every chat and eats context. If AGENTS.md grows to 1000 lines, it's no longer help — it's load.&lt;br&gt;
&lt;strong&gt;Memory Bank&lt;/strong&gt;&lt;br&gt;
The agent’s long-term memory — a folder of Markdown files with a size cap. The logic:&lt;br&gt;
Every N messages, the agent pulls relevant facts and adds them to context.&lt;br&gt;
Every N messages, it saves new facts from the current dialogue.&lt;br&gt;
On overflow, it summarizes and drops the irrelevant.&lt;br&gt;
The goal: with each new chat, the agent understands your project better.&lt;br&gt;
Caveat: the smaller N, the higher the token spend. Some agents use N = 1, which becomes constant extra load on the provider.&lt;br&gt;
Context pollution: what the agent should do, and what you should do&lt;br&gt;
The agent:&lt;br&gt;
Cache tokens with the chosen provider — cached tokens are much cheaper.&lt;br&gt;
Auto-compress the chat when the context fills up (thresholds like 75%, 80%).&lt;br&gt;
Save tool results to a file and give the model only the structure. Especially important for unpredictable MCPs whose response easily overloads context.&lt;br&gt;
You:&lt;br&gt;
Know your provider. Anthropic’s cache lives for 5 minutes — small tasks are faster and cheaper within that window.&lt;br&gt;
Compress the chat manually when you see it’s full. Remember: it’s not strictly positive — quality can suffer.&lt;br&gt;
Turn off unneeded tools. Tool descriptions eat context on their own.&lt;br&gt;
Compress AGENTS.md and rules if they've grown and gone stale.&lt;br&gt;
Project setup checklist&lt;br&gt;
StepTimeWhat to do1. AGENTS.md~10 min/init + manual validation2. AgentIgnore5–15 minlegacy, secrets, TDD dirs3. MCP30 minconnect Jira, Confluence, GitHub; compare community vs. official4. Rules15 minagent style + model bug workarounds5. Skillsas neededcheck existing ones in registries first6. Commit1 mincommit it — a single source of truth for the team&lt;br&gt;
&lt;strong&gt;Q&amp;amp;A from the chat&lt;/strong&gt;&lt;br&gt;
Which tasks simply can’t be solved with an LLM? There’s no hard “can’t” if a human sits alongside and validates. Be careful with tasks demanding strict determinism (vulnerability hunting with complex algorithms) — better to give the agent a specialized tool via MCP. With weak/small models, agentic pipelines struggle.&lt;br&gt;
How do you avoid regressing to a junior when using AI? Validate generated code; don’t accept it blindly. Grow expertise in architecture, review, planning, specs. Technical expertise will be needed at any moment.&lt;br&gt;
&lt;strong&gt;Cursor vs. IDE agents&lt;/strong&gt; — worth switching? Cursor is a VS Code fork; you’d have to change your environment. If you’re used to JetBrains, try plugins: Junie, AI Assistant, Explyt. Switching to Cursor pays off only if IDE agents lack the features you need.&lt;br&gt;
When to use SDD, and when not to overcomplicate? It depends on task complexity relative to the model:&lt;br&gt;
Simple tasks — just dive in.&lt;br&gt;
Medium and complex — SDD/planning.&lt;br&gt;
If the agent drifts — roll back, write a plan or spec, continue from it.&lt;br&gt;
If the agent is on track but doesn’t finish — TDD: fix the validation system and let the agent work until the tests go green.&lt;br&gt;
How to control token consumption? Split tasks. One task, one chat. Make sync points through a plan file that carries progress — so sub-agents with small contexts see the big picture.&lt;br&gt;
Which local models are good on limited hardware? There are solid options in the ~32B range with a good quality/cost balance; larger models are better but need more hardware. Very large models can be quantized, but carefully.&lt;br&gt;
Which local-LLM features work in development (think, web)? Thinking works (for local models the concern isn’t token cost but server load). Web/external sources help. Inside the agent, tools like running inspections are critical.&lt;br&gt;
Can analysts and testers use AI? They can and should. Testing and analytics map well onto agents, but the agent must be customized to the role — dedicated skills, corporate rules, task decomposition.&lt;br&gt;
&lt;strong&gt;Wrapping up&lt;/strong&gt;&lt;br&gt;
For Java/Kotlin teams the throughline is simple: the agent is only as good as the context you feed it, and this stack rewards agents that understand code semantically — PSI, real type resolution, inspections, safe refactorings. Set up AGENTS.md, lock down what the agent may touch, connect the MCPs that hold your domain knowledge, and codify your conventions as rules and skills. Do that once, commit it, and every chat starts smarter than the last.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Code Clean-up Agents: the new 2026 niche between AI generation and shipping</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Fri, 14 Aug 2026 11:00:51 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/code-clean-up-agents-the-new-2026-niche-between-ai-generation-and-shipping-3fei</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/code-clean-up-agents-the-new-2026-niche-between-ai-generation-and-shipping-3fei</guid>
      <description>&lt;p&gt;Vibe coding solved the wrong half of the problem.&lt;/p&gt;

&lt;p&gt;Generation got fast. Everything after generation didn't.&lt;/p&gt;

&lt;p&gt;The first PR out of an agent looks fine. The fifth PR looks like it was written by three different developers on three different days. Somewhere in there is a SQL injection the agent copied from a training example, and nobody checked.&lt;/p&gt;

&lt;p&gt;That's the gap a new category is built for in 2026: Code Clean-up Agents.&lt;/p&gt;

&lt;p&gt;What the category does Three jobs AI generation leaves behind: Refactor the accumulated diff into something one person could have written. Hunt vulnerabilities in code assembled faster than it was reviewed. Standardize naming and conventions so AI-written files match the rest of the codebase.&lt;/p&gt;

&lt;p&gt;Why now A feature that took three days now takes thirty minutes to generate. Review still takes three hours: reading, re-running, hunting vulnerabilities, re-deriving what the IDE already knew. The bottleneck didn't disappear. It moved from generation to everything after it.&lt;/p&gt;

&lt;p&gt;The SDLC is growing a stage Old cycle: plan, code, test, deploy. Current cycle: plan, AI-generate, code, test, deploy. 2026 cycle: plan, AI-generate, Code Clean-up, test, deploy.&lt;/p&gt;

&lt;p&gt;Play&lt;br&gt;
Most "AI coding agents" skip that middle stage and ship whatever generation produced.&lt;/p&gt;

&lt;p&gt;What makes one real, not a renamed coding agent Six IDE-native facts, not guesses: Run Configurations, Decompile, Inspections, Debugger, Coverage, Edit Scope (agent touches only what it's told to, every change accepted by a human, auditable by anyone).&lt;/p&gt;

&lt;p&gt;One engineering team put a number on the split: roughly 25% of a developer's day is spent writing code, the other 75% is everything around it. The goal behind a Code Clean-up Agent is to cut that 75% by roughly 5x. That's a target the team is building toward, not a blanket guarantee for every codebase.&lt;/p&gt;

&lt;p&gt;The hard part is control A Code Clean-up Agent that ships on its own is just an AI coding agent with a new label. The category only works if every change comes with an itemized receipt. The developer accepts. A reviewer can audit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://explyt.ai/t/l/dev-2" rel="noopener noreferrer"&gt;Explyt&lt;/a&gt; is built as an IDE-native Code Clean-up Agent. You accept. A reviewer audits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyf7zxe9u7ds8ng1pvxfg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyf7zxe9u7ds8ng1pvxfg.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>Stop Treating Green Tests as Proof That Your AI Agent Wrote the Right Code</title>
      <dc:creator>Viktoria</dc:creator>
      <pubDate>Wed, 12 Aug 2026 09:43:01 +0000</pubDate>
      <link>https://dev.to/marketing_explyt_a7b53da9/stop-treating-green-tests-as-proof-that-your-ai-agent-wrote-the-right-code-3kha</link>
      <guid>https://dev.to/marketing_explyt_a7b53da9/stop-treating-green-tests-as-proof-that-your-ai-agent-wrote-the-right-code-3kha</guid>
      <description></description>
    </item>
  </channel>
</rss>
