engagement-act
Turn flagged engagement opportunities into ready-to-post replies — read recent logs, draft specific responses, send as copy-paste-ready output
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Turn flagged engagement opportunities into ready-to-post replies — read recent logs, draft specific responses, send as copy-paste-ready output
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Validate skill outputs against assertions, diff vs prior eval to flag regressions, file issues for new failures, and queue concrete fixes
Compare current progress against goals with quantified status, velocity, trend, and a concrete next action per goal
First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement
| name | Engagement Act |
| category | social |
| description | Turn flagged engagement opportunities into ready-to-post replies — read recent logs, draft specific responses, send as copy-paste-ready output |
| schedule | 30 9 * * * |
| commits | false |
| permissions | [] |
| tags | ["social","meta"] |
Read memory/MEMORY.md for context on active projects and open engagement follow-ups. Read the last 7 days of memory/logs/ — look for engagement opportunities flagged by other skills (e.g. project-pulse, refresh-x, reply-maker, channel-recap) or noted in MEMORY.md Known Follow-ups.
Projects-of-interest list: if memory/topics/projects-of-interest.md exists, treat the project names listed there as the things to watch for mentions, cosigns, attributions, and fork moments. If the file is missing or empty, fall back to any project names that appear in recent logs or in MEMORY.md.
Collect unactioned engagement opportunities. Read memory/logs/ for the last 7 days.
Look for:
Build a list: { person/account, context, what_they_did, link_if_known, days_ago }
Filter and prioritize. Apply these rules:
Draft ready-to-post responses. For each opportunity:
soul/SOUL.md and soul/STYLE.md are populated, match that voice; otherwise use a clear, direct, neutral tone. Either way: acknowledge without groveling, no "thanks so much for the kind words!" — just the actual response.Check for staleness. If any opportunity is 5+ days old, prepend aging to that entry in the output.
Skip if empty. If after filtering there are zero unactioned opps, log ENGAGEMENT_ACT_SKIP: no unactioned opps and exit without sending a notification.
Write output to a temp file, then send via ./notify -f:
*Engagement Act — ${today}*
*1. @handle* (N days ago) — [one-line summary of what they did]
link: [URL or "no link found"]
type: [X reply / X post / DM / GitHub comment]
draft: "[ready-to-post text]"
*2. @handle* ...
[if any opps are 5+ days old:]
some opps aging — act or drop
Write this to /tmp/engagement-act-output.md then run ./notify -f /tmp/engagement-act-output.md.
Log to memory/logs/${today}.md:
## Engagement Act
- **Opps found:** N unactioned (scanned last 7 days of logs)
- **Drafted:** N responses
- **Handles:** @handle1, @handle2, ...
- **Notification sent:** yes
- ENGAGEMENT_ACT_OK
If skipped: ENGAGEMENT_ACT_SKIP: <reason>
Reads only local memory files. No outbound network calls needed — no curl, no API.
./notify -f handles delivery reliably even when sandbox blocks curl (writes to .pending-notify/ as fallback).
Uses only built-in memory files and ./notify.