feat(resend): câbler les 5 skills officielles + protocole cascade CLI > MCP#188
Merged
Conversation
… > MCP - skills-sources.json : 5 entrées resend/resend-skills (resend, resend-cli, react-email, email-best-practices, agent-email-inbox), récupérables via `ulk skills update` - cli-registry.json : enrichir l'entrée `resend` — ajout install brew, `replaces_mcp: resend-mcp` + `fallback: mcp`, exemple `resend doctor` - _shared/resend-protocol.md : cascade canonique CLI > Skill > MCP/plugin, garde-fous obligatoires (whoami → doctor → dry-run → confirmation), refus d'envoi en boucle / domaine non vérifié / log de contenu - brigitte (24) + marketing-maestro (36) : `loads_skills:` + extends du nouveau protocole - install-reference.md : section dédiée à resend-skills × 5 avec cascade - registry.json/registry.md + commands/ : régénération (drop mathieu déjà supprimé du filesystem en 2e8927d, sync auto)
Fait suite au commit 59ec6c1 qui a touché framework/skills-sources.json + framework/tools/cli-registry.json sans régen credits. Workflow `drift` (.github/workflows/credits.yml) bloquait la PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Le plugin officiel Anthropic
resend@claude-plugins-official(sorti le 26 mai 2026) bundle le MCPresend-mcp(~25-30 tools) + les 5 skillsresend/resend-skills. ulk dispose déjà de la CLIresend(registry, priorityrecommended, utilisée par brigitte 24 + marketing-maestro 36) mais n'avait ni les skills ni de protocole structurant la cascade.Cette PR câble CLI + Skills (sans le plugin MCP, qui reste opt-in côté utilisateur) pour rester aligné sur la règle ulk « CLI available → use it (0 tokens). No CLI + MCP configured → use MCP. »
Changements
Skills (
framework/skills-sources.json)5 entrées
resend/resend-skillsrécupérables viaulk skills updateou cherry-picknpx skills add resend/resend-skills --skill <slug>:resend— SDK email API (send, broadcasts, contacts, domains, webhooks)resend-cli— guide l'agent à scripter la CLI proprement (pendant du niveau 1)react-email— composants React pour emails HTML responsifs cross-clientsemail-best-practices— deliverability (SPF/DKIM/DMARC, unsubscribe, anti-spam, a11y)agent-email-inbox— boîte de réception sécurisée pour agents IA (Resend Inbound)CLI (
framework/tools/cli-registry.json)Enrichissement de l'entrée
resend:brew install resend/cli/resend)replaces_mcp: "resend-mcp"+fallback: "mcp"+fallback_reasonresend doctor+resend webhooks listenProtocole (
framework/agents/_shared/resend-protocol.md)Nouveau document partagé, hérité par brigitte (24) et marketing-maestro (36) via
extends:.Cascade canonique :
resend(0 token)resend-cli(~2K tokens, guide l'usage CLI)resend(~3K tokens, SDK Node/Python sans MCP)resend@claude-plugins-official(MCP, +25-30 tools — opt-in explicite)Garde-fous obligatoires (l'envoi d'email est destructif + observable de l'extérieur) :
RESEND_API_KEYouresend login)resend whoami— confirmer le workspaceresend doctor— bloquer si rouge.ulk-reports/resend-preview-<ts>.jsonAskUserQuestionavec destinataires + sujet + expéditeur.ulk-reports/resend-log.jsonl(métadonnées uniquement, jamais le contenu)Interdictions strictes : pas d'envoi en boucle sans whitelist · pas de > 10 destinataires sans confirmation · pas de domaine non vérifié · jamais logger le contenu HTML/text · pas de fallback
sendmail/SMTP brut.Câblage agents
loads_skills: resend-cli, react-email, email-best-practicesloads_skills: resend-cli, resend, react-email, email-best-practicesextends: _shared/resend-protocol.mdDocumentation
.claude/rules/install-reference.md— section dédiéeresend-skills × 5documente la cascade, les hints d'invocation (brigitte, marketing-maestro, routine, killbill, ci-guard, ed209, mathieu, lovecraft) et le coût cache write du plugin MCP (mitigation--with-caveman-shrink)Side-effect des regen
La régénération
generate-registry.cjs+generate-commands.cjs(obligatoires après tout edit d'agent) a corrigé une dérive du commit2e8927d: l'agentmathieuy avait été supprimé du filesystem sans regen, le registre/commands restaient désynchronisés. Cette PR les remet en cohérence (count 95 → 94, dropframework/commands/agents/mathieu.md).Test plan
python3 -m json.tool framework/skills-sources.json framework/tools/cli-registry.json(validation JSON)node framework/cheatheet/generate-registry.cjs(94 agents indexés,loads_skillsresend visibles dansregistry.json)node framework/cheatheet/generate-commands.cjs(103 commands regénérés)cd framework/cli && go test ./... -count=1(suite Go verte)node --test framework/tests/cheatheet.test.mjs(28/30 pass — 2 fails pré-existants surmanaged-agents/, indépendants)node --test framework/tests/agents-golden.test.mjs(629/631 pass — 2 fails pré-existants surgeorges, indépendants)ulk skills update→ confirmer fetch des 5 slugsresend/resend-skillsRESEND_API_KEYabsent → confirmer warning + dégradation MarkdownRESEND_API_KEYvalide → confirmer cascadewhoami → doctor → AskUserQuestion → sendHors scope (PRs séparées si validé)
loads_skillssur routine (53), killbill (56), ci-guard (54), ed209 (52), mathieu (61), lovecraft (47) — câblage opt-in, demande des décisions par agent--with-resenddansinstall.shpour automatiserclaude plugin install resend@claude-plugins-official(active le MCP — coût cache write significatif, justifier au cas par cas)Sources
Generated by Claude Code