plugin: add messaging collaboration skills#141
Conversation
Why: Add the phase-one and phase-two Socket workflows for supported chat, calling, business-messaging, and collaboration integrations. Verification: Ran skill validation, plugin validation, marketplace validation, and shared-version inventory.
📝 WalkthroughWalkthroughAdds the guidance-focused ChangesMessaging collaboration skills plugin
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/messaging-collaboration-skills/AGENTS.md`:
- Around line 23-25: Update the validation commands in AGENTS.md to assume
execution from the repository root: pass the full
plugins/messaging-collaboration-skills/skills/<skill-name> path to
quick_validate.py and retain the root-relative
scripts/validate_socket_metadata.py invocation. Document the repository-root
working-directory requirement alongside these commands.
In `@plugins/messaging-collaboration-skills/skills/discord-app-workflow/SKILL.md`:
- Line 10: Update the app-selection guidance in the Discord app workflow
instructions to separate app type from installation context: identify bot or
Activity as the app type, then specify user-installed, guild-installed, or both
as independent installation targets. Avoid wording that presents these
categories as mutually exclusive.
In `@plugins/messaging-collaboration-skills/skills/teams-agent-workflow/SKILL.md`:
- Around line 10-19: Update the Handoffs guidance to limit SDK-specific language
references to C#, TypeScript, and Python. Remove Java and Swift from the
selected SDK/server workflow wording, or explicitly present them only as generic
server-stack options rather than supported SDK languages.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 4831aff9-511c-4a6f-9d04-1d7e8cd405cd
⛔ Files ignored due to path filters (9)
plugins/agent-portability-skills/uv.lockis excluded by!**/*.lockplugins/apple-dev-skills/uv.lockis excluded by!**/*.lockplugins/cardhop-app/mcp/uv.lockis excluded by!**/*.lockplugins/messaging-collaboration-skills/assets/messaging-collaboration-icon.svgis excluded by!**/*.svgplugins/productivity-skills/uv.lockis excluded by!**/*.lockplugins/python-skills/uv.lockis excluded by!**/*.lockplugins/things-app/mcp/uv.lockis excluded by!**/*.lockplugins/things-app/uv.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lock
📒 Files selected for processing (47)
.agents/plugins/marketplace.jsonREADME.mdROADMAP.mddocs/maintainers/messaging-collaboration-skills-plugin-plan.mdplugins/agent-portability-skills/.codex-plugin/plugin.jsonplugins/agent-portability-skills/pyproject.tomlplugins/agentdeck/.codex-plugin/plugin.jsonplugins/android-dev-skills/.codex-plugin/plugin.jsonplugins/apple-creator-studio-skills/.codex-plugin/plugin.jsonplugins/apple-dev-skills/.codex-plugin/plugin.jsonplugins/apple-dev-skills/pyproject.tomlplugins/cardhop-app/.codex-plugin/plugin.jsonplugins/cardhop-app/mcp/pyproject.tomlplugins/cloud-deployment-skills/.codex-plugin/plugin.jsonplugins/cloud-inference-skills/.codex-plugin/plugin.jsonplugins/dotnet-skills/.codex-plugin/plugin.jsonplugins/game-dev-skills/.codex-plugin/plugin.jsonplugins/messaging-collaboration-skills/.codex-plugin/plugin.jsonplugins/messaging-collaboration-skills/AGENTS.mdplugins/messaging-collaboration-skills/skills/apple-communication-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/choose-platform-integration/SKILL.mdplugins/messaging-collaboration-skills/skills/conversation-state-human-handoff/SKILL.mdplugins/messaging-collaboration-skills/skills/discord-app-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/google-meet-collaboration-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/slack-app-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/sms-mms-rcs-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/teams-agent-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/telegram-bot-workflow/SKILL.mdplugins/messaging-collaboration-skills/skills/webhook-and-event-lifecycle/SKILL.mdplugins/messaging-collaboration-skills/skills/whatsapp-business-workflow/SKILL.mdplugins/network-protocol-skills/.codex-plugin/plugin.jsonplugins/productivity-skills/.codex-plugin/plugin.jsonplugins/productivity-skills/pyproject.tomlplugins/python-skills/.codex-plugin/plugin.jsonplugins/python-skills/pyproject.tomlplugins/reverse-engineering-skills/.codex-plugin/plugin.jsonplugins/rust-skills/.codex-plugin/plugin.jsonplugins/server-side-jvm/.codex-plugin/plugin.jsonplugins/server-side-swift/.codex-plugin/plugin.jsonplugins/spotify/.codex-plugin/plugin.jsonplugins/swift-lang/.codex-plugin/plugin.jsonplugins/swiftasb-skills/.codex-plugin/plugin.jsonplugins/things-app/.codex-plugin/plugin.jsonplugins/things-app/mcp/pyproject.tomlplugins/things-app/pyproject.tomlplugins/web-dev-skills/.codex-plugin/plugin.jsonpyproject.toml
| ```bash | ||
| uv run python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" skills/<skill-name> | ||
| uv run scripts/validate_socket_metadata.py |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Make the validation working directory explicit.
skills/<skill-name> is plugin-relative, while scripts/validate_socket_metadata.py is repository-root-relative. As written, both commands cannot reliably run from the same directory. Document a repository-root invocation and use the full plugin path for skill validation.
Proposed fix
+ # Run from the Socket repository root.
-uv run python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" skills/<skill-name>
+uv run python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" plugins/messaging-collaboration-skills/skills/<skill-name>
uv run scripts/validate_socket_metadata.py📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ```bash | |
| uv run python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" skills/<skill-name> | |
| uv run scripts/validate_socket_metadata.py | |
| # Run from the Socket repository root. | |
| uv run python "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" plugins/messaging-collaboration-skills/skills/<skill-name> | |
| uv run scripts/validate_socket_metadata.py |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/messaging-collaboration-skills/AGENTS.md` around lines 23 - 25,
Update the validation commands in AGENTS.md to assume execution from the
repository root: pass the full
plugins/messaging-collaboration-skills/skills/<skill-name> path to
quick_validate.py and retain the root-relative
scripts/validate_socket_metadata.py invocation. Document the repository-root
working-directory requirement alongside these commands.
|
|
||
| ## Workflow | ||
|
|
||
| 1. Choose a bot, user-installed app, guild-installed app, or Activity. Do not select Gateway when signed HTTP interactions are sufficient. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
curl -fsSL https://docs.discord.com/developers/quick-start/overview-of-apps \
| rg -n "Bots|Activities|installation|user-installed|guild-installed"Repository: gaelic-ghost/socket
Length of output: 50376
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== SKILL.md excerpt ==\n'
cat -n plugins/messaging-collaboration-skills/skills/discord-app-workflow/SKILL.md | sed -n '1,40p'
printf '\n== Discord docs excerpt around app types/install targets ==\n'
curl -fsSL https://docs.discord.com/developers/quick-start/overview-of-apps \
| python3 - <<'PY'
import sys, re
html = sys.stdin.read()
# Strip tags very roughly for targeted inspection.
text = re.sub(r'<script[\s\S]*?</script>', '', html)
text = re.sub(r'<style[\s\S]*?</style>', '', text)
text = re.sub(r'<[^>]+>', '\n', text)
text = re.sub(r'\n{3,}', '\n\n', text)
for needle in [
'The Three Types of Discord Apps',
'Bots',
'Activities',
'Where Apps Install',
'App Type',
'Install Target',
'Bot (guild-installed)',
'Bot (user-installed)',
'Activity',
]:
idx = text.find(needle)
if idx != -1:
start = max(0, idx - 500)
end = min(len(text), idx + 1200)
print(f"\n--- {needle} ---")
print(text[start:end])
PYRepository: gaelic-ghost/socket
Length of output: 1897
Separate app type from installation context.
plugins/messaging-collaboration-skills/skills/discord-app-workflow/SKILL.md:10 Line 10 should distinguish app type (bot or Activity) from installation target (user install, guild install, or both); the current wording reads like these are mutually exclusive choices.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/messaging-collaboration-skills/skills/discord-app-workflow/SKILL.md`
at line 10, Update the app-selection guidance in the Discord app workflow
instructions to separate app type from installation context: identify bot or
Activity as the app type, then specify user-installed, guild-installed, or both
as independent installation targets. Avoid wording that presents these
categories as mutually exclusive.
| 1. Choose Teams SDK for a Teams-first app or Microsoft 365 Agents SDK for a multi-channel agent runtime; document the reason and current supported language. | ||
| 2. Define tenant, Microsoft Entra identity, app registration, manifest, installation, and administrator-consent needs before implementation. | ||
| 3. Treat message activities, Adaptive Card actions, task modules, and agent tool calls as separate authorized input surfaces. | ||
| 4. Verify inbound activity authenticity using the selected Microsoft runtime, preserve conversation and tenant context, and make outbound/proactive messaging consent-aware. | ||
| 5. Provide a clear human escalation and error experience inside Teams rather than leaking runtime failures to users. | ||
| 6. Validate sideloaded development behavior, tenant install, identity failure, card-submit authorization, proactive-send preconditions, and production deployment review. | ||
|
|
||
| ## Handoffs | ||
|
|
||
| Use the current [Teams bot overview](https://learn.microsoft.com/en-us/microsoftteams/platform/bots/overview) and the documented SDK comparison before implementation. Hand service code to the selected TypeScript, Python, .NET, Java, or Swift server workflow. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
curl -fsSL https://learn.microsoft.com/en-us/microsoftteams/platform/teams-sdk/teams/sdk-comparison \
| rg -n "C#|TypeScript|Python|Java|Swift"Repository: gaelic-ghost/socket
Length of output: 1191
🏁 Script executed:
sed -n '1,40p' plugins/messaging-collaboration-skills/skills/teams-agent-workflow/SKILL.mdRepository: gaelic-ghost/socket
Length of output: 1569
🏁 Script executed:
fd -a 'SKILL.md' plugins/messaging-collaboration-skills/skills | rg 'java|swift|typescript|python|dotnet|csharp|.NET' -nRepository: gaelic-ghost/socket
Length of output: 157
Limit the language guidance to supported SDKs.
The Teams SDK / Microsoft 365 Agents SDK comparison only lists C#, TypeScript, and Python. Remove Java and Swift from the SDK-facing wording here, or rephrase this handoff so they’re clearly just generic server-stack options.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/messaging-collaboration-skills/skills/teams-agent-workflow/SKILL.md`
around lines 10 - 19, Update the Handoffs guidance to limit SDK-specific
language references to C#, TypeScript, and Python. Remove Java and Swift from
the selected SDK/server workflow wording, or explicitly present them only as
generic server-stack options rather than supported SDK languages.
Source: Learnings
Summary
Verification
Summary by CodeRabbit
New Features
Documentation
Chores