# Below is a list of Flutter team members' GitHub handles who are
# suggested reviewers for contributions to this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.
#
# Use git ls-files '<pattern>' without a / prefix to see the list of matching files.

/engine/src/build/config/ios/** @vashworth
/packages/flutter_tools/templates/module/ios/ @vashworth
/packages/flutter_tools/templates/**/Podfile* @vashworth
/packages/flutter_tools/lib/src/ios/ @vashworth

# Internal dev infra that is closely tied to team-infra.
/bin/internal/** @jtmcdole
/dev/tools/test/** @jtmcdole

# The following files define an Application Binary Interface (ABI) that must maintain
# both forward and backward compatibility. Changes should be heavily
# scrutinized as mistakes are irreversible.
/engine/src/flutter/shell/platform/embedder/embedder.h @loic-sharma
/engine/src/flutter/shell/platform/embedder/tests/embedder_frozen.h @loic-sharma

# Android team - keep this synced with .github/labeler.yml's team-android section.
/docs/platform/android/** @flutter/android-reviewers
/engine/src/flutter/shell/platform/android/** @flutter/android-reviewers
/packages/flutter_tools/**/*android* @flutter/android-reviewers
/packages/flutter_tools/**/*gradle* @flutter/android-reviewers

# iOS team - keep this synced with .github/labeler.yml's team-ios section.
/engine/src/flutter/shell/platform/darwin/common/ @flutter/ios-reviewers
/engine/src/flutter/shell/platform/darwin/ios/framework/ @flutter/ios-reviewers
/packages/flutter_tools/**/ios/* @flutter/ios-reviewers
/packages/flutter_tools/**/*xcode* @flutter/ios-reviewers
/packages/flutter_tools/**/*ios* @flutter/ios-reviewers

# macOS team - keep this synced with .github/labeler.yml's team-macos section.
/engine/src/flutter/src/flutter/shell/platform/darwin/common/**/* @flutter/macos-reviewers
/engine/src/flutter/shell/platform/darwin/macos/**/* @flutter/macos-reviewers

# Shared with iOS and macOS teams - keep this synced with both .github/labeler.yml's team-ios and team-macos sections.
/packages/flutter_tools/**/macos/* @flutter/macos-reviewers @flutter/ios-reviewers
/packages/flutter_tools/**/*macos* @flutter/ios-reviewers @flutter/macos-reviewers

# Linux team - keep this synced with .github/labeler.yml's team-linux section.
/engine/src/flutter/shell/platform/linux/**/* @flutter/linux-reviewers
/packages/flutter_tools/**/linux/* @flutter/linux-reviewers
/packages/flutter_tools/**/*linux* @flutter/linux-reviewers

# Windows team - keep this synced with .github/labeler.yml's team-windows section.
/engine/src/flutter/shell/platform/windows/**/* @flutter/windows-reviewers
/packages/flutter_tools/**/windows/* @flutter/windows-reviewers
/packages/flutter_tools/**/*windows* @flutter/windows-reviewers

# Skills owners
.agents/skills @reidbaker # Fallback owners
.agents/skills/find-release @reidbaker