lazycodex-ai 5.0.0-beta.40 → 5.0.0-beta.43
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.ja.md +2 -2
- package/README.ko.md +4 -4
- package/README.md +4 -4
- package/README.ru.md +2 -2
- package/README.zh-cn.md +2 -2
- package/dist/cli/index.js +174 -78
- package/dist/cli-node/index.js +174 -78
- package/package.json +1 -1
- package/packages/lsp-daemon/dist/cli.js +11 -6
- package/packages/lsp-daemon/dist/client.js +11 -6
- package/packages/lsp-daemon/dist/index.js +11 -6
- package/packages/lsp-tools-mcp/dist/cli.js +11 -6
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +11 -6
- package/packages/lsp-tools-mcp/dist/mcp.js +11 -6
- package/packages/lsp-tools-mcp/dist/tools.js +11 -6
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +11 -6
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -18
- package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +99 -417
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +24 -9
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +13 -10
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +5 -2
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +2 -2
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +3 -2
- package/packages/shared-skills/package.json +7 -1
- package/packages/shared-skills/skills/ast-grep/SKILL.md +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +1 -1
- package/packages/shared-skills/skills/data-scientist/SKILL.md +1 -1
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- package/packages/shared-skills/skills/frontend/SKILL.md +1 -1
- package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
- package/packages/shared-skills/skills/init-deep/SKILL.md +1 -1
- package/packages/shared-skills/skills/lsp-setup/SKILL.md +1 -1
- package/packages/shared-skills/skills/programming/SKILL.md +1 -1
- package/packages/shared-skills/skills/refactor/SKILL.md +1 -1
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/shared-skills/skills/review-work/SKILL.md +99 -417
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +24 -9
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +13 -10
- package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +5 -2
- package/packages/shared-skills/skills/visual-qa/SKILL.md +2 -2
|
@@ -103,7 +103,7 @@ SOFTWARE.
|
|
|
103
103
|
## 4. agent-browser (vercel-labs) — Tier-2 CDP automation CLI (runtime dependency)
|
|
104
104
|
|
|
105
105
|
The Tier-2 automation CLI is **agent-browser**, installed at runtime via `npm`
|
|
106
|
-
(`
|
|
106
|
+
(`bun add -g agent-browser`). No agent-browser source is vendored in this repository.
|
|
107
107
|
|
|
108
108
|
- Source: https://github.com/vercel-labs/agent-browser
|
|
109
109
|
- Pinned runtime version: **0.34.0** (documented in `references/chrome-stealth.md`;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultimate-browsing
|
|
3
|
-
description: "
|
|
3
|
+
description: "Reaches web pages a plain fetch cannot: renders JS, drives clicks and forms, captures screenshots, holds a login, and gets past WAF blocks through platform-native readers and stealth Chrome. Use for any page work beyond retrieving static text."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Ultimate Browsing
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Web access for everything a plain fetch cannot finish: a page that renders in JS, a click or a form, a screenshot, a login that must persist across pages, or a host that blocks generic fetchers (WAF / 403 / Cloudflare). Start at the cheapest tier that can do the job and climb only when it cannot:
|
|
9
9
|
|
|
10
|
-
**Tier 1 — insane-search** (headless extraction + WAF bypass) -> **Tier 1.5 — agent-reach** (platform-native APIs, esp. Chinese platforms) -> **Tier 2 — Chrome stealth
|
|
10
|
+
**Tier 1 — insane-search** (headless extraction + WAF bypass) -> **Tier 1.5 — agent-reach** (platform-native APIs, esp. Chinese platforms) -> **Tier 2 — a real browser**: 2a a code-driven kernel browser, 2b Chrome stealth (CloakBrowser + agent-browser) when the page fights back.
|
|
11
11
|
|
|
12
12
|
## PHASE 0 — ROUTE FIRST (MANDATORY)
|
|
13
13
|
|
|
@@ -23,11 +23,11 @@ User request
|
|
|
23
23
|
+- podcast transcript / stock forum ----------------- TIER 1.5 agent-reach
|
|
24
24
|
+- Twitter feed / LinkedIn profile / GitHub via CLI - TIER 1.5 agent-reach
|
|
25
25
|
|
|
|
26
|
-
+- Tier 1/1.5 returned empty or partial ------------- TIER 2
|
|
27
|
-
+- click / fill form / scroll / interact ------------ TIER 2
|
|
28
|
-
+- screenshot / render / play video ----------------- TIER 2
|
|
29
|
-
+- login session across pages / inject cookies ------ TIER 2 Chrome stealth
|
|
30
|
-
+- test web app / QA / dogfood ---------------------- TIER 2
|
|
26
|
+
+- Tier 1/1.5 returned empty or partial ------------- TIER 2 2a kernel browser -> 2b stealth
|
|
27
|
+
+- click / fill form / scroll / interact ------------ TIER 2 2a kernel browser -> 2b stealth
|
|
28
|
+
+- screenshot / render / play video ----------------- TIER 2 2a kernel browser -> 2b stealth
|
|
29
|
+
+- login session across pages / inject cookies ------ TIER 2 2b Chrome stealth (profile + cookies)
|
|
30
|
+
+- test web app / QA / dogfood ---------------------- TIER 2 2a kernel browser -> 2b stealth
|
|
31
31
|
|
|
|
32
32
|
+- simple search query ------------------------------ NOT this skill (use web-search)
|
|
33
33
|
```
|
|
@@ -80,10 +80,25 @@ curl -s "https://www.v2ex.com/api/topics/hot.json" # V2EX public API
|
|
|
80
80
|
|
|
81
81
|
Routing table, per-platform auth (set `TWITTER_*` env vars, `gh auth login`, a transcription key — only if you have access), rate-limit notes, and known version quirks are in [references/agent-reach/README.md](references/agent-reach/README.md).
|
|
82
82
|
|
|
83
|
-
## Tier 2 —
|
|
83
|
+
## Tier 2 — a real browser (real interaction)
|
|
84
84
|
|
|
85
85
|
**When**: real interaction is needed (clicks, forms, screenshots, video, persistent login), or Tier 1/1.5 failed.
|
|
86
86
|
|
|
87
|
+
### Tier 2a — kernel browser (default)
|
|
88
|
+
|
|
89
|
+
Drive the page from the code cell you are already in, with no CLI process and no open CDP port. On a Bun >= 1.4 runtime that is `new Bun.WebView()` (`navigate`, `click`, `type`, `evaluate`, `screenshot`, raw `cdp`); elsewhere it is `playwright-core`/`puppeteer-core` against the local Chrome. Snapshots and screenshots come back in-process, so this is the cheapest way to answer "what does the page actually render".
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
await using view = new Bun.WebView({ width: 1280, height: 800 })
|
|
93
|
+
await view.navigate(url)
|
|
94
|
+
const title = await view.evaluate("document.title")
|
|
95
|
+
await view.screenshot({ path: "/tmp/page.png" })
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Climb to 2b when the site detects automation (Turnstile, FingerprintJS, "unusual traffic"), when the flow needs a persistent logged-in profile or injected cookies, or when the kernel browser cannot reach the page at all.
|
|
99
|
+
|
|
100
|
+
### Tier 2b — Chrome stealth (blocked or logged-in pages)
|
|
101
|
+
|
|
87
102
|
CloakBrowser is a stealth Chromium with source-level fingerprint patches that passes Cloudflare Turnstile, FingerprintJS, BrowserScan, and 30+ detectors; agent-browser is the CDP automation CLI that drives it. Both are runtime-installed tools (not vendored here). Full setup, version pins, launch flow, cookie login, and cross-platform notes are in [references/chrome-stealth.md](references/chrome-stealth.md).
|
|
88
103
|
|
|
89
104
|
NEVER clear cookies, cache, or site data (`Network.clearBrowserCookies`, `Storage.clearCookies`, `chrome.browsingData.remove`, "clear browsing data") on the user's real/main browser profile — it wipes their logged-in state everywhere. If the task needs that profile's login state, clone the profile directory first (`rsync -a <profile>/ <tmp-clone>/`) and launch CloakBrowser / agent-browser with the clone as the user-data-dir; run any clearing on the clone only.
|
|
@@ -17,22 +17,24 @@ CloakBrowser (stealth Chromium) <- CDP port 9242 -> agent-browser CLI
|
|
|
17
17
|
|
|
18
18
|
CloakBrowser runs in a dedicated Python venv. Cross-platform: macOS, Linux, and Windows all supported by both tools (use the venv path convention for your OS).
|
|
19
19
|
|
|
20
|
+
The venv lives at a fixed path so every session reuses one stealth-Chromium download instead of creating a new venv per working directory, and every command below calls its interpreter by absolute path — no `activate` step to forget.
|
|
21
|
+
|
|
20
22
|
```bash
|
|
21
23
|
# CloakBrowser (MIT wrapper source; separate binary license, pin 0.5.7):
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
uv pip install "cloakbrowser==0.5.7"
|
|
25
|
-
python -c "import cloakbrowser; cloakbrowser.ensure_binary()" # downloads stealth Chromium on first import
|
|
24
|
+
VENV="$HOME/.agents/cloak-venv" # Windows: %USERPROFILE%\.agents\cloak-venv
|
|
25
|
+
uv venv "$VENV" --python 3.13
|
|
26
|
+
uv pip install --python "$VENV/bin/python" "cloakbrowser==0.5.7"
|
|
27
|
+
"$VENV/bin/python" -c "import cloakbrowser; cloakbrowser.ensure_binary()" # downloads stealth Chromium on first import
|
|
26
28
|
|
|
27
29
|
# agent-browser (Apache-2.0, pin 0.34.0):
|
|
28
|
-
|
|
30
|
+
bun add -g agent-browser@0.34.0 && agent-browser install
|
|
29
31
|
agent-browser --version # 0.34.0
|
|
30
32
|
```
|
|
31
33
|
|
|
32
34
|
Verify CloakBrowser:
|
|
33
35
|
|
|
34
36
|
```bash
|
|
35
|
-
python -c "import cloakbrowser; print(cloakbrowser.__version__, cloakbrowser.CHROMIUM_VERSION, cloakbrowser.binary_info()['installed'])"
|
|
37
|
+
"$VENV/bin/python" -c "import cloakbrowser; print(cloakbrowser.__version__, cloakbrowser.CHROMIUM_VERSION, cloakbrowser.binary_info()['installed'])"
|
|
36
38
|
# -> 0.5.7 <chromium-version> True
|
|
37
39
|
```
|
|
38
40
|
|
|
@@ -41,8 +43,9 @@ python -c "import cloakbrowser; print(cloakbrowser.__version__, cloakbrowser.CHR
|
|
|
41
43
|
NEVER clear cookies, cache, or site data (`Network.clearBrowserCookies`, `Storage.clearCookies`, `chrome.browsingData.remove`, "clear browsing data") on the user's real/main browser profile — it wipes their logged-in state everywhere. If you need that profile's login state, clone it first (`rsync -a <profile>/ <tmp-clone>/`) and launch with the clone as the user-data-dir; run any clearing on the clone only.
|
|
42
44
|
|
|
43
45
|
```bash
|
|
44
|
-
# 1. Launch CloakBrowser with CDP on :9242 (background).
|
|
45
|
-
|
|
46
|
+
# 1. Launch CloakBrowser with CDP on :9242 (background). cloakbrowser lives only in the venv,
|
|
47
|
+
# so call its interpreter by absolute path — this works in any shell, activated or not:
|
|
48
|
+
"$HOME/.agents/cloak-venv/bin/python" -c "import asyncio,cloakbrowser; asyncio.run(cloakbrowser.launch_async(headless=False, stealth_args=True, args=['--remote-debugging-port=9242']))" &
|
|
46
49
|
|
|
47
50
|
# 2. CloakBrowser launches tabless -> agent-browser would say "No page found".
|
|
48
51
|
# Open the first tab via CDP before any agent-browser command:
|
|
@@ -119,6 +122,6 @@ lsof -ti:9242 | xargs kill -9
|
|
|
119
122
|
# agent-browser can't connect:
|
|
120
123
|
curl -s http://127.0.0.1:9242/json/version | head -5 # empty -> CloakBrowser not running
|
|
121
124
|
# Update either tool:
|
|
122
|
-
uv pip install --upgrade "cloakbrowser==0.5.7" && python -c "import cloakbrowser; cloakbrowser.ensure_binary()"
|
|
123
|
-
|
|
125
|
+
uv pip install --python "$HOME/.agents/cloak-venv/bin/python" --upgrade "cloakbrowser==0.5.7" && "$HOME/.agents/cloak-venv/bin/python" -c "import cloakbrowser; cloakbrowser.ensure_binary()"
|
|
126
|
+
bun add -g agent-browser@0.34.0
|
|
124
127
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ulw-execute
|
|
3
|
-
description: "
|
|
3
|
+
description: "Executes a written Prometheus work plan with Boulder state, evidence ledger, worktree discipline, and parallel subagents. Use when the user says ulw-execute or asks to run a .omo/plans plan."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Codex Harness Tool Compatibility
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ulw-loop
|
|
3
|
-
description:
|
|
3
|
+
description: "A goal-like loop that decomposes work into systematic, evidence-bound ultrawork steps. Use when the user wants a goal loop or durable, checkpointed execution."
|
|
4
4
|
metadata:
|
|
5
5
|
short-description: Goal-like ultrawork loop for systematic decomposition
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ulw-research
|
|
3
|
-
description: "
|
|
3
|
+
description: "Runs maximum-saturation research with a cooperating team, claim-graph gating, and a cited, QA'd deliverable. Use when the user explicitly asks for research or a deep investigation, including any 'ulw' research wording."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Codex Harness Tool Compatibility
|
|
@@ -175,13 +175,15 @@ Scaling floor — more angles always justify more workers:
|
|
|
175
175
|
| Multi-faceted | 4 | 6 | 2 | 2 | 14 |
|
|
176
176
|
| Full due diligence | 4 | 6 | 3 | 2 | 15 |
|
|
177
177
|
|
|
178
|
+
The browsing column is BINDING, not advisory: when the brief says `Browsing: yes`, the roster names a browsing-worker angle before the first wave launches, and that worker is spawned in the same turn as the rest of the wave. A run that reaches wave 2 with zero browsing workers on a `Browsing: yes` brief has silently downgraded every source to what plain fetch happened to return.
|
|
179
|
+
|
|
178
180
|
**Disambiguate before you expand.** When the topic names something that could resolve several ways — a product, a person, a codename, a version — the first wave settles WHICH entity before any worker researches its history, benchmarks, or controversies: canonical name, first-party URL or account, whether it exists in the claimed category, and a confidence line. An unresolved entity never becomes a premise in a later wave's spawn message; that is exactly how a run starts inventing facts about something that does not exist.
|
|
179
181
|
|
|
180
182
|
Role protocols — embed the relevant one in each spawn message; every worker gets a unique angle:
|
|
181
183
|
|
|
182
184
|
- **Codebase (explore), 2-4 workers.** Grep with 3+ keyword variations; structural/AST search; LSP definitions and references; file-name globs; `git log --all -S '<keyword>'` and `--grep` for history including deleted code. Cross-validate hits across tools. Report absolute file paths, patterns with `file:line`, and how findings connect.
|
|
183
185
|
- **Web (librarian), 3-6 workers.** At least 10 distinct websearch queries per worker, each with a different operator or angle (see Search craft); fetch the full page for every result that matters — snippets lie. Context7 with 3+ queries per known library. grep.app and `gh search code|repos|issues` for real-world usage. Official docs via sitemap discovery (`<base>/sitemap.xml`), then targeted pages.
|
|
184
|
-
- **Browsing,
|
|
186
|
+
- **Browsing, 1-3 workers on a `Browsing: yes` brief (0 otherwise).** This worker RENDERS pages, it does not re-fetch them: it drives a real browser through whatever the harness provides — the Browser plugin, an agent-browser or playwright skill, or a code-cell browser — and loads the `ultimate-browsing` skill to escalate through its tiers (insane-search engine with its Phase-2.5 archive surrogates, platform-native readers, then Chrome stealth) only when that browser is blocked. Its standing deliverable is a full-page screenshot of every top source plus the rendered text plain fetch could not reach; a worker that returns only fetched text has not done its job. JS-rendered, login-gated, WAF-blocked, and screenshot-bearing sources all belong here rather than in the web lane. **Provenance is part of the claim**: when a source came back with `provenance` of `snapshot` (an archive copy), cite it with its `snapshot_timestamp` and never state it as the current live page; content from a `proxy` route is `untrusted` and needs a second independent route before any claim rests on it. When one blocked territory hides many leads, fan out more browsing subagents in parallel for breadth instead of serializing one worker through them.
|
|
185
187
|
- **Repo deep-dive (librarian), 0-2 workers.** Shallow-clone the most relevant repos to `${TMPDIR:-/tmp}`, pin the HEAD SHA, read core modules, follow call chains, return SHA-pinned permalinks.
|
|
186
188
|
|
|
187
189
|
Example spawn (codebase axis; librarian, browsing, and repo-dive follow the same contract with their own protocol):
|
|
@@ -380,6 +382,7 @@ High-yield combinations: official docs (`site:<docs domain>`), GitHub implementa
|
|
|
380
382
|
| Obeying a surrounding "stop exploring" rule mid-research | Authority section — those rules do not bind this mode |
|
|
381
383
|
| Asking a worker to write journal or session files | Workers are read-only; you journal every return |
|
|
382
384
|
| Two workers given the same angle | One unique angle per worker, always |
|
|
385
|
+
| A `Browsing: yes` run whose roster carries no browsing worker | The browsing column is binding — name the angle in the brief and spawn it with the first wave, before any lead is chased |
|
|
383
386
|
| Contested claim settled by judgment | Phase 3 — run code, capture output, verdict |
|
|
384
387
|
| Deliverable claims without citations | Every claim cites a source or a verification artifact |
|
|
385
388
|
| Guessing the deliverable format instead of asking | The format gate is unconditional: propose PDF+DOCX plus the domain-fitting alternatives and the template, then wait before wave 1 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: visual-qa
|
|
3
|
-
description: "
|
|
3
|
+
description: "Runs rigorous visual QA across web, terminal, and paginated surfaces with screenshot evidence and a verdict. Use for any UI build or change, or when asked whether a page, component, or TUI looks right."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Codex Harness Tool Compatibility
|
|
@@ -71,7 +71,7 @@ Before any reviewer sees an image, verify each capture yourself: the file signat
|
|
|
71
71
|
### Web
|
|
72
72
|
|
|
73
73
|
1. Capture a REFERENCE image: the user's mock/target, generated page snapshot, Figma export, source-site capture, or known-good baseline. Save as PNG. If the user provided overview text or annotations, save them next to the image and treat them as part of the reference packet.
|
|
74
|
-
2. Capture the ACTUAL rendered screenshot at the same viewport size
|
|
74
|
+
2. Capture the ACTUAL rendered screenshot at the same viewport size, driving the browser your harness actually has. Where a code cell can reach a browser (`new Bun.WebView()` on a Bun >= 1.4 kernel, otherwise `playwright-core` against the local Chrome), capture in-process: it needs no CLI and returns the PNG path directly. In Codex, `browser:control-in-app-browser` is that in-process surface — use it first unless the page needs an authenticated user browser session. Otherwise use the project's configured browser tooling (the playwright, agent-browser, or dev-browser skill). Save as PNG. If nothing is available, install [agent-browser](https://github.com/vercel-labs/agent-browser) (`bun add -g agent-browser && agent-browser install`) and capture with it — see `$SKILL_DIR/references/agent-browser-setup.md` for the full setup, including how to shoot a fixed-viewport screenshot.
|
|
75
75
|
3. Run the diff and keep the JSON:
|
|
76
76
|
|
|
77
77
|
```
|
|
@@ -90,7 +90,7 @@ const ulwExecuteCodexCompletion = `When all top-level checkboxes in \`## TODOs\`
|
|
|
90
90
|
|
|
91
91
|
1. Run the plan's final verification commands.
|
|
92
92
|
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
93
|
-
- Invoke the \`review-work\` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence.
|
|
93
|
+
- Invoke the \`review-work\` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. Both review lanes - the manual QA matrix and the gate review - must PASS. A timeout, missing deliverable, ack-only child, \`BLOCKED:\`, or inconclusive lane is a gate failure, not approval.
|
|
94
94
|
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to \`.omo/ulw-execute/ledger.jsonl\` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
95
95
|
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to \`.omo/ulw-execute/ledger.jsonl\`. Reuse it only after re-reading an exact audit/SHA match.
|
|
96
96
|
- If any review lane or debugging hypothesis fails, invoke the \`debugging\` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// omo-codex-install:80e794a7ee4705f54dc0c24f45fba696230284b0708f25cc7cb6351c4fc9efcb:
|
|
2
|
+
// omo-codex-install:80e794a7ee4705f54dc0c24f45fba696230284b0708f25cc7cb6351c4fc9efcb:6a8ebba6a634be0037c1ee2497793afa6027119cfde2e6cf65fb6ed6735f0cad
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __returnValue = (v) => v;
|
|
5
5
|
function __exportSetter(name, newValue) {
|
|
@@ -7977,7 +7977,7 @@ var package_default;
|
|
|
7977
7977
|
var init_package = __esm(() => {
|
|
7978
7978
|
package_default = {
|
|
7979
7979
|
name: "@oh-my-opencode/omo-codex",
|
|
7980
|
-
version: "5.0.0-beta.
|
|
7980
|
+
version: "5.0.0-beta.43",
|
|
7981
7981
|
type: "module",
|
|
7982
7982
|
private: true,
|
|
7983
7983
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -8008,6 +8008,7 @@ var init_package = __esm(() => {
|
|
|
8008
8008
|
"sync:skills": "node plugin/scripts/sync-skills.mjs"
|
|
8009
8009
|
},
|
|
8010
8010
|
dependencies: {
|
|
8011
|
+
"@oh-my-opencode/shared-skills": "workspace:*",
|
|
8011
8012
|
"@oh-my-opencode/utils": "workspace:*"
|
|
8012
8013
|
},
|
|
8013
8014
|
devDependencies: {
|
|
@@ -8,12 +8,18 @@
|
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./index.d.ts",
|
|
10
10
|
"import": "./index.mjs"
|
|
11
|
+
},
|
|
12
|
+
"./skill-source-filter": {
|
|
13
|
+
"types": "./skill-source-filter.d.ts",
|
|
14
|
+
"import": "./skill-source-filter.mjs"
|
|
11
15
|
}
|
|
12
16
|
},
|
|
13
17
|
"types": "./index.d.ts",
|
|
14
18
|
"files": [
|
|
15
19
|
"index.d.ts",
|
|
16
20
|
"index.mjs",
|
|
17
|
-
"skills"
|
|
21
|
+
"skills",
|
|
22
|
+
"skill-source-filter.d.ts",
|
|
23
|
+
"skill-source-filter.mjs"
|
|
18
24
|
]
|
|
19
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ast-grep
|
|
3
|
-
description: "
|
|
3
|
+
description: "Searches and rewrites code by AST shape across 25 languages. Use when the target is a syntax pattern (every call/class/import shaped like X, a codemod, a YAML rule) rather than literal text; for plain strings, comments, or filenames, use rg."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# ast-grep
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: coding-agent-sessions
|
|
3
|
-
description: "
|
|
3
|
+
description: "Finds, reads, and reconstructs coding-agent sessions across Codex, Claude, OpenCode, OMO/Senpi, and other local agent logs. Use when asked to find or search past sessions, transcripts, or subagent runs, or to recover what an earlier session did."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Coding Agent Sessions
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-scientist
|
|
3
|
-
description: "
|
|
3
|
+
description: "Processes and analyzes data with resident-kernel engines (DuckDB, Polars) and one-shot tools. Use for CSV/parquet/JSON analysis, group-by/join/aggregation, time series, distributions, cleaning, or plotting a dataset."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Data Scientist: Hybrid-Engine Data Processing
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debugging
|
|
3
|
-
description: "
|
|
3
|
+
description: "Runs a hypothesis-driven debugging loop across any language or binary, escalating to orthogonal oracle angles and locking the fix with a failing test. Use for crashes, silent failures, hangs, wrong responses, memory leaks, async misbehavior, or reverse engineering."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Debugging
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend
|
|
3
|
-
description: "
|
|
3
|
+
description: "Builds, styles, and polishes web UI and UX. Use for any frontend, page, component, styling, layout, animation, or visual-quality task, or when asked to make an interface look or feel a certain way."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Frontend
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git-master
|
|
3
|
-
description: "
|
|
3
|
+
description: "Handles git work: atomic commits, rebase, squash, blame, bisect, reflog, and history questions. Use whenever a task needs a commit or a git-history investigation; skip for ordinary code edits."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Git Master
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: init-deep
|
|
3
|
-
description: "
|
|
3
|
+
description: "Initializes a hierarchical AGENTS.md knowledge base for a project. Use when a repo needs its structure, commands, and conventions documented for agents."
|
|
4
4
|
---
|
|
5
5
|
# /init-deep
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lsp-setup
|
|
3
|
-
description: "
|
|
3
|
+
description: "Configures a language server so editor/agent tooling (diagnostics, go-to-definition, references, rename) works. Use when a project needs an LSP installed or wired, or a 'no LSP server configured' error appears."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# LSP Setup
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: programming
|
|
3
|
-
description: "
|
|
3
|
+
description: "Applies strict, modern language practice (typed errors, exhaustive match, TDD) for Python, Rust, TypeScript, and Go. Use for work on .py, .rs, .ts, or .go files."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Programming
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refactor
|
|
3
|
-
description: "
|
|
3
|
+
description: "Guides a refactor, cleanup, or restructure with the right decomposition. Use when the user asks to refactor, simplify, extract, or modernize code."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
export const REFACTOR_TEMPLATE = `# Intelligent Refactor Command
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remove-ai-slops
|
|
3
|
-
description: "
|
|
3
|
+
description: "Removes AI-generated code smells from branch changes or an explicit file list behind regression tests. Use when the user asks to clean up, deslop, or remove AI-slop patterns from recent changes."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Remove AI Slops Skill
|