CopilotKit / CopilotKit/channels-sdk

setup-slack-channel and copilotkit-channels have overlapping triggers for the same request

Open
#10 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Split the triggers explicitly in both frontmatters. Roughly: copilotkit-channels owns "a Channel exists or needs declaring in code — wire and customise it"; setup-slack-channel owns "no Slack app exists yet — create one and connect a local checkout end to end."
  2. Have each description name the other's territory and hand off, so an agent that lands on the wrong one redirects instead of proceeding.
  3. Decide this before setup-slack-channel enters 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.