recruiting-reminderlisted
Install: claude install-skill riwonswain-ovo/OfferLoop
# Recruiting Reminder v2.0.0
一次调用完成一次邮箱扫描与结果汇报;不创建飞书原生任务,不启动后台轮询或定时补偿。脚本路径
从本 Skill 根目录解析。
## 动态工具门禁
运行环境若用 `ToolSearch`、延迟加载或类似机制暴露邮件工具,第一次工具搜索必须在同一批中包含
名称后缀 `mail_search`、`mail_read_candidate`、`mail_mark_processed`;同时需要模式/配置工具时一并
搜索。搜索返回实际句柄后才能调用 `mail_search`。没有加载 `mail_mark_processed` 时不得开始扫描,
也不得假设稍后可以靠本地脚本或结果文字替代。服务端前缀可以不同,以这三个稳定名称后缀匹配。
如果本轮会写招聘事件,同一轮工具发现还必须加载 `progress_query`、`base_write`、`progress_read_current`、
`progress_update`、`calendar_create`、`base_update`、`reminder_verify`、`progress_verify`、`base_verify_views`;通知已启用时再加载
`notification_send` 和 `failure_record`。完成状态回调改为加载 `reminder_query_existing`、
`progress_read_current`、`reminder_update_completion`、`progress_update`、`reminder_verify`、
`progress_verify`。不得先写入,再临时寻找本应位于前置步骤的工具。
维护本轮 `must_mark_processed` 集合:事件完成、永久忽略、非招聘,以及无明确时间的前置邀请一经
判定就加入 canonical `source_mail_id`;需要用户确认且尚未确认的邮件不加入。任何最终回复、摘要或
finalize 动作前,逐个核对该集合都有成功的邮件提供方写入;缺失项立即调用已加载的
`mail_mark_processed`。工具成功返回并包含对应 ID 后才允许收尾。
## 门禁与配置
本 Skill 的第一项动作是完整读取 `../.offerloop-runtime/references/installation-mode.md`,随后实际运行
`python3 ../.offerloop-runtime/scripts/install_mode.py`,不得根据已安装文件数量或旧对话猜测模式。
OfferLoop 只支持飞书完整模式,不执行用户画像门禁,只收集本次邮件分类和事件同步必需的信息。
从 `~/.config/offerloop/config.json`(遵循 `XDG_CONFIG_HOME`)读取 `lark_profile`、必需的
`reminder_base_url`、可选的 `progress_base_url`,以及相互独立的 `notifications` 和
`daily_checkin`。IMAP 凭证只从用户配置目录读取,不在聊天中索要或回显。
缺 `reminder_base_url` 时停止业务写入并转入初始化修复;只缺 `progress_base_url` 时仍可写独立事件,
但不关联或推进求职进展。飞书授权与 locator 未验收时不得开始正式邮箱同步,也不得把