Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Lonsdale201/wp-agent-skills --skill fluentcrm-custom-optin-formsgit clone --depth 1 https://github.com/Lonsdale201/wp-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lonsdale201/wp-agent-skills/fluentcrm-custom-optin-forms)<a href="https://agentmods.dev/skills/lonsdale201/wp-agent-skills/fluentcrm-custom-optin-forms"><img src="https://agentmods.dev/badge/skills/lonsdale201/wp-agent-skills/fluentcrm-custom-optin-forms/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lonsdale201/wp-agent-skills/fluentcrm-custom-optin-forms"><img src="https://agentmods.dev/badge/skills/lonsdale201/wp-agent-skills/fluentcrm-custom-optin-forms.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00128 | $0.02142 |
| Opus 5 | $0.00064 | $0.01071 |
| Sonnet 5 | $0.00026 | $0.00428 |
| Haiku 4.5 | $0.00013 | $0.00214 |
Grade A, and why
fluentcrm-custom-optin-forms scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 206 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FluentCRM custom subscription and double opt-in forms
Use this skill for a public form or API that owns its user interface but stores contacts in FluentCRM. Keep the transport, consent policy, CRM mutation, email request, and confirmation side effects separate.
Read implementation-contract.md before writing the endpoint or changing an existing contact's status.
Core contract
FluentCrmApi('contacts')->createOrUpdate() does not send a double opt-in email.
The canonical core flow is:
$contact = FluentCrmApi('contacts')->createOrUpdate([
'email' => sanitize_email($email),
'status' => 'pending',
'source' => 'my-plugin',
'lists' => $serverOwnedListIds,
'tags' => $serverOwnedTagIds,
], false, false);
if ($contact && $contact->status === 'pending') {
$contact->sendDoubleOptinEmail();
}
FluentCRM then builds its tokenized confirmation URL, handles the public
confirmation request, changes pending to subscribed, resumes applicable
funnels, records a system note, and fires
fluent_crm/subscriber_confirmed_via_double_optin. Do not create a second token,
confirmation table, or confirmation route around this lifecycle.
Double opt-in, global/list-specific email settings, and the confirmation hook are Free-core features. Site code and add-ons may filter post-confirmation routing, but a custom signup integration must not require Pro for the base flow.
Workflow
- Require a clear affirmative consent value. Store the exact consent text or policy version and submission timestamp in the application's audit store when that evidence matters; FluentCRM does not preserve the original form wording.
- Validate and normalize the email, then sanitize only explicitly mapped name
and custom fields. Never accept
status,user_id,source, list IDs, tag IDs, or detach operations directly from the public payload. - Resolve public choices through a server-owned map and verify every resulting list/tag exists. Passing strings to FluentCRM's attach helpers can create new lists/tags; numeric IDs are not an authorization boundary.
- Inspect the existing contact before writing and apply the status matrix below.
- Call
createOrUpdate()with$forceUpdate = false. Attach the DOI-driving list before sending so list-specific settings can be selected. - Call
sendDoubleOptinEmail()only when the resulting status ispending. - Return the same generic accepted response for existing, new, suppressed, and throttled addresses. Log bounded operational failures privately.
- Put verified-only tags or downstream work on the confirmation hook, not on the initial form request.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 206 lines · 128 tokens per session scan A 6cb117eb398f
fluentcrm-custom-optin-forms is a skill published in the GitHub repository Lonsdale201/wp-agent-skills (22 stars, last pushed 2d ago), licensed MIT. It adds 128 tokens to every session and 2,142 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
commerce-app-business-config
Manage custom business configuration in an Adobe Commerce app. Use when the user wants to add, modify, or remove merchant-configurable settings (config fields, admin config, store configuration) exposed through Commerce Admin. Creates typed config fields (text, password, email, url, tel, boolean, list) in…
doku-payment-gateway
Expert guide for integrating DOKU Payment Gateway (Jokul API v2). Covers HMAC-SHA256 header signature calculation, Checkout & Direct APIs (VA, QRIS, E-Wallet, Credit Card), webhook notification verification, and sandbox/production setup / Panduan ahli integrasi DOKU Payment Gateway.
webhook-integration
Complete guide for setting up and handling Dodo Payments webhooks for real-time payment event notifications.
better-auth-integration
Guide only for applications using @dodopayments/better-auth, covering authenticated customer sync, checkout, portal access, usage ingestion, and verified webhook callbacks.
newebpay-checkout
A checkout integration for NewebPay’s MPG payment service, which provides an online payment page. It includes encrypted payment data, an HTML form submission, and callback endpoints for payment results.
kryptogo-pay-webhook
A callback endpoint for KryptoGO Payment, which sends your application updates about a payment. It handles pending, successful, expired, insufficient, and refunded outcomes.