name: work-schedule description: > 需求排期录入工具——将工作事项同步到企业微信智能表格。 当用户提到"加入排期"、"录入排期"、"更新排期表"、"需求排期"、"把 xxx 加到排期"等意图时触发。 也适用于用户提供新周期 schema/key 要求配置新文档的场景。
需求排期录入 Skill
0x01 背景与目标
通过企业微信智能表格 Webhook 将工作事项录入排期表。核心目标:
- 对话里出现“加入排期”时可快速落表
- 一个
key对应一个文档,一个文档覆盖半年 - 固定脚本执行,减少人工拼装请求体错误
0x02 路径解析(CRITICAL)
本技能依赖的脚本和配置位于 scripts/、config/ 子目录中。
【CRITICAL(必须执行不可协商)】 本 Skill 目录可能是 symlink,必须通过以下方式解析真实路径:
# 解析本 Skill 的真实路径(处理 symlink)
SKILL_DIR=$(python3 -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' "<SKILL.md 所在目录的绝对路径>")
- 阅读本 SKILL.md 时已知其绝对路径(如
.../work-schedule/SKILL.md),取其父目录作为SKILL_DIR。 - 通过
os.path.realpath解析 symlink 得到真实目录。 - 后续所有脚本和配置文件均使用
${SKILL_DIR}/...引用,禁止硬编码路径。
0x03 配置规范
配置文件路径:${SKILL_DIR}/config/schedules.yaml
active: "2026H1"
schedules:
"2026H1":
key: "webhook-key"
months_start: 1
schema:
frvG4J: "项目"
fzSueb: "需求"
# ... field_id -> 列名
字段含义:
active:当前默认周期key:Webhook key(仅保存在schedules.yaml)months_start:1或7,用于 H1/H2 月份映射schema:field_id -> 列名,不同文档 field_id 不同
新增周期时必须执行:
- 解析用户提供的
schema + key - 打印拟新增配置摘要(
period/key/months_start/schema)并确认 - 用户确认后再写入
${SKILL_DIR}/config/schedules.yaml - 按用户要求决定是否切换
active
0x04 字段 Schema(扩展版)
以下为 2026H1 示例,实际以
${SKILL_DIR}/config/schedules.yaml为准。
| field_id | 列名 | 类型 | 默认值 | 字段说明 |
|---|---|---|---|---|
| frvG4J | 项目 | multi_select | 必填(模型推测) | 观测平台 / 业务支持 / APM / APM / 日常支持 |
| fzSueb | 需求 | text | 必填 | 不含细节的短语标题(例如:LOL 社区版支持) |
| fc5FyT | 需求类型 | multi_select | 研发 | 研发 / 纯跟进 / 设计 / 原型 / 修复 |
| f53B4X | 优先级 | multi_select | P0 | P0 / P1 / P2 / done |
| fiWfNd | 进度 | multi_select | 未启动 | 未启动 / 评审中 / 暂时挂起 / 待产品确认方案 / 方案就绪 / 开发中 / 灰度中 / 已上线发布 / 跟进中 |
| fl1uff | 文档/链接 | link | [] | 文档链接,支持空 |
| f0B8fw | 事项类型 | multi_select | 规划 | 规划 / 新增 |
| ffio2F | 备注 | text | "" | 需求详情、背景、范围、约束等完整说明 |
| fYhKHf | 1 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| f6MQpU | 2 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| fYDW9O | 3 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| fNocoV | 4 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| fB1bqi | 5 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| fxHuQY | 6 月 | month_tags | 自动计算 | 例如 ["P2-排期"] |
| fjgnwh | 图片 | image | [] | 图片附件,默认空 |
值格式规则:
| 类型 | 格式 | 示例 |
|---|---|---|
| multi_select | [{"text": "值"}] |
[{"text": "APM"}] |
| text | 原始字符串 | "需求描述" |
| link | [{"link":"url","text":"显示文本"}] 或 [] |
[{"link":"https://...","text":"设计文档"}] |
| month_tags | [{"text":"Px-排期"}] |
[{"text":"P2-排期"}] |
| image | [] |
[] |
0x05 月份自动计算规则
这里的 P1/P2/P3 是“旬别标签”,不是“优先级”。
- Day 1-10 ->
P1-* - Day 11-20 ->
P2-* - Day 21-31 ->
P3-*
月份标签支持:
P1-排期 / P2-排期 / P3-排期P1-完成 / P2-完成 / P3-完成P1-延后 / P2-延后 / P3-延后
若未提供 月份,脚本按当前日期自动填充一个月份标签,并按以下规则选择后缀:
- 事项完成(如
优先级=done或进度=已上线发布)->Px-完成 - 事项延后(如
进度=暂时挂起)->Px-延后 - 其他情况 ->
Px-排期
0x06 项目归属规则
项目归属由模型在对话阶段推测,脚本不再内置项目推测逻辑。建议按以下口径:
观测平台 / 业务支持:具体的业务支持事项APM:涉及 APM 的较大、长期跟进事项APM / 日常支持:区别于 APM 主线的一些小优化、小修复
0x07 执行流程
CRITICAL(必须执行不可协商):未收到用户明确确认前,禁止实际写入排期表。
可视为“明确确认”的典型表达:
确认新增可以新增就按这个加🉑
若用户仅描述事项(未确认),只能输出“待写入预览 JSON”,不能执行写入命令。
- 用户提出“加入排期”
- 构造记录 JSON(
项目必填,月份可省略由脚本自动补) - 严格区分
需求和备注:需求:不包含细节的概括短语(例如:LOL 社区版支持)备注:具体详情(背景、版本范围、约束、进展)
- 优先级默认
P0,除非用户明确指定其他值 - 先在对话中打印记录,用户确认
- 执行脚本写入
- 返回接口结果
执行命令:
python3 "${SKILL_DIR}/scripts/add_record.py" \
--config "${SKILL_DIR}/config/schedules.yaml" \
--record /tmp/schedule_record.json
说明:
- 需要
full_network权限 - 脚本默认会二次确认请求体
- 只有在用户已明确确认新增后,才允许使用
--yes跳过脚本二次确认
0x08 输入与命令示例
记录 JSON(列名语义):
{
"项目": "观测平台 / 业务支持",
"需求": "LOL 社区版支持",
"需求类型": "研发",
"优先级": "P0",
"进度": "跟进中",
"事项类型": "规划",
"备注": "正在进行升级验证:3.9 -> 3.10,3.10 -> 3.11",
"文档/链接": [],
"月份": {
"3": ["P2-排期"]
}
}
预览模式(仅打印请求体):
python3 "${SKILL_DIR}/scripts/add_record.py" \
--config "${SKILL_DIR}/config/schedules.yaml" \
--record /tmp/schedule_record.json \
--dry-run