[ci] Roll repo tooling and add readme-check (#1667)

diff --git a/.ci/scripts/prepare_tool.sh b/.ci/scripts/prepare_tool.sh
index dce7c98..cb3d646 100755
--- a/.ci/scripts/prepare_tool.sh
+++ b/.ci/scripts/prepare_tool.sh
@@ -8,4 +8,4 @@
 
 # Pinned version of the plugin tools, to avoid breakage in this repository
 # when pushing updates from flutter/plugins.
-dart pub global activate flutter_plugin_tools 0.8.2+1
+dart pub global activate flutter_plugin_tools 0.8.4
diff --git a/.cirrus.yml b/.cirrus.yml
index e6c5e33..8f8c154 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -59,6 +59,18 @@
         license_script: dart pub global run flutter_plugin_tools license-check
         analyze_script: ./script/tool_runner.sh analyze --custom-analysis=script/configs/custom_analysis.yaml
         pubspec_script: ./script/tool_runner.sh pubspec-check
+        readme_script:
+          - ./script/tool_runner.sh readme-check
+          # Re-run with --require-excerpts, skipping packages that still need
+          # to be converted. Once https://github.com/flutter/flutter/issues/102679
+          # has been fixed, this can be removed and there can just be a single
+          # run with --require-excerpts and no exclusions.
+          - ./script/tool_runner.sh readme-check --require-excerpts --exclude=script/configs/temp_exclude_excerpt.yaml
+    - name: readme_excerpts
+      env:
+        CIRRUS_CLONE_SUBMODULES: true
+      script: ./script/tool_runner.sh update-excerpts --fail-on-change
+
     # Does a sanity check that packages at least pass analysis on the N-1 and N-2
     # versions of Flutter stable if the package claims to support that version.
     # This is to minimize accidentally making changes that break old versions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0d3967e..8b71576 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -31,7 +31,7 @@
       with:
         fetch-depth: 0 # Fetch all history so the tool can get all the tags to determine version.
     - name: Set up tools
-      run: dart pub global activate flutter_plugin_tools 0.8.2+1
+      run: dart pub global activate flutter_plugin_tools 0.8.4
 
     # # This workflow should be the last to run. So wait for all the other tests to succeed.
     - name: Wait on all tests
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..1d3bb5d
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "site-shared"]
+	path = site-shared
+	url = https://github.com/dart-lang/site-shared
diff --git a/packages/flutter_markdown/README.md b/packages/flutter_markdown/README.md
index b6b3319..36c8f5a 100644
--- a/packages/flutter_markdown/README.md
+++ b/packages/flutter_markdown/README.md
@@ -79,7 +79,7 @@
 widget constructor, a text string with a smiley face emoji is passed in as the
 source Markdown data.
 
-```
+```dart
 Markdown(
     controller: controller,
     selectable: true,
@@ -100,7 +100,7 @@
 while maintaining the default GitHub flavored Markdown behavior, define
 an extension set that combines EmojiSyntax with ExtensionSet.gitHubFlavored.
 
-```
+```dart
 import 'package:markdown/markdown.dart' as md;
 
 Markdown(
diff --git a/script/configs/temp_exclude_excerpt.yaml b/script/configs/temp_exclude_excerpt.yaml
new file mode 100644
index 0000000..4d1258f
--- /dev/null
+++ b/script/configs/temp_exclude_excerpt.yaml
@@ -0,0 +1,19 @@
+# Packages that have not yet adopted code-excerpt.
+#
+# This only exists to allow incrementally adopting the new requirement.
+# Packages shoud never be added to this list.
+
+# TODO(stuartmorgan): Remove everything from this list. See
+# https://github.com/flutter/flutter/issues/102679
+- cross_file
+- css_colors
+- extension_google_sign_in_as_googleapis_auth
+- flutter_image
+- flutter_markdown
+- go_router
+- go_router_builder
+- multicast_dns
+- palette_generator
+- pigeon
+- pointer_interceptor
+- rfw
diff --git a/site-shared b/site-shared
new file mode 160000
index 0000000..8c92e5b
--- /dev/null
+++ b/site-shared
@@ -0,0 +1 @@
+Subproject commit 8c92e5bdfdce14887605de6b5d9d0bd2615876b7
diff --git a/third_party/packages/cupertino_icons/README.md b/third_party/packages/cupertino_icons/README.md
index 2f86fe0..df67ed0 100644
--- a/third_party/packages/cupertino_icons/README.md
+++ b/third_party/packages/cupertino_icons/README.md
@@ -9,7 +9,7 @@
 
 [![pub package](https://img.shields.io/pub/v/cupertino_icons.svg)](https://pub.dev/packages/cupertino_icons)
 
-```
+```yaml
 dependencies:
   cupertino_icons: ^<latest-version>
 ```