Skip to content

Commit 52df7d1

Browse files
w8385dahlia
authored andcommitted
Update ai-labeler configuration to reduce excessive labeling (#293)
1 parent 04b8a70 commit 52df7d1

2 files changed

Lines changed: 393 additions & 16 deletions

File tree

.github/ai-labeler.yml

Lines changed: 386 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,386 @@
1+
instructions: |
2+
Required Labels: Every issue should have at least one `type/*` label.
3+
Component Labels: Add relevant `component/*` labels when the issue affects specific parts of Fedify.
4+
Priority Labels: Use `priority/*` labels for issues that need special attention.
5+
Runtime Labels: Add `runtime/*` labels when issues affect specific JavaScript runtimes only.
6+
Status Labels: Use `status/*` labels to track the current state of issues and pull requests.
7+
8+
labels:
9+
# ─────────────── Priority Labels ───────────────
10+
- priority/critical:
11+
description: "Requires immediate attention due to critical impact"
12+
instructions: |
13+
Use for issues that:
14+
- Block releases or core workflows
15+
- Cause crashes or data loss
16+
- Have urgent production impact
17+
18+
- priority/high:
19+
description: "High priority — should be addressed soon"
20+
instructions: |
21+
Use when the issue:
22+
- Significantly affects users or contributors
23+
- Blocks other tasks
24+
- Requires timely resolution but isn't a critical failure
25+
26+
- priority/medium:
27+
description: "Medium priority — normal workflow"
28+
instructions: |
29+
Use when the issue is valid and actionable but:
30+
- Doesn't block other work
31+
- Can be scheduled into future milestones
32+
33+
- priority/low:
34+
description: "Low priority — not urgent"
35+
instructions: |
36+
Use for:
37+
- Minor UX polish
38+
- Suggestions without clear need
39+
- Non-blocking edge cases
40+
41+
# ─────────────── Type Labels ───────────────
42+
- type/bug:
43+
description: "Something isn't working as expected"
44+
instructions: |
45+
Apply when describing or fixing unexpected behavior:
46+
- Crashes, broken behavior, incorrect output
47+
- PRs that resolve defects
48+
49+
- type/feature:
50+
description: "New functionality"
51+
instructions: |
52+
Apply when introducing net-new behavior:
53+
- New APIs, endpoints, commands, modules
54+
- User-visible capabilities
55+
56+
- type/enhancement:
57+
description: "Improves existing features"
58+
instructions: |
59+
Apply to:
60+
- Performance or UX improvements
61+
- Expanded functionality
62+
Do not use for new features or bug fixes.
63+
64+
- type/documentation:
65+
description: "Documentation changes"
66+
instructions: |
67+
Use when:
68+
- README, CONTRIBUTING, API docs are updated
69+
- Code comments or usage examples are the focus
70+
71+
- type/refactor:
72+
description: "Code cleanup or reorganization"
73+
instructions: |
74+
Use when:
75+
- Internal structure is improved
76+
- No behavior changes for users
77+
- Technical debt is addressed
78+
79+
- type/performance:
80+
description: "Improves speed or efficiency"
81+
instructions: |
82+
Use when:
83+
- Latency or memory usage is improved
84+
- Algorithms are optimized
85+
86+
- type/security:
87+
description: "Security-related issue or fix"
88+
instructions: |
89+
Use when:
90+
- Addressing vulnerabilities
91+
- Applying best security practices
92+
93+
- type/test:
94+
description: "Testing coverage or infrastructure"
95+
instructions: |
96+
Use for:
97+
- Adding or improving tests
98+
- Test utilities or frameworks
99+
100+
- type/chore:
101+
description: "Project maintenance"
102+
instructions: |
103+
Use for:
104+
- Dependency updates
105+
- Tooling or config changes
106+
- CI/CD pipelines
107+
108+
# ─────────────── Component Labels ───────────────
109+
- component/vocab:
110+
description: "Activity vocabulary definitions"
111+
instructions: |
112+
Use for:
113+
- Adding or changing vocab definitions
114+
- Affects types, fields, or schema
115+
116+
- component/federation:
117+
description: "Federation and remote activity handling"
118+
instructions: |
119+
Use for:
120+
- Sending or receiving remote objects
121+
- Delivery across instances
122+
123+
- component/actor:
124+
description: "Actor and identity dispatch"
125+
instructions: |
126+
Use when:
127+
- Actor creation, lookup, or routing is affected
128+
129+
- component/inbox:
130+
description: "Inbox message handling"
131+
instructions: |
132+
Use when:
133+
- Receiving and validating activities
134+
- Inbox-related errors or logic
135+
136+
- component/outbox:
137+
description: "Outbox activity publishing"
138+
instructions: |
139+
Use when:
140+
- Sending activities
141+
- Outbox structure or delivery logic
142+
143+
- component/collections:
144+
description: "Object and activity collections"
145+
instructions: |
146+
Use for:
147+
- Lists of followers, likes, etc.
148+
- Paging, filtering, ordering
149+
150+
- component/signatures:
151+
description: "Linked Data Signatures (LD Signatures)"
152+
instructions: |
153+
Use when:
154+
- Signing or verifying requests
155+
- Security via HTTP signatures
156+
157+
- component/webfinger:
158+
description: "WebFinger discovery"
159+
instructions: |
160+
Use for:
161+
- Account resolution via WebFinger
162+
- Compatibility with remote servers
163+
164+
- component/nodeinfo:
165+
description: "NodeInfo metadata"
166+
instructions: |
167+
Use when:
168+
- Publishing server capabilities
169+
- NodeInfo endpoints or schemas
170+
171+
- component/cli:
172+
description: "Command-line interface tools"
173+
instructions: |
174+
Use for:
175+
- CLI utilities
176+
- Local testing or scaffolding
177+
178+
- component/integration:
179+
description: "Integration with web frameworks"
180+
instructions: |
181+
Use when:
182+
- Adapters or plugins for external systems
183+
- Routing or middleware support
184+
185+
- component/kv:
186+
description: "Key-value storage layer"
187+
instructions: |
188+
Use for:
189+
- Persistence changes
190+
- Data modeling for key-value store
191+
192+
- component/mq:
193+
description: "Message queue infrastructure"
194+
instructions: |
195+
Use for:
196+
- Pub/sub changes
197+
- Event queueing logic
198+
199+
# ─────────────── Runtime Labels ───────────────
200+
- runtime/deno:
201+
description: "Deno runtime-specific"
202+
instructions: |
203+
Use when:
204+
- Deno-only APIs or permissions
205+
- Deployment or build-specific to Deno
206+
207+
- runtime/node:
208+
description: "Node.js runtime-specific"
209+
instructions: |
210+
Use when:
211+
- Node-specific code or libraries
212+
- Compatibility for Node.js
213+
214+
- runtime/bun:
215+
description: "Bun runtime-specific"
216+
instructions: |
217+
Use for:
218+
- Bun-specific issues or optimizations
219+
220+
# ─────────────── Status Labels ───────────────
221+
- status/blocked:
222+
description: "Work is currently blocked"
223+
instructions: |
224+
Use when:
225+
- Issue cannot progress due to external dependency
226+
- Waiting for upstream fix or decision
227+
228+
- status/in progress:
229+
description: "Work is actively being done"
230+
instructions: |
231+
Use when:
232+
- For issues, apply only if the author explicitly states that work has already started.
233+
- Apply to all new pull requests
234+
235+
- status/awaiting response:
236+
description: "Waiting for more information"
237+
instructions: |
238+
Use when:
239+
- Waiting for reply from reporter or reviewer
240+
- PR feedback or clarification needed
241+
242+
- status/ready for review:
243+
description: "Work is ready for feedback"
244+
instructions: |
245+
Use when:
246+
- PR is complete
247+
- Maintainer feedback is needed
248+
249+
- status/needs triage:
250+
description: "Needs review or categorization"
251+
instructions: |
252+
Use when:
253+
- Issue's purpose is unclear and requires human review.
254+
- Apply this if you cannot confidently assign a more specific `type/*` label.
255+
256+
# ─────────────── Difficulty Labels ───────────────
257+
- difficulty/beginner:
258+
description: "Beginner-friendly issue"
259+
instructions: |
260+
Use when:
261+
- Issue is easy to understand
262+
- Has clear scope and success criteria
263+
264+
- difficulty/intermediate:
265+
description: "Moderately difficult"
266+
instructions: |
267+
Use for:
268+
- Issues requiring some project knowledge
269+
- Medium complexity tasks
270+
271+
- difficulty/advanced:
272+
description: "High complexity or risk"
273+
instructions: |
274+
Use when:
275+
- Involves core internals or design
276+
- Requires deep understanding of system
277+
278+
# ─────────────── Meta / Utility Labels ───────────────
279+
- good first issue:
280+
description: "Good for newcomers"
281+
instructions: |
282+
Use only when:
283+
- The issue body explicitly mentions "good first issue"
284+
- Task is small, clear, and well-scoped
285+
- Suitable for contributors unfamiliar with the codebase
286+
287+
- help wanted:
288+
description: "External contributions welcome"
289+
instructions: |
290+
Use only when:
291+
- The issue body explicitly mentions "help wanted"
292+
- Maintainers can’t fix it alone
293+
- Community support is essential
294+
295+
- breaking change:
296+
description: "Introduces backward-incompatible changes"
297+
instructions: |
298+
Use when:
299+
- API or interface changes break existing usage
300+
- Migration is required
301+
302+
- duplicate:
303+
description: "Issue already reported"
304+
instructions: |
305+
Use when:
306+
- Duplicate of another open or closed issue
307+
308+
- invalid:
309+
description: "Not a valid issue"
310+
instructions: |
311+
Use when:
312+
- Misfiled or unrelated issue
313+
- Doesn’t meet contribution guidelines
314+
315+
- wontfix:
316+
description: "Will not be fixed"
317+
instructions: |
318+
Use when:
319+
- Project deliberately chooses not to fix
320+
- Out of scope or deprecated
321+
322+
- question:
323+
description: "Inquiry or clarification"
324+
instructions: |
325+
Use when:
326+
- Issue is primarily asking a question
327+
- Needs information before work can proceed
328+
329+
- discussion:
330+
description: "Needs further discussion"
331+
instructions: |
332+
Use when:
333+
- Architectural or community decision required
334+
- Not ready for immediate implementation
335+
336+
# ─────────────── ActivityPub Labels ───────────────
337+
- activitypub/interop:
338+
description: "Interoperability with other servers"
339+
instructions: |
340+
Use for:
341+
- Compatibility problems with other ActivityPub implementations
342+
- Federation bugs or quirks
343+
344+
- activitypub/compliance:
345+
description: "Standards compliance"
346+
instructions: |
347+
Use for:
348+
- Deviations from ActivityPub or ActivityStreams spec
349+
- Spec-driven conformance fixes
350+
351+
- activitypub/mastodon:
352+
description: "Mastodon compatibility"
353+
instructions: |
354+
Use for:
355+
- Issues that affect compatibility with Mastodon servers
356+
- Federation problems specific to Mastodon
357+
358+
- activitypub/misskey:
359+
description: "Misskey compatibility"
360+
instructions: |
361+
Use for:
362+
- Issues that affect compatibility with Misskey servers
363+
- Misskey-specific behavior or quirks
364+
365+
- activitypub/lemmy:
366+
description: "Lemmy compatibility"
367+
instructions: |
368+
Use for:
369+
- Issues related to federating with Lemmy
370+
- Content types, collection behavior differences
371+
372+
# ─────────────── Examples/Tutorials Labels ───────────────
373+
- examples:
374+
description: "Example code related"
375+
instructions: |
376+
Use for:
377+
- Example files provided in documentation or repository
378+
- Snippets meant to illustrate usage
379+
380+
- tutorial:
381+
description: "Tutorial related"
382+
instructions: |
383+
Use when:
384+
- PRs or issues are focused on step-by-step guides
385+
- Educational resources for new users
386+

0 commit comments

Comments
 (0)