legacy-command-client-keeper
Skill1.1k starsChanged 35 days agoMITView on GitHub
Maintain the optional prefix-command layer — DiscordCommandClient, Command class, parsing, aliases, cooldowns, and help system. Use when touching message-based command handling.
Trending
More talk lately.about the whole repository
Who's talking about discord-php/DiscordPHP
- @throwable.bsky.social“📦 team-reflex/discord-php v10.45.21 An unofficial API to interact with the voice and text service Discord. …”Bluesky · Feb 27, 2026 · 1 likes
- crimsonstrife/streamer.live“Bump team-reflex/discord-php from 10.18.24 to 10.18.45”GitHub · Aug 19, 2025 · 1 reactions
- crimsonstrife/streamer.live“Bump team-reflex/discord-php from 10.18.0 to 10.18.5”GitHub · Jul 8, 2025 · 1 reactions
- crimsonstrife/streamer.live“build(deps): bump team-reflex/discord-php from 10.17.0 to 10.17.3”GitHub · Jun 16, 2025 · 1 reactions
- crimsonstrife/streamer.live“build(deps): bump team-reflex/discord-php from 10.13.1 to 10.14.0”GitHub · Jun 9, 2025 · 1 reactions
The biggest 5 of 52 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 52
Talked about on GitHub and Bluesky (52 times).
On GitHub · 50
- Aug 19, 2025Bump team-reflex/discord-php from 10.18.24 to 10.18.45 — crimsonstrife/streamer.live1 reaction · 2 comments
- Jul 8, 2025Bump team-reflex/discord-php from 10.18.0 to 10.18.5 — crimsonstrife/streamer.live1 reaction · 3 comments
- Jun 16, 2025build(deps): bump team-reflex/discord-php from 10.17.0 to 10.17.3 — crimsonstrife/streamer.live1 reaction · 3 comments
- Jun 9, 2025build(deps): bump team-reflex/discord-php from 10.13.1 to 10.14.0 — crimsonstrife/streamer.live1 reaction · 3 comments
- Jun 2, 2025build(deps): bump team-reflex/discord-php from 10.10.12 to 10.11.6 — crimsonstrife/streamer.live1 reaction · 3 comments
45 more on GitHub
- May 26, 2025build(deps): bump team-reflex/discord-php from 10.10.0 to 10.10.6 — crimsonstrife/streamer.live1 reaction · 2 comments
- May 19, 2025build(deps): bump team-reflex/discord-php from 10.7.3 to 10.8.5 — crimsonstrife/streamer.live1 reaction · 2 comments
- May 5, 2025build(deps): bump team-reflex/discord-php from 10.7.1 to 10.7.2 — crimsonstrife/streamer.live1 reaction · 2 comments
- Apr 28, 2025build(deps): bump team-reflex/discord-php from 10.4.7 to 10.7.1 — crimsonstrife/streamer.live1 reaction · 3 comments
- Mar 25, 2025build(deps): bump team-reflex/discord-php from 10.4.3 to 10.4.4 — crimsonstrife/streamer.live1 reaction · 3 comments
- Jul 18, 2024✨ Add support for polls — laracord/framework1 reaction
- May 11, 2024update d.py/d.php polls — advaith1/libs1 reaction · 1 comment
- Nov 2, 2026build(deps): update team-reflex/discord-php requirement from 10.66.* to 10.71.* — smrealms/smr0 reactions
- Oct 26, 2026build(deps): update team-reflex/discord-php requirement from 10.66.* to 10.69.* — smrealms/smr0 reactions · 1 comment
- Oct 20, 2026build(deps): update team-reflex/discord-php requirement from 10.66.* to 10.68.* — smrealms/smr0 reactions · 1 comment
- Oct 19, 2026Bump team-reflex/discord-php from 10.59.0 to 10.67.0 — omnicolor/commlink0 reactions · 1 comment
- Oct 14, 2026build(deps): update team-reflex/discord-php requirement from 10.66.* to 10.67.* — smrealms/smr0 reactions · 1 comment
- Oct 13, 2026Bump team-reflex/discord-php from 10.59.0 to 10.66.3 — omnicolor/commlink0 reactions · 1 comment
- Oct 6, 2026Bump team-reflex/discord-php from 10.59.0 to 10.66.1 — omnicolor/commlink0 reactions · 1 comment
- Oct 5, 2026Bump team-reflex/discord-php from 10.59.0 to 10.65.0 — omnicolor/commlink0 reactions · 1 comment
- Oct 1, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.66.* — smrealms/smr0 reactions
- Oct 1, 2026Bump team-reflex/discord-php from 10.57.0 to 10.59.0 — omnicolor/commlink0 reactions
- Sep 30, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.62.* — smrealms/smr0 reactions · 1 comment
- Sep 29, 2026Bump team-reflex/discord-php from 10.57.0 to 10.58.0 — omnicolor/commlink0 reactions · 1 comment
- Sep 28, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.59.* — smrealms/smr0 reactions · 1 comment
- Sep 25, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.58.* — smrealms/smr0 reactions · 1 comment
- Sep 25, 2026Bump team-reflex/discord-php from 10.56.18 to 10.57.0 — omnicolor/commlink0 reactions
- Sep 23, 2026Bump team-reflex/discord-php from 10.56.17 to 10.56.18 — omnicolor/commlink0 reactions
- Sep 21, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.57.* — smrealms/smr0 reactions · 1 comment
- Sep 14, 2026Bump team-reflex/discord-php from 10.56.15 to 10.56.17 — omnicolor/commlink0 reactions
- Sep 7, 2026Bump team-reflex/discord-php from 10.56.10 to 10.56.15 — omnicolor/commlink0 reactions
- Sep 7, 2026build: Bump team-reflex/discord-php from 10.48.14 to 10.56.15 — VATSIM-UK/core0 reactions
- Sep 4, 2026Bump team-reflex/discord-php from 10.56.10 to 10.56.13 — omnicolor/commlink0 reactions · 1 comment
- Sep 2, 2026Bump team-reflex/discord-php from 10.56.8 to 10.56.10 — omnicolor/commlink0 reactions
- Sep 1, 2026Bump team-reflex/discord-php from 10.56.8 to 10.56.9 — omnicolor/commlink0 reactions · 1 comment
- Aug 26, 2026Bump team-reflex/discord-php from 10.55.1 to 10.56.5 — omnicolor/commlink0 reactions
- Aug 25, 2026Bump team-reflex/discord-php from 10.55.1 to 10.56.3 — omnicolor/commlink0 reactions · 1 comment
- Aug 18, 2026build(deps): update team-reflex/discord-php requirement from 10.49.* to 10.56.* — smrealms/smr0 reactions · 1 comment
- Apr 20, 2026Bump team-reflex/discord-php from 10.47.12 to 10.48.1 — crimsonstrife/streamer.live0 reactions · 1 comment
- Feb 10, 2026Bump team-reflex/discord-php from 10.45.15 to 10.45.16 — crimsonstrife/streamer.live0 reactions · 3 comments
- Nov 4, 2025Add Discord Announcement Bot System — k33bz/lastwar-server15860 reactions · 4 comments
- Oct 20, 2025Tag "@property" has error when both ? and null types are included — phpDocumentor/phpDocumentor0 reactions · 1 comment
- Nov 15, 2024Update dependency team-reflex/discord-php to v10 — System3-2/discord-bot0 reactions
- Feb 11, 2024Thread gets terminated when using a slash command with options. — DiscordBot-PMMP/DiscordBot0 reactions · 3 comments
- Jan 14, 2024Update dependency team-reflex/discord-php to v7.3.5 — Karhal/discord-gpt0 reactions
- Jan 14, 2024Update dependency team-reflex/discord-php to v7.3.5 — System3-2/discord-bot0 reactions
- Jan 31, 2023Invalid Activity URL — DiscordBot-PMMP/DiscordBot0 reactions · 3 comments
- Dec 20, 2022Another message type not supported when delete the message — DiscordBot-PMMP/DiscordBot0 reactions · 6 comments
- Aug 19, 2022[Egg Request]: DiscordPHP — pelican-eggs/eggs0 reactions · 1 comment
- Apr 17, 2022Intents help — DiscordBot-PMMP/DiscordBot0 reactions · 4 comments
On Bluesky · 2
- Feb 27, 2026📦 team-reflex/discord-php v10.45.21 An unofficial API to interact with the voice and text service Discord. 🔗… — @throwable.bsky.social1 likes and repost
- Aug 10, 2026📦 team-reflex/discord-php v10.55.0 An unofficial API to interact with the voice and text service Discord. 🔗… — @throwable.bsky.social0 likes and reposts · 1 reply
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- async-test-and-doc-syncSkill
- builder-payload-smithSkill
- gateway-cache-sync-keeperSkill
- helpers-and-infra-keeperSkill
- interaction-flow-keeperSkill
- part-model-maintainerSkill
- repository-cache-keeperSkill
- runtime-bootstrap-keeperSkill
- type-map-keeperSkill
- voice-subsystem-keeperSkill
- discord-php-bot-securitySkill
- discord-php-extensionSkill
- discord-php-interactionsSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 11 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use this skill when work touches:
- Distinctive: line 20
Keep prefix-command behavior as a clean optional layer:
- Distinctive: line 59
default help command behavior
- Very specific: line 71
If code does not clearly belong to one of those two, re-check whether it belongs in core Discord instead.
- Distinctive: line 101
If changing parsing, preserve expectations around:
- Distinctive: line 120
If help behavior changes, inspect both top-level help and per-command help.
- Distinctive: line 131
Do not move cooldown logic into unrelated core message or user models.
- Distinctive: line 142
Do not try to force one abstraction to power both unless you intend a broad architectural redesign.
- Distinctive: line 150
If user-facing callback returns string, reply behavior should remain simple and unsurprising.
- Distinctive: line 161
Stop if you see:
- Distinctive: line 176
default help command still reflects command metadata
- Distinctive: line 177
no leakage into interaction command layer unless explicitly intended
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: legacy-command-client-keeper
Use this skill when work touches:
src/Discord/DiscordCommandClient.phpsrc/Discord/CommandClient/Command.php
This is optional-prefix-command skill. Load it when maintaining the message-command layer built on top of core Discord.
Goal
Keep prefix-command behavior as a clean optional layer:
- built on top of
Discord - driven by message events
- owning its own parsing, aliases, subcommands, cooldowns, and help behavior
- separate from application-command interaction flow
Read in this order
src/Discord/DiscordCommandClient.phpsrc/Discord/CommandClient/Command.php- Example or guide material using command client, if public behavior changes
- Interaction command path only if change risks cross-layer leakage:
src/Discord/Helpers/RegisteredCommand.phpsrc/Discord/WebSockets/Events/InteractionCreate.php
Core contract
DiscordCommandClient extends Discord, but it does not replace core client architecture. It layers:
- command-specific options
- prefix detection
- alias maps
- command registry
- default help command
- message event routing into command callbacks
The command layer should stay optional and message-driven.
Main responsibilities by class
DiscordCommandClient
Owns:
- command-client option resolution
- wiring message event listeners during init
- prefix and mention-prefix expansion
- top-level command and alias registry
- default help command behavior
CommandClient\Command
Owns:
- one command's callback
- subcommand tree
- alias mapping for subcommands
- help metadata
- cooldown tracking and cooldown messaging
If code does not clearly belong to one of those two, re-check whether it belongs in core Discord instead.
Option rules
DiscordCommandClient uses OptionsResolver for its own layer. Preserve existing semantics around:
prefixprefixesnamedescriptiondefaultHelpCommanddiscordOptionscaseInsensitiveCommandsinternalRejectedPromiseHandler
Command-client options are not core runtime options. Keep them isolated unless a true cross-layer dependency exists.
Parsing rules
Message-command flow today:
- command client listens on init
- prefix strings get mention placeholders expanded
- on message event, ignore self messages
checkForPrefix()strips prefix- args parsed via
str_getcsv(..., ' ', '\"', '\\\\') - command name resolved through commands then aliases
- command callback invoked
- string return values become reply messages
If changing parsing, preserve expectations around:
- mention prefixes
- quoted arguments
- alias lookup
- case-insensitive mode
Help-system rules
The default help command is not incidental. It is part of command-client feature set.
Preserve:
- per-command descriptions and long descriptions
- usage text
- alias display
- subcommand display
- embed-based help formatting
If help behavior changes, inspect both top-level help and per-command help.
Cooldown and subcommand rules
CommandClient\Command carries its own operational semantics:
- cooldowns keyed by author id
- subcommands recurse
- alias lookup for subcommands
- help visibility controlled by option metadata
Do not move cooldown logic into unrelated core message or user models.
Boundaries with interaction commands
This layer is not the same as application commands.
Keep these separate:
- prefix commands use
DiscordCommandClient+CommandClient\Command - application commands use
Discord::listenCommand()+RegisteredCommand+ interaction events
Do not try to force one abstraction to power both unless you intend a broad architectural redesign.
Shared naming concepts are fine. Shared execution path is not current repo design.
Error-handling rules
Internal rejected promises use internalRejectedPromiseHandler. Preserve that pattern rather than sprinkling silent catches or inconsistent logger behavior through callbacks.
If user-facing callback returns string, reply behavior should remain simple and unsurprising.
Existing patterns worth copying
- top-level command registration through
registerCommand() - alias registration separated from command registration
- subcommand tree managed inside
Command - command options resolved once, then carried as help/cooldown metadata
Smells
Stop if you see:
- prefix-command concerns moving into
Message,Channel,Discord, or interaction code - alias or cooldown state stored outside command layer
- parsing changes that break quoted args or mention prefixes without explicit intent
- help system logic duplicated in multiple places
- interaction-command abstractions merged into prefix-command path
Checklist before commit
- command-client options still resolve cleanly
- prefix expansion and parsing still intentional
- command and alias registry behavior still coherent
- subcommand recursion still works
- cooldown behavior still belongs to command objects
- default help command still reflects command metadata
- no leakage into interaction command layer unless explicitly intended
Bottom line
Legacy command client is convenience layer, not core runtime. Keep it self-contained, predictable, and clearly separate from slash-command interactions.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

