diff --git a/.github/workflows/dev_pr/title_check.js b/.github/workflows/dev_pr/title_check.js
index 2a8d654..c1ebd9d 100644
--- a/.github/workflows/dev_pr/title_check.js
+++ b/.github/workflows/dev_pr/title_check.js
@@ -21,6 +21,9 @@
   if (!title) {
     return false;
   }
+  if (title.startsWith("MINOR: ")) {
+    return true;
+  }
   return /^(WIP:?\s*)?(ARROW|PARQUET)-\d+/.test(title);
 }
 
diff --git a/.github/workflows/dev_pr/title_check.md b/.github/workflows/dev_pr/title_check.md
index f008f55..f38af6a 100644
--- a/.github/workflows/dev_pr/title_check.md
+++ b/.github/workflows/dev_pr/title_check.md
@@ -19,13 +19,18 @@
 
 Thanks for opening a pull request!
 
-Could you open an issue for this pull request on JIRA?
-https://issues.apache.org/jira/browse/ARROW
+If this is not a [minor PR](https://github.com/apache/arrow/blob/master/.github/CONTRIBUTING.md#Minor-Fixes). Could you open an issue for this pull request on JIRA? https://issues.apache.org/jira/browse/ARROW
+
+Opening JIRAs ahead of time contributes to the [Openness](http://theapacheway.com/open/#:~:text=Openness%20allows%20new%20users%20the,must%20happen%20in%20the%20open.) of the Apache Arrow project.
 
 Then could you also rename pull request title in the following format?
 
     ARROW-${JIRA_ID}: [${COMPONENT}] ${SUMMARY}
 
+or
+
+    MINOR: [${COMPONENT}] ${SUMMARY}
+
 See also:
 
   * [Other pull requests](https://github.com/apache/arrow/pulls/)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3808868..3e636d9 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -53,6 +53,16 @@
 Respecting this convention makes it easier for us to process the backlog
 of submitted Pull Requests.
 
+### Minor Fixes
+
+Any functionality change should have a JIRA opened.  For minor changes that
+affect documentation, you do not need to open up a JIRA.  Instead you can
+prefix the title of your PR with "MINOR: " if meets the following guidelines:
+
+*  Grammar, usage and spelling fixes that affect no more than 2 files
+*  Documentation updates affecting no more than 2 files and not more
+   than 500 words.
+
 ## Do you want to propose a significant new feature or an important refactoring?
 
 We ask that all discussions about major changes in the codebase happen
diff --git a/dev/merge_arrow_pr.py b/dev/merge_arrow_pr.py
index 9036c01..373ceb8 100755
--- a/dev/merge_arrow_pr.py
+++ b/dev/merge_arrow_pr.py
@@ -316,7 +316,10 @@
         print("\n=== Pull Request #%s ===" % self.number)
         print("title\t%s\nsource\t%s\ntarget\t%s\nurl\t%s"
               % (self.title, self.description, self.target_ref, self.url))
-        self.jira_issue.show()
+        if self.jira_issue is not None:
+            self.jira_issue.show()
+        else:
+            print("Minor PR.  Please ensure it meets guidelines for minor.\n")
 
     @property
     def is_merged(self):
@@ -334,7 +337,7 @@
                 jira_id = m.group(1)
                 break
 
-        if jira_id is None:
+        if jira_id is None and not self.title.startswith("MINOR:"):
             options = ' or '.join('{0}-XXX'.format(project)
                                   for project in SUPPORTED_PROJECTS)
             self.cmd.fail("PR title should be prefixed by a jira id "
@@ -585,6 +588,10 @@
     # merged hash not used
     pr.merge()
 
+    if pr.jira_issue is None:
+        print("Minor PR.  No JIRA issue to update.\n")
+        return
+
     cmd.continue_maybe("Would you like to update the associated JIRA?")
     jira_comment = (
         "Issue resolved by pull request %s\n[%s/%s]"
