面向“今日运势/今天适合做X吗/今日宜忌”类咨询的八字日运解读技能。使用场景:用户在 OpenClaw 中询问当日运势、某事项是否适合今天做、今日吉凶与建议时触发。技能会自动读取当前日期,查询当日对应的流年、流月、流日,并结合用户的八字四柱进行分析;若用户为首次使用且无个人四柱记忆,先引导用户提供四柱并写入长期记忆,后续复用无需重复询问。
Scanned 9/7/2026
Install to Claude Code
npx -y skills add modbender/skill-library-mcp --skill bazi-daily --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bazi Daily?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/modbender-bazi-daily)More formats (shields.io, HTML) on the badges page.
---
name: bazi-daily
description: 面向“今日运势/今天适合做X吗/今日宜忌”类咨询的八字日运解读技能。使用场景:用户在 OpenClaw 中询问当日运势、某事项是否适合今天做、今日吉凶与建议时触发。技能会自动读取当前日期,查询当日对应的流年、流月、流日,并结合用户的八字四柱进行分析;若用户为首次使用且无个人四柱记忆,先引导用户提供四柱并写入长期记忆,后续复用无需重复询问。
---
# Bazi Daily
## Workflow
1. 识别触发意图。
2. 从会话上下文提取 `user_id` 与 `user_timezone`。
3. 以用户时区自动计算 `today_local`(`YYYY-MM-DD`)。
4. 调 heartbeat `bazi_profile_get` 读取用户四柱档案。
5. 若未命中四柱档案,请用户补充四柱并调 heartbeat `bazi_profile_upsert` 写入长期记忆。
6. 根据 `today_local` 查询 `bazi_daily_calendar`。
7. 结合四柱与流运输出当日解读与建议。
默认年度数据源文件:`assets/bazi_daily_calendar_2026.xlsx`。
导入脚本:`scripts/import_bazi_calendar.py`。
## Mandatory Pre-Analysis Gates
每次输出运势分析前,必须先完成以下两个步骤:
1. 获取当前日期:基于 `user_timezone` 计算 `today_local`(`YYYY-MM-DD`)。
2. 查询数据表:使用 `today_local` 查询 `bazi_daily_calendar` 以获取 `flow_year`、`flow_month`、`flow_day`。
未完成以上两个步骤时,禁止进入“运势结论/宜忌建议”输出。
## Trigger Phrases
将下列表达视为高优先级触发:
- “今日运势”
- “今天适合 xxx 吗?”
- “今天宜做什么/忌做什么?”
- “我今天的运气怎么样?”
- “帮我看今天的八字运势”
若用户没有显式说“八字”,但语义是“今天是否适合某事”,默认按本技能流程处理。
## First-Time Onboarding
当找不到用户四柱记忆时:
1. 明确告知需要四柱后才能进行个性化日运分析。
2. 请用户直接提供四柱,格式优先:`年柱/月柱/日柱/时柱`。
3. 若用户不清楚四柱,建议前往“万年历”查询:<https://wannianrili.bmcx.com/>,输入生日后获取四柱再回传。
4. 校验最小完整性(四柱都存在)。
5. 调 heartbeat `bazi_profile_upsert` 将结构化结果写入长期记忆。
6. 写入成功后继续本次分析,不要求用户重新提问。
长期记忆建议键:
- `bazi_profile.pillars.year`
- `bazi_profile.pillars.month`
- `bazi_profile.pillars.day`
- `bazi_profile.pillars.hour`
- `bazi_profile.source`(如 `user_provided`)
- `bazi_profile.updated_at`(ISO 日期时间)
若用户后续主动更正四柱,以最新输入覆盖旧值。
heartbeat 请求响应与错误码约定见 [references/heartbeat-contract.md](references/heartbeat-contract.md)。
## Date And Lookup Rules
1. 自动读取当前日期,禁止要求用户手动输入日期。
2. 优先使用会话上下文中的 `user_timezone` 计算当日日期。
3. 若 `user_timezone` 缺失,回退 `Asia/Shanghai` 并记录 `timezone_fallback=true`。
4. 查询数据表时使用标准日期键(`YYYY-MM-DD`),即 `today_local`。
5. 期望查得字段:`flow_year`、`flow_month`、`flow_day`。
6. 若当天无记录,明确告知“缺少当日流运数据”,并仅给出有限建议,不伪造结果。
7. 每次运势分析请求都必须执行一次日期计算与一次数据表查询,不得跳过。
数据表字段约定见 [references/bazi-calendar-schema.md](references/bazi-calendar-schema.md)。
数据文件导入规范见 [references/bazi-calendar-schema.md](references/bazi-calendar-schema.md) 中的 “Data Source File” 与 “Import Mapping”。
导入命令模板见 [references/import-command-template.md](references/import-command-template.md)。
## Analysis Rules
1. 先给出“今日总体倾向”(顺势/平稳/谨慎)。
2. 再回答用户的具体问题(例如“今天适不适合谈合作”)。
3. 输出“宜”与“忌”各 2-4 条,保持可执行。
4. 明确区分:
- 依据用户四柱的个性化判断
- 依据当日流年流月流日的时效性判断
5. 避免绝对化、宿命化表达;用“倾向/建议”措辞。
## Failure Handling
1. heartbeat 读取失败时,按“未知档案”处理并进入首次引导;同时提示“记忆服务暂不可用,本次可先临时分析”。
若用户不清楚四柱,补充推荐“万年历”:<https://wannianrili.bmcx.com/>。
2. heartbeat 写入失败时,继续使用用户本次输入完成分析;同时提示“本次已解读,但暂未保存,下次可能需要再次提供”。
3. 当日流运缺失时,明确告知“缺少当日流运数据,仅基于四柱给出有限建议”;该提示必须建立在“已执行当日查询且未命中”之上。
## Response Template
按以下顺序组织回答:
1. 今日日期(`YYYY-MM-DD`)
2. 当日流运(流年/流月/流日)
3. 总体运势一句话总结
4. 对用户提问的直接结论
5. 今日“宜”列表
6. 今日“忌”列表
7. 一句风险提示(非决定性,仅供参考)
## Guardrails
- 不编造缺失的四柱与流运数据。
- 不输出医疗、法律、投资等确定性结论。
- 用户未提供时柱时,不自动推断;要求补全。
## Logging Suggestions
建议每次请求记录以下字段,便于排障与 UAT 复盘:
- `user_id`
- `user_timezone`
- `today_local`
- `timezone_fallback`
- `memory_hit`
- `calendar_hit`
- `heartbeat_get_status`
- `heartbeat_upsert_status`
## UAT Cases
1. 首次用户输入“今日运势”,期望:要求四柱 -> heartbeat 写入成功 -> 返回完整解读。
2. 同一用户再次输入“今天适合谈合作吗?”,期望:不再询问四柱,直接返回结论与宜忌。
3. 用户时区为 `Asia/Shanghai`,在 00:05 与 23:55 测试,期望:`today_local` 与用户本地日期一致。
4. 构造当日无流运记录,期望:输出缺失提示,不编造流年流月流日。
5. 模拟 heartbeat upsert 失败,期望:本次照常解读,附“未保存”提示。
6. 模拟 heartbeat get 失败,期望:进入首次引导,流程不断。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!