# Gn Check Autofix

> Automatically fix GN check errors in WebRTC BUILD.gn files. Use when encountering "Include not allowed", "rtc_source_set shall not contain cc files", or when needing to clean up non-absolute dependencies. Use when this capability is needed.

- Skill: `tomevault-io/gn-check-autofix` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/gn-check-autofix`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/gn-check-autofix/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/gn-check-autofix

---


# GN Check Autofix

This skill provides instructions for using `tools_webrtc/gn_check_autofix.py` to
automatically resolve common GN build configuration errors in WebRTC.

## Core Workflows

### Fix Missing Dependencies

When you see "Include not allowed" errors from `gn gen --check`, use this
workflow:

1. Run the autofix tool on your output directory:
   ```bash
   tools_webrtc/gn_check_autofix.py -C <dir>
   ```
2. The tool will:
   - Identify targets missing dependencies.
   - Add the missing `deps` to the appropriate `BUILD.gn` files.
   - Automatically run `gn format` on modified files.

### Fix rtc_source_set Violations

If you see "rtc_source_set shall not contain cc files", the tool will
automatically convert them to `rtc_library`:

1. Run the tool:
   ```bash
   tools_webrtc/gn_check_autofix.py -C <dir>
   ```

### Clean Up Dependencies

To remove all non-absolute dependencies (those not starting with `//`) from
specific `BUILD.gn` files:

```bash
tools_webrtc/gn_check_autofix.py -r path/to/BUILD.gn
```

*Note: This preserves absolute dependencies (starting with `//`) and targets
ending in `_test`, `_tests`, `_unittest`, or `_unittests`.*

## Integration with Include Cleaner

This tool is the recommended second step after running `webrtc-include-cleaner`.
While the include cleaner updates your C++ source files, `gn-check-autofix`
synchronizes your `BUILD.gn` files to match.

## Parameters

- `-C <dir>`: Path to a local build directory (e.g., `out/Default`). The tool
  internally runs `gn gen --check --error-limit=20000`.
- `-r <files>`: Remove all non-absolute dependencies from the specified files.
- `--error-limit`: Can be used to override the default error cap.

## Post-Fix Steps

After the tool runs, always verify the changes:

1. **Deduplicate**: The tool may occasionally add a dependency that is already
   present. Check the `deps` list for duplicates.
2. **Regenerate GN**: Run `gn gen <dir>` to confirm errors are resolved.
3. **Format**: The tool runs `gn format`, but a final `git cl format` is
   recommended for consistency.
4. **Review**: Check the diff to ensure dependencies were added to the correct
   targets.

---
> Source: [signalapp/webrtc](https://github.com/signalapp/webrtc) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-18 -->

