oh-my-agent 11.10.2 → 11.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -33
- package/bin/cli.js +891 -890
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,21 +1,33 @@
|
|
|
1
|
-
# oh-my-agent:
|
|
1
|
+
# oh-my-agent: The Multi-Agent Harness That Checks the Work
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/oh-my-agent) [](https://www.npmjs.com/package/oh-my-agent) [](https://github.com/first-fluke/oh-my-agent) [](https://github.com/first-fluke/oh-my-agent/blob/main/LICENSE) [](https://github.com/first-fluke/oh-my-agent/commits/main)
|
|
4
4
|
|
|
5
5
|
[한국어](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ko.md) | [中文](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.zh.md) | [Português](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.pt.md) | [日本語](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ja.md) | [Français](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.fr.md) | [Español](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.es.md) | [Nederlands](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.nl.md) | [Polski](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.pl.md) | [Русский](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ru.md) | [Deutsch](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.de.md) | [Tiếng Việt](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.vi.md) | [ภาษาไทย](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.th.md)
|
|
6
6
|
|
|
7
|
-
**
|
|
8
|
-
Not just another chat wrapper—oh-my-agent is a professional harness that gives your AI assistant an entire engineering team.
|
|
7
|
+
**Agents narrate success. oh-my-agent checks the artifacts.**
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
Spawning parallel agents is the easy part. The hard part is knowing whether they actually did the work. "Tests pass, all criteria met" costs an agent nothing to say, and nothing inside that same session can contradict it.
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
oh-my-agent makes the claim falsifiable. A Stop hook refuses to end your session until your project's own `typecheck` / `test` / `lint` script exits 0. A gate command decides whether a workflow really ran by looking for the artifacts it must have left behind — and its JSON verdict, not the agent's summary, is the result. An independent judge with a fresh context re-verifies every criterion each round, including the ones that already passed. Every gate decision lands on an append-only event log you can read after the fact. Then it runs that same discipline across a dozen agent runtimes from one portable `.agents/` directory.
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
## Verification, Not Narration
|
|
14
|
+
|
|
15
|
+
Each mechanism below is mechanical: a command exits 0 or it doesn't, a file is on disk or it isn't. No LLM is asked whether the work "looks correct."
|
|
16
|
+
|
|
17
|
+
| Mechanism | What it mechanically checks | Where it lives |
|
|
18
|
+
|-----------|------------------------------|----------------|
|
|
19
|
+
| **Stop-hook gate** | Blocks session termination while a persistent workflow is active, and runs the configured gate script before allowing a stop. Only `typecheck`, `test`, and `lint` are executable — an agent that writes anything else into the state file gets it ignored, never run. Capped at 5 reinforcements so a permanently red gate can't trap you. | [`.agents/hooks/core/persistent-mode.ts`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/hooks/core/persistent-mode.ts) |
|
|
20
|
+
| **Anti-Circumvention Gate** | `oma ralph:verify --json` checks four artifacts a shortcut can't fake: ultrawork's phase records, the plan JSON, a **distinct QA agent's** result file, and a **distinct refactor agent's** result file. Missing artifacts mean the phase did not run, whatever the narration says. | [`.agents/workflows/ralph.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/workflows/ralph.md) |
|
|
21
|
+
| **Independent judge** | Spawned as a separate agent with fresh context, briefed on the criteria only — never on what the implementer claims it fixed. Re-verifies **every** criterion each iteration, including prior PASSes, because fixing C2 is how C1 silently regresses. | [`judge-protocol.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/workflows/ralph/resources/judge-protocol.md) |
|
|
22
|
+
| **Event-sourced state** | Every gate pass, gate failure, and decision appends one JSON line to `.agents/state/sessions/{sid}/events.jsonl`, stamped with vendor and runtime session id. Append-only, cross-vendor, auditable after the run. | [`event-spec.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/skills/_shared/runtime/event-spec.md) |
|
|
23
|
+
| **Per-agent check battery** | `oma verify <agent>` runs a shared core (scope violation, charter alignment, hardcoded secrets, TODO scan, declared outputs) plus type-specific checks (TypeScript strict, tests, raw SQL, Flutter analyze, inline styles). | `oma verify <agent>` |
|
|
24
|
+
| **Skill eval harness** | `oma skills eval` measures utility lift on held-out tasks — treatment vs. baseline — instead of assuming a skill helps. `oma skills opt` keeps only edits that improve the measured lift. | [skill-eval guide](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/guide/skill-eval.md) |
|
|
25
|
+
|
|
26
|
+
Budgets are enforced the same way. `session.quota_cap` caps tokens, spawn count, and per-vendor spend; the orchestrator refuses the next spawn when a dimension is exceeded. When the wall-clock budget runs out, the Stop hook stops honestly with partial status recorded on the event log, rather than pretending completion.
|
|
15
27
|
|
|
16
28
|
## Quick Start
|
|
17
29
|
|
|
18
|
-
|
|
30
|
+
The install scripts below auto-install bun, uv, and serena if they're missing.
|
|
19
31
|
|
|
20
32
|
```bash
|
|
21
33
|
# macOS / Linux — auto-installs bun, uv & serena if missing
|
|
@@ -77,7 +89,7 @@ Pick a preset and you're ready:
|
|
|
77
89
|
|
|
78
90
|
## Works With Every Agent
|
|
79
91
|
|
|
80
|
-
`oh-my-agent` keeps `.agents/` as the single source of truth and projects it into each runtime's native layout, so every supported tool shares the same skills, workflows, and
|
|
92
|
+
Verification is worth little if it's locked to one vendor. `oh-my-agent` keeps `.agents/` as the single source of truth and projects it into each runtime's native layout, so every supported tool shares the same skills, workflows, rules, and gates — and switching vendors is a config change, not a migration.
|
|
81
93
|
|
|
82
94
|
<table>
|
|
83
95
|
<colgroup>
|
|
@@ -151,11 +163,12 @@ Pick a preset and you're ready:
|
|
|
151
163
|
|
|
152
164
|
<p align="center"><sub><a href="./docs/SUPPORTED_AGENTS.md">& more</a></sub></p>
|
|
153
165
|
|
|
154
|
-
## Your
|
|
166
|
+
## Your Engineering Team
|
|
167
|
+
|
|
168
|
+
Instead of one AI doing everything (and getting confused halfway through), oh-my-agent splits work across specialized agents. Each one knows its domain deeply, has its own tools and checklists, and stays in its lane.
|
|
155
169
|
|
|
156
170
|
| Agent | What They Do |
|
|
157
171
|
|-------|-------------|
|
|
158
|
-
| **oma-academic-writer** | Drafts, revises, and audits academic prose to publication quality. |
|
|
159
172
|
| **oma-architecture** | Weighs architecture tradeoffs and draws module boundaries, with ADR/ATAM/CBAM analysis. |
|
|
160
173
|
| **oma-backend** | Builds and secures your APIs in Python, Node.js, or Rust. |
|
|
161
174
|
| **oma-brainstorm** | Explores ideas with you before you commit to building. |
|
|
@@ -167,25 +180,15 @@ Pick a preset and you're ready:
|
|
|
167
180
|
| **oma-docs** | Checks your docs for broken references and flags ones a code change touched. |
|
|
168
181
|
| **oma-explainer** | Turns a diff, PR, or branch into a self-contained interactive HTML explainer with a quiz. |
|
|
169
182
|
| **oma-frontend** | Builds your UI with React/Next.js, TypeScript, Tailwind CSS v4, and shadcn/ui. |
|
|
170
|
-
| **oma-hwp** | Converts HWP, HWPX, and HWPML files to Markdown. |
|
|
171
|
-
| **oma-image** | Generates images through several AI providers at once. |
|
|
172
|
-
| **oma-market** | Researches your market from community signals and frames it with SWOT, 5F, and PESTEL. |
|
|
173
183
|
| **oma-mobile** | Builds cross-platform mobile apps with Flutter. |
|
|
174
184
|
| **oma-observability** | Routes observability work across metrics, logs, traces, SLOs, and incident forensics. |
|
|
175
185
|
| **oma-orchestrator** | Runs multiple agents in parallel from the CLI. |
|
|
176
|
-
| **oma-pdf** | Converts PDF files to Markdown. |
|
|
177
186
|
| **oma-pm** | Plans tasks, breaks down requirements, and defines API contracts. |
|
|
178
187
|
| **oma-qa** | Reviews your code for OWASP security, performance, and accessibility issues. |
|
|
179
|
-
| **oma-recap** | Recaps your conversation history into themed work summaries. |
|
|
180
188
|
| **oma-refactor** | Refactors code without changing its behavior, using hotspot targeting, characterization-test safety nets, and refactor-only commits. |
|
|
181
|
-
| **oma-scholar** | Searches academic literature and helps you run peer review. |
|
|
182
189
|
| **oma-scm** | Manages your branches, merges, worktrees, and Conventional Commits. |
|
|
183
190
|
| **oma-search** | Routes each query to the best source and scores how much you can trust the result. |
|
|
184
|
-
| **oma-slide** | Generates distinctive, animation-rich HTML presentation decks and exports to PDF/PNG/PPTX. |
|
|
185
191
|
| **oma-tf-infra** | Provisions multi-cloud infrastructure with Terraform. |
|
|
186
|
-
| **oma-translator** | Translates between languages so it reads like a native wrote it. |
|
|
187
|
-
| **oma-video** | Generates short-form, explainer, and demo videos through a key-optional Remotion pipeline. |
|
|
188
|
-
| **oma-voice** | Generates voiceovers and transcribes audio on-device, no cloud needed. |
|
|
189
192
|
|
|
190
193
|
<details>
|
|
191
194
|
<summary>Internal & meta tools</summary>
|
|
@@ -197,6 +200,24 @@ Pick a preset and you're ready:
|
|
|
197
200
|
|
|
198
201
|
</details>
|
|
199
202
|
|
|
203
|
+
## Beyond Code: Content & Research Pipelines
|
|
204
|
+
|
|
205
|
+
Separate from the engineering team, oma ships content and research pipelines built to the same engineering discipline: deterministic replay from fixtures, manifests for reproducibility, and honest degradation reporting when a source or vendor key is unavailable rather than a silently thinner result.
|
|
206
|
+
|
|
207
|
+
| Agent | What They Do |
|
|
208
|
+
|-------|-------------|
|
|
209
|
+
| **oma-academic-writer** | Drafts, revises, and audits academic prose to publication quality. |
|
|
210
|
+
| **oma-hwp** | Converts HWP, HWPX, and HWPML files to Markdown. |
|
|
211
|
+
| **oma-image** | Generates images through several AI providers at once. |
|
|
212
|
+
| **oma-market** | Researches your market from community signals and frames it with SWOT, 5F, and PESTEL. |
|
|
213
|
+
| **oma-pdf** | Converts PDF files to Markdown. |
|
|
214
|
+
| **oma-recap** | Recaps your conversation history into themed work summaries. |
|
|
215
|
+
| **oma-scholar** | Searches academic literature and helps you run peer review. |
|
|
216
|
+
| **oma-slide** | Generates distinctive, animation-rich HTML presentation decks and exports to PDF/PNG/PPTX. |
|
|
217
|
+
| **oma-translator** | Translates between languages so it reads like a native wrote it. |
|
|
218
|
+
| **oma-video** | Generates short-form, explainer, and demo videos through a key-optional Remotion pipeline. |
|
|
219
|
+
| **oma-voice** | Generates voiceovers and transcribes audio on-device, no cloud needed. |
|
|
220
|
+
|
|
200
221
|
## How It Works
|
|
201
222
|
|
|
202
223
|
Just chat. Describe what you want and oh-my-agent figures out which agents to use.
|
|
@@ -251,17 +272,12 @@ agents:
|
|
|
251
272
|
|
|
252
273
|
## Why oh-my-agent?
|
|
253
274
|
|
|
254
|
-
- **
|
|
255
|
-
- **
|
|
256
|
-
- **
|
|
257
|
-
- **
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
- `ralph` workflow — independent JUDGE re-verifies every criterion each iteration to catch silent regressions; heavy-test caching for >30s suites
|
|
261
|
-
- Exploration Loop — after 2 retries, `orchestrate` spawns hypothesis variants in parallel and keeps the highest-scoring result
|
|
262
|
-
- Monorepo auto-routing — `detectWorkspace` reads pnpm / nx / turbo / lerna and routes each agent to its workspace
|
|
263
|
-
- **Multi-vendor** — Mix Antigravity, Claude, Codex, Cursor, Kiro, and Qwen per agent type
|
|
264
|
-
- **Observable** — Terminal and web dashboards for real-time monitoring
|
|
275
|
+
- **Role-based** — agents modeled like a real engineering team, not a pile of prompts
|
|
276
|
+
- **Token-efficient** — two-layer skill design saves ~75% of tokens ([how it works](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/guide/usage.md))
|
|
277
|
+
- **Recoverable** — after 2 failed retries, `orchestrate` spawns hypothesis variants in parallel and keeps the highest-scoring result instead of retrying a wrong approach forever
|
|
278
|
+
- **Monorepo-aware** — `detectWorkspace` reads pnpm / nx / turbo / lerna and routes each agent to its workspace
|
|
279
|
+
- **Multi-vendor** — mix Antigravity, Claude, Codex, Cursor, Kiro, and Qwen per agent type
|
|
280
|
+
- **Observable** — terminal and web dashboards for real-time monitoring
|
|
265
281
|
|
|
266
282
|
## Architecture
|
|
267
283
|
|
|
@@ -314,6 +330,7 @@ flowchart TD
|
|
|
314
330
|
|
|
315
331
|
- **[Detailed Documentation](https://github.com/first-fluke/oh-my-agent/blob/main/docs/AGENTS_SPEC.md)** — Full technical spec and architecture
|
|
316
332
|
- **[Supported Agents](https://github.com/first-fluke/oh-my-agent/blob/main/docs/SUPPORTED_AGENTS.md)** — Agent support matrix across IDEs
|
|
333
|
+
- **[Benchmark Report](https://github.com/first-fluke/oh-my-agent/blob/main/benchmarks/README.md)** — Method, scores, screenshots, and caveats
|
|
317
334
|
- **[Web Docs](https://first-fluke.github.io/oh-my-agent/)** — Guides, tutorials, and CLI reference
|
|
318
335
|
|
|
319
336
|
## Sponsors
|
|
@@ -351,8 +368,6 @@ This project is maintained thanks to our generous sponsors.
|
|
|
351
368
|
|
|
352
369
|
See [SPONSORS.md](https://github.com/first-fluke/oh-my-agent/blob/main/SPONSORS.md) for a full list of supporters.
|
|
353
370
|
|
|
354
|
-
|
|
355
|
-
|
|
356
371
|
## Star History
|
|
357
372
|
|
|
358
373
|
[](https://www.star-history.com/#first-fluke/oh-my-agent&type=date&legend=bottom-right)
|