Index: scripts/diviner/diviner.php
===================================================================
--- scripts/diviner/diviner.php
+++ scripts/diviner/diviner.php
@@ -14,9 +14,8 @@
 );
 $args->parseStandardArguments();
 
-$args->parseWorkflows(
-  array(
-    new DivinerGenerateWorkflow(),
-    new DivinerAtomizeWorkflow(),
-    new PhutilHelpArgumentWorkflow(),
-  ));
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('DivinerWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
+$args->parseWorkflows($workflows);
Index: scripts/drydock/drydock_control.php
===================================================================
--- scripts/drydock/drydock_control.php
+++ scripts/drydock/drydock_control.php
@@ -14,12 +14,8 @@
 );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new DrydockManagementLeaseWorkflow(),
-  new DrydockManagementCloseWorkflow(),
-  new DrydockManagementReleaseWorkflow(),
-  new DrydockManagementCreateResourceWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('DrydockManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/fact/manage_facts.php
===================================================================
--- scripts/fact/manage_facts.php
+++ scripts/fact/manage_facts.php
@@ -15,13 +15,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorFactManagementDestroyWorkflow(),
-  new PhabricatorFactManagementAnalyzeWorkflow(),
-  new PhabricatorFactManagementStatusWorkflow(),
-  new PhabricatorFactManagementListWorkflow(),
-  new PhabricatorFactManagementCursorsWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorFactManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/files/manage_files.php
===================================================================
--- scripts/files/manage_files.php
+++ scripts/files/manage_files.php
@@ -14,12 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorFilesManagementEnginesWorkflow(),
-  new PhabricatorFilesManagementMigrateWorkflow(),
-  new PhabricatorFilesManagementRebuildWorkflow(),
-  new PhabricatorFilesManagementPurgeWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorFilesManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/lipsum/manage_lipsum.php
===================================================================
--- scripts/lipsum/manage_lipsum.php
+++ scripts/lipsum/manage_lipsum.php
@@ -14,9 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorLipsumGenerateWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorLipsumManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/mail/manage_mail.php
===================================================================
--- scripts/mail/manage_mail.php
+++ scripts/mail/manage_mail.php
@@ -14,15 +14,9 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhutilHelpArgumentWorkflow(),
-  new PhabricatorMailManagementResendWorkflow(),
-  new PhabricatorMailManagementShowOutboundWorkflow(),
-  new PhabricatorMailManagementShowInboundWorkflow(),
-  new PhabricatorMailManagementSendTestWorkflow(),
-  new PhabricatorMailManagementReceiveTestWorkflow(),
-  new PhabricatorMailManagementListInboundWorkflow(),
-  new PhabricatorMailManagementListOutboundWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorMailManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
+
Index: scripts/repository/manage_repositories.php
===================================================================
--- scripts/repository/manage_repositories.php
+++ scripts/repository/manage_repositories.php
@@ -15,16 +15,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorRepositoryManagementPullWorkflow(),
-  new PhabricatorRepositoryManagementDiscoverWorkflow(),
-  new PhabricatorRepositoryManagementEditWorkflow(),
-  new PhabricatorRepositoryManagementListWorkflow(),
-  new PhabricatorRepositoryManagementDeleteWorkflow(),
-  new PhabricatorRepositoryManagementMarkImportedWorkflow(),
-  new PhabricatorRepositoryManagementLookupUsersWorkflow(),
-  new PhabricatorRepositoryManagementImportingWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorRepositoryManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/search/manage_search.php
===================================================================
--- scripts/search/manage_search.php
+++ scripts/search/manage_search.php
@@ -14,9 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorSearchManagementIndexWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorSearchManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_audit.php
===================================================================
--- scripts/setup/manage_audit.php
+++ scripts/setup/manage_audit.php
@@ -14,9 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorAuditManagementDeleteWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorAuditManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_auth.php
===================================================================
--- scripts/setup/manage_auth.php
+++ scripts/setup/manage_auth.php
@@ -14,11 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorAuthManagementRecoverWorkflow(),
-  new PhabricatorAuthManagementRefreshWorkflow(),
-  new PhabricatorAuthManagementLDAPWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorAuthManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_config.php
===================================================================
--- scripts/setup/manage_config.php
+++ scripts/setup/manage_config.php
@@ -14,12 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorConfigManagementListWorkflow(),
-  new PhabricatorConfigManagementSetWorkflow(),
-  new PhabricatorConfigManagementGetWorkflow(),
-  new PhabricatorConfigManagementDeleteWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorConfigManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_feed.php
===================================================================
--- scripts/setup/manage_feed.php
+++ scripts/setup/manage_feed.php
@@ -14,9 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorFeedManagementRepublishWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorFeedManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_harbormaster.php
===================================================================
--- scripts/setup/manage_harbormaster.php
+++ scripts/setup/manage_harbormaster.php
@@ -18,5 +18,4 @@
   ->setAncestorClass('HarbormasterManagementWorkflow')
   ->loadObjects();
 $workflows[] = new PhutilHelpArgumentWorkflow();
-
 $args->parseWorkflows($workflows);
Index: scripts/setup/manage_policy.php
===================================================================
--- scripts/setup/manage_policy.php
+++ scripts/setup/manage_policy.php
@@ -14,10 +14,8 @@
   );
 $args->parseStandardArguments();
 
-$workflows = array(
-  new PhabricatorPolicyManagementShowWorkflow(),
-  new PhabricatorPolicyManagementUnlockWorkflow(),
-  new PhutilHelpArgumentWorkflow(),
-);
-
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorPolicyManagementWorkflow')
+  ->loadObjects();
+$workflows[] = new PhutilHelpArgumentWorkflow();
 $args->parseWorkflows($workflows);
Index: scripts/sql/manage_storage.php
===================================================================
--- scripts/sql/manage_storage.php
+++ scripts/sql/manage_storage.php
@@ -99,14 +99,9 @@
   exit(1);
 }
 
-$workflows = array(
-  new PhabricatorStorageManagementDatabasesWorkflow(),
-  new PhabricatorStorageManagementDestroyWorkflow(),
-  new PhabricatorStorageManagementDumpWorkflow(),
-  new PhabricatorStorageManagementStatusWorkflow(),
-  new PhabricatorStorageManagementProbeWorkflow(),
-  new PhabricatorStorageManagementUpgradeWorkflow(),
-);
+$workflows = id(new PhutilSymbolLoader())
+  ->setAncestorClass('PhabricatorStorageManagementWorkflow')
+  ->loadObjects();
 
 $patches = PhabricatorSQLPatchList::buildAllPatches();
 
Index: src/__phutil_library_map__.php
===================================================================
--- src/__phutil_library_map__.php
+++ src/__phutil_library_map__.php
@@ -3740,7 +3740,7 @@
     'PhabricatorBuiltinPatchList' => 'PhabricatorSQLPatchList',
     'PhabricatorBusyExample' => 'PhabricatorUIExample',
     'PhabricatorCacheDAO' => 'PhabricatorLiskDAO',
-    'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorSearchManagementWorkflow',
+    'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorCacheManagementWorkflow',
     'PhabricatorCacheManagementWorkflow' => 'PhabricatorManagementWorkflow',
     'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController',
     'PhabricatorCalendarController' => 'PhabricatorController',
@@ -4113,13 +4113,13 @@
     'PhabricatorMailImplementationPHPMailerLiteAdapter' => 'PhabricatorMailImplementationAdapter',
     'PhabricatorMailImplementationSendGridAdapter' => 'PhabricatorMailImplementationAdapter',
     'PhabricatorMailImplementationTestAdapter' => 'PhabricatorMailImplementationAdapter',
-    'PhabricatorMailManagementListInboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementListOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementReceiveTestWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementResendWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
-    'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
+    'PhabricatorMailManagementListInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementListOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementReceiveTestWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementResendWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorMailManagementWorkflow',
+    'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorMailManagementWorkflow',
     'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
     'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
     'PhabricatorMailingListPHIDTypeList' => 'PhabricatorPHIDType',
Index: src/applications/cache/management/PhabricatorCacheManagementPurgeWorkflow.php
===================================================================
--- src/applications/cache/management/PhabricatorCacheManagementPurgeWorkflow.php
+++ src/applications/cache/management/PhabricatorCacheManagementPurgeWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorCacheManagementPurgeWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorCacheManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementListInboundWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementListInboundWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementListInboundWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementListInboundWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementListOutboundWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementListOutboundWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementListOutboundWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementListOutboundWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementReceiveTestWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementReceiveTestWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementReceiveTestWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementReceiveTestWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementResendWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementResendWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementResendWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementResendWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementSendTestWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementShowInboundWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementShowInboundWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this
Index: src/applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php
===================================================================
--- src/applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php
+++ src/applications/metamta/management/PhabricatorMailManagementShowOutboundWorkflow.php
@@ -1,7 +1,7 @@
 <?php
 
 final class PhabricatorMailManagementShowOutboundWorkflow
-  extends PhabricatorSearchManagementWorkflow {
+  extends PhabricatorMailManagementWorkflow {
 
   protected function didConstruct() {
     $this