interaction-flow-keeper
Skill1.1k starsChanged 35 days agoMITView on GitHub
Maintain interaction flow — Interaction typing, resolved data caching, command routing, autocomplete, modal responses, and interaction builders. Use when touching Interactions or slash 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
- legacy-command-client-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
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 14 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈14
Distinctive · estimate
This author's own choices. Worth a look.
0
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 22
Keep interactions as a coherent pipeline:
- Distinctive: line 61
Do not mix inbound part modeling with outbound builder modeling.
- Distinctive: line 67
If Discord adds or repo adds support for new interaction type:
- Distinctive: line 70
add subtype class if needed
- Distinctive: line 95
avoid unnecessarily slow cache lookups that delay interaction handling
- Distinctive: line 105
Keep these facts straight:
- Distinctive: line 114
If change touches application command routing, inspect both:
- Distinctive: line 121
When payload provides users or members:
- Distinctive: line 127
When payload provides entitlements:
- Distinctive: line 131
Do not assume interaction payload is only for immediate response.
- Distinctive: line 163
If interaction response uses components or modals:
- Distinctive: line 177
Do not unify them by shoving shared semantics into wrong layer.
- Distinctive: line 185
Stop if you see:
≈ “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: interaction-flow-keeper
Use this skill when work touches:
src/Discord/Parts/Interactions/*src/Discord/WebSockets/Events/InteractionCreate.php- application command registration or autocomplete routing
- modal or component interaction response behavior
This is typed-interaction flow skill. Load it when work affects how interactions are received, interpreted, routed, or answered.
Goal
Keep interactions as a coherent pipeline:
- gateway payload enters through
InteractionCreate - payload is typed into correct interaction subclass
- resolved data warms caches
- registered command callbacks route correctly
- response builders and helpers stay aligned with interaction protocol
Read in this order
src/Discord/Parts/Interactions/Interaction.phpsrc/Discord/WebSockets/Events/InteractionCreate.phpsrc/Discord/Helpers/RegisteredCommand.php- Related request data parts under
src/Discord/Parts/Interactions/Request/* - Outbound builders:
src/Discord/Builders/CommandBuilder.phpsrc/Discord/Builders/ModalBuilder.php- component builders when component responses matter
- Command repositories:
src/Discord/Repository/Interaction/GlobalCommandRepository.phpsrc/Discord/Repository/Guild/GuildCommandRepository.php
Core contract
Interaction flow in this repo has two distinct sides:
Inbound
- gateway dispatch handled by
InteractionCreate Interaction::TYPESchooses concrete subtype- nested data is exposed as typed interaction request parts
- resolved users/members/entitlements are cached
Outbound
- interaction response helpers or builders produce protocol-correct payloads
- commands are declared with command builders/repositories
- autocomplete and modal flows use interaction response types and component/modals builders
Do not mix inbound part modeling with outbound builder modeling.
Typing rules
Interaction::TYPES is central
If Discord adds or repo adds support for new interaction type:
- update
Interaction::TYPES - add subtype class if needed
- inspect
InteractionCreate - inspect builder/response paths if outbound behavior changes too
Resolved data should not stay loose if typed part exists
Interaction and its request data parts should expose:
- users
- members
- channels
- roles
- options
through typed parts or typed collections where repo already has models.
InteractionCreate rules
This handler is latency-sensitive and still responsible for cache correctness.
Preserve these patterns:
- type interaction early
- cache resolved users
- cache resolved members when guild/member context exists
- avoid unnecessarily slow cache lookups that delay interaction handling
- cache entitlements
- route registered command execution/autocomplete callbacks
The handler already overrides some cache behavior to stay fast. Do not "clean it up" into slower generic behavior without understanding timing tradeoffs.
Registered command routing rules
There is an interaction-specific registered command tree in RegisteredCommand.
Keep these facts straight:
- this is separate from prefix-command
CommandClient\Command Discord::listenCommand()populatesapplication_commandsInteractionCreateroutes slash/autocomplete events into that treeRegisteredCommandsupports nested subcommand trees- autocomplete uses
suggest() - execution uses
execute()
If change touches application command routing, inspect both:
Discord::listenCommand()pathInteractionCreatecallback routing path
Resolved data and cache rules
When payload provides users or members:
- warm global user cache
- warm guild member cache when guild is present
- preserve interaction speed by preferring cheap access patterns
When payload provides entitlements:
- sync them into application entitlements repo
Do not assume interaction payload is only for immediate response. It also updates local state for later code.
Performance rules
Interaction code has less patience for extra work than many other gateway paths.
Prefer:
- type from payload
- cache from payload
- direct route to callback
Avoid:
- broad cache scans
- avoidable REST fetches
- generic helper usage if it adds measurable delay in hot path
Outbound response rules
Use builders where they exist
- command definitions:
CommandBuilder - modals:
ModalBuilder - message/component payloads: message/component builders
Keep response type constants as public vocabulary
Interaction defines response type constants. Use them to keep protocol semantics readable.
Modal and component usage constraints matter
If interaction response uses components or modals:
- validate allowed component contexts
- preserve nested
type+dataresponse shape
Boundaries to preserve
Interaction system vs prefix command system
They are different layers:
- application commands / autocomplete / modals route through
RegisteredCommandand interaction parts - message-prefix commands route through
DiscordCommandClientandCommandClient\Command
Do not unify them by shoving shared semantics into wrong layer. Shared ideas may exist, but execution paths are different.
Interaction part vs message part
An interaction may reference a message, but it is not a message event. Keep response and request semantics on interaction types.
Smells
Stop if you see:
- new interaction type added without
Interaction::TYPESupdate - resolved data left raw even though typed parts already exist
- application command routing pushed into prefix-command code
- autocomplete logic mixed with normal execute flow in confusing ways
- interaction handler slowed down by broad cache or REST work
- builders bypassed in favor of new raw response arrays for complex payloads
Checklist before commit
Interaction::TYPESstill complete for supported typesInteractionCreatestill types, caches, and routes correctly- resolved users/members/entitlements handled intentionally
- registered command execution and autocomplete still work through existing tree
- modal/component response behavior stays builder-friendly and protocol-correct
- boundaries with prefix command layer preserved
- docs/tests updated if public interaction behavior changed
Bottom line
Interaction code in this repo is both protocol parsing and fast command routing. Keep it typed, cache-aware, and quick.
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.

