@@ -727,10 +727,32 @@ runs:
727727 exit 0
728728 fi
729729
730- # Extract markdown files to check
730+ # Get both CSV and JSON formats - some tools work better with one or the other
731+ CHANGED_FILES_CSV='${{ steps.file-detection.outputs.changed_files_csv }}'
732+
733+ # Extract markdown files to check from JSON
731734 FILES_TO_CHECK=$(echo "$CHANGED_FILES_JSON" | jq -r '.[] | select(endswith(".md"))' | tr '\n' ' ')
732735
733- if [ -z "$FILES_TO_CHECK" ]; then
736+ # Create a more compatible format for tools that need comma-separated values
737+ # First filter the CSV to only include markdown files
738+ if [ -n "$CHANGED_FILES_CSV" ]; then
739+ MD_FILES_CSV=$(echo "$CHANGED_FILES_CSV" | tr ',' '\n' | grep '\.md$' | tr '\n' ',' | sed 's/,$//')
740+ else
741+ MD_FILES_CSV=""
742+ fi
743+
744+ if [ -z "$FILES_TO_CHECK" ] && [ -z "$MD_FILES_CSV" ]; then
745+ echo "No markdown files to check"
746+ echo "status=success" >> $GITHUB_OUTPUT
747+ echo "message=No markdown files to check" >> $GITHUB_OUTPUT
748+ echo "::endgroup::"
749+ exit 0
750+ fi$' | tr '\n' ',' | sed 's/,$//')
751+ else
752+ MD_FILES_CSV=""
753+ fi
754+
755+ if [ -z "$FILES_TO_CHECK" ] && [ -z "$MD_FILES_CSV" ]; then
734756 echo "No markdown files to check"
735757 echo "status=success" >> $GITHUB_OUTPUT
736758 echo "message=No markdown files to check" >> $GITHUB_OUTPUT
@@ -748,17 +770,36 @@ runs:
748770 exit 0
749771 fi
750772
751- # Count files
752- FILE_COUNT=$(echo "$FILES_TO_CHECK" | wc -w | tr -d ' ')
773+ # Count files - from space-separated list or from comma counts
774+ if [ -n "$FILES_TO_CHECK" ]; then
775+ FILE_COUNT=$(echo "$FILES_TO_CHECK" | wc -w | tr -d ' ')
776+ elif [ -n "$MD_FILES_CSV" ]; then
777+ FILE_COUNT=$(echo "$MD_FILES_CSV" | tr ',' '\n' | wc -l | tr -d ' ')
778+ else
779+ FILE_COUNT=0
780+ fi
781+
753782 echo "Checking $FILE_COUNT markdown files with Vale"
754783
755784 # Create temporary directory for results
756785 TEMP_DIR=$(mktemp -d)
757786 trap 'rm -rf "$TEMP_DIR"' EXIT
758787
759- # Run Vale with JSON output for processing
788+ # Run Vale with JSON output for processing - use the format that works for the command line
789+ # First try with space-separated list if available
760790 echo "Running Vale with config .github/docs/vale/.vale.ini"
761- vale --no-exit --output=JSON --config=.github/docs/vale/.vale.ini $FILES_TO_CHECK > "$TEMP_DIR/vale_results.json" 2>/dev/null ||true
791+ if [ -n "$FILES_TO_CHECK" ]; then
792+ echo "Using space-separated file list for Vale"
793+ vale --no-exit --output=JSON --config=.github/docs/vale/.vale.ini $FILES_TO_CHECK > "$TEMP_DIR/vale_results.json" 2>/dev/null ||true
794+ elif [ -n "$MD_FILES_CSV" ]; then
795+ # Convert CSV to space-separated for command line
796+ echo "Using converted CSV file list for Vale"
797+ FILE_LIST=$(echo "$MD_FILES_CSV" | tr ',' ' ')
798+ vale --no-exit --output=JSON --config=.github/docs/vale/.vale.ini $FILE_LIST > "$TEMP_DIR/vale_results.json" 2>/dev/null ||true
799+ else
800+ echo "No files to check with Vale"
801+ echo "[]" > "$TEMP_DIR/vale_results.json"
802+ fi
762803
763804# Process results from JSON output
764805if [ -f "$TEMP_DIR/vale_results.json" ]; then