diff --git a/core/modules/migrate/src/Plugin/migrate/process/Concat.php b/core/modules/migrate/src/Plugin/migrate/process/Concat.php
index c013bdc..5314ac1 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/Concat.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/Concat.php
@@ -8,9 +8,47 @@
 use Drupal\migrate\Row;
 
 /**
- * Concatenates the strings in the current value.
+ * Concatenates the strings in the source.
  *
- * @link https://www.drupal.org/node/2345927 Online handbook documentation for concat process plugin @endlink
+ * The concat process plugin is used to concatenate strings.
+ * An example use case would be imploding a set of strings into a single value.
+ *
+ * Available configuration keys:
+ *   - delimiter: (optional) A delimiter to insert between the strings.
+ *
+ * Examples:
+ *
+ * @code
+ * process:
+ *   new_text_field:
+ *     plugin: concat
+ *     source:
+ *       - foo
+ *       - bar
+ * @endcode
+ *
+ * This will set new_text_field to the concatenation of the 'foo' and 'bar'
+ * source values. For example, if the 'foo' property is "wambooli" and the 'bar'
+ * property is "pastafazoul", new_text_field will be "wamboolipastafazoul".
+ *
+ * You can also specify a delimiter.
+ *
+ * @code
+ * process:
+ *   new_text_field:
+ *     plugin: concat
+ *     source:
+ *       - foo
+ *       - bar
+ *     delimiter: /
+ * @endcode
+ *
+ * This will set new_text_field to the concatenation of the 'foo' source value,
+ * the delimiter and the 'bar' source value. For example, using the values above
+ * and "/" as the delimiter, if the 'foo' property is "wambooli" and the 'bar'
+ * property is "pastafazoul", new_text_field will be "wambooli/pastafazoul".
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(
  *   id = "concat",
@@ -21,8 +59,6 @@ class Concat extends ProcessPluginBase {
 
   /**
    * {@inheritdoc}
-   *
-   * Concatenates the strings in the current value.
    */
   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (is_array($value)) {
diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
index 28b6df0..6658eeb 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/SkipOnEmpty.php
@@ -9,9 +9,53 @@
 use Drupal\migrate\MigrateSkipRowException;
 
 /**
- * If the source evaluates to empty, we skip processing or the whole row.
+ * Skips processing the current row when the input value is empty.
  *
- * @link https://www.drupal.org/node/2228793 Online handbook documentation for skip_on_empty process plugin @endlink
+ * The skip_on_empty process plugin checks to see if the current input value
+ * is empty (empty string, NULL, FALSE, 0, '0', or an empty array). If so, the
+ * further processing of the property or the entire row (depending on the chosen
+ * method) is skipped and will not be migrated.
+ *
+ * Available configuration keys:
+ *   - method: (optional) level of skip.
+ *     - row: Skips the entire row when an empty value is encountered. Useful
+ *        when combined with a migration process plugin to check if a related
+ *        item was previously migrated.
+ *     - process: Skips the processing of the property when an empty value is
+ *        encountered.
+ *
+ * Examples:
+ *
+ * @code
+ * process:
+ *   field_type_exists:
+ *   -
+ *     plugin: migration
+ *     migration: d6_field
+ *     source:
+ *       - field_name
+ *   -
+ *     plugin: skip_on_empty
+ *     method: row
+ * @endcode
+ *
+ * If field_name is empty, skips the entire row.
+ *
+ * @code
+ * process:
+ *   parent:
+ *   -
+ *     plugin: skip_on_empty
+ *     method: process
+ *     source: parent
+ *   -
+ *     plugin: migration
+ *     migration: d6_taxonomy_term
+ * @endcode
+ *
+ * If parent is empty, skips parent process.
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(
  *   id = "skip_on_empty"
@@ -20,7 +64,25 @@
 class SkipOnEmpty extends ProcessPluginBase {
 
   /**
-   * {@inheritdoc}
+   * Skips migration process at row level when value is not set and throws a
+   * MigrateSkipRowException with STATUS_IGNORED status.
+   *
+   * @param mixed $value
+   *   The input value.
+   * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable
+   *   The migration in which this process is being executed.
+   * @param \Drupal\migrate\Row $row
+   *   The row from the source to process.
+   * @param string $destination_property
+   *   The destination property currently worked on. This is only used together
+   *   with the $row above.
+   *
+   * @return string
+   *   The sub string of $value.
+   *
+   * @throws \Drupal\migrate\MigrateSkipRowException
+   *   Thrown if source property is not set and row should be skipped, by
+   *    default records with STATUS_IGNORED status in the map.
    */
   public function row($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
@@ -30,7 +92,25 @@ public function row($value, MigrateExecutableInterface $migrate_executable, Row
   }
 
   /**
-   * {@inheritdoc}
+   * Skips migration process at process level when value is not set and throws a
+   * MigrateSkipProcessException.
+   *
+   * @param mixed $value
+   *   The input value.
+   * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable
+   *   The migration in which this process is being executed.
+   * @param \Drupal\migrate\Row $row
+   *   The row from the source to process.
+   * @param string $destination_property
+   *   The destination property currently worked on. This is only used together
+   *     with the $row above.
+   *
+   * @return string
+   *   The sub string of $value.
+   *
+   * @throws \Drupal\migrate\MigrateSkipProcessException
+   *   Thrown if source property is not set and rest of the process should be
+   *    skipped.
    */
   public function process($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     if (!$value) {
