Skip to content

chore(skills): register recoup-platform-email-helper as a default sandbox skill#730

Merged
sweetmantech merged 2 commits into
mainfrom
chore/register-email-helper-skill
Jul 1, 2026
Merged

chore(skills): register recoup-platform-email-helper as a default sandbox skill#730
sweetmantech merged 2 commits into
mainfrom
chore/register-email-helper-skill

Conversation

@sweetmantech

@sweetmantech sweetmantech commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

What

One-line registration of the new recoup-platform-email-helper skill in lib/skills/defaultGlobalSkillRefs.ts, so installGlobalSkills provisions it into every session sandbox at create time (~/.agents/skills/recoup-platform-email-helper/).

Why

The helper (a zero-dep Node send-email.mjs) replaces agents' fragile hand-built curl … -d "{…}" email sends, the cause of the empty footer-only "Message from Recoup" emails. It isn't available in sandboxes until it's in this default set.

Merge order

Land recoupable/skills#67 first. installGlobalSkills runs npx skills add recoupable/skills --skill recoup-platform-email-helper, which throws on an unknown name (per the comment in this file / recoupable/chat#1815).

Part of recoupable/chat#1829. Base test per repo convention.

🤖 Generated with Claude Code


Summary by cubic

Registers recoup-platform-email-helper as a default global skill so installGlobalSkills provisions it into every session sandbox at create time. Pairs with recoup-platform-api-access to send email via a tested Node helper instead of fragile curl payloads. Also adds a test to assert the email helper is included in defaults.

Written for commit 96ce178. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api Ready Ready Preview Jul 1, 2026 12:17am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@sweetmantech, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 48 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2caa28f4-9e8e-4c7b-a6df-6dd0e2057a95

📥 Commits

Reviewing files that changed from the base of the PR and between f8d5dc2 and 96ce178.

⛔ Files ignored due to path filters (1)
  • lib/skills/__tests__/defaultGlobalSkillRefs.test.ts is excluded by !**/*.test.*, !**/__tests__/** and included by lib/**
📒 Files selected for processing (1)
  • lib/skills/defaultGlobalSkillRefs.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/register-email-helper-skill

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Confidence score: 5/5

  • In lib/skills/defaultGlobalSkillRefs.ts, the tests currently don’t assert that recoup-platform-email-helper is included, so a future refactor could accidentally drop this default ref without CI catching it; add an explicit assertion for this skill before merging to close the coverage gap.

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread lib/skills/defaultGlobalSkillRefs.ts
sweetmantech and others added 2 commits June 30, 2026 19:14
…dbox skill

Provisions the new Node email helper (recoupable/skills) into every session
sandbox at create time via installGlobalSkills, so task agents can send email
through a tested script instead of hand-building JSON in bash.

Merge order: the recoupable/skills PR adding the skill must land first —
installGlobalSkills runs `npx skills add … --skill recoup-platform-email-helper`,
which throws on an unknown name.

Ref: recoupable/chat#1829

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… skill

Lock the entry #730 adds so its removal is caught. (skills#67 merged, so the
npx skills add --skill recoup-platform-email-helper install now resolves.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sweetmantech

Copy link
Copy Markdown
Contributor Author

Rebased onto main + verified — 96ce1784

Rebased onto latest main (was BEHIND by the #729/#731 merges; no conflict — #730 only touches lib/skills/defaultGlobalSkillRefs.ts). Added a test asserting recoup-platform-email-helper is in DEFAULT_GLOBAL_SKILL_REFS (the entry previously had no assertion covering it). Skills suite green (49); tsc + eslint clean.

Roll-over from the merged PRs — none needed. #730 only registers the skill slug; it doesn't touch the email endpoint (#729/#731) or the DB (#37/#38). The one hard dependency is skills#67 — the helper must exist so the install resolves — which is merged and verified below.

Verification approach. This change is exercised at sandbox-provision time: installGlobalSkills runs, per ref, npx skills add recoupable/skills --skill <name> … --copy and throws on the first failure. So the real risk #730 introduces is purely whether that exact command now resolves the new skill. Ran it against the live registry:

$ npx skills add recoupable/skills --skill recoup-platform-email-helper --agent amp -g -y --copy
◇  Found 32 skills
◇  Installation complete
✓ recoup-platform-email-helper (copied) → ~/.agents/skills/recoup-platform-email-helper
└  Done!

Resolves and installs cleanly → sandbox provisioning won't throw, and every new sandbox now ships the email helper next to recoup-platform-api-access.

Preview: https://api-fumropx26-recoup.vercel.app — Ready, built from 96ce1784. Note: the registration only manifests when a sandbox is actually provisioned (a background / agent-run path), so there's no single preview HTTP request that surfaces it — the exact npx skills add above is the meaningful proxy for what the preview build will run.

@sweetmantech

Copy link
Copy Markdown
Contributor Author

End-to-end verified in a live preview sandbox 🎯

Fired a real task run against the preview deployment (POST /api/chat/runs, built from 96ce1784) under the personal account, recipient sweetmantech@gmail.com only. This provisions a sandbox from this PR's code — so the registration is actually exercised.

The agent, with no curl fallback, ran:

RECOUP_API_BASE=https://api-fumropx26-recoup.vercel.app \
node /home/vercel-sandbox/.agents/skills/recoup-platform-email-helper/scripts/send-email.mjs \
  --to sweetmantech@gmail.com --subject "HelloWorld-PVW-…" …

What this proves, in order:

Control: a run fired against prod (no #730) with the same preview-base-URL instruction produced rejected (401) rows for the preview attempts — confirming the effect is specific to the preview build carrying this PR. All test rows deleted.

tl;dr: register → install-at-provision → agent picks up the helper → reliable send, verified in a real sandbox. Ready to merge.

@sweetmantech sweetmantech merged commit 148a740 into main Jul 1, 2026
5 checks passed
sweetmantech added a commit that referenced this pull request Jul 1, 2026
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.

1 participant