Skip to main content
Galinum is operated by your own AI agent. The galinum skill packages that operation as a Claude Code skill: drop it into your repo, and any Claude Code session can announce a launch or promotion through a targeted web in-app or email campaign, optionally measure the outcome, or run goal-driven optimization — with every decision logged to your project’s agent-run history.

What the skill does

The skill routes each request to the smallest mode that satisfies it — it never adds a goal, A/B variants, or an optimization schedule you didn’t ask for:
  • Direct communication — “announce the new CSV export to free users.” Writes the copy, expresses the audience as trait/event targeting, launches one single-message campaign (no goal required), and reports the ordinary channel-specific engagement stats. Nothing is scheduled and nothing iterates — the communication is done once it’s live.
  • Outcome-measured communication — “…and tell me whether people start using it.” The same single message, plus one target event resolved against your real tracked events; when you ask, it evaluates deliveries against that event. No goal is created for this either.
  • Optimized communication — “work toward the activation goal”, “A/B test this.” The full loop against an active goal: recall past agent runs, observe the gap between behavior and the goal, propose weighted variants, act within the goal’s approval mode, schedule a check-in, then evaluate, reweight, and conclude.
In every mode the skill proofreads its copy, sanity-checks targeting against event and trait names that actually occur in your data, and checks audience overlap with campaigns already running. Goal guardrails are treated as binding in the optimized loop, and every step is written to POST /api/v1/agent-runs with its input, output, and rationale — direct communications log with no goalId — so the dashboard shows exactly what your session did and why.

Install

The skill is two Markdown files. Copy them into your repo at .claude/skills/galinum/:
Both files are below — copy them verbatim.
Then give the session the key:
The skill uses your project’s secret key (pk_…), not the publishable pk_pub_… key. Keep it in an environment variable — never commit it, and never paste it into a conversation. If it leaks, rotate it from Settings → Projects.

Use it

In any Claude Code session in that repo:
or just ask in plain language — “announce the new CSV export to free users”, “draft a message about the pricing change”, “did the promo move upgrades?”, “propose a campaign for the activation goal”, “how are our running campaigns doing?”. Who authorizes a launch depends on the mode: A direct communication needs no follow-up session. The optimized loop is iterative, and phase 5 makes you choose its sole evaluator. Either seed Galinum’s hosted queue and let the hosted runtime own every follow-up, or leave that queue untouched and re-invoke this customer-owned skill on a schedule (cron, CI, or Claude Code’s own scheduling). Never configure both for the same campaign.

Agent-facing endpoints

The skill teaches Claude these secret-key endpoints (full shapes ship in the skill’s references/api.md): See the API reference for the underlying API, and Authentication for how the two key types differ.