Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .claude/commands/dedupe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
allowed-tools: Bash(gh issue view:*), Bash(gh search:*), Bash(gh issue list:*), Bash(gh api:*), Bash(gh issue comment:*)
description: Find duplicate GitHub issues
---

Find up to 3 likely duplicate issues for a given GitHub issue.

To do this, follow these steps precisely:

1. Use an agent to check if the Github issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (typo): Use 'GitHub' instead of 'Github' for correct capitalization.

Please update all occurrences of 'Github' to 'GitHub' for consistency.

Suggested implementation:

Find up to 3 likely duplicate issues for a given GitHub issue.

To do this, follow these steps precisely:

1. Use an agent to check if the GitHub issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed.
2. Use an agent to view a GitHub issue, and ask the agent to return a summary of the issue
3. Then, launch 5 parallel agents to search GitHub for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1

Notes (be sure to tell this to your agents, too):

- Use `gh` to interact with GitHub, rather than web fetch
- Do not use other tools, beyond `gh` (eg. don't use other MCP servers, file edit, etc.)

2. Use an agent to view a Github issue, and ask the agent to return a summary of the issue
3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Reference to 'summary from #1' should be 'summary from #2' for clarity.

Since the summary is created in step 2, referencing it as 'summary from #1' is inaccurate. Please change the reference to 'summary from #2'.

Suggested change
3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1
3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #2

4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Clarify which results are being referenced in step 4.

Update step 4 to reference 'results from #2 and #3' for clarity and accuracy.

Suggested change
4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.
+4. Next, feed the results from #2 and #3 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed.

5. Finally, comment back on the issue with a list of up to three duplicate issues (or zero, if there are no likely duplicates)

Notes (be sure to tell this to your agents, too):

- Use `gh` to interact with Github, rather than web fetch
- Do not use other tools, beyond `gh` (eg. don't use other MCP servers, file edit, etc.)
- Make a todo list first
- For your comment, follow the following format precisely (assuming for this example that you found 3 suspected duplicates):

---

Found 3 possible duplicate issues:

1. <link to issue>
2. <link to issue>
3. <link to issue>

This issue will be automatically closed as a duplicate in 3 days.

- If your issue is a duplicate, please close it and πŸ‘ the existing issue instead
- To prevent auto-closure, add a comment or πŸ‘Ž this comment

> πŸ€– Generated with Claude Code

---
135 changes: 135 additions & 0 deletions .claude/prompts/team-assignment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Team Assignment Guide

## Quick Reference by Name

- **@arvinxx**: Last resort only, mention for priority:high issues, tool calling , mcp
- **@canisminor1990**: Design, UI components, editor
- **@tjx666**: Image/video generation, vision, cloud, documentation, TTS
- **@ONLY-yours**: Performance, streaming, settings, general bugs, web platform, marketplace
- **@RiverTwilight**: Knowledge base, files (KB-related), group chat
- **@nekomeowww**: Memory, backend, deployment, DevOps
- **@sudongyuer**: Mobile app (React Native)
- **@sxjeru**: Model providers and configuration
- **@cy948**: Auth Modules
- **@rdmclin2**: Team workspace

Quick reference for assigning issues based on labels.

## Label to Team Member Mapping

### Provider Labels (provider:\*)

| Label | Owner | Notes |
| ---------------- | ------- | -------------------------------------------- |
| All `provider:*` | @sxjeru | Model configuration and provider integration |

### Platform Labels (platform:\*)

| Label | Owner | Notes |
| ------------------ | ----------- | -------------------------------------- |
| `platform:mobile` | @sudongyuer | React Native mobile app |
| `platform:desktop` | @ONLY-yours | Electron desktop client (general) |
| `platform:web` | @ONLY-yours | Web platform (unless specific feature) |

### Feature Labels (feature:\*)

| Label | Owner | Notes |
| ------------------------ | --------------- | ----------------------------------------------------------------------- |
| `feature:image` | @tjx666 | AI image generation |
| `feature:dalle` | @tjx666 | DALL-E related |
| `feature:vision` | @tjx666 | Vision/multimodal generation |
| `feature:knowledge-base` | @RiverTwilight | Knowledge base and RAG |
| `feature:files` | @RiverTwilight | File upload/management (when KB-related)<br>@ONLY-yours (general files) |
| `feature:editor` | @canisminor1990 | Lobe Editor |
| `feature:auth` | @cy948 | Authentication/authorization |
| `feature:api` | @nekomeowww | Backend API |
| `feature:streaming` | @arvinxx | Streaming response |
| `feature:settings` | @ONLY-yours | Settings and configuration |
| `feature:agent` | @ONLY-yours | Agent/Assistant |
| `feature:topic` | @ONLY-yours | Topic/Conversation management |
| `feature:thread` | @arvinxx | Thread/Subtopic |
| `feature:marketplace` | @ONLY-yours | Agent marketplace |
| `feature:tool` | @arvinxx | Tool calling |
| `feature:mcp` | @arvinxx | MCP integration |
| `feature:search` | @ONLY-yours | Search functionality |
| `feature:tts` | @tjx666 | Text-to-speech |
| `feature:export` | @ONLY-yours | Export functionality |
| `feature:group-chat` | @RiverTwilight | Group chat functionality |
| `feature:memory` | @nekomeowww | Memory feature |
| `feature:team-workspace` | @rdmclin2 | Team workspace application |

### Deployment Labels (deployment:\*)

| Label | Owner | Notes |
| ------------------ | ----------- | -------------------------- |
| All `deployment:*` | @nekomeowww | Server/client/pglite modes |

### Hosting Labels (hosting:\*)

| Label | Owner | Notes |
| ------------------- | ----------- | ---------------------- |
| `hosting:cloud` | @tjx666 | Official LobeHub Cloud |
| `hosting:self-host` | @nekomeowww | Self-hosting issues |
| `hosting:vercel` | @nekomeowww | Vercel deployment |
| `hosting:zeabur` | @nekomeowww | Zeabur deployment |
| `hosting:railway` | @nekomeowww | Railway deployment |

### Issue Type Labels

| Label | Owner | Notes |
| ------------------ | -------------------- | ---------------------------- |
| πŸ’„ Design | @canisminor1990 | Design and styling |
| πŸ“ Documentation | @tjx666 | Documentation |
| ⚑️ Performance | @ONLY-yours | Performance optimization |
| πŸ› Bug | (depends on feature) | Assign based on other labels |
| 🌠 Feature Request | (depends on feature) | Assign based on other labels |

## Assignment Rules

### Priority Order (apply in order)

1. **Specific feature owner** - e.g., `feature:knowledge-base` β†’ @RiverTwilight
2. **Platform owner** - e.g., `platform:mobile` β†’ @sudongyuer
3. **Provider owner** - e.g., `provider:*` β†’ @sxjeru
4. **Component owner** - e.g., πŸ’„ Design β†’ @canisminor1990
5. **Infrastructure owner** - e.g., `deployment:*` β†’ @nekomeowww
6. **General maintainer** - @ONLY-yours for general bugs/issues
7. **Last resort** - @arvinxx (only if no clear owner)

### Special Cases

**Multiple labels with different owners:**

- Mention the **most specific** feature owner first
- Mention secondary owners if their input is valuable
- Example: `feature:knowledge-base` + `deployment:server` β†’ @RiverTwilight (primary), @nekomeowww (secondary)

**Priority:high issues:**

- Mention feature owner + @arvinxx
- Example: `priority:high` + `feature:image` β†’ @tjx666 @arvinxx

**No clear owner:**

- Assign to @ONLY-yours for general issues
- Only mention @arvinxx if critical and truly unclear

## Comment Templates

**Single owner:**

```
@username - This is a [feature/component] issue. Please take a look.
```

**Multiple owners:**

```
@primary @secondary - This involves [features]. Please coordinate.
```

**High priority:**

```
@owner @arvinxx - High priority [feature] issue.
```
Loading
Loading