Skip to content

feat(resend): câbler les 5 skills officielles + protocole cascade CLI > MCP#188

Merged
izo merged 2 commits into
mainfrom
claude/resend-mcp-agents-CzgZl
May 28, 2026
Merged

feat(resend): câbler les 5 skills officielles + protocole cascade CLI > MCP#188
izo merged 2 commits into
mainfrom
claude/resend-mcp-agents-CzgZl

Conversation

@izo
Copy link
Copy Markdown
Owner

@izo izo commented May 28, 2026

Contexte

Le plugin officiel Anthropic resend@claude-plugins-official (sorti le 26 mai 2026) bundle le MCP resend-mcp (~25-30 tools) + les 5 skills resend/resend-skills. ulk dispose déjà de la CLI resend (registry, priority recommended, 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-skills récupérables via ulk skills update ou cherry-pick npx 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-clients
  • email-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 :

  • Install brew ajouté (brew install resend/cli/resend)
  • replaces_mcp: "resend-mcp" + fallback: "mcp" + fallback_reason
  • Exemple resend doctor + resend webhooks listen
  • Note clarifie la couverture (emails send + webhooks complets, autres partiels)

Protocole (framework/agents/_shared/resend-protocol.md)

Nouveau document partagé, hérité par brigitte (24) et marketing-maestro (36) via extends:.

Cascade canonique :

  1. CLI native resend (0 token)
  2. Skill resend-cli (~2K tokens, guide l'usage CLI)
  3. Skill resend (~3K tokens, SDK Node/Python sans MCP)
  4. Plugin Anthropic 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) :

  1. Auth (RESEND_API_KEY ou resend login)
  2. resend whoami — confirmer le workspace
  3. resend doctor — bloquer si rouge
  4. Dry-run / preview JSON dans .ulk-reports/resend-preview-<ts>.json
  5. AskUserQuestion avec destinataires + sujet + expéditeur
  6. Test unitaire avant batch broadcast
  7. Log dans .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

  • brigitte (24)loads_skills: resend-cli, react-email, email-best-practices
  • marketing-maestro (36)loads_skills: resend-cli, resend, react-email, email-best-practices
  • Tous deux héritent du protocole via extends: _shared/resend-protocol.md

Documentation

  • .claude/rules/install-reference.md — section dédiée resend-skills × 5 documente 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 commit 2e8927d : l'agent mathieu y avait été supprimé du filesystem sans regen, le registre/commands restaient désynchronisés. Cette PR les remet en cohérence (count 95 → 94, drop framework/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_skills resend visibles dans registry.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 sur managed-agents/, indépendants)
  • node --test framework/tests/agents-golden.test.mjs (629/631 pass — 2 fails pré-existants sur georges, indépendants)
  • Manuel : ulk skills update → confirmer fetch des 5 slugs resend/resend-skills
  • Manuel : invoquer brigitte avec RESEND_API_KEY absent → confirmer warning + dégradation Markdown
  • Manuel : invoquer brigitte avec RESEND_API_KEY valide → confirmer cascade whoami → doctor → AskUserQuestion → send

Hors scope (PRs séparées si validé)

  • Hints loads_skills sur routine (53), killbill (56), ci-guard (54), ed209 (52), mathieu (61), lovecraft (47) — câblage opt-in, demande des décisions par agent
  • Flag --with-resend dans install.sh pour automatiser claude plugin install resend@claude-plugins-official (active le MCP — coût cache write significatif, justifier au cas par cas)

Sources


Generated by Claude Code

claude added 2 commits May 28, 2026 14:37
… > 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.
@izo izo marked this pull request as ready for review May 28, 2026 18:46
@izo izo merged commit db19f9d into main May 28, 2026
3 checks passed
@izo izo deleted the claude/resend-mcp-agents-CzgZl branch May 28, 2026 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants