Index: cli/class-block-plugin-checker.php
===================================================================
--- cli/class-block-plugin-checker.php	(revision 10102)
+++ cli/class-block-plugin-checker.php	(working copy)
@@ -34,6 +34,7 @@
 	protected $headers = null;
 	protected $blocks = null;
 	protected $block_json_files = null;
+	protected $potential_block_directories = array();
 	protected $asset_php_files = null;
 	protected $block_json_validation = array();
 	protected $block_assets = array();
@@ -70,7 +71,7 @@
 	public function get_results( $type = null, $check = null ) {
 		$out = array();
 		foreach ( $this->results as $result ) {
-			if ( 
+			if (
 				( is_null( $type ) || $type === $result->type ) &&
 				( is_null( $check ) || $check === $result->check_name )
 			) {
@@ -193,7 +194,7 @@
 		} else {
 			return $this->results;
 		}
-		
+
 	}
 
 	function export_plugin( $svn_url ) {
@@ -284,7 +285,7 @@
 			foreach ( $this->block_json_files as $filename ) {
 				$blocks_in_file = Import::find_blocks_in_file( $filename );
 				$relative_filename = $this->relative_filename( $filename );
-				$potential_block_directories[] = dirname( $relative_filename );
+				$this->potential_block_directories[] = dirname( $relative_filename );
 				foreach ( $blocks_in_file as $block ) {
 					$blocks[ $block->name ] = $block;
 				}
@@ -294,6 +295,7 @@
 			$blocks_in_file = Import::find_blocks_in_file( $filename );
 			if ( ! empty( $blocks_in_file ) ) {
 				$relative_filename = $this->relative_filename( $filename );
+				$this->potential_block_directories[] = dirname( $relative_filename );
 				foreach ( $blocks_in_file as $block ) {
 					if ( preg_match( '!\.(?:js|jsx)$!i', $relative_filename ) && empty( $block->script ) )
 						$block->script = $relative_filename;
@@ -307,7 +309,7 @@
 	}
 
 	public function find_block_assets( $base_dir ) {
-		$assets = Import::find_possible_block_assets( $base_dir );
+		$assets = Import::find_possible_block_assets( $base_dir, $this->potential_block_directories );
 		$assets = array_map( array( $this, 'relative_filename' ), $assets );
 
 		$block_assets = array(
@@ -338,7 +340,7 @@
 	 *
 	 * @param string $file Path to a PHP file.
 	 * @return array A list of functions found, in (function, line, file) form.
-	 */ 
+	 */
 	public static function find_called_functions_in_file($file) {
 		$source = file_get_contents($file);
 		$tokens = token_get_all($source, TOKEN_PARSE);
@@ -363,7 +365,7 @@
 				$context[] = ' ';
 			} else {
 				$context[] = $token[0];
-			}	
+			}
 		}
 
 		return $function_calls;
@@ -646,6 +648,45 @@
 	}
 
 	/**
+	 * Did we find block assets?
+	 */
+	function check_block_assets() {
+		$js_asset_count = count( $this->block_assets['js'] );
+		$js_asset_result_type = $js_asset_count > 0 ? 'info' : 'warning';
+		$css_asset_count = count( $this->block_assets['css'] );
+		$css_asset_result_type = $css_asset_count > 0 ? 'info' : 'warning';
+
+		$this->record_result(
+			__FUNCTION__,
+			$js_asset_result_type,
+			sprintf(
+				_n(
+					'Found %d JS asset.',
+					'Found %d JS assets.',
+					$js_asset_count,
+					'wporg-plugins'
+				),
+				number_format_i18n( $js_asset_count )
+			),
+			$this->block_assets['js']
+		);
+		$this->record_result(
+			__FUNCTION__,
+			$css_asset_result_type,
+			sprintf(
+				_n(
+					'Found %d CSS asset.',
+					'Found %d CSS assets.',
+					$css_asset_count,
+					'wporg-plugins'
+				),
+				number_format_i18n( $css_asset_count )
+			),
+			$this->block_assets['css']
+		);
+	}
+
+	/**
 	 * Do the script files all exist?
 	 */
 	function check_for_block_script_files() {
Index: cli/class-import.php
===================================================================
--- cli/class-import.php	(revision 10102)
+++ cli/class-import.php	(working copy)
@@ -723,12 +723,12 @@
 			// There must be at least on JS file, so if only css was found, keep looking.
 			if ( empty( preg_grep( '!\.(?:js|jsx)$!i', $build_files ) ) ) {
 				// Then check for files in the current directory with "build" or "min" in the filename.
-				$build_files += Filesystem::list_files( "$base_dir/$block_dir", false, '![_\-\.]+(?:build|dist|min)[_\-\.]+!i' );
+				$build_files += Filesystem::list_files( "$base_dir/$block_dir", true, '![_\-\.]+(?:build|dist|min)[_\-\.]+!i' );
 			}
 
 			if ( empty( preg_grep( '!\.(?:js|jsx)$!i', $build_files ) ) ) {
 				// Finally, just grab whatever js/css files there are in the current directory.
-				$build_files += Filesystem::list_files( "$base_dir/$block_dir", false, '#(?<!webpack\.config)\.(?:js|jsx|css)$#i' );
+				$build_files += Filesystem::list_files( "$base_dir/$block_dir", true, '#(?<!webpack\.config)\.(?:js|jsx|css)$#i' );
 			}
 		}
 
Index: shortcodes/class-block-validator.php
===================================================================
--- shortcodes/class-block-validator.php	(revision 10102)
+++ shortcodes/class-block-validator.php	(working copy)
@@ -297,6 +297,11 @@
 				];
 			case 'check_for_block_json':
 				return __( 'Your plugin should contain at least one <code>block.json</code> file. This file contains metadata describing the block and its JavaScript and CSS assets. Make sure you include at least one <code>script</code> or <code>editorScript</code> item.', 'wporg-plugins' );
+			case 'check_block_assets':
+				if ( count( $result->data ) > 0 ) {
+					return $result->data;
+				}
+				return __( 'The checker was not able to find any files for this type of asset.', 'wporg-plugins' );
 			case 'check_for_block_script_files':
 				return [
 					__( 'The value of <code>script</code>, <code>style</code>, <code>editorScript</code>, <code>editorStyle</code> must be a valid file path. This value was detected, but there is no file at this location in your plugin.', 'wporg-plugins' ),
