write-ai-eval-test
Skill4.1k starsChanged 3 days agoBSD-3-ClauseView on GitHub
Use when asked to write or create an ai_eval test under test/ai_evals/ for an evaluation use case in test/ai_evals/eval_data/evals/. Works across all DevTools domains (performance, network, elements, sources, console, accessibility, storage). To minimize latency, in your FIRST turn call view_file in parallel on SKILL.md, task.textproto + agent_prompt.md for <eval-id>, and test/ai_evals/BUILD.gn (plus test/ai_evals/<domain>/BUILD.gn if <domain> is known).
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 0 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Call view_file in parallel on:
- Very specific: line 22
Check flat path test/ai_evals/eval_data/evals/<eval-id>/ (evalFolder = '') or nested path …
- Very specific: line 40
Create test/ai_evals/<domain>/<eval-id>.test.ts (write_to_file) using this exact domain-agnostic V2 template (<Domain> is capitalized …
- Very specific: line 88
If
test/ai_evals/<domain>/BUILD.gnexists: Add "<eval-id>.test.ts" in alphabetical order to sources (replace_file_content). - Very specific: line 89
If
<domain>is a new domain folder: Create test/ai_evals/<domain>/BUILD.gn (write_to_file) and add "<domain>" to deps in both …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Writing AI Eval Tests (test/ai_evals/)
Guardrails & Forbidden Actions
[!CAUTION]
- CRITICAL RULE — SINGLE V2 TEST ONLY: Always write only one V2 evaluation test per eval (
enabledFeatures: ['DevToolsAiV2Architecture']) using the canonical template below. NEVER create V1 tests or V1+V2 pairs.- CRITICAL RULE — NEVER SET OR PASS CONTEXT: NEVER call
findAndSetContext(or any panel/UI context-selection helper) and NEVER passcontexttoevalTask.executePrompt(...), even wheninitial_contextis present intask.textproto.- CRITICAL RULE — MINIMAL FILE READS & NO UNREQUESTED COMMANDS:
- Only read
task.textproto,agent_prompt.md, andBUILD.gnfiles. Do NOT readai_eval-helpers.ts,ai-eval-state-provider.ts,base-apps/,front_end/, or legacy tests that usefindAndSetContext.- Do NOT run
git,autoninja,./dt lint, or./dt testunless the user explicitly asks to build or run the test.
Fast 2-Step Workflow (All Domains)
Step 1: Read Only Required Metadata & BUILD.gn in One Parallel Turn
Call view_file in parallel on:
task.textprotoandagent_prompt.mdfor<eval-id>:- Check flat path
test/ai_evals/eval_data/evals/<eval-id>/(evalFolder='') or nested pathtest/ai_evals/eval_data/evals/<eval-folder>/<eval-id>/(evalFolder='<eval-folder>', e.g.'network'). - From
agent_prompt.md: extract the trimmed prompt string<agent_prompt>. - From
task.textproto: infer<domain>in priority order:- Explicit user instruction or
<eval-folder>subfolder name. - Domain tag in
tags:"performance","network","elements","sources","console","accessibility","storage"(ignore generic tags like"cd4h"or"bugfix", and prefer panel domain tags over sub-topic tags like"cls"). initial_context.panelfallback (for folder naming only — never set context in code):NETWORK_REQUEST$\rightarrow$networkPERFORMANCE$\rightarrow$performanceDOM_NODE/ELEMENTS$\rightarrow$elementsSOURCE_FILE/SOURCES$\rightarrow$sourcesCONSOLE$\rightarrow$consoleACCESSIBILITY$\rightarrow$accessibilitySTORAGE/APPLICATION$\rightarrow$storage
- Explicit user instruction or
- Note:
setupAndRunEvalAppparsesbase_appandinitial_urlfromtask.textprotoautomatically at runtime—do not hardcode them.
- Check flat path
test/ai_evals/BUILD.gn(andtest/ai_evals/<domain>/BUILD.gnif<domain>is already known).
Step 2: Write Test and Update BUILD.gn in One Parallel Turn
In a single parallel tool-call turn:
- Create
test/ai_evals/<domain>/<eval-id>.test.ts(write_to_file) using this exact domain-agnostic V2 template (<Domain>is capitalized<domain>, e.g.Performance,Network,Elements,Sources,Console,Accessibility,Storage):
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assert} from 'chai';
import {
setupAndRunEvalApp,
stopEvalApp,
} from '../helpers/ai_eval-helpers.js';
import {describe, it, setup} from '../mocha-interface.js';
describe('<Domain> AI Eval: <eval-id>', function() {
this.timeout(180_000);
setup({
dockingMode: 'undocked',
enabledFeatures: ['DevToolsAiV2Architecture'],
devToolsSettings: {
'ai-assistance-enabled': true,
'ai-assistance-v2-opt-in-change-dialog-seen': true,
},
evalConfig: {
type: '<domain>',
label: '<eval-id>',
taskId: '<eval-id>',
},
});
it('launches app, navigates to initial URL, and executes prompt', async ({inspectedPage, evalTask}) => {
const app = await setupAndRunEvalApp('<evalFolder>', '<eval-id>');
try {
assert.isDefined(app.config.initialUrl, 'Expected initial_url to be defined in task.textproto');
await inspectedPage.page.goto(app.config.initialUrl, {waitUntil: 'networkidle0'});
await evalTask.executePrompt({
prompts: ['<agent_prompt>'],
});
} finally {
await stopEvalApp(app);
}
});
});- Update
BUILD.gn:- If
test/ai_evals/<domain>/BUILD.gnexists: Add"<eval-id>.test.ts"in alphabetical order tosources(replace_file_content). - If
<domain>is a new domain folder: Createtest/ai_evals/<domain>/BUILD.gn(write_to_file) and add"<domain>"todepsin bothgroup("ai_evals")andgenerated_file("test_inputs")intest/ai_evals/BUILD.gn(replace_file_content):# Copyright 2026 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("../../../scripts/build/typescript/typescript.gni") node_ts_library("<domain>") { sources = [ "<eval-id>.test.ts" ] ts_deps = [ "..:harness_library", "../../e2e/helpers", "../helpers", ] }
- If
Trending
More talk lately.about the whole repository
Who's talking about ChromeDevTools/devtools-frontend
- GoogleChrome/lighthouse“☂ "Unable to load the page" ”GitHub · Jul 28, 2017 · 54 reactions
- Stack Overflow“Chrome: CPU profile parser is fixing n missing samples”Stack Overflow · Dec 26, 2019 · 4 votes
- electron/electron“product_registry_impl_module.js causes 404”GitHub · May 2, 2018 · 4 reactions
- Stack Overflow“Word wrap in Chrome Dev Tools?”Stack Overflow · Sep 23, 2019 · 3 votes
- liriliri/chobitsu“same console.logs within the same ms are not shown”GitHub · Jan 21, 2025 · 2 reactions
The biggest 5 of 58 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 58
Talked about on GitHub, Stack Overflow and Bluesky (58 times).
On GitHub · 50
- Jul 28, 2017☂ "Unable to load the page" — GoogleChrome/lighthouse54 reactions · 44 comments
- May 2, 2018product_registry_impl_module.js causes 404 — electron/electron4 reactions · 4 comments
- Jan 21, 2025same console.logs within the same ms are not shown — liriliri/chobitsu2 reactions · 1 comment
- Jun 19, 2019Remove links to 3rd-party tools with Privacy issues. — nodejs/nodejs.org2 reactions · 13 comments
- Oct 28, 2026feat: generate Chrome-style selectors for nodes — soulteary/goquery1 reaction · 1 comment
45 more on GitHub
- May 24, 2026Bump chrome-devtools-frontend from 1.0.1630574 to 1.0.1632065 in the bundled-devtools group — arkhe-genesis/Arkhe-OS1 reaction
- May 17, 2026Bump chrome-devtools-frontend from 1.0.1622369 to 1.0.1630574 in the bundled-devtools group — arkhe-genesis/Arkhe-OS1 reaction
- Apr 12, 2026chore(deps): bump chrome-devtools-frontend from 1.0.1577886 to 1.0.1611825 — browseros-ai/BrowserOS-agent1 reaction · 1 comment
- Jul 24, 2024Tree collapse/expand buttons are broken in Firefox — liriliri/chii1 reaction · 1 comment
- Feb 2, 2024Benchmark suggestions — microsoft/typescript-benchmarkingsays it tested it1 reaction · 3 comments
- Apr 2, 2019第46题:详细讲解 — Advanced-Frontend/Daily-Interview-Question1 reaction · 1 comment
- Oct 29, 2026chore(deps): bump third_party/devtools-frontend from `f7e7785` to `1212f1b` — gtcollins/chrome-devtools-mcp0 reactions
- Oct 29, 2026build(deps): Bump third_party/devtools-frontend from `daedf81` to `ce6d180` — clanker25/chrome-devtools-mcp0 reactions
- Oct 29, 2026chore(deps): bump third_party/devtools-frontend from `daedf81` to `1212f1b` — rahulbomnalli/chrome-devtools-mcp0 reactions
- Oct 28, 2026chore(deps): bump third_party/devtools-frontend from `daedf81` to `ce6d180` — rahulbomnalli/chrome-devtools-mcp0 reactions · 1 comment
- Oct 28, 2026chore(deps): bump third_party/devtools-frontend from `f7e7785` to `ce6d180` — gtcollins/chrome-devtools-mcp0 reactions · 1 comment
- Oct 28, 2026build(deps): Bump third_party/devtools-frontend from `daedf81` to `34926d0` — clanker25/chrome-devtools-mcp0 reactions · 1 comment
- Oct 28, 2026chore(deps): bump third_party/devtools-frontend from `2a5562d` to `ce6d180` — operasoftware/opera-devtools-mcp0 reactions · 1 comment
- Oct 28, 2026feat: generate Chrome-style selectors for nodes — PuerkitoBio/goquery0 reactions
- Oct 27, 2026chore(deps): bump third_party/devtools-frontend from `f7e7785` to `34926d0` — gtcollins/chrome-devtools-mcp0 reactions · 1 comment
- Oct 27, 2026chore(deps): bump third_party/devtools-frontend from `daedf81` to `34926d0` — rahulbomnalli/chrome-devtools-mcp0 reactions · 1 comment
- Oct 26, 2026chore(deps): bump third_party/devtools-frontend from `daedf81` to `d0300de` — rahulbomnalli/chrome-devtools-mcp0 reactions · 1 comment
- Oct 26, 2026build(deps): Bump third_party/devtools-frontend from `daedf81` to `7be69df` — clanker25/chrome-devtools-mcp0 reactions · 1 comment
- Oct 26, 2026chore(deps): bump third_party/devtools-frontend from `f7e7785` to `7be69df` — gtcollins/chrome-devtools-mcp0 reactions · 1 comment
- Oct 23, 2026chore(deps): bump third_party/devtools-frontend from `f7e7785` to `daedf81` — gtcollins/chrome-devtools-mcp0 reactions · 1 comment
- Oct 6, 2026[Candidate] chromedevtools/devtools-frontend/.agents/skills/code-review - code-review — ProSkillsMD/proskills0 reactions · 1 comment
- Jul 1, 2026Bump chrome-devtools-frontend from 1.0.1628368 to 1.0.1652307 in the bundled-devtools group — Mikey63083/fantastic-winner0 reactions
- Jun 29, 2026Bump chrome-devtools-frontend from 1.0.1650035 to 1.0.1656291 in the bundled-devtools group across 1 directory — Lwuisyy/chromemcpsolver0 reactions
- Jun 28, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1650035 to 1.0.1656291 in the bundled-devtools group across 1 directory — amstaff666/chrome-devtools-mcp0 reactions · 1 comment
- Jun 18, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1646286 to 1.0.1652307 in the bundled-devtools group across 1 directory — gabrielbryk/arc-devtools-mcp0 reactions
- Jun 11, 2026Bump chrome-devtools-frontend from 1.0.1642845 to 1.0.1643855 in the bundled-devtools group — nickjfree/chrome-devtools-mcp-stealth0 reactions
- Jun 7, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1638082 to 1.0.1641723 in the bundled-devtools group — reminesta/devtools-mcp0 reactions
- Jun 7, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1638082 to 1.0.1641723 in the bundled-devtools group — gareth0712/garen-chrome-devtools0 reactions
- Jun 4, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1638082 to 1.0.1640418 in the bundled-devtools group — nickberry-debug/chrome-devtools-mcp0 reactions
- Jun 1, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1631386 to 1.0.1638082 in the bundled-devtools group — weiflycc-cmd/chrome-devtools-mcp0 reactions
- May 22, 2026AS微信4.1.7版本地址寻找 — f4l1k/WeChatOpenDevTools-Python-arm0 reactions · 1 comment
- May 1, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1618066 to 1.0.1622369 in the bundled-devtools group across 1 directory — franco-bianco/ghostframe-mcp0 reactions
- Apr 9, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1608868 to 1.0.1611099 in the bundled-devtools group — coursgranja91-hash/chrome-devtools-mcp0 reactions
- Apr 1, 2026Bump chrome-devtools-frontend from 1.0.1602348 to 1.0.1622369 in the bundled-devtools group across 1 directory — xiexie-qiuligao/chrome0 reactions · 1 comment
- Mar 31, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1602348 to 1.0.1605390 in the bundled-devtools group — anmolsinha-sys/Chrome-DevTool-CLI0 reactions · 1 comment
- Mar 29, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1602348 to 1.0.1605390 in the bundled-devtools group — Chozen0ne/chrome-devtools-mcp0 reactions
- Mar 25, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1599001 to 1.0.1602543 in the bundled-devtools group — JZnebel/humanchromedevtools0 reactions
- Mar 15, 2026chore(deps-dev): bump chrome-devtools-frontend from 1.0.1596260 to 1.0.1598808 in the bundled-devtools group — atulksingh011/react-dev-tools-mcp0 reactions
- Feb 24, 2026Bump chrome-devtools-frontend from 1.0.1583146 to 1.0.1587905 in the bundled-devtools group — aibasil-ai/chrome-devtools-mcp-translate0 reactions
- Dec 31, 2025Bump chrome-devtools-frontend from 1.0.1555430 to 1.0.1563377 in the bundled-devtools group — fukayatti/arc-devtools-mcp0 reactions
- Dec 11, 2025chore(deps): bump chrome-devtools-frontend from 1.0.1555430 to 1.0.1556696 in the bundled-devtools group — arikdpc/chrome-devtools-mcp0 reactions
- Nov 23, 2025chore(deps-dev): bump chrome-devtools-frontend from 1.0.1544076 to 1.0.1547571 in the bundled-devtools group — cang3333733-cell/chrome-devtools-mcp0 reactions
- Nov 20, 2025chore(deps-dev): bump chrome-devtools-frontend from 1.0.1544076 to 1.0.1547147 in the bundled-devtools group — BACH-AI-Tools/chrome-devtools-mcp0 reactions
- Nov 16, 2025chore(deps-dev): bump chrome-devtools-frontend from 1.0.1541552 to 1.0.1544076 in the bundled-devtools group — ryan-zheng-teki/chrome-devtools-mcp0 reactions
- Nov 4, 2025chore(deps-dev): bump chrome-devtools-frontend from 1.0.1524741 to 1.0.1538523 in the chrome-devtools-frontend group — omid-ghozatlou/Madhoush-website0 reactions
On Stack Overflow · 7
- Dec 26, 2019Chrome: CPU profile parser is fixing n missing samples4 votes
- Sep 23, 2019Word wrap in Chrome Dev Tools?3 votes
- May 17, 2021Block Specific Request URL in chrome, but URL with sub-directory should pass2 votes
- Mar 3, 2021debugging chrome remotely - doesn't open websocket2 votes
- Feb 9, 2019How to use trace.json written by ChromeDriver1 vote
2 more on Stack Overflow
- Oct 10, 2017Block request URLs that don't contain a specific pattern in chrome1 vote
- Jul 19, 2021Incorrect display of text in the console0 votes
On Bluesky · 1
- Sep 28, 2025Chrome DevToolsのフロントエンドは、TypeScriptとCSSで書かれていて、ブラウザ上で動く開発者ツール本体のことらしい。ソースコードは公開されていて、カスタマイズや機能追加ができそうだよ。 yug1224 starred… — @yug1224.com1 likes and repost
In this repository19 other files it gives its agents.
- code-reviewSkill
- devtools-importsSkill
- devtools-model-managementSkill
- devtools-setting-migrationSkill
- devtools-source-mapsSkill
- devtools-testing-guidanceSkill
- devtools-unicode-escapingSkill
- devtools-verificationSkill
- fix-testsSkill
- foundation-test-migrationSkill
- merging-devtools-moduleSkill
- migrate-chromium-testSkill
- ui-eng-vision-local-lit-rendererSkill
- ui-eng-vision-logic-consolidatorSkill
- ui-eng-vision-orchestratorSkill
- ui-eng-vision-test-scaffolderSkill
- ui-eng-vision-widget-promoterSkill
- devtools-ui-widgetsSkill
- devtools-version-controlSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

