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.
Files changed (3) hide show
  1. package/README.md +17 -15
  2. package/bin/cli-main.js +976 -976
  3. 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. 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.
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="./docs/assets/agents/antigravity.png" alt="Antigravity" width="48" height="48" /></a><br/>
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="./docs/assets/agents/pi.svg" alt="Pi" width="48" height="48" /></a><br/>
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="./docs/assets/agents/opencode.png" alt="OpenCode" width="48" height="48" /></a><br/>
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="./docs/assets/agents/amp.png" alt="Amp" width="48" height="48" /></a><br/>
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="./docs/assets/agents/grok.png" alt="Grok Build" width="48" height="48" /></a><br/>
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="./docs/assets/agents/kiro.png" alt="Kiro CLI" width="48" height="48" /></a><br/>
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="./docs/SUPPORTED_AGENTS.md">& more</a></sub></p>
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 an independent verifier passes every criterion |
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 171-prompt corpus (currently **0% missed-fire**, under 10% false-fire) and gates CI on it.
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
- 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."
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
- | **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) |
262
- | **Event-sourced state** | Every gate pass, gate failure, and decision appends one JSON line to `~/.oma/u/0/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) |
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