DEV Community

gracefullight
gracefullight

Posted on

oh-my-agent: mechanical stop gates and unified configuration

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.

What's new

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

This release also shifts our documentation structure. Artifact verification now leads the pitch over portability.

What's fixed

  • 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.
  • The HUD statusline no longer hangs indefinitely when stdin is kept open. It now falls back to an 800ms asynchronous read timeout.
  • Generated file writes are now fully atomic. A crash mid-write will no longer leave corrupted partial files in vendor directories.
  • Uninstalling no longer inadvertently deletes home-consent symlinks belonging to other installations.

What's better

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

Installation

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
Enter fullscreen mode Exit fullscreen mode
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

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

https://github.com/first-fluke/oh-my-agent

Top comments (0)