Catalog
fauziyasin-s2m4qw/devtools-verification

fauziyasin-s2m4qw

devtools-verification

MANDATORY: Activate this skill ANY TIME you need to build the project, run tests, or verify code health in DevTools. You MUST use this skill before executing commands like ./dt test, ./dt build, autoninja, or linters (never run these through npm or npx), as it contains critical, repository-specific instructions on how to correctly format these commands, filter test runs, and interpret failures.

v1.0LATEST
NewUpdated Oct 20, 2026

Instructions on how to verify your changes

Running scripts

Run the scripts from the root package.json (test, lint, build, start, and so on) with ./dt <script> [args] from the repository root (on Windows: .\dt <script> [args]). Don't use npm run, npm test, or npx for them. Run ./dt without arguments to list the available scripts. Arguments after the script name are passed to the script as is, so don't add a -- separator.

Testing

  • To test a file, you can run ./dt test <FILEPATH> where FILEPATH is a path to a *.test.ts file, relative to the working directory.
  • Test files are usually defined alongside their implementation. So if you are working on front_end/panels/timeline/TimelinePanel.ts, you would expect the test file to be defined in front_end/panels/timeline/TimelinePanel.test.ts.
  • You can also test an entire directory. For example, ./dt test front_end/models/trace will run all tests in that directory.

Building & compiling

  • Check for build issues by running autoninja -C out/Default.

Linting

  • ./dt lint will execute ESLint and StyleLint. It will report any violations and automatically fix them where possible.
  • To run the linter on a specific file or directory, you can run ./dt lint <PATH> where PATH is a path to a file or directory. This will also automatically fix violations where possible.

Fetching Tryjob Results, Failure Logs, & Screenshot Goldens

Use scripts/tools/get_cl_test_results.py to fetch all tryjob build statuses, per-test failure logs, Blink web test text diffs, and screenshot artifacts (actual_image, expected_image, image_diff) for a CL in one command:

# Fetch all build statuses, failure logs, and artifacts for a CL into an output directory:
scripts/tools/get_cl_test_results.py --cl <CL_NUMBER> --output-dir <OUTPUT_DIR>

# Filter for specific failing tests (e.g. DOMTreeWidget) or specific builders:
scripts/tools/get_cl_test_results.py --cl <CL_NUMBER> --test-filter "DOMTreeWidget" --output-dir <OUTPUT_DIR>

# Also apply Linux actual_image screenshot artifacts directly to test/goldens/linux/...:
scripts/tools/get_cl_test_results.py --cl <CL_NUMBER> --output-dir <OUTPUT_DIR> --apply-goldens

Screenshot Golden & Inspection Rules

  • Linux-only goldens: Never generate, update, or commit golden PNGs from macOS. Screenshot tests in DevTools only use Linux goldens (test/goldens/linux/...) produced by Linux trybots (dtf_linux_rel / dtf_linux_dbg). Do not run screenshot tests locally on macOS to verify goldens.
  • Multimodal inspection only: Always inspect actual_image.png, expected_image.png, and image_diff.png directly using your multimodal file viewer (view_file). Never write or run programmatic image comparison scripts.

Best practices

  • Run tests often to verify your changes.
  • Prefer using a fast build, if it exists, to keep the feedback loop shorter.
  • Periodically build to check for errors.
  • Run git cl presubmit -u at the end of your code changes.

Overall Score

82/100

Grade

B

Good

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

80

Quality

85

Clarity

87

Completeness

75

Summary

This skill instructs agents on how to build, test, and verify code changes in a DevTools repository using repository-specific wrapper scripts (./dt). It covers test execution with path filtering, linting, building with autoninja, fetching tryjob results, and handling screenshot golden artifacts.

Detected Capabilities

shell execution via ./dt wrappertest execution with filteringlinting with auto-fixbuild compilationPython script executionfile system operationsgit operations (cl presubmit)

Trigger Keywords

Phrases that agents use to match this skill to user intent.

run devtools testsdevtools build verificationlint devtools codefetch tryjob resultsscreenshot goldens updateverify code changes

Risk Signals

INFO

Python script execution (get_cl_test_results.py) without documented input validation

Fetching Tryjob Results section
WARNING

File system write operations via --apply-goldens flag without explicit scope boundaries

get_cl_test_results.py command with --apply-goldens
INFO

Repository-specific command invocation (./dt) assumes wrapper script exists and is trusted

Running scripts section

Use Cases

  • Run DevTools test suite filtered by file or directory
  • Execute linting with automatic fixes for specific paths
  • Build and compile DevTools using autoninja
  • Fetch tryjob failure logs and screenshot artifacts for a CL
  • Verify code changes before submission with presubmit checks
  • Update screenshot goldens from Linux trybots

Quality Notes

  • Skill is highly focused and domain-specific to DevTools repository tooling
  • Clear distinctions between different command patterns (./dt vs autoninja vs Python scripts)
  • Practical use cases with concrete file path examples (TimelinePanel.test.ts)
  • Strong guardrail against incorrect tool usage (explicitly forbids npm run, npm test, npx)
  • Screenshot golden rules are well-documented with platform-specific constraints
  • Includes best practices section for verification workflow
  • Script invocation assumes developer familiarity with DevTools build system
  • Python script documentation could clarify input validation and error handling
  • Multimodal inspection rule for image files is clear and actionable
Model: claude-haiku-4-5-20251001Analyzed: Oct 20, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use fauziyasin-s2m4qw/devtools-verification in your dev environment

Command Palette

Search for a command to run...