@@ -121,10 +121,19 @@ commit_preprocessors = [
121121 { pattern = ' \\((\\w+\\s)?#([0-9]+)\\)' , replace = " ([#${2}](https://github.com/nutthead/ruloc/issues/${2}))" },
122122]
123123commit_parsers = [
124- # Skip rule: ONLY commits with $no-changelog tag are excluded from changelog
124+ # ========================================================================
125+ # Skip Rules (highest priority - evaluated first)
126+ # ========================================================================
127+ # Commits with $no-changelog tag are excluded from changelog
128+ # Example: "feat: Add feature\n\n$feat, $no-changelog"
125129 { body = " .*\\ $no-changelog" , skip = true },
126130
127- # Primary: Tag-based grouping (footer $tag determines changelog category)
131+ # ========================================================================
132+ # Primary Classification: Tag-based Grouping
133+ # ========================================================================
134+ # /c command generates commits with footer tags like "$type" or "$type, $no-changelog"
135+ # Format: "type[(scope)]: description\n\nbody\n\n$type"
136+ # The $type tag determines the changelog category (takes precedence over subject line)
128137 { body = " .*\\ $feat" , group = " ⭐ Features" },
129138 { body = " .*\\ $fix" , group = " 🐛 Bug Fixes" },
130139 { body = " .*\\ $docs" , group = " 📚 Documentation" },
@@ -136,25 +145,33 @@ commit_parsers = [
136145 { body = " .*\\ $ci" , group = " 👷 CI/CD" },
137146 { body = " .*\\ $revert" , group = " ⏪ Reverts" },
138147 { body = " .*\\ $chore" , group = " 🧹 Miscellaneous" },
148+ { body = " .*\\ $misc" , group = " 🧹 Miscellaneous" },
139149
140- # Special cases
150+ # ========================================================================
151+ # Special Case: Security-related commits
152+ # ========================================================================
141153 { body = " .*security" , group = " 🔐 Security" },
142154
143- # Fallback: Message-based grouping (for commits without tags)
155+ # ========================================================================
156+ # Fallback: Message-based Grouping (for commits without footer tags)
157+ # ========================================================================
158+ # These rules classify commits based on subject line prefix when no $tag present
159+ # Format: "type[(scope)]: description"
144160 { message = " ^feat" , group = " ⭐ Features" },
145161 { message = " ^fix" , group = " 🐛 Bug Fixes" },
146- { message = " ^docs" , group = " 📚 Documentation" },
147- { message = " ^doc" , group = " 📚 Documentation" },
162+ { message = " ^docs?" , group = " 📚 Documentation" },
148163 { message = " ^perf" , group = " ⚡ Performance" },
149164 { message = " ^refactor" , group = " 🔨 Refactor" },
150165 { message = " ^style" , group = " 🎨 Styling" },
151166 { message = " ^test" , group = " 🧪 Testing" },
152- { message = " ^chore" , group = " 🧹 Miscellaneous" },
153- { message = " ^revert" , group = " ⏪ Reverts" },
154167 { message = " ^build" , group = " 📦 Build System" },
155168 { message = " ^ci" , group = " 👷 CI/CD" },
156- { message = " ^polish" , group = " ✨ Polish" },
169+ { message = " ^revert" , group = " ⏪ Reverts" },
170+ { message = " ^chore" , group = " 🧹 Miscellaneous" },
171+ { message = " ^misc" , group = " 🧹 Miscellaneous" },
157172
158- # Catch-all
173+ # ========================================================================
174+ # Catch-all (lowest priority)
175+ # ========================================================================
159176 { message = " .*" , group = " 🧹 Miscellaneous" },
160177]
0 commit comments