Skill
resanity
散户研究心法:把模糊问题变锋利、枚举可能性、只对承重主张取真实证据、做非对称审计,交付证据标注的可读报告,并沉淀可更新的认知锚。何时用:用户问题材真伪、要可能性地图/承重主张审计/定价对照、说「更新锚」时。默认原生工具循环,零强制脚本。
- Source
- Thhoho
- stars
- 4 stars
- License
- MIT
- Updated
- Updated 24 days ago
Readme
# reSanity 散修
<p align="center"><img src="assets/logo.svg" width="96" alt="散修:锚 + 对勾"/></p>
> 散修,修出你的 Sanity。
> **积极的信心,谨慎的动作。**
**一个给散户用的认知管理工具:帮你查证、帮你避坑、帮你记住、帮你复盘。**
不是荐股工具,不是行情软件,不是新闻推送。它不下单、不推荐、不承诺收益——它只在你追高之前泼冷水,在你忘记自己判断的时候提醒你,在你亏钱之后告诉你错在哪一环。
## 你为什么需要它
市场里不缺信息,缺的是**验证过的判断**;不缺聪明人,缺的是**记得住自己为什么错的聪明人**。
- 刷到"某题材要起飞"的热帖,你想知道:这是真的吗,还是又来接我盘的?→ 它会去翻公告原文,把"官方口径"和"市场传闻"分开摆给你看。
- 上个月研究过的东西,这个月中报出来了,你的判断还成立吗?→ 说一句**"更新锚"**,它只查该查的那几个数,几分钟告诉你升档还是失效。不用重读旧报告。
- 亏了钱却说不清为什么?→ 它记着你每次信了什么、做了什么,每周花一分钟告诉你:你最常踩的是哪条坑。
## 真实运行示例
两个从模糊问题到真实结果的完整案例(含旧工具三次失败的对照)见 **[EXAMPLES.md](EXAMPLES.md)**:
- **金刚光伏**:"太空光伏 + 算力转型"三合一题材,10 分钟查证出"太空是纯题材映射",结论是"不做任何动作,等半年报"——一个价值连城的"不买"
- **A股算力链**:同模型盲评 29/30 vs 裸跑 26/30,还便宜 9%——独有发现"华丰科技官方口径与市场传闻冲突",动作落点精确到"8/24 中报看三个数"
## 三个用户故事
**小王,上班族,下班刷雪球。**
"那天金刚光伏涨停,太空光伏加算力转型,评论区都在喊。我就问了散修一句:这题材是真的吗?它的答案是:太空光伏公司官方口径连'送样'都没确认过,算力合同客户匿名、一年实际收入六百多万。我最后什么都没买。后来我才知道,它管这个叫'题材映射 vs 真实敞口',管那个检查叫'官方口径复核'。"
**阿珍,被套怕了的老股民。**
"我不需要别人告诉我买什么,我需要有人在我手痒的时候按住我。散修的锚体检会提前三天提醒我:你锚里的验证日到了。到了那天我说'更新锚',它就把结论改了。最大的变化是:我现在知道自己上一次判断错在哪。"
**老李,亏了十年,想搞明白自己。**
"我最烦那些复盘工具——流水账记了一堆,还是不知道错哪。散修的决策日志就一行:当时信了什么、做了什么、对不对。三个月下来,我发现自己十次里有七次死在同一条陷阱上。知道这件事本身,比抓两个涨停值钱。"
## 装起来(30 秒)
1. 下载/克隆本仓库(其实只需要四个东西:`SKILL.md`、`anchors/`、`scripts/`,可选 `tools/` 用于定时提醒;最省事是把整个仓库目录软链接过去)
2. 放进你用的 agent 的 skills 目录:
| 环境 | 放哪里 |
|---|---|
| Claude Code / Claude 桌面 | `~/.claude/skills/` |
| Codex(ChatGPT 桌面) | `~/.codex/skills/` |
| Gemini CLI | `~/.gemini/skills/` |
| DeepSeek Harness(dsh) | `~/.dsh/skills/resanity/`(`~/.agents/skills/` 也可);项目级放 `<项目>/.dsh/skills/`。软链接可行:`ln -s "$(pwd)" ~/.dsh/skills/resanity` |
| OpenClaw | workspace 的 skills 目录(ClawHub 支持从 Claude 格式一键导入) |
| Hermes | skills 目录(开放 Agent Skills 标准,互通) |
3. 完事。**没有任何必须安装的依赖**——热路径就是一份说明书 + 你模型自带的搜索能力。可选的 A 股价格锚脚本才需要 Python(详见 FAQ)。
## 怎么用
### 第一次:直接问
```
你:XX 的题材是真的吗?
散修:根结论 → 可能性地图(多头/基准/空头)→ 证据审计(最弱环节、缺口)
→ 定价对照(市场已定价什么/未定价什么)→ 载体比较 → 下一步验证 → 认知锚
```
每个数字带来源链接和日期;查不到的东西它会明说"查不到",而不是编一个给你。
> DeepSeek Harness 用户:会话里输入 `/resanity` 会确定性加载全文;也可以直接问问题,模型按描述自动调用。锚库和决策日志落在**会话工作目录**(`anchors/`、`journal/`),不落在 skill 安装目录——换项目换锚库,换平台可整体带走。
## DeepSeek Harness 插件部署(可选,推荐)
本仓库同时是一个 dsh 插件包(`lib/index.js`),在"文件目录安装"之上再给四样东西:
1. **内置 skill 分发**:插件把 `SKILL.md` 注册进 DSH 的 skill 注册表(rank 600,本地/项目副本可同名覆盖),其他 DSH 用户装上插件即得 skill;
2. **锚体检定时提醒**:用 DSH 的 `ctx.timer` 每 6 小时扫一遍所有活跃会话工作区的 `anchors/`,到期/临近(默认 3 天窗口)弹系统通知——**不再需要 LaunchAgent/cron 挂 `tools/anchor_check.py`**;
3. **`/resanity-check` 命令**:随时在会话里手动体检,等价于 `python3 tools/anchor_check.py --no-notify`,输出直接显示在命令面板;
4. **`/resanity-tushare` 命令**:`set <token> | status | clear | test` 管理 Tushare token(价格锚用)。token 存 `~/.dsh/resanity/credentials.json`(600 权限),脚本自动回退读取,不用再 export 环境变量;该命令 `recordInput: false`,token 绝不进命令日志。
安装(以 web profile 为例):
```sh
# 1. 把插件链进 DSH 的共享依赖层(profiles 共用一个 node_modules,
# loader 按包名从这里解析;web profile 目录本身没有 node_modules)
ln -s "$(pwd)" ~/.dsh/profiles/node_modules/resanity
# 若装了 pnpm,等价命令:dsh plugin add resanity@link:"$(pwd)"
# 2. 在 ~/.dsh/profiles/web/cordis.patch.yml 里插入一个插件块:
# - insert:
# - id: resanity
# name: resanity
# config:
# checkIntervalHours: 6 # 后台体检周期(小时)
# reminderWindowDays: 3 # 提前几天开始提醒
# systemNotifications: true # 系统通知(macOS/Linux)
# anchorsDirs: [] # 额外锚库目录(活跃会话工作区恒被扫描)
# 3. 重启 dsh 生效;用 dsh --profile web --dump-config 确认 resanity 行已进组合。
# 重启后验证:斜杠菜单(输入 /)出现 resanity-check 与 resanity-tushare;
# 启动约 30 秒后插件跑第一次锚体检(有到期/临近锚会弹系统通知)。
```
体检范围优先级:`$RESANITY_ANCHORS`(可用 `:` 分隔多目录)→ 配置 `anchorsDirs` → 所有活跃会话的 `<工作区>/anchors`。到期的锚会提醒"说「更新锚」即可"——检查是通知,更新永远是你的一句话。
### 然后:养你的锚
每次研究结束,它会给你留下 3–5 条**认知锚**——你能长期持有、能被一个具体事实更新的判断:
| 修仙黑话 | 你的实际资产 | 含义 |
|---|---|---|
| 道基 | 认知锚 | 可证伪的判断命题,写进 `anchors/` |
| 修为境界 | 证据等级 | 假设 → 部分支持 → FACT 支持,随证据升档 |
| 渡劫日 | 更新触发器 | 哪个事件出来,这条锚该重新验证 |
| 走火入魔 | `[失效]` 锚 | 被推翻的判断,连同推翻它的事实一起保留——教训不删 |
### 不止证否:养出远见和信念
证否让你不亏,但只证否不会让你赢——那是保险,不是投资。reSanity 多做了三件事:
- **先行指标**:证据来得晚就没有边缘。订单先于收入、认证先于订单、产能承诺先于出货——检查点永远前移到最早可验证的信号上。
- **检验履历**:信念 = 被攻击后仍站着的判断。每条锚记录每次检验的结果(通过/推翻),连续通过的锚升档——这是证据的累积确证,不是信心的自我催眠。
- **锚定领先度**:每条锚记录"锚定时市场共识是什么"。半年后你数得出来自己比共识早看懂了几次。**远见不是天赋,是这个循环的次数。**
### 触发日:说三个字
**"更新锚"**。它只查触发器里写好的科目,几分钟升档/失效。认知是资产不是笔记:报告会死,锚会活。
### 每天(可选)
`tools/anchor_check.py` 是零依赖的确定性触发器检查(不调模型、不联网):到期或临近三天时弹系统提醒。macOS 用 LaunchAgent 挂它,OpenClaw/Hermes 直接用它们的 cron。
> DeepSeek Harness 用户不需要这一步:装上面的插件,定时提醒就是 DSH 原生的(见「DeepSeek Harness 插件部署」)。
## 它不做什么(诚实边界)
- 不荐股、不下单、不设仓位、不承诺回报
- 认知锚需要你说一句"更新锚"才会更新——提醒会到,检查是你的一句话
- 它把"感觉"变成"可验证的判断",**判断之后的行为永远是你自己的**
## 为什么有效(不玄学,有数据)
这套纪律不是拍脑袋:陷阱清单来自六个冻结投资案例的错误共识规律("需求增长≠便宜"、"预披露≠最终法"、"计划产能≠已交付"……),并经过两次同模型盲评验证——主张正确率 100%、价格锚定有效性是裸模型的 **3.2 倍**、token 成本是裸模型的 **0.9 倍**。它赢的方式不是"信息更多",是"判断更可验证、认知能累积"。(注:盲评样本小——两个案例、同模型自评,参考价值高于统计意义。)
## FAQ
- **它能告诉我 XX 会涨吗?** 不能,也不假装能。它会告诉你:这个价格已经相信了什么、要让"涨"成立哪几条事实必须为真、现在哪条已经为假、下一个验证日是几号。你要的不是预测,是这个清单。
- **要买什么 API / 花多少钱?** 零。模型费用就是你本来在花的 agent 订阅,没有额外支出。
- **没有 Tushare token 能用吗?** 能。A 股价格锚可换 BAOSTOCK(免 token)。想用 Tushare:DSH 里跑一次 `/resanity-tushare set <你的token>`(存 `~/.dsh/resanity/credentials.json`,仅脚本读取,不进日志和仓库);其他环境设 `TUSHARE_TOKEN` 环境变量或 `RESANITY_CREDENTIALS` 指向凭据文件。token 永远是可选增强。
- **数据存在哪?** 全部明文在你的机器上(`anchors/`、`journal/`)——换平台直接带走,没有任何厂商锁定。
- **它是投资顾问吗?** 不是,也不打算是。它是你的研究员 + 账本 + 泼冷水专员。
## 开发
- 集成测试:`test/plugin.test.mjs`(真实 Cordis 上下文 + mock 服务,覆盖 provider/命令/定时器/凭据全路径)。本地跑前先把 DSH 的依赖链进仓库:`ln -s <dsh 安装目录>/node_modules node_modules`,然后 `node test/plugin.test.mjs`;
- 改 `SKILL.md` 即时生效(DSH 每个 step 重新快照目录与正文);改 `lib/index.js` 插件逻辑需重启 dsh;
- 凭据文件、锚库、决策日志都在 `~/.dsh` 或工作区,`git status` 应始终干净。
## License
MIT © 2026 reSanity Contributors
Install
# Skills are files: copy them into $DSH_HOME/skills/resanity (defaults to ~/.dsh/skills/resanity)
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install thhoho-resanity from the hub