diff --git a/src/applications/almanac/editor/AlmanacBindingEditEngine.php b/src/applications/almanac/editor/AlmanacBindingEditEngine.php
--- a/src/applications/almanac/editor/AlmanacBindingEditEngine.php
+++ b/src/applications/almanac/editor/AlmanacBindingEditEngine.php
@@ -136,7 +136,7 @@
       id(new PhabricatorTextEditField())
         ->setKey('service')
         ->setLabel(pht('Service'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           AlmanacBindingServiceTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('Service to create a binding for.'))
@@ -146,7 +146,7 @@
       id(new PhabricatorTextEditField())
         ->setKey('interface')
         ->setLabel(pht('Interface'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           AlmanacBindingInterfaceTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('Interface to bind the service to.'))
@@ -156,7 +156,7 @@
       id(new PhabricatorBoolEditField())
         ->setKey('disabled')
         ->setLabel(pht('Disabled'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           AlmanacBindingDisableTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('Disable or enable the binding.'))
diff --git a/src/applications/almanac/editor/AlmanacInterfaceEditEngine.php b/src/applications/almanac/editor/AlmanacInterfaceEditEngine.php
--- a/src/applications/almanac/editor/AlmanacInterfaceEditEngine.php
+++ b/src/applications/almanac/editor/AlmanacInterfaceEditEngine.php
@@ -150,7 +150,7 @@
       id(new PhabricatorTextEditField())
         ->setKey('device')
         ->setLabel(pht('Device'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           AlmanacInterfaceDeviceTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('When creating an interface, set the device.'))
diff --git a/src/applications/almanac/editor/AlmanacServiceEditEngine.php b/src/applications/almanac/editor/AlmanacServiceEditEngine.php
--- a/src/applications/almanac/editor/AlmanacServiceEditEngine.php
+++ b/src/applications/almanac/editor/AlmanacServiceEditEngine.php
@@ -136,7 +136,7 @@
       id(new PhabricatorTextEditField())
         ->setKey('type')
         ->setLabel(pht('Type'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           AlmanacServiceTypeTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('When creating a service, set the type.'))
diff --git a/src/applications/almanac/engineextension/AlmanacPropertiesEditEngineExtension.php b/src/applications/almanac/engineextension/AlmanacPropertiesEditEngineExtension.php
--- a/src/applications/almanac/engineextension/AlmanacPropertiesEditEngineExtension.php
+++ b/src/applications/almanac/engineextension/AlmanacPropertiesEditEngineExtension.php
@@ -30,14 +30,14 @@
         ->setConduitDescription(
           pht('Pass a map of values to set one or more properties.'))
         ->setConduitTypeDescription(pht('Map of property names to values.'))
-        ->setIsConduitOnly(true),
+        ->setIsFormField(false),
       id(new AlmanacDeletePropertyEditField())
         ->setKey('property.delete')
         ->setTransactionType($object->getAlmanacPropertyDeleteTransactionType())
         ->setConduitDescription(
           pht('Pass a list of property names to delete properties.'))
         ->setConduitTypeDescription(pht('List of property names.'))
-        ->setIsConduitOnly(true),
+        ->setIsFormField(false),
     );
   }
 
diff --git a/src/applications/badges/editor/PhabricatorBadgesEditEngine.php b/src/applications/badges/editor/PhabricatorBadgesEditEngine.php
--- a/src/applications/badges/editor/PhabricatorBadgesEditEngine.php
+++ b/src/applications/badges/editor/PhabricatorBadgesEditEngine.php
@@ -126,7 +126,7 @@
         ->setValue($object->getDescription()),
       id(new PhabricatorUsersEditField())
         ->setKey('award')
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setDescription(pht('New badge award recipients.'))
         ->setConduitTypeDescription(pht('New badge award recipients.'))
         ->setTransactionType(
@@ -134,7 +134,7 @@
         ->setLabel(pht('Award Recipients')),
       id(new PhabricatorUsersEditField())
         ->setKey('revoke')
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setDescription(pht('Revoke badge award recipients.'))
         ->setConduitTypeDescription(pht('Revoke badge award recipients.'))
         ->setTransactionType(
diff --git a/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php b/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
--- a/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
+++ b/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
@@ -148,7 +148,7 @@
         ->setDescription(pht('Cancel the event.'))
         ->setTransactionType(
           PhabricatorCalendarEventCancelTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Cancel or restore the event.'))
         ->setConduitTypeDescription(pht('True to cancel the event.'))
         ->setValue($object->getIsCancelled()),
@@ -161,7 +161,7 @@
         ->setDescription(pht('Host of the event.'))
         ->setTransactionType(
           PhabricatorCalendarEventHostTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly($this->getIsCreate())
+        ->setIsFormField(!$this->getIsCreate())
         ->setConduitDescription(pht('Change the host of the event.'))
         ->setConduitTypeDescription(pht('New event host.'))
         ->setSingleValue($object->getHostPHID()),
diff --git a/src/applications/calendar/editor/PhabricatorCalendarExportEditEngine.php b/src/applications/calendar/editor/PhabricatorCalendarExportEditEngine.php
--- a/src/applications/calendar/editor/PhabricatorCalendarExportEditEngine.php
+++ b/src/applications/calendar/editor/PhabricatorCalendarExportEditEngine.php
@@ -99,7 +99,7 @@
         ->setDescription(pht('Disable the export.'))
         ->setTransactionType(
           PhabricatorCalendarExportDisableTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Disable or restore the export.'))
         ->setConduitTypeDescription(pht('True to cancel the export.'))
         ->setValue($object->getIsDisabled()),
diff --git a/src/applications/calendar/editor/PhabricatorCalendarImportEditEngine.php b/src/applications/calendar/editor/PhabricatorCalendarImportEditEngine.php
--- a/src/applications/calendar/editor/PhabricatorCalendarImportEditEngine.php
+++ b/src/applications/calendar/editor/PhabricatorCalendarImportEditEngine.php
@@ -101,7 +101,7 @@
         ->setDescription(pht('Disable the import.'))
         ->setTransactionType(
           PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Disable or restore the import.'))
         ->setConduitTypeDescription(pht('True to cancel the import.'))
         ->setValue($object->getIsDisabled()),
@@ -111,7 +111,7 @@
         ->setDescription(pht('Delete all events from this source.'))
         ->setTransactionType(
           PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Disable or restore the import.'))
         ->setConduitTypeDescription(pht('True to delete imported events.'))
         ->setValue(false),
@@ -121,7 +121,7 @@
         ->setDescription(pht('Reload events imported from this source.'))
         ->setTransactionType(
           PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Disable or restore the import.'))
         ->setConduitTypeDescription(pht('True to reload the import.'))
         ->setValue(false),
diff --git a/src/applications/conpherence/editor/ConpherenceEditEngine.php b/src/applications/conpherence/editor/ConpherenceEditEngine.php
--- a/src/applications/conpherence/editor/ConpherenceEditEngine.php
+++ b/src/applications/conpherence/editor/ConpherenceEditEngine.php
@@ -76,8 +76,8 @@
       $initial_phids = $participant_phids;
     }
 
-    // Only show participants on create or conduit, not edit
-    $conduit_only = !$this->getIsCreate();
+    // Only show participants on create or conduit, not edit.
+    $show_participants = (bool)$this->getIsCreate();
 
     return array(
       id(new PhabricatorTextEditField())
@@ -103,7 +103,7 @@
         ->setKey('participants')
         ->setValue($participant_phids)
         ->setInitialValue($initial_phids)
-        ->setIsConduitOnly($conduit_only)
+        ->setIsFormField($show_participants)
         ->setAliases(array('users', 'members', 'participants', 'userPHID'))
         ->setDescription(pht('Room participants.'))
         ->setUseEdgeTransactions(true)
diff --git a/src/applications/differential/editor/DifferentialRevisionEditEngine.php b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
--- a/src/applications/differential/editor/DifferentialRevisionEditEngine.php
+++ b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
@@ -138,7 +138,7 @@
         DifferentialRevisionUpdateTransaction::TRANSACTIONTYPE)
       ->setHandleParameterType(new AphrontPHIDListHTTPParameterType())
       ->setSingleValue($diff_phid)
-      ->setIsConduitOnly(!$diff)
+      ->setIsFormField((bool)$diff)
       ->setIsReorderable(false)
       ->setIsDefaultable(false)
       ->setIsInvisible(true)
@@ -225,7 +225,7 @@
     $fields[] = id(new PhabricatorHandlesEditField())
       ->setKey('tasks')
       ->setUseEdgeTransactions(true)
-      ->setIsConduitOnly(true)
+      ->setIsFormField(false)
       ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
       ->setMetadataValue(
         'edge:type',
@@ -245,7 +245,7 @@
     $fields[] = id(new PhabricatorBoolEditField())
       ->setKey('draft')
       ->setLabel(pht('Hold as Draft'))
-      ->setIsConduitOnly(true)
+      ->setIsFormField(false)
       ->setOptions(
         pht('Autosubmit Once Builds Finish'),
         pht('Hold as Draft'))
diff --git a/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php b/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
--- a/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
+++ b/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
@@ -244,7 +244,7 @@
         ->setKey('vcs')
         ->setLabel(pht('Version Control System'))
         ->setTransactionType(PhabricatorRepositoryTransaction::TYPE_VCS)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setIsCopyable(true)
         ->setOptions(PhabricatorRepositoryType::getAllRepositoryTypes())
         ->setDescription(pht('Underlying repository version control system.'))
@@ -300,7 +300,7 @@
         ->setKey('allowDangerousChanges')
         ->setLabel(pht('Allow Dangerous Changes'))
         ->setIsCopyable(true)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setOptions(
           pht('Prevent Dangerous Changes'),
           pht('Allow Dangerous Changes'))
@@ -313,7 +313,7 @@
         ->setKey('allowEnormousChanges')
         ->setLabel(pht('Allow Enormous Changes'))
         ->setIsCopyable(true)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setOptions(
           pht('Prevent Enormous Changes'),
           pht('Allow Enormous Changes'))
@@ -326,7 +326,7 @@
         ->setKey('status')
         ->setLabel(pht('Status'))
         ->setTransactionType(PhabricatorRepositoryTransaction::TYPE_ACTIVATE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setOptions(PhabricatorRepository::getStatusNameMap())
         ->setDescription(pht('Active or inactive status.'))
         ->setConduitDescription(pht('Active or deactivate the repository.'))
diff --git a/src/applications/diffusion/editor/DiffusionURIEditEngine.php b/src/applications/diffusion/editor/DiffusionURIEditEngine.php
--- a/src/applications/diffusion/editor/DiffusionURIEditEngine.php
+++ b/src/applications/diffusion/editor/DiffusionURIEditEngine.php
@@ -150,7 +150,7 @@
         ->setAliases(array('repositoryPHID'))
         ->setLabel(pht('Repository'))
         ->setIsRequired(true)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           PhabricatorRepositoryURITransaction::TYPE_REPOSITORY)
         ->setDescription(pht('The repository this URI is associated with.'))
@@ -195,7 +195,7 @@
         ->setKey('credential')
         ->setAliases(array('credentialPHID'))
         ->setLabel(pht('Credential'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           PhabricatorRepositoryURITransaction::TYPE_CREDENTIAL)
         ->setDescription(
@@ -206,7 +206,7 @@
       id(new PhabricatorBoolEditField())
         ->setKey('disable')
         ->setLabel(pht('Disabled'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(PhabricatorRepositoryURITransaction::TYPE_DISABLE)
         ->setDescription(pht('Active status of the URI.'))
         ->setConduitDescription(pht('Disable or activate the URI.'))
diff --git a/src/applications/drydock/editor/DrydockBlueprintEditEngine.php b/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
--- a/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
+++ b/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
@@ -153,7 +153,7 @@
       id(new PhabricatorTextEditField())
         ->setKey('type')
         ->setLabel(pht('Type'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           DrydockBlueprintTypeTransaction::TRANSACTIONTYPE)
         ->setDescription(pht('When creating a blueprint, set the type.'))
diff --git a/src/applications/maniphest/editor/ManiphestEditEngine.php b/src/applications/maniphest/editor/ManiphestEditEngine.php
--- a/src/applications/maniphest/editor/ManiphestEditEngine.php
+++ b/src/applications/maniphest/editor/ManiphestEditEngine.php
@@ -169,9 +169,7 @@
         ->setConduitDocumentation($column_documentation)
         ->setAliases(array('columnPHID', 'columns', 'columnPHIDs'))
         ->setTransactionType(PhabricatorTransactions::TYPE_COLUMNS)
-        ->setIsReorderable(false)
-        ->setIsDefaultable(false)
-        ->setIsLockable(false)
+        ->setIsFormField(false)
         ->setCommentActionLabel(pht('Move on Workboard'))
         ->setCommentActionOrder(2000)
         ->setColumnMap($column_map),
@@ -291,7 +289,7 @@
       ->setConduitDescription(pht('Change the parents of this task.'))
       ->setConduitTypeDescription(pht('List of parent task PHIDs.'))
       ->setUseEdgeTransactions(true)
-      ->setIsConduitOnly(true)
+      ->setIsFormField(false)
       ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
       ->setMetadataValue('edge:type', $parent_type)
       ->setValue($parent_phids);
@@ -303,7 +301,7 @@
       ->setConduitDescription(pht('Change the subtasks of this task.'))
       ->setConduitTypeDescription(pht('List of subtask PHIDs.'))
       ->setUseEdgeTransactions(true)
-      ->setIsConduitOnly(true)
+      ->setIsFormField(false)
       ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
       ->setMetadataValue('edge:type', $subtask_type)
       ->setValue($parent_phids);
diff --git a/src/applications/owners/editor/PhabricatorOwnersPackageEditEngine.php b/src/applications/owners/editor/PhabricatorOwnersPackageEditEngine.php
--- a/src/applications/owners/editor/PhabricatorOwnersPackageEditEngine.php
+++ b/src/applications/owners/editor/PhabricatorOwnersPackageEditEngine.php
@@ -159,7 +159,7 @@
         ->setDescription(pht('Archive or enable the package.'))
         ->setTransactionType(
           PhabricatorOwnersPackageStatusTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setValue($object->getStatus())
         ->setOptions($object->getStatusNameMap()),
       id(new PhabricatorCheckboxesEditField())
@@ -176,7 +176,7 @@
       id(new PhabricatorConduitEditField())
         ->setKey('paths.set')
         ->setLabel(pht('Paths'))
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setTransactionType(
           PhabricatorOwnersPackagePathsTransaction::TRANSACTIONTYPE)
         ->setConduitDescription(
diff --git a/src/applications/paste/editor/PhabricatorPasteEditEngine.php b/src/applications/paste/editor/PhabricatorPasteEditEngine.php
--- a/src/applications/paste/editor/PhabricatorPasteEditEngine.php
+++ b/src/applications/paste/editor/PhabricatorPasteEditEngine.php
@@ -104,7 +104,7 @@
         ->setLabel(pht('Status'))
         ->setTransactionType(
           PhabricatorPasteStatusTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setOptions(PhabricatorPaste::getStatusNameMap())
         ->setDescription(pht('Active or archived status.'))
         ->setConduitDescription(pht('Active or archive the paste.'))
diff --git a/src/applications/people/editor/PhabricatorUserEditEngine.php b/src/applications/people/editor/PhabricatorUserEditEngine.php
--- a/src/applications/people/editor/PhabricatorUserEditEngine.php
+++ b/src/applications/people/editor/PhabricatorUserEditEngine.php
@@ -71,7 +71,7 @@
         ->setLabel(pht('Disabled'))
         ->setDescription(pht('Disable the user.'))
         ->setTransactionType(PhabricatorUserDisableTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setConduitDescription(pht('Disable or enable the user.'))
         ->setConduitTypeDescription(pht('True to disable the user.'))
         ->setValue($object->getIsDisabled()),
diff --git a/src/applications/phame/editor/PhameBlogEditEngine.php b/src/applications/phame/editor/PhameBlogEditEngine.php
--- a/src/applications/phame/editor/PhameBlogEditEngine.php
+++ b/src/applications/phame/editor/PhameBlogEditEngine.php
@@ -126,7 +126,7 @@
         ->setKey('status')
         ->setLabel(pht('Status'))
         ->setTransactionType(PhameBlogStatusTransaction::TRANSACTIONTYPE)
-        ->setIsConduitOnly(true)
+        ->setIsFormField(false)
         ->setOptions(PhameBlog::getStatusNameMap())
         ->setDescription(pht('Active or archived status.'))
         ->setConduitDescription(pht('Active or archive the blog.'))
diff --git a/src/applications/project/engine/PhabricatorProjectEditEngine.php b/src/applications/project/engine/PhabricatorProjectEditEngine.php
--- a/src/applications/project/engine/PhabricatorProjectEditEngine.php
+++ b/src/applications/project/engine/PhabricatorProjectEditEngine.php
@@ -287,13 +287,13 @@
 
       // Show this on the web UI when creating a project, but not when editing
       // one. It is always available via Conduit.
-      $conduit_only = !$this->getIsCreate();
+      $show_field = (bool)$this->getIsCreate();
 
       $members_field = id(new PhabricatorUsersEditField())
         ->setKey('members')
         ->setAliases(array('memberPHIDs'))
         ->setLabel(pht('Initial Members'))
-        ->setIsConduitOnly($conduit_only)
+        ->setIsFormField($show_field)
         ->setUseEdgeTransactions(true)
         ->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
         ->setMetadataValue(
diff --git a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationDefaultsController.php b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationDefaultsController.php
--- a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationDefaultsController.php
+++ b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationDefaultsController.php
@@ -30,6 +30,11 @@
     $fields = $engine->getFieldsForConfig($config);
 
     foreach ($fields as $key => $field) {
+      if (!$field->getIsFormField()) {
+        unset($fields[$key]);
+        continue;
+      }
+
       if (!$field->getIsDefaultable()) {
         unset($fields[$key]);
         continue;
diff --git a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationLockController.php b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationLockController.php
--- a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationLockController.php
+++ b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationLockController.php
@@ -79,6 +79,10 @@
     );
 
     foreach ($fields as $field) {
+      if (!$field->getIsFormField()) {
+        continue;
+      }
+
       if (!$field->getIsLockable()) {
         continue;
       }
diff --git a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationReorderController.php b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationReorderController.php
--- a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationReorderController.php
+++ b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationReorderController.php
@@ -62,6 +62,10 @@
 
     $key_order = array();
     foreach ($fields as $field) {
+      if (!$field->getIsFormField()) {
+        continue;
+      }
+
       if (!$field->getIsReorderable()) {
         continue;
       }
diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php
--- a/src/applications/transactions/editengine/PhabricatorEditEngine.php
+++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php
@@ -1289,6 +1289,10 @@
     }
 
     foreach ($fields as $field) {
+      if (!$field->getIsFormField()) {
+        continue;
+      }
+
       $field->appendToForm($form);
     }
 
diff --git a/src/applications/transactions/editfield/PhabricatorEditField.php b/src/applications/transactions/editfield/PhabricatorEditField.php
--- a/src/applications/transactions/editfield/PhabricatorEditField.php
+++ b/src/applications/transactions/editfield/PhabricatorEditField.php
@@ -44,7 +44,7 @@
   private $isDefaultable = true;
   private $isLockable = true;
   private $isCopyable = false;
-  private $isConduitOnly = false;
+  private $isFormField = true;
 
   private $conduitEditTypes;
   private $bulkEditTypes;
@@ -139,13 +139,13 @@
     return $this->isReorderable;
   }
 
-  public function setIsConduitOnly($is_conduit_only) {
-    $this->isConduitOnly = $is_conduit_only;
+  public function setIsFormField($is_form_field) {
+    $this->isFormField = $is_form_field;
     return $this;
   }
 
-  public function getIsConduitOnly() {
-    return $this->isConduitOnly;
+  public function getIsFormField() {
+    return $this->isFormField;
   }
 
   public function setDescription($description) {
@@ -336,7 +336,7 @@
   }
 
   protected function buildControl() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return null;
     }
 
@@ -637,7 +637,7 @@
   }
 
   final public function getHTTPParameterType() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return null;
     }
 
@@ -840,7 +840,7 @@
   }
 
   public function shouldGenerateTransactionsFromSubmit() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return false;
     }
 
@@ -853,7 +853,7 @@
   }
 
   public function shouldReadValueFromRequest() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return false;
     }
 
@@ -869,7 +869,7 @@
   }
 
   public function shouldReadValueFromSubmit() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return false;
     }
 
@@ -885,7 +885,7 @@
   }
 
   public function shouldGenerateTransactionsFromComment() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getCommentActionLabel()) {
       return false;
     }
 
diff --git a/src/applications/transactions/engineextension/PhabricatorCommentEditEngineExtension.php b/src/applications/transactions/engineextension/PhabricatorCommentEditEngineExtension.php
--- a/src/applications/transactions/engineextension/PhabricatorCommentEditEngineExtension.php
+++ b/src/applications/transactions/engineextension/PhabricatorCommentEditEngineExtension.php
@@ -57,10 +57,7 @@
       ->setBulkEditLabel(pht('Add comment'))
       ->setBulkEditGroupKey('comments')
       ->setAliases(array('comments'))
-      ->setIsHidden(true)
-      ->setIsReorderable(false)
-      ->setIsDefaultable(false)
-      ->setIsLockable(false)
+      ->setIsFormField(false)
       ->setCanApplyWithoutEditCapability($is_interact)
       ->setTransactionType($comment_type)
       ->setConduitDescription(pht('Make comments.'))
diff --git a/src/applications/transactions/engineextension/PhabricatorSubtypeEditEngineExtension.php b/src/applications/transactions/engineextension/PhabricatorSubtypeEditEngineExtension.php
--- a/src/applications/transactions/engineextension/PhabricatorSubtypeEditEngineExtension.php
+++ b/src/applications/transactions/engineextension/PhabricatorSubtypeEditEngineExtension.php
@@ -36,20 +36,20 @@
     $subtype_field = id(new PhabricatorSelectEditField())
       ->setKey(self::EDITKEY)
       ->setLabel(pht('Subtype'))
-      ->setIsConduitOnly(true)
-      ->setIsHidden(true)
-      ->setIsReorderable(false)
-      ->setIsDefaultable(false)
-      ->setIsLockable(false)
+      ->setIsFormField(false)
       ->setTransactionType($subtype_type)
       ->setConduitDescription(pht('Change the object subtype.'))
       ->setConduitTypeDescription(pht('New object subtype key.'))
       ->setValue($object->getEditEngineSubtype())
       ->setOptions($options);
 
-    // If subtypes are configured, enable changing them from the bulk editor.
+    // If subtypes are configured, enable changing them from the bulk editor
+    // and comment action stack.
     if (count($map) > 1) {
-      $subtype_field->setBulkEditLabel(pht('Change subtype to'));
+      $subtype_field
+        ->setBulkEditLabel(pht('Change subtype to'))
+        ->setCommentActionLabel(pht('Change Subtype'))
+        ->setCommentActionOrder(3000);
     }
 
     return array(
diff --git a/src/applications/transactions/storage/PhabricatorEditEngineConfiguration.php b/src/applications/transactions/storage/PhabricatorEditEngineConfiguration.php
--- a/src/applications/transactions/storage/PhabricatorEditEngineConfiguration.php
+++ b/src/applications/transactions/storage/PhabricatorEditEngineConfiguration.php
@@ -139,9 +139,14 @@
 
     $values = $this->getProperty('defaults', array());
     foreach ($fields as $key => $field) {
+      if (!$field->getIsFormField()) {
+        continue;
+      }
+
       if (!$field->getIsDefaultable()) {
         continue;
       }
+
       if ($is_new) {
         if (array_key_exists($key, $values)) {
           $field->readDefaultValueFromConfiguration($values[$key]);
diff --git a/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php b/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
--- a/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
+++ b/src/infrastructure/customfield/editor/PhabricatorCustomFieldEditField.php
@@ -59,7 +59,7 @@
   }
 
   protected function buildControl() {
-    if ($this->getIsConduitOnly()) {
+    if (!$this->getIsFormField()) {
       return null;
     }
 
diff --git a/src/infrastructure/customfield/field/PhabricatorCustomField.php b/src/infrastructure/customfield/field/PhabricatorCustomField.php
--- a/src/infrastructure/customfield/field/PhabricatorCustomField.php
+++ b/src/infrastructure/customfield/field/PhabricatorCustomField.php
@@ -1145,10 +1145,10 @@
       return $this->proxy->newStandardEditField();
     }
 
-    if (!$this->shouldAppearInEditView()) {
-      $conduit_only = true;
+    if ($this->shouldAppearInEditView()) {
+      $form_field = true;
     } else {
-      $conduit_only = false;
+      $form_field = false;
     }
 
     $bulk_label = $this->getBulkEditLabel();
@@ -1160,7 +1160,7 @@
       ->setBulkEditLabel($bulk_label)
       ->setDescription($this->getFieldDescription())
       ->setTransactionType($this->getApplicationTransactionType())
-      ->setIsConduitOnly($conduit_only)
+      ->setIsFormField($form_field)
       ->setValue($this->getNewValueForApplicationTransactions());
   }