Token导航 LogoToken导航TokenDH.com
开发只读github未标认证来源可访问许可证需确认审计提醒

personize-signal拟人化信号

Agent Skill

personize-signal 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

242

周安装

10

GitHub Stars

公开资料未说明

下载量

79
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:personize-signal(拟人化信号)
来源仓库:https://github.com/personizeai/personize-skills
仓库路径:skills/personize-signal
安装命令:
npx skills add https://github.com/personizeai/personize-skills --skill personize-signal
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/personizeai/personize-skills --skill personize-signal

简介

用于处理 GitHub 仓库、Issue、Pull Request 等协作信息。

  • 适合围绕代码变更、仓库状态进行整理和分析。
  • 通过 GitHub 安装,支持主流 AI 编程工具集成。
  • 使用前需确认权限范围和仓库维护状态。personize-signal 属于开发类 Skill,可作为该场景下的辅助能力补充。
  • 建议结合原始 README 核验具体用法,避免触发不必要的命令执行。

SKILL.md

Skill: Personize Signal

Set up AI-powered notifications that decide IF, WHAT, WHEN, and HOW to notify each person. Signal uses Personize memory and governance to send the right message, to the right person, at the right time — or stay quiet when silence is better.

What This Skill Solves

Most notification systems are dumb rules: "if event X, send template Y." They don't know who the person is, what they care about, what was already sent, or whether this notification will help or annoy.

Signal replaces rules with intelligence:

  • IF — Should this person be notified at all? (AI scores 0-100 based on full entity context)
  • WHAT — What should the message say? (Uniquely personalized using everything known about the person)
  • WHEN — Now, or later in a digest? (AI decides priority: immediate / standard / digest)
  • HOW — Which channel? (Email, Slack, in-app, SMS — chosen based on context)

The intelligence comes from Personize SDK — memory, governance, and AI. Signal packages the orchestration into a reusable engine.


When This Skill is Activated

If the developer mentions notifications, alerts, or messaging, start with ASSESS.

If the developer has a specific question (e.g., "how do I add a Slack channel to Signal"), jump to the relevant action.

If the developer wants to understand the architecture, walk them through the engine flow.


When NOT to Use This Skill

  • Need raw memory operations → use entity-memory
  • Need shared workspaces without notifications → use collaboration
  • Need governance rules without notifications → use governance
  • Need CRM data sync → use entity-memory (CRM sync section)

Actions

ActionWhen to Use
ASSESSUnderstand their stack, events, channels, and recipients
CONFIGUREGenerate Signal initialization code
CONNECTScaffold event hooks for their framework
GOVERNSet up governance rules for notification guidelines
TESTRun a dry-run evaluation and verify the decision

Action: ASSESS

Understand what the developer needs before writing code.

Questions to Ask

  1. What events matter? — What happens in your product that should potentially trigger a notification?

- User lifecycle: signup, login, trial expiry, churn risk - Usage: milestones, drops, feature adoption - CRM: deal changes, meeting outcomes, support tickets - System: sync complete, errors, billing events

  1. Who are the recipients? — Who gets notified?

- End users (in-app, email) - Internal team (Slack, email) - Both (different channels)

  1. What channels? — How should messages be delivered?

- Email (SES, SendGrid) - Slack (webhook) - In-app (bridge to existing UI) - SMS (Twilio — community channel)

  1. What governance rules exist? — What constraints apply?

- Max notifications per day per user - Quiet hours / time zones - Content policies (tone, compliance) - Opt-out preferences

  1. What framework? — Where do events originate?

- Express.js / Fastify / Next.js / NestJS - Trigger.dev / n8n / cron jobs - Webhook-based (external system pushes events)

Output

After assessment, summarize:

  • Events to handle (with types like user.signup, usage.drop)
  • Channels needed
  • Governance constraints
  • Framework/integration approach

Action: CONFIGURE

Generate the Signal initialization code based on the assessment.

Minimal Setup

import { Personize } from '@personize/sdk';
import { Signal, ConsoleChannel, ManualSource } from '@personize/signal';

const client = new Personize({ secretKey: process.env.PERSONIZE_SECRET_KEY! });
const manual = new ManualSource();

const signal = new Signal({
    client,
    channels: [new ConsoleChannel()],
    sources: [manual],
});

await signal.start();

Production Setup

import { Personize } from '@personize/sdk';
import {
    Signal,
    ManualSource,
    SesChannel,       // or SendGridChannel
    SlackChannel,
    InAppChannel,
} from '@personize/signal';

const client = new Personize({ secretKey: process.env.PERSONIZE_SECRET_KEY! });
const manual = new ManualSource();

const signal = new Signal({
    client,
    channels: [
        new SesChannel({ sourceEmail: 'notifications@yourapp.com' }),
        new SlackChannel({ webhookUrl: process.env.SLACK_WEBHOOK! }),
        new InAppChannel(async (recipient, payload) => {
            // Bridge to your existing notification UI
            await yourNotificationService.create({
                userId: recipient.userId,
                title: payload.subject,
                body: payload.body,
            });
            return { success: true, channel: 'in-app', timestamp: new Date().toISOString() };
        }),
    ],
    sources: [manual],
    engine: {
        dailyCap: 5,                              // max per user per day
        deduplicationWindowMs: 6 * 60 * 60 * 1000, // 6 hours
        memorize: true,                            // feedback loop
        workspaceUpdates: true,                    // track in workspace
    },
});

await signal.start();

// Schedule daily digests (weekdays 9 AM)
signal.schedule('daily-digest', '0 9 * * 1-5', async () => {
    const users = await getActiveUsers();
    await signal.digest.runBatch(users);
});

Configuration Reference

OptionDefaultDescription
engine.dailyCap5Max notifications per email per day
engine.deduplicationWindowMs6hSkip same event type within window
engine.memorizetrueRecord sent notifications in memory
engine.workspaceUpdatesfalseCreate workspace entries on SEND/DEFER
engine.concurrency5Max parallel evaluations
engine.maxEvaluationsPerMinute20Rate limit for batch processing

Action: CONNECT

Scaffold event hooks that push product events into Signal.

Express.js Pattern

// event-hooks.ts — fire-and-forget, never throws, never blocks
import { ManualSource } from '@personize/signal';

const manual = new ManualSource(); // same instance used in Signal config

export const EventHooks = {
    async onUserSignup(email: string, data?: Record<string, unknown>) {
        manual.emit({
            id: `evt_${Date.now()}_${Math.random().toString(36).substring(2, 6)}`,
            type: 'user.signup',
            email,
            data: data || {},
            timestamp: new Date().toISOString(),
            metadata: { team: 'product' },
        });
    },

    async onUsageDrop(email: string, data: { metric: string; dropPercent: number }) {
        manual.emit({
            id: `evt_${Date.now()}_${Math.random().toString(36).substring(2, 6)}`,
            type: 'usage.drop',
            email,
            data,
            timestamp: new Date().toISOString(),
            metadata: { team: 'product' },
        });
    },
};

Using in Controllers

// In your signup controller
router.post('/signup', async (req, res) => {
    const user = await createUser(req.body);
    EventHooks.onUserSignup(user.email, { plan: user.plan }).catch(() => {});
    res.json(user);
});

Webhook Source (external events)

import { WebhookSource } from '@personize/signal';

const webhookSource = new WebhookSource({
    path: '/webhooks/signal',
    secret: process.env.WEBHOOK_SECRET,
    parser: (body) => ({
        id: body.id || `wh_${Date.now()}`,
        type: body.event || 'webhook.received',
        email: body.email || body.user_email,
        data: body.data || body,
        timestamp: body.timestamp || new Date().toISOString(),
    }),
});

// Mount on Express
app.use(webhookSource.middleware());

Action: GOVERN

Set up governance rules that guide Signal's AI decisions.

Governance Variables to Create

Use the Personize web app or SDK to create these governance variables:

1. Notification Guidelines (tag: notifications)

Notification Policy:
- Never notify about events the user has already seen in the product
- Prioritize actionable insights over informational updates
- Match tone to the urgency: critical = direct, informational = friendly
- Always include a specific next step, not generic "check it out"
- Maximum 3 notifications per user per day (engine enforces 5 as hard cap)

2. Channel Routing (tag: notifications)

Channel Selection:
- Slack: For internal team alerts (sales, support, ops)
- Email: For user-facing notifications that need persistence
- In-app: For real-time product notifications when user is active
- Digest: For low-priority updates that can wait for weekly summary

3. Frequency Policy (tag: communications)

Communication Frequency:
- New users (< 30 days): Max 1 notification per day. Focus on onboarding milestones.
- Active users: Max 3 per week. Only high-signal events.
- At-risk users: Increase frequency for re-engagement. Max 1 per day.
- Churned users: Do not notify. Only send win-back campaigns via marketing.

How Governance Flows into Signal

Signal's engine calls smartGuidelines() and smartDigest() in step 3 (context assembly). The AI sees these governance rules alongside the entity's full context and makes decisions accordingly. No code changes needed — update governance variables and Signal adapts.


Action: TEST

Verify Signal is working with a dry-run evaluation.

Quick Test

const result = await signal.trigger({
    id: 'test_001',
    type: 'user.signup',
    email: 'test@example.com',
    data: { plan: 'trial', source: 'website' },
    timestamp: new Date().toISOString(),
});

console.log('Action:', result.action);    // SEND | DEFER | SKIP
console.log('Score:', result.score);      // 0-100
console.log('Reasoning:', result.reasoning);
console.log('SDK calls:', result.sdkCallsUsed);
console.log('Duration:', result.durationMs, 'ms');

What to Verify

  1. Pre-check works — Trigger the same event twice within 6 hours. Second should SKIP instantly (0 SDK calls).
  2. Daily cap works — Trigger 6 events for the same email. The 6th should SKIP.
  3. AI decision varies — Trigger different event types. Scores should vary based on context relevance.
  4. Feedback loop — After a SEND, check that the notification was memorized: client.memory.recall({query: 'signal:sent', email: '...'}).
  5. Dedup via memory — After step 4, trigger a similar event. The AI should reference the recently sent notification in its reasoning.

Console Channel for Testing

Use ConsoleChannel during development — it logs decisions without delivering:

const signal = new Signal({
    client,
    channels: [new ConsoleChannel()],  // logs to stdout
    sources: [manual],
});

Available Resources

ResourceContents
../../signal/README.mdFull Signal documentation — architecture, channels, sources, workspace, digest, cost controls
../../signal/CLAUDE.mdAI tool instructions for Signal package
../../signal/examples/quickstart/Minimal setup example
../../signal/examples/saas-onboarding/Signup → nurture → convert sequence
../../signal/examples/sales-alerts/Usage drop alerts to sales team
../../signal/examples/weekly-digest/Deferred items → compiled digest
../../signal/examples/multi-team/Product + Sales + Marketing on same records
../../signal/templates/CHANNEL_TEMPLATE.mdHow to build a new channel
../../signal/templates/SOURCE_TEMPLATE.mdHow to build a new source
recipes/quickstart.tsMinimal Signal setup recipe
recipes/multi-team.tsMulti-team configuration recipe

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

39%
按下载量换算31

Claude

28.59%
按下载量换算23

Cursor

19.1%
按下载量换算15

Gemini CLI

9.98%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills