Token导航 LogoToken导航

Agent Skill · 开发

resignation-check(辞职检查)

resignation-check 用于辅助安全审计、权限检查和凭据风险排查,适合在 OpenClaw 中需要复核安全边界、认证流程或敏感配置时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

resignation-check 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 9,983。

总安装 2,448周安装 139GitHub Stars 公开资料未说明下载 792核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
0.5.0

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:resignation-check(辞职检查)
来源仓库:https://github.com/eggyrooch-blip/resignation-check
安装命令:
openclaw skills install resignation-check
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

ClawHubOpenClaw
openclaw skills install resignation-check

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

resignation-check 执行 Office 365/Adobe 租户的离职账号筛查。通过飞书开放平台 API 核对员工邮箱状态。列出疑似离职账户供人工确认后删除。resignation-check 属于开发类 Skill,可作为该场景下的辅助能力补充。适用于企业账户审计与安全清理需求。

需提供 app_id 与 app_secret 进行授权认证。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install resignation-check;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

resignation-check 怎么安装?

在终端执行 openclaw skills install resignation-check。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

resignation-check 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

resignation-check 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

resignation-check 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

resignation-check 用的人多吗?

公开数据是累计安装 2,448 次,近一周安装 139 次,下载 792 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

resignation-check 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
resignation-check

辞职检查 · 本页

2,448—需要联网MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
resignation-check
description
对 Office 365 / Adobe 租户的用户做离职检查——通过飞书开放平台 API(app_id/app_secret)按邮箱核对通讯录,列出疑似离职账号并交互确认删除。USE WHEN 离职检查, 离职筛查, 清理离职, 离职账号, resignation check, 账户审计, 清户, 飞书核对, 清理 office, 清理 adobe, 查离职.
required_env
optional_env
requires

Project Repo

🔗 https://github.com/eggyrooch-blip/office365-tools

本 skill 依赖上面这个 Python CLI。Agent 执行前先确认 repo 已 clone 到本地;遇到任何不确定的实现细节(CLI 子命令签名、.env 变量名、API 返回字段)优先去仓库查 README.md / CLAUDE.md / docs/,不要凭本 skill 描述臆断。仓库是 single source of truth。

Prerequisites(必读)

  1. git clone https://github.com/eggyrooch-blip/office365-tools && cd office365-tools && pip install -r requirements.txt
  2. 在该仓库根创建 .env,按下方模板填写
  3. 飞书:在 open.feishu.cn 建自建应用,开启 contact:contact:readonly,发布版本
  4. Office 365 Entra App 已授予 User.ReadWrite.All / LicenseAssignment.ReadWrite.All 管理员同意
  5. Adobe Developer Console 已建 OAuth Server-to-Server credential 并绑定 User Management API

.env 模板(复制到 office-usertools/.env 后按实际填写)

# --------- Office 365(世纪互联) ---------
CLIENT_ID=your-entra-app-client-id
TENANT_ID=your-entra-tenant-id
CLIENT_SECRET=your-entra-app-secret
DEFAULT_PASSWORD=ChangeMe@2025
DEFAULT_DOMAIN=yourcorp.partner.onmschina.cn
FORCE_CHANGE_PASSWORD=true

# 通知邮件
NOTIFICATION_ENABLED=true
NOTIFICATION_FROM_EMAIL=it-tools@yourcorp.com
NOTIFICATION_BCC_EMAILS=it@yourcorp.com
NOTIFICATION_EMAIL_DOMAIN=yourcorp.com

# SMTP
SMTP_HOST=smtp.feishu.cn
SMTP_PORT=465
SMTP_USERNAME=it-tools@yourcorp.com
SMTP_PASSWORD=your-smtp-password
SMTP_USE_SSL=true

# --------- Adobe UMAPI ---------
ADOBE_CLIENT_ID=your-adobe-client-id
ADOBE_CLIENT_SECRET=your-adobe-client-secret
ADOBE_ORG_ID=xxxxxxxxxxxxxxxxxxxxxxxx@AdobeOrg
ADOBE_API_BASE_URL=https://usermanagement.adobe.io/v2/usermanagement
ADOBE_DEFAULT_DOMAIN=yourcorp.com

# --------- 飞书开放平台 ---------
FEISHU_APP_ID=cli_xxxxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
FEISHU_API_BASE=https://open.feishu.cn
# 员工在飞书登记的工作邮箱域(把 O365 UPN 的 local-part 拼这个域去查)
FEISHU_EMAIL_DOMAIN=yourcorp.com

MANDATORY TRIGGER

用户说动作
"离职检查" / "查离职" / "筛查离职"执行完整流程
"清理离职账号" / "清户"完整流程,最后一步交互确认删除
"Office 离职" / "Adobe 离职"只跑指定平台
"resignation check"完整流程

输入参数(可选)

参数说明默认
provideroffice365 / adobe / bothboth
csv_pathAdobe 走 CSV 模式时传入 Admin Console 导出的 users.csv 路径无(优先走 API)
delete交互确认后是否删除true

前提

  • 工作目录:/Users/kite/Documents/office-usertools(含 office365 / adobe CLI)
  • .env 必备:FEISHU_APP_ID + FEISHU_APP_SECRET(不依赖 lark-cli)
  • 飞书自建应用需已申请 contact:contact:readonly(或 contact:user.employee_id:readonly)并发布版本

核心思路:直接调用飞书 OpenAPI

步骤 1 · 获取 tenant_access_token(2h 有效)

import requests, os
from dotenv import load_dotenv; load_dotenv()
BASE = os.getenv('FEISHU_API_BASE', 'https://open.feishu.cn')
r = requests.post(f'{BASE}/open-apis/auth/v3/tenant_access_token/internal',
    json={'app_id': os.environ['FEISHU_APP_ID'],
          'app_secret': os.environ['FEISHU_APP_SECRET']}, timeout=10)
token = r.json()['tenant_access_token']
H = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}

步骤 2 · 批量用 email 查 user_id(单次最多 50 个)

# POST /open-apis/contact/v3/users/batch_get_id?user_id_type=user_id
def lookup(emails):
    out = {}
    for i in range(0, len(emails), 50):
        batch = emails[i:i+50]
        r = requests.post(f'{BASE}/open-apis/contact/v3/users/batch_get_id',
            headers=H, params={'user_id_type':'user_id'},
            json={'emails': batch}, timeout=15)
        for item in r.json().get('data', {}).get('user_list', []):
            out[item['email']] = item.get('user_id')  # None = 离职/未入职
    return out

user_id is None 即飞书通讯录里查不到 → 离职候选。命中 user_id 即在职。

相比 lark-cli 的优势:

  • 单个请求可一批 50 个,152 个 O365 用户 4 次请求搞定(而非 152 次)
  • 用 app_id/app_secret 无需手动 auth login,可在 CI / ClawHub 环境运行
  • 响应直接是结构化 JSON,不用解析命令输出

执行步骤

1. 拉取平台用户列表

Office 365

from app.services.provider_factory import get_provider
p = get_provider('office365')
users = p.graph_client.get_users(select='userPrincipalName,displayName,accountEnabled')
emails_o365 = [u['userPrincipalName'] for u in users]  # 例 zhangsan@corp.partner.onmschina.cn

但要注意:世纪互联的 UPN 域(partner.onmschina.cn)和飞书注册的工作邮箱域(通常是 corp.com)不一样。需要把 UPN 的 local-part 拼上飞书员工邮箱域:

FEISHU_EMAIL_DOMAIN = os.getenv('FEISHU_EMAIL_DOMAIN') or os.getenv('ADOBE_DEFAULT_DOMAIN')  # 例 yourcorp.com
o365_probe = [upn.split('@')[0] + '@' + FEISHU_EMAIL_DOMAIN for upn in emails_o365]

(如果两边域一致就直接用原 email)

Adobe

  • 优先:CSV 模式——Admin Console → Users → Export
  import csv
  with open(csv_path, encoding='utf-8-sig') as f:
      rows = list(csv.DictReader(f))
  emails_adobe = [r['电子邮件'] for r in rows if r.get('电子邮件')]
  • 备选:API 模式 p.client.get_all_users()(分页易触发 429,Retry-After 可能很长)

2. 飞书批量核对

probe_emails = list(set(o365_probe + emails_adobe))
id_map = lookup(probe_emails)
active_set = {e for e, uid in id_map.items() if uid}
miss_set   = {e for e, uid in id_map.items() if not uid}

3. 分类 MISS

Office 365:

  • 系统账号白名单:admin, admin-it, 含 testuser / svc- 前缀等 → skip_system
  • 其余 MISS → 真名离职候选

Adobe:

  • 共享池:keepadobe* / testaccount* → shared_pool(人工判断)
  • 非员工邮箱域(QQ、Gmail、手机号邮箱)→ needs_manual_review
  • 真名 MISS → 离职候选

4. 生成报告

## 离职筛查结果(<provider>)
- 总账号:N  |  在职命中:X  |  疑似离职:Y

### 真名离职候选 (Z 人)
| email | displayName | 平台 | 状态 | license |
...

### 需人工判断
- 共享池账号:...
- 非员工邮箱:...

5. 交互确认删除

用 AskUserQuestion 给三选项:

  1. 确认删除真名离职候选 N 人(推荐)
  2. 编辑名单后删除
  3. 取消

必须:

  • 拿到明确答复才执行,不凭 "都删了吧" 之类的短语臆断
  • 每次删除后核对返回值(O365:deleted: True;Adobe:completed:1, result:success)
  • 日志落到 /tmp/<provider>_delete.log

6. 删除执行

  • Office 365:python main.py office365 delete <ldap> —— 自动发通知邮件
  • Adobe:python main.py adobe delete <email> —— 已修复 array payload + removeFromOrg
  • 若 Adobe 遇 429,尊重 Retry-After 头,或用 ScheduleWakeup 稍后重试

7. 终态核对

  • O365:重新拉总数应下降对应数量
  • Adobe:对已删用户再 inspect 应返回 404

产出

控制台报告 + /tmp/resignation_report_<ts>.md,包含:

  • 平台总数 / 命中 / 未命中
  • 真名候选删除结果(成功 / 失败)
  • 共享池 / 无法解析账号清单(待人工决策)

Red Flags

症状原因处理
飞书全部 MISSemail 域不对 / app 权限未发布先单独查一个已知在职邮箱,确认能命中
code:99991668token 未授权该 scope去应用后台权限管理,申请 contact:contact:readonly 并发布版本
code:99991672app 未发版 / 租户未安装发布应用版本 → 管理员后台启用
O365 UPN 域与飞书邮箱域不一致世纪互联是 partner.onmschina.cn,飞书是企业邮箱域用 FEISHU_EMAIL_DOMAIN 覆盖;local-part 重新拼域
Adobe 429 Retry-After >30minget_all_users 分页打满配额切 CSV 模式
删除返回 notCompleted=1用户已不在 org / 邮箱错先 inspect 核实

安全红线

  • 不自动合并共享池到删除名单 —— 很可能是业务池账号
  • 非员工邮箱不自动判定离职 —— 归属不清
  • 最终删除前用 AskUserQuestion 展示完整名单拿确认
  • FEISHU_APP_SECRET 不能外泄/写进日志

平台分布

OpenClaw

87.74%
按下载量换算695

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills