oh-my-agent 19.0.0 → 19.0.2
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 +17 -15
- package/bin/cli-main.js +976 -976
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
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.
|
|
10
10
|
|
|
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.
|
|
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. In `/ralph`, the workflow prompt dispatches a judge, briefed on the criteria only, that re-verifies every criterion each round, including the ones that already passed. Gate decisions are appended to a per-session event log that you can read afterwards with `oma state`. Then it runs that same discipline across a dozen agent runtimes from one portable `.agents/` directory.
|
|
12
12
|
|
|
13
13
|
Follow [Quick Start](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/getting-started/quick-start.md) to choose a skill preset, run `oma doctor`, and ask a named skill for one scoped change. Record the file, check command, and exit status.
|
|
14
14
|
|
|
@@ -72,7 +72,7 @@ Pick a preset and you're ready:
|
|
|
72
72
|
<sub>native + adapter</sub>
|
|
73
73
|
</td>
|
|
74
74
|
<td align="center">
|
|
75
|
-
<a href="https://antigravity.google"><img src="
|
|
75
|
+
<a href="https://antigravity.google"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/antigravity.png" alt="Antigravity" width="48" height="48" /></a><br/>
|
|
76
76
|
<strong>Antigravity</strong><br/>
|
|
77
77
|
<sub>native SSOT</sub>
|
|
78
78
|
</td>
|
|
@@ -94,17 +94,17 @@ Pick a preset and you're ready:
|
|
|
94
94
|
</tr>
|
|
95
95
|
<tr>
|
|
96
96
|
<td align="center">
|
|
97
|
-
<a href="https://pi.dev/"><img src="
|
|
97
|
+
<a href="https://pi.dev/"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/pi.svg" alt="Pi" width="48" height="48" /></a><br/>
|
|
98
98
|
<strong>Pi</strong><br/>
|
|
99
99
|
<sub>native-compatible</sub>
|
|
100
100
|
</td>
|
|
101
101
|
<td align="center">
|
|
102
|
-
<a href="https://github.com/anomalyco/opencode"><img src="
|
|
102
|
+
<a href="https://github.com/anomalyco/opencode"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/opencode.png" alt="OpenCode" width="48" height="48" /></a><br/>
|
|
103
103
|
<strong>OpenCode</strong><br/>
|
|
104
104
|
<sub>native-compatible</sub>
|
|
105
105
|
</td>
|
|
106
106
|
<td align="center">
|
|
107
|
-
<a href="https://ampcode.com"><img src="
|
|
107
|
+
<a href="https://ampcode.com"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/amp.png" alt="Amp" width="48" height="48" /></a><br/>
|
|
108
108
|
<strong>Amp</strong><br/>
|
|
109
109
|
<sub>native-compatible</sub>
|
|
110
110
|
</td>
|
|
@@ -114,19 +114,19 @@ Pick a preset and you're ready:
|
|
|
114
114
|
<sub>symlinked skills</sub>
|
|
115
115
|
</td>
|
|
116
116
|
<td align="center">
|
|
117
|
-
<a href="https://grok.x.ai"><img src="
|
|
117
|
+
<a href="https://grok.x.ai"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/grok.png" alt="Grok Build" width="48" height="48" /></a><br/>
|
|
118
118
|
<strong>Grok Build</strong><br/>
|
|
119
119
|
<sub>native hooks</sub>
|
|
120
120
|
</td>
|
|
121
121
|
<td align="center">
|
|
122
|
-
<a href="https://kiro.dev"><img src="
|
|
122
|
+
<a href="https://kiro.dev"><img src="https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/agents/kiro.png" alt="Kiro CLI" width="48" height="48" /></a><br/>
|
|
123
123
|
<strong>Kiro CLI</strong><br/>
|
|
124
124
|
<sub>native hooks + agents</sub>
|
|
125
125
|
</td>
|
|
126
126
|
</tr>
|
|
127
127
|
</table>
|
|
128
128
|
|
|
129
|
-
<p align="center"><sub><a href="
|
|
129
|
+
<p align="center"><sub><a href="https://github.com/first-fluke/oh-my-agent/blob/main/docs/SUPPORTED_AGENTS.md">& more</a></sub></p>
|
|
130
130
|
|
|
131
131
|
## Your Engineering Team
|
|
132
132
|
|
|
@@ -185,14 +185,14 @@ Separate from the engineering team, oma ships content and research pipelines bui
|
|
|
185
185
|
|
|
186
186
|
### Orca IDE
|
|
187
187
|
|
|
188
|
-
[OMA for Orca](integrations/orca/README.md) adds a sidebar panel and command-palette
|
|
188
|
+
[OMA for Orca](https://github.com/first-fluke/oh-my-agent/blob/main/integrations/orca/README.md) adds a sidebar panel and command-palette
|
|
189
189
|
actions for project setup, review, debugging, verification, and local results.
|
|
190
190
|
It uses your existing Orca agent terminal and project OMA installation. Requires
|
|
191
191
|
Orca 1.4.197+ with experimental plugins enabled.
|
|
192
192
|
|
|
193
193
|
### DeepSeek Harness
|
|
194
194
|
|
|
195
|
-
[OMA for DeepSeek Harness](integrations/dsh/README.md) connects project OMA checks
|
|
195
|
+
[OMA for DeepSeek Harness](https://github.com/first-fluke/oh-my-agent/blob/main/integrations/dsh/README.md) connects project OMA checks
|
|
196
196
|
to DSH tool execution and turn completion through a Cordis plugin. DSH discovers
|
|
197
197
|
the existing `.agents/skills` directly. The plugin ships executable JavaScript
|
|
198
198
|
and requires no build. See the integration guide for installation, tested versions,
|
|
@@ -224,7 +224,7 @@ Or use slash commands for structured workflows:
|
|
|
224
224
|
| 3 | `/work` | Builds your feature step by step across multiple agents |
|
|
225
225
|
| 3 | `/orchestrate` | Runs multiple agents in parallel to build your feature faster |
|
|
226
226
|
| 3 | `/ultrawork` | Builds your feature through five gated quality phases; every review runs in a fresh, isolated reviewer session (cross-context review) |
|
|
227
|
-
| 3 | `/ralph` | Repeats `/ultrawork` until
|
|
227
|
+
| 3 | `/ralph` | Repeats `/ultrawork` until its judge passes every criterion |
|
|
228
228
|
| 4 | `/review` | Reviews your code for security, performance, and accessibility issues |
|
|
229
229
|
| 4 | `/security` | Scans security targets, validates findings, and applies CI gates |
|
|
230
230
|
| 5 | `/debug` | Finds the root cause, fixes the bug, and writes a regression test |
|
|
@@ -232,7 +232,7 @@ Or use slash commands for structured workflows:
|
|
|
232
232
|
| 6 | `/scm` | Manages your branches, merges, and Conventional Commits |
|
|
233
233
|
| - | `/schedule` | Schedules an agent job to run on a recurring interval |
|
|
234
234
|
|
|
235
|
-
**Auto-detection**: You don't even need slash commands — keywords like "architecture", "plan", "review", and "debug" in your message (in 11 languages!) auto-activate the right workflow. Detection accuracy is measured, not assumed: `oma verify triggers` scores the detector against a labeled
|
|
235
|
+
**Auto-detection**: You don't even need slash commands — keywords like "architecture", "plan", "review", and "debug" in your message (in 11 languages!) auto-activate the right workflow. Detection accuracy is measured, not assumed: `oma verify triggers` scores the detector against a labeled English and Korean prompt corpus, and CI fails if false fires exceed 10% or missed fires exceed 20% (re-measured 2026-10-13: **0% missed-fire**, 5.3% false-fire).
|
|
236
236
|
|
|
237
237
|
### Per-Agent Models
|
|
238
238
|
|
|
@@ -252,17 +252,19 @@ agents:
|
|
|
252
252
|
|
|
253
253
|
## Verification, Not Narration
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
Every mechanism below except the prompted judge is mechanical: a command exits 0 or it doesn't, a file is on disk or it isn't. None of those asks an LLM whether the work "looks correct."
|
|
256
256
|
|
|
257
257
|
| Mechanism | What it mechanically checks | Where it lives |
|
|
258
258
|
|-----------|------------------------------|----------------|
|
|
259
259
|
| **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) |
|
|
260
260
|
| **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) |
|
|
261
|
-
| **
|
|
262
|
-
| **Event-sourced state** |
|
|
261
|
+
| **Prompted judge** | Not mechanical: the `/ralph` workflow prompt tells the orchestrator to spawn the judge as a separate agent with fresh context, briefed on the criteria only — never on what the implementer claims it fixed — and to re-verify **every** criterion each iteration, including prior PASSes, because fixing C2 is how C1 silently regresses. Nothing checks that the spawn happened: `oma ralph verify` gates the EXEC artifacts, not the judge, and a runtime that cannot spawn subagents is told to judge inline and record `ralph.judge-inline-fallback`. | [`judge-protocol.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/workflows/ralph/resources/judge-protocol.md) |
|
|
262
|
+
| **Event-sourced state** | In an OMA session, every gate pass, gate failure, and decision appends one JSON line to the session's `events.jsonl`, stamped with vendor and runtime session id. Append-only, cross-vendor, auditable after the run. Find the session with `oma state list` and read its events with `oma state get <sid>`; the file's location depends on `OMA_HOME`, `OMA_STATE_HOME`, `OMA_PROFILE`, and older project-local session folders, so don't hard-code it. | [`state-core.ts`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/hooks/core/state-core.ts) · [`event-spec.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/skills/_shared/runtime/event-spec.md) |
|
|
263
263
|
| **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>` |
|
|
264
264
|
| **Skill eval harness** | `oma skill eval` measures utility lift on held-out tasks — treatment vs. baseline — instead of assuming a skill helps. `oma skill optimize` 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) |
|
|
265
265
|
|
|
266
|
+
> **No session, no trail.** The Stop hook records gate events under the OMA session opened when the persistent workflow started. If that session could not be created (stderr shows `[oma] L1 session activation failed`), a failing gate still blocks the stop, but no `gate.failed` line is written. Before you rely on the trail, or demo it, check that `oma state list` shows an active session.
|
|
267
|
+
|
|
266
268
|
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.
|
|
267
269
|
|
|
268
270
|
### Control Boundary
|