<?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: gracefullight</title>
    <description>The latest articles on DEV Community by gracefullight (@gracefullight).</description>
    <link>https://dev.to/gracefullight</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%2F1435105%2F42b0924f-ba4d-4504-b64b-07fc976c4a5e.jpg</url>
      <title>DEV Community: gracefullight</title>
      <link>https://dev.to/gracefullight</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gracefullight"/>
    <language>en</language>
    <item>
      <title>oh-my-agent: mechanical stop gates and unified configuration</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 13 Aug 2026 02:01:03 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-mechanical-stop-gates-and-unified-configuration-57b0</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-mechanical-stop-gates-and-unified-configuration-57b0</guid>
      <description>&lt;p&gt;When you leave an autonomous agent running overnight, you need to know it will actually stop when the work is done. It should not stop because it hit an arbitrary loop limit. This week brings mechanical stop gates to persistent workflows, unifies configuration into a single file, and ships portable agent plugin exports.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mechanical stop gates&lt;/strong&gt;: &lt;code&gt;oma goal:set&lt;/code&gt; establishes a completion contract for persistent mode. Map keywords like &lt;code&gt;typecheck&lt;/code&gt; or &lt;code&gt;lint&lt;/code&gt; to local scripts. A pass allows the workflow to stop. A failure blocks the stop and counts toward the &lt;code&gt;MAX_REINFORCEMENTS&lt;/code&gt; threshold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified skill configuration&lt;/strong&gt;: We dropped the scattered legacy config files. &lt;code&gt;.agents/skills/*/config/*.yaml&lt;/code&gt; and &lt;code&gt;models.yaml&lt;/code&gt; are gone. &lt;code&gt;oma-config.yaml&lt;/code&gt; is now the single source of truth. Run &lt;code&gt;oma update&lt;/code&gt; and migration 022 will carry over any user-diverged keys automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Plugins 1.0.0&lt;/strong&gt;: Run &lt;code&gt;oma emit --target agent-plugin&lt;/code&gt; to export a self-contained archive. This outputs a closed-schema &lt;code&gt;plugin.json&lt;/code&gt; conformant with the agent-plugins.org specification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TDD evidence checks&lt;/strong&gt;: &lt;code&gt;oma verify&lt;/code&gt; now supports an opt-in per-task test approach. Tasks marked &lt;code&gt;tdd&lt;/code&gt; require a &lt;code&gt;TDD_EVIDENCE&lt;/code&gt; block in the result file showing a focused test command, a red failure, and a green pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harness refine signals&lt;/strong&gt;: &lt;code&gt;oma retro&lt;/code&gt; now analyzes the event trail. Repeated gate failures or raised blockers are aggregated into a new section with one-line edit proposals for your harness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dry-run linking&lt;/strong&gt;: &lt;code&gt;oma link --dry-run&lt;/code&gt; previews every target before mutating your workspace. It shares the exact same vendor conditionals as a real pass.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This release also shifts our documentation structure. Artifact verification now leads the pitch over portability.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;External vendor CLIs exiting 0 without writing a workspace artifact now fail loud with an exit code of 3. You will no longer mistake a silent misdirected write for success.&lt;/li&gt;
&lt;li&gt;The HUD statusline no longer hangs indefinitely when &lt;code&gt;stdin&lt;/code&gt; is kept open. It now falls back to an 800ms asynchronous read timeout.&lt;/li&gt;
&lt;li&gt;Generated file writes are now fully atomic. A crash mid-write will no longer leave corrupted partial files in vendor directories.&lt;/li&gt;
&lt;li&gt;Uninstalling no longer inadvertently deletes home-consent symlinks belonging to other installations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Skill evaluation is now grounded in real data. We seeded offline &lt;code&gt;--mock&lt;/code&gt; replay coverage for &lt;code&gt;oma-scm&lt;/code&gt;, &lt;code&gt;oma-market&lt;/code&gt;, and &lt;code&gt;oma-docs&lt;/code&gt; using recorded live rollouts.&lt;/li&gt;
&lt;li&gt;The unit coverage floor stays hard. Omitting a test approach value in the PM plan will never waive the &amp;gt;= 80% coverage gate.&lt;/li&gt;
&lt;li&gt;Trigger keywords are no longer strictly gated by the configured language. A Korean prompt in an English project will correctly fire its workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: automated rollback triggers for failed verification gates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>oh-my-agent: inline plan creation and Node 26</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 06 Aug 2026 02:01:10 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-inline-plan-creation-and-node-26-257c</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-inline-plan-creation-and-node-26-257c</guid>
      <description>&lt;p&gt;When you tell an agent to build a complex feature, it usually needs a plan. When you do not provide one, the orchestrator should not just hand the request back to you.&lt;/p&gt;

&lt;p&gt;Until this week, &lt;code&gt;oma orchestrate&lt;/code&gt; required an existing plan file to proceed. Now, it generates one on the fly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;oma orchestrate&lt;/code&gt; creates a plan inline when no usable plan exists, using the same session ID so artifacts do not diverge.&lt;/li&gt;
&lt;li&gt;Node 26 is now the required runtime for all workspaces and local shells.&lt;/li&gt;
&lt;li&gt;The OMA block enforces an absolute top-priority directive: execute imperative prompts verbatim and never build until explicitly asked.&lt;/li&gt;
&lt;li&gt;Qwen Code generation requests now run with a 5-minute timeout ceiling to prevent long agent turns from aborting mid-stream.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Global installations need to know where they live, not just where you are currently standing in the terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;oma doctor --global&lt;/code&gt; and &lt;code&gt;oma link --global&lt;/code&gt; now correctly resolve the global install root instead of &lt;code&gt;process.cwd()&lt;/code&gt;, fixing silent failures during global operations.&lt;/li&gt;
&lt;li&gt;Serena search hits no longer truncate due to low character limits on initial installs.&lt;/li&gt;
&lt;li&gt;Removed short Korean keywords that falsely activated persistent modes and blocked session termination.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also tweaked how the frontend skill handles default Next.js behaviors to protect your container CPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;oma-frontend&lt;/code&gt; skill defaults &lt;code&gt;next/link&lt;/code&gt; prefetch to &lt;code&gt;false&lt;/code&gt;, cutting down on RSC payload requests for nav-heavy pages.&lt;/li&gt;
&lt;li&gt;Over 40 vendor writers now use &lt;code&gt;safeGetInstallRoot()&lt;/code&gt;, making the CLI more resilient when &lt;code&gt;.agents&lt;/code&gt; directories are missing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: refined memory controls for long-running sessions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent: shared MCP daemons and offline BGM rendering</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 30 Jul 2026 02:01:19 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-shared-mcp-daemons-and-offline-bgm-rendering-4cd1</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-shared-mcp-daemons-and-offline-bgm-rendering-4cd1</guid>
      <description>&lt;p&gt;We just merged a complete overhaul of how oh-my-agent manages MCP processes. Previously, every agent session spawned its own copy of every stdio MCP server. We measured 65 processes and 800MB of RAM across six sessions. Now, serena daemons are shared per-project by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BGM rendering&lt;/strong&gt;: The video agent now supports &lt;code&gt;--music &amp;lt;preset&amp;gt;&lt;/code&gt; to render background music beds offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strudel integration&lt;/strong&gt;: Music is generated via Strudel in a headless Chrome instance without adding npm dependencies to the CLI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified config&lt;/strong&gt;: Source control management configurations are now consolidated into a single &lt;code&gt;.agents/oma-config.yaml&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The music presets are arranged rather than looped, using scale degrees and per-bar gain ramps to build a proper bed over the specified duration.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global install scope&lt;/strong&gt;: Fixed a bug where &lt;code&gt;oma install --global&lt;/code&gt; registered the home directory as a project, preventing the language detection scanner from walking up to 20,000 irrelevant files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hook paths&lt;/strong&gt;: The &lt;code&gt;oma-hook.sh&lt;/code&gt; wrapper no longer bakes in the absolute path of the installer, keeping version-controlled hooks clean across teams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model probing&lt;/strong&gt;: Fixed the &lt;code&gt;model:probe&lt;/code&gt; command to correctly resolve custom registered slugs instead of always falling back to the owner prefix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP bridge paths&lt;/strong&gt;: Stopped the bridge from writing machine-specific absolute paths into the committed &lt;code&gt;.mcp.json&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These fixes prevent local installation environments from leaking into version control and breaking workflows when shared across different machines.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daemon lifecycle&lt;/strong&gt;: The new bridge mode starts a single serena HTTP daemon per project and shares it across sessions. The daemon shuts down automatically after a 10-minute idle grace period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artifact footprint&lt;/strong&gt;: Removed 298 files and 4.8MB of duplicated skill artifacts from the repository by dropping the &lt;code&gt;generated/&lt;/code&gt; tracking directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt engineering&lt;/strong&gt;: Dropped explicit self-verification instructions and output-shape examples from core skills to align with Anthropic's new context guidance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill length linting&lt;/strong&gt;: Added a warning when a skill body exceeds the 500-line limit recommended by prompt engineering guides.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The prompt reductions were validated across 20 agent runs, proving that removing explicit examples actually improved the agent's ability to fix mutable sort keys without introducing false positives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: expanding the video compositor with custom branded layers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent: cross-context reviews and trigger accuracy testing</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 16 Jul 2026 02:01:44 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-cross-context-reviews-and-trigger-accuracy-testing-12f7</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-cross-context-reviews-and-trigger-accuracy-testing-12f7</guid>
      <description>&lt;p&gt;When you ask a model to review its own design, it usually gives itself an A. We merged a fix for authorship bias this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Trigger accuracy harness&lt;/strong&gt;: &lt;code&gt;oma verify triggers&lt;/code&gt; now measures keyword false-fire and missed-fire rates against a 167-entry labeled corpus with zero LLM calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standards emission&lt;/strong&gt;: &lt;code&gt;oma emit&lt;/code&gt; generates conformant Agent Skills spec folders, a &lt;code&gt;.claude-plugin&lt;/code&gt; marketplace manifest, and an &lt;code&gt;AGENTS.md&lt;/code&gt; index directly from the &lt;code&gt;.agents&lt;/code&gt; single source of truth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills linting&lt;/strong&gt;: &lt;code&gt;oma skills lint&lt;/code&gt; enforces deterministic authoring-smell checks based on Anatomy-to-Smells research.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bundle sprawl warnings&lt;/strong&gt;: &lt;code&gt;oma skills audit&lt;/code&gt; now flags skills that exceed 20 reference files or 25,000 characters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also wired up &lt;code&gt;SessionStart&lt;/code&gt; hooks for Claude Code to reload skills dynamically and handle session compaction without dropping context.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keyword matching now ranks by specificity. Longest keyword wins, then multi-word, then declaration order. This resolves self-suppression collisions.&lt;/li&gt;
&lt;li&gt;Relayed inter-agent messages no longer trigger false workflow keyword detections.&lt;/li&gt;
&lt;li&gt;Windows &lt;code&gt;atomicWriteJson&lt;/code&gt; failures (EPERM) are resolved by opening the temp file with read-write permissions.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;opencode&lt;/code&gt; bridge is completely rewritten to honor the new plugin API mutation contract, restoring true persistent mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-context reviews&lt;/strong&gt;: All 11 ultrawork review steps now dispatch to fresh reviewer subagents that receive only durable artifacts and the review guide. Same-session self-review is removed because isolated reviews catch more defects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-stakes blind review&lt;/strong&gt;: Brainstorm workflows now escalate to independent subagents for design artifact critique, completely removing authorship bias.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marketplace consolidation&lt;/strong&gt;: The repository root &lt;code&gt;.claude-plugin&lt;/code&gt; directory is now the single source of truth for the Claude plugin marketplace.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: native Antigravity plugin emission.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent: Angular support and stateful configuration merges</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 09 Jul 2026 03:03:54 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-angular-support-and-stateful-configuration-merges-hmp</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-angular-support-and-stateful-configuration-merges-hmp</guid>
      <description>&lt;p&gt;Shared tool configurations drift when developers run local agents. Adding a new MCP server to a team setup usually fails to reach existing local configurations, leaving developers with outdated toolsets. We resolved this in our latest CLI release by introducing stateful configuration back-filling. The update merges new servers into local environments while preserving custom developer adjustments.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Angular stack integration&lt;/strong&gt;: Added frontend domain detection for &lt;code&gt;angular.json&lt;/code&gt; and &lt;code&gt;@angular/*&lt;/code&gt; packages in the &lt;code&gt;/stack-set&lt;/code&gt; command. The &lt;code&gt;oma-frontend&lt;/code&gt; skill now includes &lt;code&gt;angular-rules.md&lt;/code&gt; to enforce standalone components, OnPush change detection, and signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API evolution patterns&lt;/strong&gt;: Added API lifecycle patterns based on the MAP framework to &lt;code&gt;oma-architecture&lt;/code&gt;. This includes Sajaniemi's 11 variable-role taxonomy to guide naming rules in &lt;code&gt;oma-refactor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows scheduling updates&lt;/strong&gt;: The &lt;code&gt;schtasks&lt;/code&gt; adapter now maps weekly cron ranges like &lt;code&gt;1-5&lt;/code&gt; or lists like &lt;code&gt;1,3,5&lt;/code&gt; directly to Windows task scheduler formats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model validation&lt;/strong&gt;: Added vendor validation to the &lt;code&gt;schedule:add&lt;/code&gt; command. The CLI now rejects unknown models at registration time rather than failing during execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keeping local environments synchronized across diverse OS targets requires strict validation. These fixes ensure configuration changes flow correctly without disrupting developer-specific settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP server synchronization&lt;/strong&gt;: Fixed an issue where SSOT servers added to &lt;code&gt;.agents/mcp.json&lt;/code&gt; were only copied if &lt;code&gt;.mcp.json&lt;/code&gt; was entirely absent. The CLI now reads the source of truth on every run and merges missing entries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test execution reliability&lt;/strong&gt;: Restructured the project root resolution tests to mock the filesystem walk. This isolates test runs from ambient files on CI runners and avoids false failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market diversity flags&lt;/strong&gt;: Corrected the &lt;code&gt;--diversity-threshold&lt;/code&gt; flag documentation to reflect that the default threshold is not enforced unless the flag is explicitly set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cleaning up obsolete protocols reduces token usage and limits agent distraction. Moving to automated dependency management ensures developers stay on current agent APIs without manual maintenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Serena auto-update defaults&lt;/strong&gt;: Changed &lt;code&gt;serena.auto_update&lt;/code&gt; to default to true. The system automatically upgrades the agent via &lt;code&gt;uv&lt;/code&gt; on update commands, keeping the memories CLI fallback active.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codebase cleanup&lt;/strong&gt;: Removed the unused &lt;code&gt;evaluator-tuning.md&lt;/code&gt; protocol file. Project instances are migrated automatically through database migration &lt;code&gt;016&lt;/code&gt; to reduce project directory clutter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: deeper telemetry integration for local agent runs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>oh-my-agent: Bluesky broadcasts and Claude workspace auto-trust</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 02 Jul 2026 03:02:26 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-bluesky-broadcasts-and-claude-workspace-auto-trust-3j1n</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-bluesky-broadcasts-and-claude-workspace-auto-trust-3j1n</guid>
      <description>&lt;p&gt;When you tell an agent to handle a complex backend migration, hitting a hard cutoff 20 steps in ruins the workflow. We bumped the ceiling and smoothed out the integration edges.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bluesky syndication&lt;/strong&gt;: Release announcements now fan out to Bluesky with rich text tags and external link cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude auto-trust&lt;/strong&gt;: Project linking now directly mutates your &lt;code&gt;~/.claude.json&lt;/code&gt; to pre-accept workspace trust, skipping the interactive dialog entirely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serena auto-install&lt;/strong&gt;: The Serena MCP binary now self-installs during project setup and is actively probed by the &lt;code&gt;doctor&lt;/code&gt; command.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Premature cutoffs&lt;/strong&gt;: We raised the max agent turns from 20 up to 40 for backend, frontend, and mobile implementation agents to prevent mid-task failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo state leaks&lt;/strong&gt;: Running commands from inside a sub-package no longer leaves stray &lt;code&gt;.agents/&lt;/code&gt; directories behind. State is correctly anchored to the project root.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fragile JSON parsing&lt;/strong&gt;: Agent publishing steps now use &lt;code&gt;jsonrepair&lt;/code&gt; with a 3x retry loop, preventing trailing commas or unclosed braces from aborting a release.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode dispatch&lt;/strong&gt;: Subagents now properly inherit the user's default model instead of a hardcoded slug, and routing correctly falls back to native task tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smarter MCP resolution&lt;/strong&gt;: Serena now uses &lt;code&gt;--project-from-cwd&lt;/code&gt; to gracefully handle execution from nested subdirectories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installation UX&lt;/strong&gt;: The install flow detects native OpenCode tasks and gracefully defaults to a &lt;code&gt;mixed&lt;/code&gt; preset when a strict single-vendor lock is unnecessary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context isolation&lt;/strong&gt;: The Antigravity MCP transport now correctly stamps its own context instead of bleeding the Claude Code defaults.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: expanding our deepsec vulnerability scanner capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent: ZCode workflows and zero-prompt Claude Code trust</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Fri, 26 Jun 2026 14:36:55 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-zcode-workflows-and-zero-prompt-claude-code-trust-3d1i</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-zcode-workflows-and-zero-prompt-claude-code-trust-3d1i</guid>
      <description>&lt;p&gt;oh-my-agent CLI 10.5.0 just shipped. We added native support for ZCode and automated the workspace trust flow for Claude Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ZCode integration&lt;/strong&gt;: ZCode is now registered as a workflow vendor. Workspace slash-commands in &lt;code&gt;.agents/workflows/*.md&lt;/code&gt; are automatically symlinked to &lt;code&gt;.zcode/commands/&amp;lt;name&amp;gt;.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code zero-prompt trust&lt;/strong&gt;: Project-level installs surgically inject &lt;code&gt;hasTrustDialogAccepted=true&lt;/code&gt; into &lt;code&gt;~/.claude.json&lt;/code&gt;. Claude Code applies your workspace permissions immediately instead of blocking on a trust dialog.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serena binary auto-install&lt;/strong&gt;: &lt;code&gt;oma install&lt;/code&gt; now automatically provisions &lt;code&gt;serena-agent&lt;/code&gt; via &lt;code&gt;uv&lt;/code&gt; if missing. &lt;code&gt;oma doctor&lt;/code&gt; explicitly probes the binary state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode picker&lt;/strong&gt;: OpenCode is available directly in the &lt;code&gt;oma link&lt;/code&gt; picker (and you can skip selection entirely if you just want the CLI).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These integrations remove friction for teams spinning up new projects from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode model fallback&lt;/strong&gt;: Removed the hardcoded model slug. OpenCode variants now inherit your configured default model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode tools validation&lt;/strong&gt;: Fixed a &lt;code&gt;ConfigInvalidError&lt;/code&gt; on bootstrap by omitting empty tools arrays.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serena subdirectory execution&lt;/strong&gt;: Replaced the hardcoded CWD flag with &lt;code&gt;--project-from-cwd&lt;/code&gt; so agents can run reliably from any subfolder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity MCP context&lt;/strong&gt;: Prevented the Claude Code context from leaking into the Antigravity runtime during tool execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistent mode crossover&lt;/strong&gt;: Fixed a bug where untracked sessions shared state hooks under a generic unknown session ID.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also gave agents more breathing room to complete complex tasks without premature termination.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Turn limits raised&lt;/strong&gt;: Implementation agents (backend, frontend, mobile) now have a 40-turn cap to prevent stopping in the middle of long tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contract separation&lt;/strong&gt;: Generated API contracts are written to &lt;code&gt;docs/plans/contracts/&lt;/code&gt; to keep the skill directories pristine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache exclusion&lt;/strong&gt;: The &lt;code&gt;.serena/cache&lt;/code&gt; directory is excluded from default project scans to reduce UTF-8 decoding noise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: deeper control over persistent state execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>oh-my-agent: cross-vendor scheduling, Kimi and OpenCode land</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Wed, 17 Jun 2026 13:34:11 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-cross-vendor-scheduling-kimi-and-opencode-land-4b2b</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-cross-vendor-scheduling-kimi-and-opencode-land-4b2b</guid>
      <description>&lt;p&gt;Two new vendors and an OS-level scheduler merged into oh-my-agent this week, which means your agents can now run on a clock instead of only when you prompt them. 135 commits, and the theme underneath most of them is the same: stop pinning the agent to a single runtime, and stop leaking resources between sessions.&lt;/p&gt;

&lt;p&gt;oh-my-agent is a cross-vendor harness. The point is that a workflow, a skill, or a subagent dispatch should not care which CLI is underneath it. This week pushed hard on that promise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kimi Code CLI&lt;/strong&gt; is now a first-class vendor: OAuth/&lt;code&gt;KIMI_API_KEY&lt;/code&gt; auth, TOML hook install into &lt;code&gt;~/.kimi-code/config.toml&lt;/code&gt;, mode-aware Serena and chrome-devtools MCP, and external dispatch via &lt;code&gt;kimi -p&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode&lt;/strong&gt; lands as an extension-class vendor with in-process plugin bridging. Subagent dispatch runs through &lt;code&gt;opencode run --agent &amp;lt;id&amp;gt;&lt;/code&gt;, and model slugs are validated against &lt;code&gt;opencode models&lt;/code&gt; rather than a hardcoded catalog.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma schedule:*&lt;/code&gt;&lt;/strong&gt; adds time-based recurring agent jobs that fire independently of any runtime. One &lt;code&gt;SchedulerPort&lt;/code&gt; abstracts launchd, &lt;code&gt;systemd --user&lt;/code&gt;, crontab, and Windows &lt;code&gt;schtasks&lt;/code&gt;, with &lt;code&gt;--cron&lt;/code&gt; or natural-language &lt;code&gt;--every&lt;/code&gt; intervals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma serena reap&lt;/code&gt;&lt;/strong&gt; kills idle language servers. Serena keeps a per-project LSP stack warm with no idle shutdown, so a few open projects pin 1.5GB or more; the reaper trims them and Serena respawns on the next tool call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma memory:gc&lt;/code&gt;&lt;/strong&gt; prunes project-local session state and aged Serena run artifacts (defaults: keep 100 sessions, 50 days), while curated knowledge like decisions and designs is never touched.&lt;/li&gt;
&lt;li&gt;Two new agents: &lt;code&gt;refactor-engineer&lt;/code&gt; (budget-funded, behavior-preserving refactoring) and &lt;code&gt;research-explorer&lt;/code&gt; (cited, trust-labeled cross-source synthesis), backed by the new &lt;code&gt;oma-refactor&lt;/code&gt; skill.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma-mobile&lt;/code&gt; gains full Flutter and React Native variants, each with a mandated repository-layer response cache (Drift offline-first, TanStack Query plus MMKV).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;oma update&lt;/code&gt; no longer bulk-deletes vendor skill symlinks on every run, so a mid-update download failure can no longer leave the skills directory empty.&lt;/li&gt;
&lt;li&gt;Updates stopped pruning skills that a shipped agent depends on, closing a gap where &lt;code&gt;refactor-engineer&lt;/code&gt; could arrive without &lt;code&gt;oma-refactor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cleanupPeriodDays&lt;/code&gt; moved to the top level of Claude Code settings, where it was a no-op nested under &lt;code&gt;env&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Antigravity hooks registered through the &lt;code&gt;/hooks&lt;/code&gt; UI are now preserved instead of clobbered on link and update.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docs verification got far less noisy: full-repo &lt;code&gt;oma docs verify&lt;/code&gt; drops from 6,611 to 394 broken refs (and the web/docs subset from 491 to 29), so the remainder is real drift.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma hook&lt;/code&gt; fires on every prompt, so it now takes an argv fast path and lazy-loads the command tree: invocation went from about 0.54s to 0.32s.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;UserPromptSubmit&lt;/code&gt; handler budgets were retuned against a p95 of 373ms, dropping the aggregate timeout ceiling from 21s to 15s while keeping headroom over the 2s AgentMemory recall budget.&lt;/li&gt;
&lt;li&gt;A large structural pass split all 28 non-test files over 500 lines into focused modules (largest remaining is 491) and consolidated duplicated helpers (type guards, safe writes, vendor unions, exit codes) with no behavior change.&lt;/li&gt;
&lt;li&gt;AgentMemory recall now drops facts older than 30 days by default, so long-resolved decisions stop rehydrating into the boundary snapshot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemini CLI is on its sunset path (June 18, 2026), so &lt;code&gt;GEMINI.md&lt;/code&gt; generation and the standalone gemini preset were removed, with legacy configs soft-redirecting to antigravity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;oh-my-agent is built for teams who run the same workflows across whichever CLI they happen to have authenticated. Next up: deeper per-agent model routing across the newly added vendors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>oh-my-agent 9.0: the explore rename, a hook ABI, and two new agents</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Fri, 12 Jun 2026 14:13:02 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-90-the-explore-rename-a-hook-abi-and-two-new-agents-2fbi</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-90-the-explore-rename-a-hook-abi-and-two-new-agents-2fbi</guid>
      <description>&lt;p&gt;oh-my-agent crossed 9.0 this week, and it carries the project's first breaking change: the agent slot formerly called &lt;code&gt;retrieval&lt;/code&gt; is now &lt;code&gt;explore&lt;/code&gt;. The name finally matches the work class, and migration 014 rewrites your &lt;code&gt;oma-config.yaml&lt;/code&gt; automatically on install or update. Around that rename, 175 commits landed in seven days, taking the CLI from 8.42.0 to 9.0.2.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two new agents&lt;/strong&gt;: &lt;code&gt;refactor-engineer&lt;/code&gt; owns budget-funded, behavior-preserving refactoring, and &lt;code&gt;research-explorer&lt;/code&gt; traverses oma-search, oma-market, and oma-scholar with cited, trust-labeled synthesis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;oma-refactor skill&lt;/strong&gt;: smell, SATD, and hotspot targeting with characterization-test safety nets. Utility eval measured a +57.1% lift over baseline across 7 tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma hook&lt;/code&gt; ABI&lt;/strong&gt;: vendor hooks no longer copy and patch per-vendor bun scripts. A single &lt;code&gt;oma hook --vendor &amp;lt;v&amp;gt; --event &amp;lt;e&amp;gt;&lt;/code&gt; entry point now dispatches for all 8 hook-model vendors, with embedded routes and fail-open semantics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New dispatch vendors&lt;/strong&gt;: commandcode joins the registry as an opt-in vendor, and pi (Earendil's multi-provider proxy) is now a full per-agent dispatch target via &lt;code&gt;oma agent:spawn &amp;lt;agent&amp;gt; -m pi&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma ralph:verify&lt;/code&gt;&lt;/strong&gt;: the ralph workflow's anti-circumvention gate moved from prose instructions to a deterministic CLI verdict with structured JSON output and non-zero exit on failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;serena-primer&lt;/strong&gt;: a per-session prompt hook that reminds the model to load Serena's symbolic tools in Serena-activated projects, instead of silently falling back to grep.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The through-line is mechanical enforcement. Prose instructions get rationalized away by agents; CLI verdicts and dispatch ABIs do not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docs reference verification cut false positives from 6,611 to 394 broken refs repo-wide (491 to 29 on the docs subset) by tightening extraction rules and adding a git-backed suffix resolver.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma update&lt;/code&gt; no longer prunes skills that shipped agents depend on, which previously could deliver an agent without its required skill.&lt;/li&gt;
&lt;li&gt;Antigravity installs stop clobbering user-registered hooks in &lt;code&gt;hooks.json&lt;/code&gt;; oma-managed entries now merge instead of overwrite.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma hook&lt;/code&gt; caps its stdin read at 2 seconds with fail-open dispatch. Codex was holding the pipe open and stalling prompts for 18 to 21 seconds.&lt;/li&gt;
&lt;li&gt;Discussing ultrawork or ralph by name no longer activates the persistent workflow; the keyword detector now distinguishes commands from mentions and compound tokens like &lt;code&gt;ralph.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A crashed install or update lock is reclaimed in 60 seconds instead of 10 minutes when the holding pid is confirmed dead.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;oma hook&lt;/code&gt; invocation dropped from roughly 0.54s to 0.32s user time via a lazy-loaded command tree and an argv fast path, which matters because it fires on every prompt.&lt;/li&gt;
&lt;li&gt;All 28 non-test CLI files over 500 lines were split into focused modules with public APIs unchanged; the largest remaining file is 491 lines, verified by 3,043 passing tests.&lt;/li&gt;
&lt;li&gt;On-disk backups consolidated from 5+ scattered conventions into a single &lt;code&gt;.agents/backup/&lt;/code&gt; root, covered by one gitignore line and cleared after a successful update.&lt;/li&gt;
&lt;li&gt;A security pass replaced shell-interpolated &lt;code&gt;execSync&lt;/code&gt; calls with argv arrays, added SSRF guards and path-containment checks, and closed an XSS vector in slide font inlining.&lt;/li&gt;
&lt;li&gt;The cross-slice import boundary gate went from permanently red (24 false violations) to green and now gates CI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: deepening the pi dispatch path and graduating commandcode from opt-in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent: skills now measure and optimize their own utility</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Fri, 05 Jun 2026 05:20:04 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-skills-now-measure-and-optimize-their-own-utility-4g14</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-skills-now-measure-and-optimize-their-own-utility-4g14</guid>
      <description>&lt;p&gt;Most skill libraries grow by accretion. You add a SKILL.md, it sounds useful, and it lives forever because nobody can prove it helps or hurts. This week oh-my-agent closed that gap: &lt;code&gt;oma skills eval&lt;/code&gt; measures whether loading a skill actually improves held-out task outcomes, and &lt;code&gt;oma skills opt&lt;/code&gt; rewrites the skill to push that number up. 194 commits landed, CLI is at 8.41.0, but the eval-to-opt loop is the part worth your attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma skills eval&lt;/code&gt;&lt;/strong&gt;: measures &lt;code&gt;utilityLift&lt;/code&gt; (treatment vs baseline) on held-out tasks. &lt;code&gt;--mock&lt;/code&gt; replays recorded rollouts deterministically, &lt;code&gt;--live&lt;/code&gt; spawns two read-only agentic arms per task, &lt;code&gt;--record&lt;/code&gt; captures the rollouts. Default checker is &lt;code&gt;judge&lt;/code&gt; (an LLM grades output against a rubric); &lt;code&gt;assert&lt;/code&gt; and &lt;code&gt;regex&lt;/code&gt; are opt-in deterministic checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma skills opt&lt;/code&gt;&lt;/strong&gt;: an optimizer LLM proposes bounded add/delete/replace edits to a &lt;code&gt;SKILL.md&lt;/code&gt;, re-scores each candidate through eval, and accepts only when held-out validation lift strictly improves with no negative-transfer regression (SkillOpt, arXiv:2605.23904). &lt;code&gt;--dry-run&lt;/code&gt; is the default; &lt;code&gt;--apply&lt;/code&gt; writes through atomic temp+rename with a &lt;code&gt;.bak&lt;/code&gt; backup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Negative-transfer sampling&lt;/strong&gt;: &lt;code&gt;--neg-transfer&lt;/code&gt; checks whether loading one skill regresses unrelated same-domain tasks from other skills' eval sets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scaling-law audit checks&lt;/strong&gt;: &lt;code&gt;oma skills audit&lt;/code&gt; now flags black-hole skills (overly generic routing hijackers) and warns past a calibrated library-size routing-decay threshold (Chen et al., arXiv:2605.16508).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma-video&lt;/code&gt; skill and &lt;code&gt;/video&lt;/code&gt; workflow&lt;/strong&gt;: key-optional 3-tier generation (9:16 shorts, 16:9 explainer, demo capture of any URL) composing narration, visuals, captions, and a vendored Remotion compositor. Every provider degrades to a deterministic fallback, so a run completes with zero API keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swift native iOS in &lt;code&gt;oma-mobile&lt;/code&gt;&lt;/strong&gt;: a &lt;code&gt;swift-ios&lt;/code&gt; variant (SwiftUI + &lt;code&gt;@Observable&lt;/code&gt;, Apple &lt;code&gt;swift-openapi-generator&lt;/code&gt;, App/Core/Features/Shared layout). &lt;code&gt;/stack-set&lt;/code&gt; now detects Swift, Flutter, and React Native and routes to the resolved skill; &lt;code&gt;oma verify mobile&lt;/code&gt; runs &lt;code&gt;swift build&lt;/code&gt; / &lt;code&gt;swift test&lt;/code&gt; by stack manifest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma intel&lt;/code&gt;&lt;/strong&gt;: a local-first product intelligence pipeline that collects GitHub README, releases, and issues, runs an adversarial multi-lens review gate, and splits output into a PRD and a gap report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three new runtimes&lt;/strong&gt;: Kiro CLI, Pi (Earendil, via in-process &lt;code&gt;.pi/extensions&lt;/code&gt;), and full Antigravity (agy) hook integration through &lt;code&gt;.agents/hooks.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;runAction&lt;/code&gt; clobbered positional operands&lt;/strong&gt;: it overwrote &lt;code&gt;args[0]&lt;/code&gt; with the merged options object, so &lt;code&gt;oma state:emit decision.made '{...}'&lt;/code&gt; recorded the kind as &lt;code&gt;{category:"main",...}&lt;/code&gt; and &lt;code&gt;state:verify&lt;/code&gt; always reported the decision missing. Options are now replaced by position so operands survive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;--yes&lt;/code&gt; never reached handlers&lt;/strong&gt;: the wrapper passed &lt;code&gt;command.opts()&lt;/code&gt; (which drops globally-parsed flags), so &lt;code&gt;oma skills eval --live --yes&lt;/code&gt; still blocked at the cost-preview prompt. Switched to &lt;code&gt;optsWithGlobals()&lt;/code&gt;, making live skill-eval runnable in CI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AgentMemory leaked into project dirs&lt;/strong&gt;: the iii engine wrote a cwd-relative &lt;code&gt;./data/&lt;/code&gt; store into whatever project launched it. The daemon cwd is now pinned to &lt;code&gt;~/.agentmemory&lt;/code&gt;, and &lt;code&gt;daemon stop&lt;/code&gt; invokes &lt;code&gt;agentmemory stop&lt;/code&gt; so no orphaned engine keeps port 3111.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyless market sources silently 403'd&lt;/strong&gt;: anonymous reddit &lt;code&gt;search.json&lt;/code&gt; and bluesky's public search endpoint both returned 403, dropping two of the default sources. Reddit now routes through pullpush.io, bluesky through &lt;code&gt;api.bsky.app&lt;/code&gt;, taking keyless default coverage from 2/4 to 4/4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;agy headless stdout was empty&lt;/strong&gt;: Antigravity emits nothing on stdout under &lt;code&gt;--print&lt;/code&gt; against a non-TTY, so spawned subagent capture was blank. Subagents now run under a PTY (&lt;code&gt;script(1)&lt;/code&gt;) so their output is captured.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflows are symlinked directly&lt;/strong&gt;: each workflow file carries its own &lt;code&gt;name&lt;/code&gt; + &lt;code&gt;disable-model-invocation&lt;/code&gt; frontmatter and is exposed by symlinking straight at &lt;code&gt;.agents/workflows/&amp;lt;wf&amp;gt;.md&lt;/code&gt;. This removed 18 committed wrapper skills and fixed a &lt;code&gt;pdf&lt;/code&gt;/&lt;code&gt;oma-pdf&lt;/code&gt; audit false positive; the real skill count is now 30.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;harvest.ts&lt;/code&gt; split&lt;/strong&gt;: the 1.4k-line market harvest file became endpoints / normalizers / sources modules, and a ~400-line &lt;code&gt;fetchSource&lt;/code&gt; conditional became a source-handler registry. The public facade is unchanged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Print stylesheet stopped fighting the cascade&lt;/strong&gt;: the slide PDF export dropped its avoidable &lt;code&gt;!important&lt;/code&gt; overrides by fixing the source of the conflict (scoped &lt;code&gt;#slide-NN&lt;/code&gt; resets emitted after author styles) instead of forcing the win. The only remaining &lt;code&gt;!important&lt;/code&gt; is the &lt;code&gt;prefers-reduced-motion&lt;/code&gt; a11y reset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized paths and hashing&lt;/strong&gt;: install, state, and recap now share &lt;code&gt;.agents&lt;/code&gt; path constants and agree on full SHA-256 for manifest checksums.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default effort lowered xhigh to high&lt;/strong&gt; for install-time Claude settings and the Anthropic auto-default; existing higher settings are preserved.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who treat a skill library as a measured asset, not a junk drawer. Next up: feeding &lt;code&gt;oma skills opt&lt;/code&gt; accepted edits back through the eval fixtures so the library self-tunes on every release.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>oh-my-agent: Antigravity becomes a first-class vendor</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Tue, 26 May 2026 11:28:02 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-antigravity-becomes-a-first-class-vendor-1hob</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-antigravity-becomes-a-first-class-vendor-1hob</guid>
      <description>&lt;p&gt;Antigravity's &lt;code&gt;agy&lt;/code&gt; CLI just landed as a first-class vendor in oh-my-agent, three weeks before Google retires the Gemini CLI for unpaid tiers on June 18, 2026. If your &lt;code&gt;model_preset&lt;/code&gt; still points at &lt;code&gt;gemini&lt;/code&gt;, the CLI now warns you at runtime and on every &lt;code&gt;oma update&lt;/code&gt; so you can switch before requests start failing.&lt;/p&gt;

&lt;p&gt;That migration set the theme for the week: 139 commits, &lt;code&gt;cli&lt;/code&gt; shipped through 8.9.0, and the vendor layer grew a real backbone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity (agy)&lt;/strong&gt; as a first-class vendor: a dedicated auth probe, two model entries (&lt;code&gt;gemini-3.1-pro&lt;/code&gt;, &lt;code&gt;gemini-3.5-flash&lt;/code&gt;), a real built-in preset, native dispatch via &lt;code&gt;agy --dangerously-skip-permissions -p&lt;/code&gt;, a doctor probe, an install-picker option, MCP config, HUD wiring, keyless image generation, and a recap transcript parser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global install mode&lt;/strong&gt;: &lt;code&gt;oma install --global&lt;/code&gt; writes to &lt;code&gt;~/.agents/&lt;/code&gt; instead of the project tree, backed by an install-context singleton that resolves &lt;code&gt;OMA_HOME&lt;/code&gt; &amp;gt; &lt;code&gt;--global&lt;/code&gt; &amp;gt; &lt;code&gt;cwd&lt;/code&gt;, a sudo-refusal guard, WSL guidance, and an atomic install lock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma uninstall [--global]&lt;/code&gt;&lt;/strong&gt; with a dry-run preview that partitions oma-owned files from user-authored content and never touches the latter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma skills audit&lt;/code&gt;&lt;/strong&gt;: a zero-dependency TF-IDF boundary check that flags confusable skill descriptions in a warn band (&amp;gt;=0.60) and a fail band (&amp;gt;=0.75), surfaced as a warning inside &lt;code&gt;oma doctor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L1 state snapshots&lt;/strong&gt;: a new &lt;code&gt;oma state&lt;/code&gt; command plus state-boundary, state-emit, and decision-verifier hooks that enforce decision snapshots during a run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; as a vendor: plugin and marketplace manifests, Composer transcript ingestion for recap, &lt;code&gt;auth:status&lt;/code&gt; wiring, and &lt;code&gt;composer-2.5&lt;/code&gt; presets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;npm publish had been running unauthenticated and 404ing on the 8.x releases. The publish step now sets both &lt;code&gt;NODE_AUTH_TOKEN&lt;/code&gt; and &lt;code&gt;NPM_CONFIG_TOKEN&lt;/code&gt; so neither bun code path can fall back to an empty token.&lt;/li&gt;
&lt;li&gt;Windows CI hung inside vitest on 13 of the last 15 runs. We capped the job at 20 minutes and skipped the vitest step on Windows (lint, typecheck, build, and the PowerShell installer smoke test still run) while we bisect the hanging test.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;verify&lt;/code&gt;'s closure check reported real artifacts as missing because Bun's &lt;code&gt;globSync&lt;/code&gt; does not match through hidden segments like &lt;code&gt;.agents/&lt;/code&gt;. It now uses a deterministic readdir-based segment walker.&lt;/li&gt;
&lt;li&gt;Forced LF line endings repo-wide via &lt;code&gt;.gitattributes&lt;/code&gt;, so Windows checkouts stop tripping the Biome format check.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;link()&lt;/code&gt; is now the single vendor reconciliation kernel. &lt;code&gt;oma install&lt;/code&gt;, &lt;code&gt;oma update&lt;/code&gt;, and &lt;code&gt;oma link&lt;/code&gt; each duplicated the per-vendor write pipeline; consolidating it removed roughly 110 lines from &lt;code&gt;update.ts&lt;/code&gt; and 130 from &lt;code&gt;install.ts&lt;/code&gt;, and closed a drift where the Antigravity HUD was never wired during normal install or update.&lt;/li&gt;
&lt;li&gt;Vendor functions follow one convention now: &lt;code&gt;apply&amp;lt;Vendor&amp;gt;&amp;lt;Subject&amp;gt;&lt;/code&gt; for writes, &lt;code&gt;needs&amp;lt;Vendor&amp;gt;&amp;lt;Subject&amp;gt;Update&lt;/code&gt; for idempotency guards.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;safeWriteJson&lt;/code&gt; / &lt;code&gt;safeReadJson&lt;/code&gt; helpers do atomic write-and-rename with backup rotation, plus a guard that refuses to clobber vendor state files like &lt;code&gt;~/.claude.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Workflow skills are unified under one SSOT at &lt;code&gt;.agents/skills/&lt;/code&gt; (Migration 011); vendor surfaces are symlinks into it instead of copies.&lt;/li&gt;
&lt;li&gt;The Windows installer (&lt;code&gt;install.ps1&lt;/code&gt;) now bootstraps serena via &lt;code&gt;uv tool&lt;/code&gt;, matching the Unix path.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oh-my-agent is built for teams who run more than one agent vendor and orchestrate more than they prompt. Next up: bisecting the Windows vitest hang so the full suite runs on every OS again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>oh-my-agent: five new skills land, plus vault and worktree isolation</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Mon, 18 May 2026 07:20:55 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-five-new-skills-land-plus-vault-and-worktree-isolation-4dkl</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-five-new-skills-land-plus-vault-and-worktree-isolation-4dkl</guid>
      <description>&lt;p&gt;326 commits over the last two weeks. The headline: five new skills shipped, secret management moved off shell rc files, and the project landed at #1 on its own 5-axis harness benchmark with 80.6/100.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Five new skills&lt;/strong&gt;: &lt;code&gt;oma-market&lt;/code&gt; (deterministic market research pipeline across keyless sources), &lt;code&gt;oma-docs&lt;/code&gt; (doc drift detection + sync), &lt;code&gt;oma-deepsec&lt;/code&gt; (drives Vercel's vulnerability scanner end-to-end), &lt;code&gt;oma-academic-writer&lt;/code&gt; (publication-grade prose), &lt;code&gt;oma-voice&lt;/code&gt; (local TTS/STT via Voicebox MCP).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma vault&lt;/code&gt;&lt;/strong&gt;: OS keychain credential store backed by &lt;code&gt;@napi-rs/keyring&lt;/code&gt;. Stops &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; and friends from sitting in shell rc files where any agent subprocess can read them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;agent:spawn --isolation=worktree&lt;/code&gt;&lt;/strong&gt;: opt-in git worktree per spawned agent. Worktrees are retained on exit; the spawner prints merge or discard commands so you decide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma stats&lt;/code&gt; cost telemetry&lt;/strong&gt;: per-vendor token breakdown with USD estimates from a conservative pricing floor. Input-only for now, output tokens tracked next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma model:check / probe / propose&lt;/code&gt;&lt;/strong&gt;: detect model registry drift against live vendor sources without API keys, then emit a &lt;code&gt;models.yaml&lt;/code&gt; patch for accepted candidates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cursor as a first-class vendor&lt;/strong&gt;: &lt;code&gt;cursor/composer-2&lt;/code&gt;, &lt;code&gt;composer-2-fast&lt;/code&gt;, and &lt;code&gt;auto&lt;/code&gt; register with native dispatch. New &lt;code&gt;cursor-only&lt;/code&gt; preset (also renamed to plain &lt;code&gt;cursor&lt;/code&gt;, see below).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three slash workflows&lt;/strong&gt;: &lt;code&gt;/docs&lt;/code&gt; for drift verify and sync, &lt;code&gt;/recap&lt;/code&gt; for daily and period summaries, &lt;code&gt;/deepsec&lt;/code&gt; for the full scan to triage loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA on the docs site&lt;/strong&gt;: manifest with maskable icons, install screenshots, and &lt;code&gt;display_override&lt;/code&gt; for desktop title-bar customization.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's fixed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Serena MCP&lt;/strong&gt; migrated from ephemeral &lt;code&gt;uvx --from git+...&lt;/code&gt; to globally installed &lt;code&gt;serena-agent&lt;/code&gt; via &lt;code&gt;uv tool install&lt;/code&gt;, with vendor-specific &lt;code&gt;--context&lt;/code&gt; per the upstream client matrix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hook keyword detector&lt;/strong&gt; hardened against three bypass classes: NFKC normalization for fullwidth Latin from CJK IMEs, hyphen-rejecting word boundaries, and a two-tier CLI invocation guard so prompts that ARE CLI invocations no longer trigger workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma doctor&lt;/code&gt;&lt;/strong&gt; CLI version probe bounded with a 1500ms spawn race + SIGTERM escalation, so a GUI binary that ignores &lt;code&gt;--version&lt;/code&gt; can no longer hang the probe indefinitely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;i18n translation drift&lt;/strong&gt; detection via &lt;code&gt;oma docs i18n&lt;/code&gt;, plus &lt;code&gt;oma docs lint&lt;/code&gt; for CJK em-dash anti-patterns (em-dash in CJK prose now flagged as a content-level lint, not auto-fixed).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preset rename&lt;/strong&gt;: &lt;code&gt;claude-only&lt;/code&gt; to &lt;code&gt;claude&lt;/code&gt;, &lt;code&gt;antigravity&lt;/code&gt; to &lt;code&gt;mixed&lt;/code&gt;. The &lt;code&gt;-only&lt;/code&gt; suffix misrepresented the contract (you can already override per-agent), and &lt;code&gt;antigravity&lt;/code&gt; collided with the runtime vendor id. Auto-migrated on &lt;code&gt;oma update&lt;/code&gt;; hard-error on legacy values in &lt;code&gt;oma-config.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's better
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark&lt;/strong&gt;: oh-my-agent now scores 80.6/100 on the 5-axis multi-judge harness (Functional, Spec, Visual, Engineering, Efficiency), landing #1 against omc, superpowers, vanilla, and ecc. Multi-judge averaging runs three rounds per axis to drop single-run noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;oma update&lt;/code&gt;&lt;/strong&gt; prints a "What's new" note with added or removed skills and workflows after the version bump, so the catalog change is visible at upgrade time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;docs/generated/&lt;/code&gt;&lt;/strong&gt; auto-added to &lt;code&gt;.gitignore&lt;/code&gt; on doc write sites via a unified &lt;code&gt;cli/io/gitignore.ts&lt;/code&gt; module.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telemetry opt-in&lt;/strong&gt; unified across vendors: a single &lt;code&gt;telemetry&lt;/code&gt; boolean in &lt;code&gt;oma-config.yaml&lt;/code&gt; now drives Claude (&lt;code&gt;DISABLE_TELEMETRY&lt;/code&gt;), Gemini, Qwen, and Codex opt-out keys on install and update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cli/cli-kit/&lt;/code&gt;&lt;/strong&gt; merged into &lt;code&gt;cli/utils/&lt;/code&gt; so there is one home for shared CLI helpers instead of two overlapping ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Em-dash sweep&lt;/strong&gt; across 173 files in skills, workflows, and docs per the &lt;code&gt;oma-translator&lt;/code&gt; anti-AI-pattern rule. Em-dash usage restructured contextually with colons, periods, parens, or restructured sentences, not mechanical substitution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows (PowerShell)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;oh-my-agent is built for teams who orchestrate more than they prompt. Next up: closing the spec gap that surfaced in the benchmark by teaching skills the real-API plus deferred-stub pattern at scaffold time, not at fix time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/first-fluke/oh-my-agent" rel="noopener noreferrer"&gt;https://github.com/first-fluke/oh-my-agent&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
