CopilotKit / CopilotKit/channels-sdk
setup-slack-channel and copilotkit-channels have overlapping triggers for the same request
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 917
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
setup-slack-channel (#7) and copilotkit-channels (in CopilotKit/CopilotKit/skills) both claim the managed-Channel Slack path. Their descriptions match the same request, and which one an agent acts on depends on which it reads first.
This does not block merging #7, and an end-to-end run in this repo does not clear it — setup-slack-channel is the only skill present here, so the collision is never exercised. It becomes live the moment the skill ships through copilotkit skills install, which installs copilotkit-channels today.
The overlap
copilotkit-channels/SKILL.md:
Use when connecting a CopilotKit agent to Slack or Microsoft Teams with managed Intelligence Channels. Covers customising the Channel a CLI-scaffolded project already ships, and — for a project the CLI did not generate — the Channel declaration, the long-running host requirement, and the awaited activation call.
setup-slack-channel/SKILL.md (#7):
Use when a developer wants a locally running CopilotKit Channels agent to answer in Slack — setting up a Channels bot in Slack for the first time, creating a Slack app for a Channels agent, connecting a local runtime to a managed Intelligence Channel, or when a Channel reports
setup_required, sits at "Waiting for runtime", or a Slack mention gets no reply.
Both cover managed Intelligence Channels, both cover Slack, and both cover connecting a local runtime to a Channel. "My agent should answer in Slack" matches either.
They are not redundant — they solve different problems, and the boundary is real:
copilotkit-channels |
setup-slack-channel |
|
|---|---|---|
| Assumes | A project that already has a Channel, or needs one declared in code | No Slack app exists yet |
| Centre of gravity | The code half — createChannel, the long-running host, awaited activation |
The provider half — Slack app, manifest, tokens, workspace install |
| Covers Teams | Yes | No (explicitly: "Slack only. There is no Teams live harness in the starter.") |
The problem is that nothing in either description says which is which.
Why an installed-set collision is worse than it sounds
copilotkit skills install defaults to installing every skill in its source. A user who runs it gets both, with no signal about precedence. The failure is silent and non-deterministic — the agent picks one, proceeds confidently, and the user has no way to tell it read the wrong one.
Suggested scope
- Split the triggers explicitly in both frontmatters. Roughly:
copilotkit-channelsowns "a Channel exists or needs declaring in code — wire and customise it";setup-slack-channelowns "no Slack app exists yet — create one and connect a local checkout end to end." - Have each description name the other's territory and hand off, so an agent that lands on the wrong one redirects instead of proceeding.
- Decide this before
setup-slack-channelenters the CLI-installed set, not after.
Cross-repo: the copilotkit-channels half of the fix is a change in CopilotKit/CopilotKit under skills/copilotkit-channels/SKILL.md. Both halves should land together, or the split is only half-declared.
Related: copilotkit skills install reads CopilotKit/CopilotKit/skills, so setup-slack-channel is not reachable from the CLI while it lives here. Whether it moves there or is mirrored into it is a separate open decision — this issue covers only the trigger boundary, whichever way that lands.
Context: https://github.com/CopilotKit/channels-sdk/pull/7#issuecomment-5169145504
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the frontmatter in setup-slack-channel/SKILL.md with CopilotKit/CopilotKit/skills/copilotkit-channels/SKILL.md, using the overlap table and suggested scope as the starting point. Update both descriptions so their triggers, handoff boundaries, and ownership of Slack setup versus Channel code are explicit; done means an installed set no longer gives an agent two matching paths.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100