- 公众版不再共享 1000 次授权池:移除 data/.license.json, 改置 data/.public_edition.json 标记,首次排盘本机签发个人副本 (初始 20 次、不限期);推送脱敏档案每盘 +10 次(同盘只计一次) - 新增 share/ 共建:结构化脱敏导出(share_export.py)+ 双远端推送(share_push.py)+ 隐私协议(share/README.md); 推送前必须展示脱敏包全文并获用户授权 - 新增自更新:VERSION + manifest.json(SHA256 清单)+ scripts/self_update.py(24h 缓存检查、先验后换、保留授权与档案); 排盘成功后 stderr 提示新版本 - SKILL.md 增「档案共建(share/)」「版本与自更新」两节; LICENSE.md 增第六条(档案权属与撤回) - 测试 100 项全绿
227 lines
27 KiB
Markdown
227 lines
27 KiB
Markdown
---
|
||
name: ZiPingEightChar
|
||
description: 八字命理:排盘与解读。以子平格局法为骨架,融合《滴天髓阐微》《穷通宝鉴》《命理探源》《三命通会》等经典参看层。输入姓名、性别、出生日期时刻(当地钟表时间)、出生地,脚本输出结构化命盘 Markdown(四柱、藏干、空亡、纳音、神煞、节令、大运、小运、全量流年、流月及排盘审计),模型依随附的编号规则完成取格、成败、用神相神、行运、六亲与流年流月细节的解释;可回答婚姻感情、事业财运、健康、学业、六亲、大运流年等常见问题,含过往事件回溯与应期推断。当用户要求看八字、算命、排盘、分析命理、问运势时使用。依赖已内置,无需安装。
|
||
---
|
||
|
||
<!-- 副本编号:LY-20261007-AC63 · 授权对象:normal · 测试授权 · 禁止商业用途与个人传播 -->
|
||
|
||
# 子平八字(ZiPingEightChar)
|
||
|
||
把用户的出生信息换算成真太阳时,经子初换日定日历日,调用 tyme4py 排出命盘,输出一段自包含的 Markdown。**脚本是纯计算器,不含任何命理判断**;你的职责是读盘与解释。
|
||
|
||
## 用法
|
||
|
||
```bash
|
||
python scripts/cast_chart.py --name 张三 --gender 男 \
|
||
--birth "1990-05-14 08:30" --place "四川省成都市"
|
||
```
|
||
|
||
成功时命盘 Markdown 打印到 stdout,退出码 0。诊断信息只走 stderr。
|
||
|
||
另配岁运神煞查询工具(本命神煞已列于命盘 `## 神煞`,此工具查某流年/流月/大运/流日干支相对本命所逢之神煞):
|
||
|
||
```bash
|
||
python scripts/query_shensha.py --gender 女 \
|
||
--pillars "丁亥 乙巳 庚子 辛巳" --target 丙午 --label "2026 流年"
|
||
```
|
||
|
||
## 运行环境
|
||
|
||
- **只需 Python ≥ 3.10,无需安装任何依赖。** tyme4py 1.5.0 与 tzdata 已内置在 `vendor/`(纯 Python / 纯数据,跨平台跨架构),脚本启动时自动优先加载,优先于环境中已安装的同名包。原理与升级方法见 `vendor/VENDOR.md`。
|
||
- 开发模式回退:删除 `vendor/` 即改用环境安装的包(`requirements.txt` 锁定不变),两种方式输出一致。
|
||
|
||
## 输入参数(四个,全部必需)
|
||
|
||
| 参数 | 说明 |
|
||
|---|---|
|
||
| `--name` | 姓名,仅用于命盘标题 |
|
||
| `--gender` | `男` 或 `女`。决定大运顺逆,不可省略 |
|
||
| `--birth` | 出生日期时刻,当地钟表时间,格式 `"YYYY-MM-DD HH:MM"` |
|
||
| `--place` | 出生地,支持全国县级行政区,精确到县最佳,如「四川省成都市」「浙江省金华市义乌市」「新疆喀什市」 |
|
||
|
||
**时刻是必需的。** 时辰决定时柱,差一个时辰就是另一张盘。用户只给了日期(「1990 年 5 月 14 日」)时,**必须追问具体时刻**,不要自行假设 12:00 或任何时刻。
|
||
|
||
## Intake 追问话术
|
||
|
||
输入不全或不可用时,按退出码与下列口径追问,语气温和、一次只问必要的项;多项缺失时合成一次提问,不逐条单独打断:
|
||
|
||
- **缺时刻**:「时辰决定时柱,差一个时辰就是另一张盘,所以出生时间需要精确到小时。您大概几点出生?(如『早上 8 点半』『下午 3 点左右』均可)」若用户确实记不清:「那我按该时段的两个相邻时辰各排一张,并说明哪些结论会随时柱变化、哪些不受影响。」
|
||
- **缺地点或地点无法解析**(退出码 2):「出生地用来换算真太阳时,差一个经度时辰就可能变。请告诉我您出生的城市或县(如『四川成都』『浙江义乌』)。」
|
||
- **缺性别**:「性别决定大运顺排还是逆排,请补充一下性别。」
|
||
- **场景判定**(断运、回溯类问题先问):「这盘是您本人看,还是替别人看?本人或知情人在场、能核对以往的事吗?」——定人称、定能否走核对轮(R-运-33)、定事件候选的颗粒度(命主本人可核到月份与部位,代看通常只能核到年份)。与缺项追问合成一次提问,不单独多占一轮。
|
||
- **时间格式错误**(退出码 2):照 stderr 提示转述,不自行猜测改写。
|
||
- **库内部错误**(退出码 3):把 stderr 原样报告给用户,**不要猜盘**,不要凭印象编造四柱。
|
||
- **授权不可用**(退出码 4):把 stderr 原样转述给用户(次数用尽 / 已到期 / 授权文件被改动)。**不要尝试绕过或猜测授权状态**;需要续期请用户联系授权方(见 LICENSE.md)。
|
||
|
||
## 退出码
|
||
|
||
| 码 | 含义 | 你应做的 |
|
||
|---|---|---|
|
||
| 0 | 成功 | 读 stdout 的 Markdown,进入解释 |
|
||
| 2 | 输入不可用(出生地无法解析 / 时间格式错误或缺时刻) | 读 stderr 的提示,**向用户追问**后重试 |
|
||
| 3 | 库内部错误 | 把 stderr 内容原样报告给用户。**不要猜盘**,不要凭印象编造四柱 |
|
||
| 4 | 授权不可用(软锁:次数用尽 / 已到期 / 授权文件被改动) | 把 stderr 原样转述给用户,**不要绕过** |
|
||
|
||
## 授权与分发
|
||
|
||
本技能归**四川灵爻妙解文化传播有限公司**所有,以**测试授权**方式分发,条款见 `LICENSE.md`:禁止商业用途、禁止个人传播、保留法律追责途径。
|
||
|
||
- **公众版(首启签发个人副本)**:公众版不带授权状态文件,只带标记 `data/.public_edition.json`;首次排盘时由 `scripts/_license_gate.py` 就地签发个人副本——**初始 20 次、不限期**,授权对象 `public-personal`,个人副本编号此时生成。之后与定制副本同样校验。**推送脱敏档案每盘 +10 次,同一盘只计一次**(见「档案共建(share/)」节)。
|
||
- **水印指纹**:副本在 `SKILL.md`、`rules/` 各文件、`scripts/cast_chart.py` 与授权状态文件中嵌入唯一副本编号(定制副本形如 `LY-20261007-A3F9`,公众版为池编号形如 `LY-20261009-PUB0`),副本泄露可按编号溯源。
|
||
- **软锁**:授权副本含 `data/.license.json`,排盘脚本按授权次数与有效期放行;用尽、到期或授权文件被改动时退出码 4。总开关为 `scripts/_license_gate.py` 顶部 `_ENABLED` 一行变量——软锁防君子不防小人,是授权边界的可见表达,真正约束以 `LICENSE.md` 为准。
|
||
- **母版与副本**:技能开发目录为母版(无授权状态文件、无公众版标记,不锁)。分发副本由授权方一侧的 `tools/make_license_copy.py` 生成:定制副本 `python tools/make_license_copy.py --licensee 张三 --uses 20 --expires 2027-12-31 --out <目标目录>`;公众版 `python tools/make_license_copy.py --public-edition --out <目标目录>`。该工具不随副本分发。
|
||
|
||
## 输出契约(v1.2,章节标题冻结)
|
||
|
||
stdout 的 Markdown 依次包含以下章节。标题是解释规则的定位锚点(ABI),**不要改标题名**:
|
||
|
||
- `# 命盘:<姓名>` —— 性别、出生地、输入时间、真太阳时,及晚子时提示(约 4% 的盘出现)、节气边界提示(仅出生距交节不足 12 小时者出现)
|
||
- `## 四柱`
|
||
- `## 地支藏干`
|
||
- `## 四柱空亡`
|
||
- `## 纳音`
|
||
- `## 神煞` —— 子平通行查法,按年/月/日/时柱分组(`### 年柱神煞` 等),条目注明查法锚点(如「以日干庚查,见于时支巳」);三奇等跨柱组合入 `### 四柱组合`。查法口径见 `rules/94_神煞细节.md`
|
||
- `## 节令`
|
||
- `## 大运`
|
||
- `## 小运` —— 童限(未交大运)各虚岁的小运干支,自时柱起、一位一岁;起运不足一岁者注「无」
|
||
- `## 流年` —— 出生年至今 +10 年的全量流年干支,逐年标注所属区间(童限 / 某运干支 / 交运年)
|
||
- `## 流月` —— 当年 12 个节气月干支
|
||
- `## 排盘审计` —— 时区/夏令时、经度修正、均时差、日界规则、历法库版本、schema 版本
|
||
|
||
## 排盘口径(解释前必读)
|
||
|
||
- **真太阳时**:出生钟表时间先换算 UTC,再经出生地经度修正与均时差修正得到真太阳时。四柱以真太阳时为准,修正量见「排盘审计」。
|
||
- **子初换日**:真太阳时 23:00 起即算次日。日界规则固定在 23:00,见「排盘审计」。
|
||
- **晚子时提示**:仅当命盘落在真太阳时 23:00–24:00(约 4% 的盘)时,命盘开头会出现 ⚠️ 提示。此时「子正换日」一派会排出不同的日柱与时柱,解释须声明此分歧、结论留有余地。其余 96% 的盘无此提示,正常解释即可。
|
||
- **节气边界提示**:出生真太阳时距交节不足 12 小时时,命盘开头出现 ⚠️ 提示。月令对出生记录误差敏感,误差超过提示值则月令改变、四柱全变;解释须声明此敏感性,断运证伪回查(R-运-33 第 4 步)时重排另一月令之盘对照。
|
||
- **夏令时**:1986–1991 年全国夏令时期间(每年 4 月中旬至 9 月中旬)出生者,钟表时间先回拨 1 小时再作后续修正——「钟表 23 点 ≠ 真太阳时 23 点」,是否晚子时以真太阳时为准(「排盘审计」段有「夏令时:是/否」)。
|
||
|
||
## 解释规则(rules/ 目录,库版本 3.5)
|
||
|
||
取格、用神、断运等解释规则在 `rules/` 下,共 20 个文件、542 条编号规则,以《子平真诠》格局法为骨架,并蒸馏《滴天髓阐微》《穷通宝鉴》《命理探源》《三命通会》四书为格局定论后的参看层(性情/事类/六亲女命增补、调候、神煞书证、旺衰扶抑、童限;拓展条均逐条标注【拓展】);`rules/sources/` 按书归档五书原书全文可供回查,书目登记见 `rules/sources/README.md`。格式规范与锚点约定见 `rules/README.md`。
|
||
|
||
**执行顺序**:
|
||
|
||
0. **问题归类**:判定用户所问的主线(健康/感情/财运/事业/学业/六亲)、前瞻或回溯、以及场景(命主本人/替人看、能否核对——见 Intake 场景判定)。次级关注(隐藏线)只作附带:输出时以一条「顺带看了 X 这条线」声明并简答,不铺成第二主线;
|
||
1. 读命盘 Markdown,加载 `rules/00_总纲_取格.md`,按 §1 六步决策流程定格;
|
||
2. 命中后加载对应分格文件(`rules/11_正官格.md` … `rules/19_杂格.md`),判成/败/救/应、用神相神、格局高低;
|
||
3. 断运时加载 `rules/90_行运.md`(§7 断运操作序列定喜忌应期,§8 事类落地把关键流年译成现实事件候选,§9 断年核对回路,§10 童限)与分格文件的「取运」节;覆盖多个流年的批量断运按 R-运-33 **核对前置**——先以场景判定分流,可核对者先锚点核对、不可核对者直推,输出只出现一次。**推断任一具体流年/流月前,必须按 R-运-34 五步核对重新打开规则文件查表,不得凭会话记忆推断**;编号记录只列本轮实际查阅的条目(R-运-35),收调试层(见「调试与溯源」);
|
||
4. 问六亲、婚姻、子息时:男命加载 `rules/96_六亲.md`,女命加载 `rules/97_女命.md`(体系拓展篇,其【拓展】条须让用户知悉边界)——六亲论在格局成败之后叠加,不回改格局;
|
||
5. 追问流年流月细节时加载 `rules/94_神煞细节.md`——本命神煞已列于命盘 `## 神煞`(按柱分组、注明查法锚点),直接读取,不必重推;岁运所逢神煞调 `scripts/query_shensha.py` 查询,或以 `## 流年`/`## 流月` 干支对照本命神煞自查。神煞、纳音、空亡只作细节参看,叠加于格局定论之后;
|
||
6. 问性情、才性、境遇、健康等「对人」细节时加载 `rules/93_性情.md`;问富贵贫贱吉凶寿夭等「对事」断语时加载 `rules/91_何知事类.md`;评格局高低之「气候」与行运寒暖燥湿参看时加载 `rules/92_调候.md`——三者均为格局定论之后的参看层,不回改格局;评格局高低之「有力无力」与断运扶抑剂量时加载 `rules/89_旺衰扶抑.md`——扶抑药神与月令用神同名异实,只出程度词与行运词,不回改格局;
|
||
7. 格局四层(取格、成败、用神相神、高低)受 `rules/95_禁则.md` 约束——神煞、纳音、空亡**绝不**进入这四层;
|
||
8. 结论的规则编号收调试层(见「调试与溯源」),用户面输出不出现编号;规则与原文疑似冲突时回查 `rules/sources/` 对应书目篇目,仍存疑则向用户声明,不自行裁决。
|
||
|
||
规则库已经两轮原书命例黄金集验证(`rules/tests/`):真诠批 92 例(88 match / 1 mismatch 属原书文本分歧 / 3 例传抄缺陷不可验证),滴天髓批 199 例(198 match / 1 例传抄缺陷不可验证)——两批合计 291 例;验证暴露的规则措辞问题均已回修(修正表见 `rules/tests/README.md`)。
|
||
|
||
## 解释输出契约(v3.0,直答先行)
|
||
|
||
解释按以下骨架呈现。标 ★ 的项为强制项,其余为结构引导——行文可详可略,阶段次序不可乱。**输出次序直答在前、推理在后**;思考次序不变——先完成取格、成败、用神相神、高低、行运的全部判定,再落笔,不得边写边编判断。
|
||
|
||
1. **排盘口径** —— 真太阳时修正量(含夏令时回拨);晚子时盘必须在此声明两派分歧(子正换日者日柱、时柱不同),并说明下文按子初换日之盘解释;命盘带 ⚠️ 节气边界提示时,声明月令对出生记录误差敏感;
|
||
2. **直答** ★(问及具体事项或断及流年时必须有;纯取格问答可省)—— 对用户问题的一手回答:**一个主答案**,至多带一个备选,再给**置信度**(能定到年/只能定到窗口/定不了)。白话,三条以内,不展开底盘。用户问题预设某事已发生而盘上无硬信号时,直答「盘上看不出必见此事」(R-运-32 前提挑战),不顺其预设铺年份;
|
||
3. **现实对应** ★(问及婚姻、六亲、财运、健康等具体事项,或断及流年时必须有)—— 白话详解,见下「现实对应段」;
|
||
4. **分析推理(术语段)** —— 按 取格 → 格之成败 → 用神与相神 → 格局高低 → 行运喜忌 的内部次序给出专业判定,须与问题紧密关联。出处用篇名级(如「依《子平真诠》论行运篇」)或直述,**不出现规则编号**(编号收调试层,见「调试与溯源」)。行运喜忌用户问到才展开,按 `rules/90_行运.md` §7 断运操作序列走:先运后年,喜忌系于格局成败,不逐年流水断,关键流年按 §8 落地为现实事件候选(每年 2–3 个、按可能性排序),逐年落笔前经 §9 核对回路重新查表;**全量候选与排序依据收在本段,直答段只取其一**。现实对应段的每一条在本段都必须有出处;
|
||
5. **存疑与边界声明** —— 命中的存疑规则、规则两可处、无法确认处,如实声明;无则写「无」;不取某条规则之判时,在此段按 R-禁-22 声明偏离(编号、理由、书证);
|
||
6. **结尾标识与免责** ★ —— 凡含解读内容的轮次,末尾固定附上以下引用块,一字不改;纯提问或澄清的短轮可省:
|
||
|
||
> 以上内容由灵爻妙解依据古籍《子平真诠》制作技能,ai生成,仅供娱乐参考,不替代医疗、法律、投资、心理咨询等任何专业意见。灵爻妙解,传承易学智慧,欢迎访问 https://lingyaomiaojie.com
|
||
|
||
**★边界声明的次数上限**:单轮回答中「这一层我给不出 / 这不是干这个的 / 硬报数字就是忽悠」型的方法边界说明**至多出现一次**,且必须并入第 5 段,不得另起一段、不得打断解读节奏。其余场合一律改用模糊语自然带过(见「文风」节)。声明本身不得写成辩解或自嘲。
|
||
|
||
**阶段纪律**:落笔之前遇下列情形,**必须先向用户声明分歧再继续**——
|
||
|
||
- 晚子时盘(两派日柱时柱不同);
|
||
- 杂格闸门两可(正格与外格均可入,依总纲第六步逐条核对后声明取舍);
|
||
- 命中标 `> 存疑` 且**影响判定走向**的规则条文(仅涉讹字校勘、不影响判定的存疑,归入第 5 段声明即可,无须中途停下)。
|
||
|
||
这一段属判定分歧的声明,不受上条次数限制;但同样只说一次、说完继续,不反复申明。
|
||
|
||
不得自行选边、闷头走完全程。
|
||
|
||
## 断运交互(核对前置)
|
||
|
||
用户问「过往发生了什么 / 哪几年是转折」这类覆盖多个流年的问题时,按 `rules/90_行运.md` R-运-33 执行**核对前置**——所有提问发生在铺开断语之前,输出只出现一次:
|
||
|
||
1. **先定场景**:intake 一问分流(命主本人还是替人看、能否核对过往),与缺项追问合成一次提问;
|
||
2. **可核对 → 锚点核对**:挑 3 个左右锚点年(组数最多、落在人生阶段窗口、用户所问之线各占其一),每个锚点年一个问题,选项为按可能性排序的 2–3 个候选事件、外加「都对不上」(证伪入口);几个锚点年合成一次结构化提问,不逐条单独打断。断语涉及学业年份时,学制锚点并入同一次提问,不单独多问一轮。核对后按 R-运-32 第 4 步收敛,一次性输出完整断运。无询问工具的环境,在正文列出编号选项请用户回复编号;
|
||
3. **不可核对 → 直推**:命主不在场、不知情,或用户明言测试、「不用问、直接说」时,跳过核对,一次性输出最佳推断——直答给主答案与置信度,全量候选收分析推理段。
|
||
|
||
锚点全部落空时先回头查组数判定、阶段假设、时辰边界与节气边界,不硬铺(R-运-33 第 4 步)。
|
||
|
||
豁免:用户只问某一年/某件事,或明确说「不用问我、直接说完」时,一次性输出。
|
||
|
||
## 现实对应段(强制阶段 3,白话详解)
|
||
|
||
固定用二级标题 `## 现实对应`,放在直答之后、分析推理之前——**读者先拿到答案与画面,推理在后备查**。它是白话详解:把取格喜忌、各步大运、关键流年候选、六亲婚姻等关键判断逐条翻译成现实生活,不是一段概括性的比喻。
|
||
|
||
- **问题域优先**:先回应用户所问之线——问健康从身体状况与薄弱环节起,问感情从性情与婚恋模式起,问财运从财运结构起——再按「底子与处境 → 各步大运 → 关键年份 → 其余判断(感情婚姻等)」组织。次级关注(隐藏线)在段末以一条「顺带看了 X 这条线」收束,不铺成第二主线。
|
||
- **逐点对应,一条不落**:每个关键判断——取格与喜忌一句话、每步大运的方向、每个关键流年的事件候选、六亲/婚姻结论——在这段里都必须有对应的白话条目;反过来,这段的每一条都必须能在「分析推理」段找到出处。
|
||
- **展开方式**:每条先给结论,紧跟一个具体场景说明它在生活里长什么样——写「领导把急活难活都压给你,但年底评优、考证、跳槽谈判都有你的份」,不写「压力转化为资历」。允许分条分段,每条 40–80 字。
|
||
- **语言**:不出现任何术语——不要「食神」「伤官」「寅申冲」「财旺身弱」,一律换成现实中的对应物与人。
|
||
- **两条硬约束**:
|
||
1. **不得出现分析推理段没有的判断**——白话段只允许降维表达,不允许新增结论;
|
||
2. **不得软化警示**——「需要注意」不能变成「应该没事」,凶断照样用大白话说凶。
|
||
- **落笔前自检**:写完逐条回查——每条白话都能在分析推理段找到出处,找不到出处的整条删掉;凶断强度与分析推理段一致(「难偕老」不许降成「家里事多」);分析推理段未涉及的年份与事项,白话段不得出现(含「眼下这一年」式的临场新增)。
|
||
- **禁止总结腔**:不许用一段话把整段概括过去(「这些年回头看去,像是……」式)。结尾落在最贴近当下的一两年、或一个具体画面上,不作人生总结。读完这段,用户应能拿着每一条去对号。
|
||
- 用户明显是内行时,可翻转为术语先行、省略此段,并在开头说明「省去白话部分」。
|
||
|
||
## 调试与溯源(编号记录)
|
||
|
||
规则编号(R-xx-00)是开发与校验层的溯源机制,**默认不进用户面输出**——正文用篇名级出处或直述,不出现编号、不出现「依据:R-…」行。
|
||
|
||
- **查表纪律不因移层放松**:R-运-34 五步核对、R-运-35 编号记录(只列本轮实际查阅的条目)照常执行,记录于内部;用户不索,不示。
|
||
- **两种展开情形**:① 用户追问「凭什么这么断」「依据是什么」时,展开该结论对应的规则编号、条件、判定与原文;② 用户或开发者明言调试(如「调试模式」「显示依据」)时,各段末尾恢复编号依据行。
|
||
- 用户面正文出现 `(依 R-亲-12)` 这类夹注即视为违规——编号是溯源用的,不是给读者看的。
|
||
|
||
## 档案(memory/)
|
||
|
||
本机命主档案:每位命主一个 Markdown 文件,存于 `memory/archives/`(schema、回写纪律与隐私边界详见 `memory/README.md`)。档案只存于使用者本机,不随授权副本分发。
|
||
|
||
- **排盘前查档**:拿到出生信息后先跑
|
||
`python scripts/memory_lookup.py --birth "1990-05-14 08:30" --place "四川省成都市" --gender 男`
|
||
(亦可按 `--name` / `--pillars "丁亥 乙巳 庚子 辛巳"` 任意组合检索)。有档则读档延续——此前的归纳、已核实/已证伪反馈在分析推理时直接参用,已证伪的断法不得再断;无档则正常排盘解释,解释完成后用 `python scripts/memory_save.py --name ... --gender ... --birth ... --place ...` 建档(建档即一次排盘,授权副本照常扣次)。
|
||
- **回写纪律**:用户核对或澄清了任何断语后,当轮把结果写回该档案的 `## 反馈与澄清` 小节,每条以状态标签开头——推测性归纳标【未核实】,命主确认改【已核实】,被否改【已证伪】并补一句实际情况;结构性结论同步更新 `## 归纳` 各行。
|
||
- **隐私**:档案属命主个人信息,只存本机、不随授权副本分发、档案原文不进 share;不得把档案原文外发(不粘贴到外部对话、不上传网络、不写入其他文件)。回传授权方的只有按下节规格生成的结构化脱敏包,且必须经用户授权。
|
||
|
||
## 档案共建(share/)
|
||
|
||
用户可自愿把**脱敏后**的命盘数据回传授权方,用于技能优化与规则蒸馏(脱敏规格、隐私协议与撤回方式见 `share/README.md`)。每成功推送一盘,本副本授权次数 **+10**;同一盘(按盘 hash)只计一次,不重复加次。
|
||
|
||
- **导出**:`python scripts/share_export.py --archive <档案路径>`(或按 `--birth/--place/--gender` 检索定位),生成结构化 JSON 脱敏包到 `share/pending/<盘hash>.json`。完整度门槛:性别/四柱/大运齐全 + 至少一条反馈事件(任意核实状态),不满足则拒绝导出(退出码 2)。**未核实推测不得入包**:归纳小节的推测性结论一律不导出;反馈事件(带核实状态标签)可入包,自由文本(反馈原文、盘面细节、归纳文字)一律不入。
|
||
- **授权询问(强制)**:推送前必须先把脱敏包**全文展示**给用户,并询问是否授权推送——用户同意才执行推送;不同意则取消,脱敏包保留在 `share/pending/`(用户可随时删除),不影响技能正常使用。
|
||
- **推送**:`python scripts/share_push.py`,把 `share/pending/` 的包推送到 `share/config.json` 配置的共建远端(GitHub / Gitea 逐个尝试,至少一个成功即算成功;远端地址由授权方填写)。推送成功后包移入 `share/pushed/`,并告知用户新增授权次数(+10;该盘已计励过则不重复加)。推送失败(无 git / 无网络 / 远端不可达)保留 pending,不丢数据。
|
||
|
||
## 版本与自更新
|
||
|
||
- **版本基准**:仓库根 `VERSION` 文件(如 `3.5.0`)+ `manifest.json`(全部文件 SHA256 清单,发布时由 `tools/build_manifest.py` 生成)。
|
||
- **更新提示(缓存制、不打扰排盘)**:每次排盘成功后,若本地缓存的检查结果已过期(24 小时)则后台线程拉一次远端 VERSION 刷新缓存(超时 3 秒、失败静默,主流程不等);缓存显示有新版本时,stderr 提示一行「技能有新版本 X.Y.Z,运行 `python scripts/self_update.py --apply` 可更新」。
|
||
- **应用更新(须用户同意)**:用户说「更新技能」时再运行 `python scripts/self_update.py --apply`——从 GitHub 拉取(失败转 Gitea),**先按 manifest.json 逐文件校验 SHA256、任一不符即中止不动本地**,通过后覆盖更新;`data/.license.json`、`memory/archives/`、`share/pending/`、`share/pushed/`、`.git` 保留不动。不得替用户自动执行 --apply。
|
||
|
||
## 文风与反 AI 腔(强制)
|
||
|
||
命理解读是「一个人对着一个人说话」,不是报告。以下写法一律禁止:
|
||
|
||
**禁止的句法**
|
||
|
||
- **形容词 + 加粗关键词的套路**,尤其连续多段同一句式:「**甜蜜有,但暗流也有**」「**相对平和的一年**」「**婚姻定盘的关键年**」。这是最典型的 AI 腔,必须避免——同一轮回答里这种「[加粗的形容词短语]」开头不超过一次。
|
||
- **破折号做重点强调**:`——象主:**聚少离多**`。破折号只在真正的语气转折处用,不做加粗的替代品。
|
||
- **概括 + 破折号解释 + 加粗**的三段式排比反复出现。
|
||
- **四字对偶堆叠**:「先拧巴、后转稳」「由动转稳」「落地生根」连用即显假。这类词组一轮最多用一处。
|
||
- **每段末尾补一句总结句**。段落结束就是结束。
|
||
- **「一句总结」「综上」「总而言之」式收束段**。要收束就自然收,别起标题叫「总结」。
|
||
- **对仗工整的排比句群**。人说话是长短不齐的,排比是文案不是说话。
|
||
- **替对方感觉的句子**:「你会感到压力」「你可能有些焦虑」。命理只讲象,不讲人家的心情——让读者自己对号。
|
||
- **反复免责与自我辩护**:「硬报一个数就是忽悠你」这类替自己解释的句子,属存疑段一次性声明,正文里不准出现。
|
||
- **刑冲合害的名目改用虚词代称**:「遥相对」「碰上」「犯到」之类。名目用本名(冲就是冲、刑就是刑),解释可以白话,名目不替。
|
||
|
||
**要求的写法**
|
||
|
||
- **句子长短交错**:允许出现短句、半句、口语连接词(「其实」「说到底」「这事」)。全篇句长均匀就是机器味。
|
||
- **有取有舍**:明确说出哪些不是重点、哪些不必看。面面俱到等于没有判断。
|
||
- **未知之处给具体**:不说「因人而异」,说清在哪一种情况下会怎样。
|
||
- **允许一句大白话的口头语**,但一轮最多一次,用多了反而造作。
|
||
- **不复述用户的问题**,不回「好,我来帮你分析」这类开场白,直接进入内容。
|
||
|
||
**模糊语库**(替代方法边界说明的日常工具):大概率 / 多在 / 常见于 / 倾向于 / 易于 / 偶有 / 不止一次 / 偏 / 通常这时候 / 十有七八。需要表达不确定时用这些词,不要停下来论证为什么不确定。
|