Agent Skills
返回列表
🤖

Tap 定时触发器

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_7f11a9a1/tap-triggers。

技能介绍

它解决什么问题

plan 只回答做什么和怎么验证,刻意不回答何时做。云端 routines 把决策、触发和执行打包,但每次触发都要付一个 agent 会话。Tap 的要求相反:触发层应当零 token。macOS 自带 launchd,本技能负责从可版本化声明到 launchd 产物的确定性编译,并把编译和激活拆成两阶段。

核心能力

  • 声明在 ~/.tap/triggers/<name>/<slot>.trigger.json,一个文件一个触发;第三段 slot 可让同一 plan 拥有多个独立触发,例如 visibility-recheck.am.trigger.json 与 …pm.trigger.json。
  • 工具提供 inspect、diff、render 三个入口,只编译声明到产物,不在引擎里做调度循环。
  • 日志写入 ~/Library/Logs/taprun/<name>.log 与 <name>.err;未变更的声明不重写,有变更则报告 updated。

编译时硬闸门

  • 前台闸门(安全):声明包含 trusted:true op 的 plan 直接被拒。trusted 输入是 CDP 坐标级操作,需要前台标签页,凌晨 3 点的无人值守运行无法提供;判定是结构性 JSON 检查,不是文本匹配。
  • 引用完整性:悬空 ref(磁盘上没有对应 plan)在声明阶段即被拒,而不是等到失败日志才发现。
  • 写变体警告(质量):变更类 plan 可以编译,但会告警,需确认后置条件非空虚,且 intent_key 在无人值守前已完成去重。
  • 命名空间 containment(安全):孤儿清扫与 --prune 结构性限定在 dev.taprun.trigger.*,外部 LaunchAgents 构造上不可达。

适用边界

  • 当前只支持 macOS + launchd;Linux/Windows 的端口方向是同一声明格式下的 systemd timer 等价物。
  • 触发层不做自动 bootstrap。写文件是幂等且可审阅的,改 launchd 状态是单独、人类可见的一步:先编译,再激活。
  • 浏览器事件触发(如“打开 Xero 时拉报表”)是本地优先才能做的类,但当前没有命名消费者,待有需求再议。
  • 无人值守运行只有 Chrome 运行时才能抵达扩展 peer(launchd → tap CLI → host.sock → NM host);L1/L2 fetch 类 plan 没有 tab,触发场景应优先选它们。

使用场景

  • 凌晨 3 点运行可见性复查的 fetch 类 plan,让 launchd 按声明式 JSON 编译并触发,避免每次支付 agent 会话。
  • 维护多个 slot 触发时,把同一 plan 拆成 `visibility-recheck.am.trigger.json` 与下午版本,分别管理早晚执行。
  • 提交声明前用引用完整性闸门检查悬空 ref,确保磁盘上存在对应 plan,而不是等失败日志暴露。
  • 处理变更类 plan 时,确认后置条件非空虚且 `intent_key` 已完成去重,再让无人值守运行继续执行。

适合人员

  • 维护 macOS launchd 工作流的自动化工程师,想把 plan 触发从调度逻辑里拆成可审阅的声明到产物编译。
  • 构建无人值守 agent 的开发者,需要零 token 触发并接受 trusted 操作必须前台运行的硬闸门。
  • 管理多计划触发配置的技术负责人,希望用 slot 给同一 plan 配置早晚独立触发并保留 diff 记录。