diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -4490,6 +4490,7 @@
     'PhabricatorProjectTransactionType' => 'applications/project/xaction/PhabricatorProjectTransactionType.php',
     'PhabricatorProjectTrigger' => 'applications/project/storage/PhabricatorProjectTrigger.php',
     'PhabricatorProjectTriggerAddProjectsRule' => 'applications/project/trigger/PhabricatorProjectTriggerAddProjectsRule.php',
+    'PhabricatorProjectTriggerAddSubscribersRule' => 'applications/project/trigger/PhabricatorProjectTriggerAddSubscribersRule.php',
     'PhabricatorProjectTriggerController' => 'applications/project/controller/trigger/PhabricatorProjectTriggerController.php',
     'PhabricatorProjectTriggerCorruptionException' => 'applications/project/exception/PhabricatorProjectTriggerCorruptionException.php',
     'PhabricatorProjectTriggerEditController' => 'applications/project/controller/trigger/PhabricatorProjectTriggerEditController.php',
@@ -4504,6 +4505,7 @@
     'PhabricatorProjectTriggerPlaySoundRule' => 'applications/project/trigger/PhabricatorProjectTriggerPlaySoundRule.php',
     'PhabricatorProjectTriggerQuery' => 'applications/project/query/PhabricatorProjectTriggerQuery.php',
     'PhabricatorProjectTriggerRemoveProjectsRule' => 'applications/project/trigger/PhabricatorProjectTriggerRemoveProjectsRule.php',
+    'PhabricatorProjectTriggerRemoveSubscribersRule' => 'applications/project/trigger/PhabricatorProjectTriggerRemoveSubscribersRule.php',
     'PhabricatorProjectTriggerRule' => 'applications/project/trigger/PhabricatorProjectTriggerRule.php',
     'PhabricatorProjectTriggerRuleRecord' => 'applications/project/trigger/PhabricatorProjectTriggerRuleRecord.php',
     'PhabricatorProjectTriggerRulesetTransaction' => 'applications/project/xaction/trigger/PhabricatorProjectTriggerRulesetTransaction.php',
@@ -11124,6 +11126,7 @@
       'PhabricatorDestructibleInterface',
     ),
     'PhabricatorProjectTriggerAddProjectsRule' => 'PhabricatorProjectTriggerRule',
+    'PhabricatorProjectTriggerAddSubscribersRule' => 'PhabricatorProjectTriggerRule',
     'PhabricatorProjectTriggerController' => 'PhabricatorProjectController',
     'PhabricatorProjectTriggerCorruptionException' => 'Exception',
     'PhabricatorProjectTriggerEditController' => 'PhabricatorProjectTriggerController',
@@ -11138,6 +11141,7 @@
     'PhabricatorProjectTriggerPlaySoundRule' => 'PhabricatorProjectTriggerRule',
     'PhabricatorProjectTriggerQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
     'PhabricatorProjectTriggerRemoveProjectsRule' => 'PhabricatorProjectTriggerRule',
+    'PhabricatorProjectTriggerRemoveSubscribersRule' => 'PhabricatorProjectTriggerRule',
     'PhabricatorProjectTriggerRule' => 'Phobject',
     'PhabricatorProjectTriggerRuleRecord' => 'Phobject',
     'PhabricatorProjectTriggerRulesetTransaction' => 'PhabricatorProjectTriggerTransactionType',
diff --git a/src/applications/project/trigger/PhabricatorProjectTriggerAddSubscribersRule.php b/src/applications/project/trigger/PhabricatorProjectTriggerAddSubscribersRule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/trigger/PhabricatorProjectTriggerAddSubscribersRule.php
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * Trigger Rule that Adds Subscribers
+ *
+ * This may be useful to automatically engage some
+ * Users or Project Tags on certain Workboard areas.
+ *
+ * This class was adapted from these classes:
+ *  - PhabricatorProjectTriggerAddProjectsRule
+ *  - PhabricatorProjectTriggerManiphestOwnerRule
+ *
+ * https://we.phorge.it/T15162
+ */
+final class PhabricatorProjectTriggerAddSubscribersRule
+  extends PhabricatorProjectTriggerRule {
+
+  const TRIGGERTYPE = 'task.subscriber.add';
+
+  public function getSelectControlName() {
+    return pht('Add subscribers');
+  }
+
+  protected function getValueForEditorField() {
+    return $this->getDatasource()->getWireTokens($this->getValue());
+  }
+
+  protected function assertValidRuleRecordFormat($value) {
+    if (!is_array($value)) {
+      throw new Exception(
+        pht(
+          'Add subscribers rule value should be a list, but is not '.
+          '(value is "%s").',
+          phutil_describe_type($value)));
+    }
+  }
+
+  protected function assertValidRuleRecordValue($value) {
+    if (!$value) {
+      throw new Exception(
+        pht(
+          'You must select at least one user or project tag to add.'));
+    }
+  }
+
+  protected function newDropTransactions($object, $value) {
+    $subscriber_edge_type = PhabricatorObjectHasSubscriberEdgeType::EDGECONST;
+
+    $xaction = $object->getApplicationTransactionTemplate()
+      ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
+      ->setMetadataValue('edge:type', $subscriber_edge_type)
+      ->setNewValue(
+        array(
+          '+' => array_fuse($value),
+        ));
+
+    return array($xaction);
+  }
+
+  protected function newDropEffects($value) {
+    return array(
+      $this->newEffect()
+        ->setIcon('fa-briefcase')
+        ->setContent($this->getRuleViewDescription($value)),
+    );
+  }
+
+  protected function getDefaultValue() {
+    return null;
+  }
+
+  protected function getPHUIXControlType() {
+    return 'tokenizer';
+  }
+
+  private function getDatasource() {
+    $datasource = new PhabricatorProjectOrUserDatasource();
+
+    if ($this->getViewer()) {
+      $datasource->setViewer($this->getViewer());
+    }
+
+    return $datasource;
+  }
+
+  protected function getPHUIXControlSpecification() {
+    $template = id(new AphrontTokenizerTemplateView())
+      ->setViewer($this->getViewer());
+
+    $template_markup = $template->render();
+    $datasource = $this->getDatasource();
+
+    return array(
+      'markup' => (string)hsprintf('%s', $template_markup),
+      'config' => array(
+        'src' => $datasource->getDatasourceURI(),
+        'browseURI' => $datasource->getBrowseURI(),
+        'placeholder' => $datasource->getPlaceholderText(),
+        'limit' => $datasource->getLimit(),
+      ),
+      'value' => null,
+    );
+  }
+
+  public function getRuleViewLabel() {
+    return pht('Add subscribers');
+  }
+
+  public function getRuleViewDescription($value) {
+    return pht(
+      'Add subscribers: %s.',
+      phutil_tag(
+        'strong',
+        array(),
+        $this->getViewer()
+          ->renderHandleList($value)
+          ->setAsInline(true)
+          ->render()));
+  }
+
+  public function getRuleViewIcon($value) {
+    return id(new PHUIIconView())
+      ->setIcon('fa-users', 'green');
+  }
+
+
+}
diff --git a/src/applications/project/trigger/PhabricatorProjectTriggerRemoveSubscribersRule.php b/src/applications/project/trigger/PhabricatorProjectTriggerRemoveSubscribersRule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/trigger/PhabricatorProjectTriggerRemoveSubscribersRule.php
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * Trigger Rule that Removes Subscribers
+ *
+ * This may be useful to have a column that simplify
+ * Task handovers. You can remove both Users or Project Tags
+ * from the list of Task Subscribers.
+ *
+ * This class was adapted from these classes:
+ *  - PhabricatorProjectTriggerRemoveProjectsRule
+ *  - PhabricatorProjectTriggerManiphestOwnerRule
+ *
+ * https://we.phorge.it/T15162
+ */
+final class PhabricatorProjectTriggerRemoveSubscribersRule
+  extends PhabricatorProjectTriggerRule {
+
+  const TRIGGERTYPE = 'task.subscriber.remove';
+
+  public function getSelectControlName() {
+    return pht('Remove subscribers');
+  }
+
+  protected function getValueForEditorField() {
+    return $this->getDatasource()->getWireTokens($this->getValue());
+  }
+
+  protected function assertValidRuleRecordFormat($value) {
+    if (!is_array($value)) {
+      throw new Exception(
+        pht(
+          'Remove subscribers rule value should be a list, but is not '.
+          '(value is "%s").',
+          phutil_describe_type($value)));
+    }
+  }
+
+  protected function assertValidRuleRecordValue($value) {
+    if (!$value) {
+      throw new Exception(
+        pht(
+          'You must select at least one user or project tag to remove.'));
+    }
+  }
+
+  protected function newDropTransactions($object, $value) {
+    $subscriber_edge_type = PhabricatorObjectHasSubscriberEdgeType::EDGECONST;
+
+    $xaction = $object->getApplicationTransactionTemplate()
+      ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
+      ->setMetadataValue('edge:type', $subscriber_edge_type)
+      ->setNewValue(
+        array(
+          '-' => array_fuse($value),
+        ));
+
+    return array($xaction);
+  }
+
+  protected function newDropEffects($value) {
+    return array(
+      $this->newEffect()
+        ->setIcon('fa-briefcase')
+        ->setContent($this->getRuleViewDescription($value)),
+    );
+  }
+
+  protected function getDefaultValue() {
+    return null;
+  }
+
+  protected function getPHUIXControlType() {
+    return 'tokenizer';
+  }
+
+  private function getDatasource() {
+    $datasource = new PhabricatorProjectOrUserDatasource();
+
+    if ($this->getViewer()) {
+      $datasource->setViewer($this->getViewer());
+    }
+
+    return $datasource;
+  }
+
+  protected function getPHUIXControlSpecification() {
+    $template = id(new AphrontTokenizerTemplateView())
+      ->setViewer($this->getViewer());
+
+    $template_markup = $template->render();
+    $datasource = $this->getDatasource();
+
+    return array(
+      'markup' => (string)hsprintf('%s', $template_markup),
+      'config' => array(
+        'src' => $datasource->getDatasourceURI(),
+        'browseURI' => $datasource->getBrowseURI(),
+        'placeholder' => $datasource->getPlaceholderText(),
+        'limit' => $datasource->getLimit(),
+      ),
+      'value' => null,
+    );
+  }
+
+  public function getRuleViewLabel() {
+    return pht('Remove subscribers');
+  }
+
+  public function getRuleViewDescription($value) {
+    return pht(
+      'Remove subscribers: %s.',
+      phutil_tag(
+        'strong',
+        array(),
+        $this->getViewer()
+          ->renderHandleList($value)
+          ->setAsInline(true)
+          ->render()));
+  }
+
+  public function getRuleViewIcon($value) {
+    return id(new PHUIIconView())
+      ->setIcon('fa-users', 'red');
+  }
+
+}