Add review.labeling_rules — a list of {label, when} entries with deterministic path/title/keyword criteria that SUGGEST (and optionally auto-apply when autoLabelEnabled) labels on a PR. No scoring labels. Empty (default) ⇒ no labels suggested (byte-identical). Decomposed from #1959; complements the existing PR-type labeler.
Deliverables
References
src/signals/focus-manifest.ts:703 (parseReviewPreMergeChecks pattern)
src/signals/focus-manifest.ts:89 (autoLabelEnabled field key)
src/settings/pr-type-label.ts
part of #1959 (epic #1953)
Part of #1959.
size: M · gittensor:feature
Add
review.labeling_rules— a list of{label, when}entries with deterministic path/title/keyword criteria that SUGGEST (and optionally auto-apply when autoLabelEnabled) labels on a PR. No scoring labels. Empty (default) ⇒ no labels suggested (byte-identical). Decomposed from #1959; complements the existing PR-type labeler.Deliverables
LabelingRuletype ({ label, whenPaths?, titleContains?, descriptionContains? }) andlabelingRules: LabelingRule[]to FocusManifestReviewConfig in src/signals/focus-manifest.ts (mirror the parseReviewPreMergeChecks shape at :703)review.labeling_ruleswith public-safe label strings, deterministicwhencriteria, and the MAX_PATH_INSTRUCTIONS cap; refuse any scoring/reserved label namespresent+ EMPTY literals; unit tests for eachwhencriterion, autoLabel on/off arms, cap, invalid entry dropreview.labeling_rulesin .gittensory.yml.exampleReferences
src/signals/focus-manifest.ts:703 (parseReviewPreMergeChecks pattern)src/signals/focus-manifest.ts:89 (autoLabelEnabled field key)src/settings/pr-type-label.tspart of #1959 (epic #1953)Part of #1959.
size: M · gittensor:feature