<?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.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 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>
    <item>
      <title>oh-my-agent: 9 new skills, cursor as first-class vendor, 80/100 benchmark</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Mon, 11 May 2026 14:39:20 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-9-new-skills-cursor-as-first-class-vendor-80100-benchmark-2e3d</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-9-new-skills-cursor-as-first-class-vendor-80100-benchmark-2e3d</guid>
      <description>&lt;p&gt;When you tell an agent to scaffold a Next.js app, it picks the wrong version, ignores your lint config, and ships a save button with no storage backing it. The last four weeks of oh-my-agent were spent fixing exactly that, plus shipping a benchmark that actually measures it.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Nine new skills: &lt;code&gt;oma-deepsec&lt;/code&gt; (Vercel deepsec driver), &lt;code&gt;oma-docs&lt;/code&gt; (doc reference drift detection), &lt;code&gt;oma-observability&lt;/code&gt; (33 files routing MELT+P signals across L3/L4/mesh/L7), &lt;code&gt;oma-academic-writer&lt;/code&gt;, &lt;code&gt;oma-hwp&lt;/code&gt; (HWP/HWPX to Markdown via kordoc), &lt;code&gt;oma-image&lt;/code&gt; (multi-vendor generation across codex, pollinations, gemini), &lt;code&gt;oma-scholar&lt;/code&gt; (Knows sidecar paper records), &lt;code&gt;oma-search&lt;/code&gt; (intent-based search with trust scoring), &lt;code&gt;oma-skill-creator&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cursor&lt;/code&gt; promoted to a first-class vendor with &lt;code&gt;cursor-only&lt;/code&gt; preset, composer-2 routing, and &lt;code&gt;--yolo&lt;/code&gt; auto-approve&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;/docs&lt;/code&gt; and &lt;code&gt;/deepsec&lt;/code&gt; workflows, both detected via keyword triggers in 11 languages&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma model:check&lt;/code&gt;, &lt;code&gt;model:probe&lt;/code&gt;, &lt;code&gt;model:propose&lt;/code&gt; diff the local registry against OpenRouter and &lt;code&gt;cursor agent --list-models&lt;/code&gt;, then scaffold a &lt;code&gt;models.yaml&lt;/code&gt; patch you can paste in&lt;/li&gt;
&lt;li&gt;Auto-update CLI on outdated install, gated by &lt;code&gt;auto_update_cli&lt;/code&gt; in &lt;code&gt;oma-config.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Windows support via &lt;code&gt;install.ps1&lt;/code&gt;, with junction and hardlink fallbacks when symlinks raise EPERM&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Hook keyword detector: NFKC normalization closes fullwidth IME bypasses (&lt;code&gt;ｐａｒａｌｌｅｌ&lt;/code&gt; no longer slips past), hyphen-rejecting word boundary, two-tier CLI invocation guard so &lt;code&gt;claude review this code&lt;/code&gt; still routes to workflows but &lt;code&gt;claude exec --foo&lt;/code&gt; does not&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;codex exec -i&lt;/code&gt; is variadic in clap and was swallowing the prompt as a second reference image. Argv now terminates with &lt;code&gt;--&lt;/code&gt; before the instruction&lt;/li&gt;
&lt;li&gt;Path traversal closed on &lt;code&gt;--out&lt;/code&gt; and &lt;code&gt;--reference&lt;/code&gt; paths; magic-byte MIME validation on reference images&lt;/li&gt;
&lt;li&gt;Windows path separators normalized across &lt;code&gt;oma doctor&lt;/code&gt;, &lt;code&gt;oma link&lt;/code&gt;, and the gitignore IO layer&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;New 5-axis benchmark in &lt;code&gt;benchmarks/&lt;/code&gt;: Functional (35), Spec (15), Visual (20), Engineering (20), Efficiency (10). oh-my-agent scored 80.6 first place, ahead of omc 74.1, superpowers 72.9, vanilla 70.7, ecc 70.2. Multi-judge averaging across 3 rounds, not single-shot&lt;/li&gt;
&lt;li&gt;Config consolidated to one &lt;code&gt;oma-config.yaml&lt;/code&gt; with &lt;code&gt;model_preset&lt;/code&gt; and inline &lt;code&gt;agents&lt;/code&gt; map. Five built-in presets ship in the CLI; legacy &lt;code&gt;agent_cli_mapping&lt;/code&gt; auto-migrates on install via migration 008&lt;/li&gt;
&lt;li&gt;1492 tests passing, CI matrix now covers ubuntu/macos/windows with pre-push and pre-commit hooks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oma docs i18n&lt;/code&gt; detects translation drift across 11 locales; &lt;code&gt;oma docs lint&lt;/code&gt; flags em-dashes and wrong-language placeholders. Used internally to restructure ~1900 em-dashes across 173 files per CJK typography conventions&lt;/li&gt;
&lt;li&gt;Skills auto-register from &lt;code&gt;.agents/skills/&lt;/code&gt; frontmatter at build time, so adding a skill no longer requires touching a hardcoded SKILLS map&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 running parallel agents across multiple vendor CLIs and getting tired of each one drifting. Next up: deeper PR-gate integration for &lt;code&gt;/deepsec&lt;/code&gt; and a reciprocal-skill pass on &lt;code&gt;oma-observability&lt;/code&gt;.&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 is Now Official on Homebrew-core: A New Milestone for Multi-Agent Orchestration</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Thu, 16 Apr 2026 10:42:14 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-is-now-official-on-homebrew-core-a-new-milestone-for-multi-agent-orchestration-406d</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-is-now-official-on-homebrew-core-a-new-milestone-for-multi-agent-orchestration-406d</guid>
      <description>&lt;p&gt;Are you tired of searching for effective agent teams and skills only to find they don't support your favorite AI IDE? Now is the time to use oh-my-agent, and it is now more accessible than ever.&lt;/p&gt;

&lt;p&gt;I am happy to announce that oh-my-agent (OMA) has officially merged into the &lt;a href="https://github.com/Homebrew/homebrew-core/pull/272547" rel="noopener noreferrer"&gt;Homebrew-core repository&lt;/a&gt;. This milestone marks the transition of OMA from a specialized developer tool to a globally recognized, first-class CLI utility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elevating the CLI Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While my previous writing focused on how OMA functions as a harness within AI-powered IDEs, this Homebrew release highlights the power of the OMA CLI (oma) as a standalone engine.&lt;/p&gt;

&lt;p&gt;A global installation provides a unified interface to manage your AI engineering team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Universal Agent Spawning: Trigger specialized agents (Backend, QA, Architecture) directly from the terminal, regardless of which editor or AI IDE you are currently using.&lt;/li&gt;
&lt;li&gt;Real-time Monitoring: Use oma dashboard to observe agent reasoning, tool calls, and progress in a dedicated terminal UI.&lt;/li&gt;
&lt;li&gt;Environment Diagnostics: The oma doctor utility ensures your entire multi-vendor stack (Claude Code, Gemini CLI, etc.) is healthy and properly configured.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This update ensures that whether you are working in a team or across multiple machines, your AI specialists are always just one command away.&lt;/p&gt;

&lt;p&gt;Explore the project on GitHub: &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;

&lt;p&gt;I look forward to seeing how this expanded accessibility helps developers build more robust and reliable AI-driven workflows.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>oh-my-agent — A Production-Grade Multi AI IDE Agent Harness</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Wed, 25 Mar 2026 08:22:17 +0000</pubDate>
      <link>https://dev.to/gracefullight/oh-my-agent-a-production-grade-multi-ai-ide-agent-harness-4jh</link>
      <guid>https://dev.to/gracefullight/oh-my-agent-a-production-grade-multi-ai-ide-agent-harness-4jh</guid>
      <description>&lt;p&gt;When you tell an agent to "build a TODO app," it does build something. The problem is that it often builds the wrong thing, drifts out of scope, and repeats the same mistakes.&lt;/p&gt;

&lt;p&gt;To address this, structural approaches like AGENTS.md and, more recently, Skills have emerged. But looking at the skills actually being shared, a few recurring problems stand out:&lt;/p&gt;

&lt;p&gt;The most critical piece — library version information — is missing.&lt;br&gt;
Role descriptions end at hollow declarations like "You are a Senior engineer."&lt;br&gt;
Content that could be covered by a few keywords gets padded into lengthy prose, wasting tokens.&lt;/p&gt;

&lt;p&gt;As a result, these skills are poorly followed by models, burn context for nothing, and over time become dead code that nobody wants to open.&lt;/p&gt;

&lt;h2&gt;
  
  
  [Approach]
&lt;/h2&gt;

&lt;p&gt;With oh-my-agent, we wanted to solve this through process, not prompts. Instead of simply telling the agent to "redo it" when something goes wrong, we record why it went wrong and feed that back into the next run.&lt;/p&gt;

&lt;p&gt;The core mechanism is Clarification Debt (CD) Scoring. When the agent misinterprets a requirement or drifts out of scope, points accumulate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clarify: +10 — simple confirmation question&lt;/li&gt;
&lt;li&gt;correct: +25 — direction change due to misunderstood intent&lt;/li&gt;
&lt;li&gt;redo: +40 — rollback and restart due to scope deviation&lt;/li&gt;
&lt;li&gt;Starting work without checking the Charter: +15&lt;/li&gt;
&lt;li&gt;Modifying files outside the allowed scope: +20&lt;/li&gt;
&lt;li&gt;Repeating the same error: x1.5 multiplier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Above 50 points, writing a Root Cause Analysis (RCA) is mandatory. Above 80, the session is halted. Lessons extracted are accumulated in lessons-learned.md and reflected from the very next session. Even with simple prompts, the process compensates.&lt;/p&gt;

&lt;p&gt;Beyond that, several common protocols keep the agent from going rogue:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clarification Protocol&lt;/strong&gt; — Requirement ambiguity is classified as LOW / MEDIUM / HIGH. LOW means proceed, MEDIUM means present options, HIGH means stop and clarify first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty Guide&lt;/strong&gt; — Tasks are categorized as Simple / Medium / Complex, adjusting the required protocol depth accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context Budget&lt;/strong&gt; — Token budgets are set per model to reduce unnecessary context consumption.&lt;/p&gt;

&lt;p&gt;This approach aligns with the Harness Engineering concept discussed by OpenAI. Getting the most out of agents isn't a one-liner prompt problem — it's about what control structure you wrap around them.&lt;/p&gt;

&lt;h2&gt;
  
  
  [Project Structure]
&lt;/h2&gt;

&lt;p&gt;oh-my-agent manages all of this within the project directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;.agents/ = SSOT&lt;/strong&gt; — Skills, workflows, and configurations live under .agents/ as the single source of truth. No dependency on any specific IDE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Role-based agent team&lt;/strong&gt; — Core roles include PM, QA, Frontend, Backend, Mobile, and Debug, with DB Agent and TF Infra Agent newly added.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DB Agent: SQL / NoSQL / Vector DB modeling, including ISO 27001 security recommendations&lt;/li&gt;
&lt;li&gt;TF Infra Agent: Multi-cloud Terraform, OPA / Sentinel policies, ISO 42000 series control guidance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Workflow-centric orchestration&lt;/strong&gt; — Planning, review, debug, and parallel execution form the default flow. The newly added /brainstorm workflow explores design before writing code: codebase analysis → clarification questions → approach proposal → user approval → design document saved, then followed by /plan → implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  [Two Orchestration Modes]
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;/coordinate&lt;/code&gt; is built for speed — iterate fast, fix problems as they surface. The PM breaks down tasks, dispatches agents, and QA runs a single review pass. If CRITICAL/HIGH issues appear, the affected task is re-run. It's a lightweight 7-step loop.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/ultrawork&lt;/code&gt; emphasizes quality gates. It's divided into five phases — PLAN → IMPL → VERIFY → REFINE → SHIP — each with a gate that blocks progression until passed. Of the 17 steps, 11 are reviews. The REFINE phase handles file splitting, deduplication, side-effect analysis, and dead code removal.&lt;/p&gt;

&lt;p&gt;It might seem like overkill, but as programming abstraction climbs from machine language to high-level languages and now to natural language, verification only becomes more critical — a point that's hard to argue with.&lt;/p&gt;

&lt;h2&gt;
  
  
  [Expansion Background]
&lt;/h2&gt;

&lt;p&gt;A month ago, this project launched as oh-my-ag, an orchestrator exclusive to Antigravity. Since then, multiple AI IDEs started adopting .agents/skills/ as the project skill path, and there was no longer a reason to keep it locked to a single IDE. So it was expanded into a universal harness format and became oh-my-agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  [Getting Started]
&lt;/h2&gt;



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

&lt;/div&gt;



&lt;p&gt;Supports all major AI IDEs: Antigravity, Claude Code, Codex CLI, Cursor, and more.&lt;/p&gt;

&lt;p&gt;If you're already using an AI IDE, give it a try. At the end of the day, the developer's goal is to hit QCD (Quality, Cost, Delivery) all at once. Agent-driven development is no exception — and that's the mindset behind this project.&lt;/p&gt;

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

</description>
      <category>ai</category>
      <category>programming</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Micro-Managing Prompts: Meet oh-my-ag, the Multi-Agent Orchestrator for Antigravity</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Tue, 10 Feb 2026 05:08:59 +0000</pubDate>
      <link>https://dev.to/gracefullight/stop-micro-managing-prompts-meet-oh-my-ag-the-multi-agent-orchestrator-for-antigravity-4k0g</link>
      <guid>https://dev.to/gracefullight/stop-micro-managing-prompts-meet-oh-my-ag-the-multi-agent-orchestrator-for-antigravity-4k0g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;According to &lt;strong&gt;Claude's recent 2026 Agentic Coding Trends Report&lt;/strong&gt;, software development is no longer just about "writing code"—it's about how well you orchestrate and supervise AI agents.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI is an incredible collaborator, but ensuring quality and security requires human oversight. We are moving toward a structure of &lt;strong&gt;collaboration rather than total delegation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The problem? Setting up this collaboration structure manually via prompts every single time is exhausting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Single Agents
&lt;/h2&gt;

&lt;p&gt;If you've used &lt;strong&gt;Antigravity&lt;/strong&gt; or other CLI-based agents in real-world projects, you’ve likely faced these frustrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ignored Skills:&lt;/strong&gt; The agent ignores its defined "Skills."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amnesia:&lt;/strong&gt; "Rules" are forgotten halfway through a long conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infinite Loops:&lt;/strong&gt; The agent enters an infinite loop of uncontrolled responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Busy but Useless:&lt;/strong&gt; It works hard, but doesn't actually do what you asked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We often blame the model, but in reality, this is an &lt;strong&gt;orchestration problem&lt;/strong&gt;. We didn't need to "write better prompts." We needed to provide a default agent collaboration structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That question started &lt;code&gt;oh-my-ag&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is oh-my-ag?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;oh-my-ag&lt;/strong&gt; is a role-based agent orchestration layer for Antigravity.&lt;/p&gt;

&lt;p&gt;Instead of shoving every bit of context into a single agent, it separates responsibilities clearly. The &lt;strong&gt;Orchestrator&lt;/strong&gt; controls the flow, &lt;strong&gt;sub-agents&lt;/strong&gt; focus on their specific domains, and context is shared via a common memory stream.&lt;/p&gt;

&lt;h3&gt;
  
  
  One-line Installation
&lt;/h3&gt;

&lt;p&gt;You can get a full agent team running in your project instantly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bunx oh-my-ag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command automatically configures a &lt;strong&gt;Role-Based Agent Set&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PM (Product Manager):&lt;/strong&gt; Clarifies requirements and breaks down tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; Backend:&lt;/strong&gt; Handle implementation in their respective domains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile:&lt;/strong&gt; Handles Flutter-based mobile implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QA:&lt;/strong&gt; Verifies implementation against requirements and checks edge cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debug:&lt;/strong&gt; Analyzes failure causes and suggests fixes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each agent comes with optimized Skills and prompt structures for its role, all tied together by the Orchestrator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why You Need This
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Mitigating Model Volatility
&lt;/h3&gt;

&lt;p&gt;Model performance (like the recent fluctuations in Gemini 3 Pro) can change overnight due to updates or server loads. A single-agent structure with a massive prompt is incredibly fragile to these changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; &lt;code&gt;oh-my-ag&lt;/code&gt; splits roles and responsibilities. By using &lt;strong&gt;Serena Memory&lt;/strong&gt; as a shared brain, decisions and intermediate results are persisted. Even if a specific model response wobbles, the overall context remains intact.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Clear Human Oversight Points
&lt;/h3&gt;

&lt;p&gt;The goal isn't to remove humans from the loop, but to clarify &lt;strong&gt;where the human needs to be&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Because roles like PM, QA, and Debug are separated, it becomes structurally obvious where AI has finished its job and where human judgment is required.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Stop Reinventing the Prompt
&lt;/h3&gt;

&lt;p&gt;Typing out role descriptions, rules, and approval processes every time is unproductive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; &lt;code&gt;oh-my-ag&lt;/code&gt; automates the prompt settings and connection structures via role-specific Skill bundles and a parallel-execution-ready orchestrator.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Role-Based Specialist Agent Sets&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parallel Execution Orchestration Layer&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-CLI Support&lt;/strong&gt; (Gemini CLI / Claude CLI / Codex CLI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Serena Memory Integration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP-specific Tool Scope Control&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Conventional Commits&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In 2026, AI-Native development isn't about "how to use a tool"; it's about &lt;strong&gt;"how to manage the workflow."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This orchestration layer is designed with the &lt;a href="https://bit.ly/3L1frc0" rel="noopener noreferrer"&gt;first-fluke/fullstack-starter&lt;/a&gt; structure in mind and currently handles over &lt;strong&gt;50 commits a day&lt;/strong&gt; in full-stack web/mobile applications.&lt;/p&gt;

&lt;p&gt;If you are already using Antigravity, stop wrestling with prompts. Use &lt;code&gt;oh-my-ag&lt;/code&gt; and AI Pro to melt through those tokens across your 6 accounts efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check it out on GitHub:&lt;/strong&gt; &lt;a href="https://bit.ly/4kbPpQh" rel="noopener noreferrer"&gt;first-fluke/oh-my-ag&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>antigravity</category>
      <category>agentaichallenge</category>
    </item>
    <item>
      <title>A Production-Ready Monorepo for AI-Native Full-Stack Development</title>
      <dc:creator>gracefullight</dc:creator>
      <pubDate>Tue, 13 Jan 2026 06:38:31 +0000</pubDate>
      <link>https://dev.to/gracefullight/a-production-ready-monorepo-for-ai-native-full-stack-development-55ma</link>
      <guid>https://dev.to/gracefullight/a-production-ready-monorepo-for-ai-native-full-stack-development-55ma</guid>
      <description>&lt;p&gt;Andrej Karpathy recently wrote: “If you properly connect the things that emerged over the past year, they could easily become 10× more powerful.” &lt;br&gt;
At the same time, we’re being handed agents, sub-agents, prompts, context, MCP, workflows—tools dropped on us without a manual.&lt;/p&gt;

&lt;p&gt;Ashok, Tesla’s CTO, also said: “Everyone is a CEO now.”&lt;br&gt;
In other words, we’ve entered an era where a single developer can build a full-stack product end to end.&lt;/p&gt;

&lt;p&gt;Both statements are true. Spinning up a service with a few clicks has become easy. But building software that humans and AI can review together—and that remains maintainable over time—is still hard. To truly leverage these tools, you need a solid foundation first.&lt;/p&gt;

&lt;p&gt;I’m open-sourcing the foundation I built while developing AI-driven services as an AI SWE. Compared to starting from scratch, it should save you roughly two weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web: Next.js 16, React 19, TailwindCSS v4&lt;/li&gt;
&lt;li&gt;API: FastAPI, async SQLAlchemy, PostgreSQL&lt;/li&gt;
&lt;li&gt;Mobile: Flutter 3.38, Riverpod&lt;/li&gt;
&lt;li&gt;Infra: Terraform, GCP (Cloud Run, Cloud SQL)&lt;/li&gt;
&lt;li&gt;CI/CD: GitHub Actions + Workload Identity Federation (keyless)&lt;/li&gt;
&lt;li&gt;Observability: OpenTelemetry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The quality of AI-generated code varies widely by model. &lt;/li&gt;
&lt;li&gt;A well-designed template provides clear patterns for AI to follow, while strict linting and CI act as guardrails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mise-based monorepo: unified toolchains for Node, Python, and Flutter&lt;/li&gt;
&lt;li&gt;Single-source i18n: shared across web and mobile&lt;/li&gt;
&lt;li&gt;Automatic API client generation: Orval (web), swagger_parser (mobile)&lt;/li&gt;
&lt;li&gt;Rust-based toolchain: Biome, uv, Turbopack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Production patterns and troubleshooting that rarely make it into docs, encoded directly in the codebase&lt;/p&gt;

&lt;p&gt;If you see room for improvement, feel free to open an issue.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://bit.ly/3L1frc0" rel="noopener noreferrer"&gt;https://bit.ly/3L1frc0&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>programming</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
