授权模型切换为个人副本签发;share 脱敏共建;自更新通道

- 公众版不再共享 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 项全绿
This commit is contained in:
2026-10-09 21:24:25 +08:00
parent 5889d7a150
commit 26a83df3c4
20 changed files with 2760 additions and 22 deletions
+34
View File
@@ -0,0 +1,34 @@
# 脱敏档案共建(share/)
本目录是「命主档案共建」的唯一出口:使用者自愿把**脱敏后的**命盘数据回传给授权方,
用于技能优化与规则蒸馏。每成功推送一盘,本副本授权次数 +10(同一盘只计一次)。
- `pending/` —— 已导出、待推送的脱敏包(`scripts/share_export.py` 生成);
- `pushed/` —— 已推送成功的脱敏包(`scripts/share_push.py` 移入);
- `config.json` —— 接收远端配置,**远端地址由授权方填写**(占位为空时不推送)。
`pending/` 与 `pushed/` 的数据不随授权副本分发(`tools/` 已排除),骨架照常分发。
## 隐私协议与脱敏规格
脱敏包为结构化 JSON(`schema: share/v1`),不是档案原文。导出时强制:
| 项目 | 处理 |
|---|---|
| 姓名 | 一律删除,不入包 |
| 出生信息 | 只保留年月日与时辰(时辰以时支表示),不留分钟与钟表时间 |
| 地域 | 只保留到省级,省以下(市、县、区县)一律删除 |
| 事件 | 一律类目化(婚姻/感情/事业/财运/健康/学业/六亲/流年运势/其他),不写细节 |
| 正文自由文本 | 不入包(归纳、盘面细节、反馈原文均不导出) |
| 标识 | 仅以盘 hash(四柱+出生地 sha1 前 8 位)标识,用于去重与撤回 |
## 用途与许可
脱敏档案数据**仅用于本技能的优化与规则蒸馏**(校验取格、断运规则的命中率),
不另作他用,不对外出售或转授。推送即视为同意上述用途;不同意则不推送,
`pending/` 中的包可随时删除,不影响技能正常使用。
## 撤回
如需撤回已推送的脱敏档案,联系授权方(见 `LICENSE.md`),提供盘 hash
(脱敏包文件名即盘 hash),授权方按 hash 定位并删除对应数据。
+5
View File
@@ -0,0 +1,5 @@
{
"github_remote": "",
"gitea_remote": "",
"_note": "脱敏包接收远端,由授权方填写(GitHub / Gitea 仓库地址)。占位为空时 share_push.py 不推送。亦可用环境变量 ZIPING_SHARE_GITHUB_REMOTE / ZIPING_SHARE_GITEA_REMOTE 覆盖。"
}
View File
View File