Browser4 is an AI-native browser engine that lets autonomous agents and people control real browsers, extract information from web pages, and automate tasks at scale. It combines browser interaction through a Rust CLI and MCP with deterministic selectors, machine-learning clustering, and language-model extraction. The catalogue entries provide skills and instructions for using Browser4.
Borrowing it
Nothing to install: this file belongs to platonai/Browser4. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/platonai/Browser4/main/.trae/skills/issues-batch-fix/SKILL.mdgit clone --depth 1 https://github.com/platonai/Browser4Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/platonai/browser4/issues-batch-fix)<a href="https://agentmods.dev/skills/platonai/browser4/issues-batch-fix"><img src="https://agentmods.dev/badge/skills/platonai/browser4/issues-batch-fix/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/platonai/browser4/issues-batch-fix"><img src="https://agentmods.dev/badge/skills/platonai/browser4/issues-batch-fix.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.01723 |
| Opus 5.5 | $0.00016 | $0.00689 |
| Sonnet 5.5 | $0.00008 | $0.00345 |
| Haiku 4.5 | $0.00004 | $0.00172 |
Grade A, and why
issues-batch-fix scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 16d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Issues 报告批量修复(Browser4 专属)
按批次修复 coworker/tasks/issues/draft/ 下的测试问题报告。核心循环:读报告 → 静态定位 → 双端修复 → 定向验证 → 文档联动 → 批次总结。全程中文沟通。
1. 定位报告
- 报告目录:
coworker/tasks/issues/draft/,命名YYYYMMDD-HHMMSS-<slug>.issues.md(同名.full.md为长版参考,一般不必读)。 - 用户说"继续修复 #N":先用 §6 进度表把 #N 映射到文件;映射不明或表未覆盖时,按文件名时间顺序列出未修报告候选,让用户确认后再动手。
- 编号可能跳过已在会话空档修过的报告。判断某候选是否已修的快速探针:取报告中一个标志性 issue 的代码指针(如某函数的回退逻辑),Grep 当前代码看修复是否已存在。探针确认已修后,把该报告移入 §6 已完成清单。
- 用户说"下一个报告":取时间顺序下一个未修报告,先报出文件名与 issue 数量。
- 批次范围以用户指定为准;历史批次(如 20260916/20/23-*)默认不在范围内,除非用户点名。
2. 单 Issue 修复循环
- 建 todo:id 用
#N-<issue序号>,逐个 issue 推进,完成即标 completed。 - 静态定位:Grep/Read 双端排查 —— CLI(
cli/browser4-cli/src/,Rust)与后端(browser4-agentic/、browser4-rest/、browser4-core/,Kotlin)。先找根因,再想修法。 - 确认修复点是否在本仓:部分行为由外部 artifact 实现(如 pulsar-browser 的 AX 渲染器,版本锁在
browser4-dependencies/pom.xml),本仓不可改。此时用组合方案:CLI 侧文本后处理、executor 侧预检(大声失败)、文档如实化。 - 修复原则:大声失败 —— 错误信息直达 CLI/用户,不静默吞错、不被重试机制包装;重试幂等;不回退上游错误语义;拿不准的边界显式报错而非静默 no-op。
- 测试:主路径 + 边界各一。Rust 测试放
main.rs底部mod tests;Kotlin 测试放对应*Test.kt(camelCase 方法名 +@DisplayName,禁 backtick 命名)。 - 文档联动:公开行为变化必须同步
skills/browser4-cli/SKILL.md、skills/browser4-cli/references/*.md、cli/browser4-cli/src/help.rs、tips.rs(见 AGENTS.md 的 Documentation Update Rule)。
3. 验证命令
PowerShell 环境,注意引号与 -am 陷阱:
- Rust 单测:
cd cli/browser4-cli; cargo test --bin browser4-cli - Kotlin 单测:
.\mvnw.cmd test -pl <module> -Dtest=<TestClass> "-Dsurefire.failIfNoSpecifiedTests=false"- 不要加
-am:上游模块会报 No tests matching pattern -D参数必须加引号:PowerShell 会把点号参数拆开
- 不要加
- 跨模块编译确认:
.\mvnw.cmd -q -D"skipTests" - e2e 仅编译确认:
cargo test --test e2e --no-run;真跑需要后端在线(默认端口 18182) - 全绿才算完成;测试失败先定位根因,禁止 sleep 重试循环。
4. 已知坑位(本仓实测教训)
- 管道提前关闭:裸
println!会 EPIPE panic → 用print_stdout_line。 - 退出码语义(如 grep 零匹配 exit 1):用哨兵错误字符串向上传播 + 主错误处理器特判静默返回对应 ExitCode。
- 工具参数可能存 JSON 整数或字符串:容错读取(
as_i64优先,回退as_str().parse())。 - 字符串预处理的 trim 顺序:先
trim_start()空白,再trim_start_matches(前缀符号),再 trim —— 顺序反了缩进行匹配不到。 - 需要真实浏览器 e2e 才能验证的 issue:有意暂缓,向用户说明理由与残余风险,不硬修。
- 下载/输出目录用绝对路径(如
~/.browser4/downloads),避免文件落进 bundle build 树。 - 修一个
.ps1时检查同目录兄弟脚本是否有同样问题。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 16d ago First seen · 80 lines · 40 tokens per session scan A d3fb5932bed7
issues-batch-fix is a skill published in the GitHub repository platonai/Browser4 (1,169 stars, last pushed yesterday), licensed Apache-2.0. It adds 40 tokens to every session and 1,723 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-13.
Other skills, from other repositories
qa-safe-healing
Diagnose Playwright and cross-layer application failures from repository evidence, then apply only policy-permitted repairs and targeted validation.
qa
QA test your code changes by reading your git diff, choosing the right validation path for frontend/browser and backend changes, and reporting pass/fail with evidence.
reliability
Use when user asks to stress-test the system, validate reconnection behavior, check for race conditions, or verify end-to-end data flow integrity.
screen-reader-testing
Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues, or ensuring assistive technology support.
verify-omnigent
Drive Omnigent the way a user does and prove a behavior with recorded evidence, using an isolated server, runner, and mock model plus a feature map of every user entry point. Load before reproducing a user-facing bug, before claiming a fix works, or when reviewing whether a change covered every surface (session vs.…
dogfood
Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA, exploratory test, find issues, bug hunt, or test this app on mobile.