$npx -y skills add kansoku-trade/kansoku --skill trade-gate交易决策关卡——任何买入/加仓/卖出/减仓动作发生前,先过一遍写死的检查关卡, 打分给出判定,判定与实际执行不一致的记为违规,落盘 JSON 供复盘统计。三个 入口:买入漏斗(六层打分,硬门+软分)、卖出触发器(复用用户既有的 6/27 持有计划触发线、周期见顶清单、爆仓潮反向保护)、巡检(对长桥全部持仓批量跑 卖出触发器)。不拦截下单(本仓库长桥只读),约束力来自违规账单而非技术拦截。 Triggers: 我想买 X、我想加仓 X、我想卖 X、我想减 X、要不要止盈、要不要止损、 巡检、跑一遍卖出检查、算一下违规账单、我该不该现在动这只票、trade
| 1 | # trade-gate |
| 2 | |
| 3 | 把交易纪律从"自觉"变成"流程":买入/加仓过六层打分漏斗,卖出/减仓过触发器 |
| 4 | 矩阵,巡检模式对全部持仓批量跑触发器。每次决策(含被否决的)落盘一条 JSON; |
| 5 | 下次运行时自动核对实际成交、回填是否违规;"算一下违规账单"时统计违规笔数与 |
| 6 | 盈亏对比。 |
| 7 | |
| 8 | > **Scope**:本 skill 不下单,只判定+记录。约束力来自"违规的那些亏了多少"这笔 |
| 9 | > 账,不来自程序拦截。三种记录类型的完整字段定义见 |
| 10 | > [`references/schema.md`](references/schema.md)——本文件只讲工作流,不重复 |
| 11 | > 字段表。 |
| 12 | |
| 13 | ## When to use |
| 14 | |
| 15 | - "我想买 MU" / "我想加仓 NVDA" → 买入漏斗 |
| 16 | - "我想卖 DRAM" / "我想减仓 SMH" / "要不要止盈" → 卖出触发器 |
| 17 | - "/trade-gate 巡检" / "跑一遍卖出检查" / 暴跌日主动跑一遍全持仓 → 巡检模式 |
| 18 | - "算一下违规账单" → 违规统计(见 Step 6) |
| 19 | - **Not** for 无买卖意图的纯行情/基本面提问——那是 `longbridge-quote` / |
| 20 | `longbridge-fundamental` 等单一 lens 的事 |
| 21 | - **Not** for 第一次认识一只票的六镜头建档——那是 `stock-deep-dive`(本 skill |
| 22 | 的能力圈硬门失败时会反过来调用它) |
| 23 | |
| 24 | ## Step 0 — 运行前必读 |
| 25 | |
| 26 | **每次运行,无论走哪个入口,先读 `journal/lessons.md`。** 这是过去复盘沉淀的 |
| 27 | 教训清单,每一条都是用真实亏损换来的;如果某条教训适用于当前这笔决策,在 |
| 28 | 输出里明说(如"该止损位已避开某扎堆区,参照 lessons 2026-07-06")。 |
| 29 | |
| 30 | 同时判断入口:用户话里出现"买/加仓" → Step 1;"卖/减仓/止盈/止损"→ Step 2; |
| 31 | "巡检" → Step 3;"违规账单" → Step 6。入口含糊(比如只说"这只票怎么办"且 |
| 32 | 用户已持仓)时,先问清是评估买入还是评估卖出,不要猜。 |
| 33 | |
| 34 | ## Step 1 — 买入漏斗(六层) |
| 35 | |
| 36 | ### ① 能力圈(硬门) |
| 37 | |
| 38 | 检查 `stocks/{SYMBOL}.md` 是否存在且非空(六镜头笔记)。 |
| 39 | |
| 40 | - **不存在或为空** → 不打分,直接终止本次流程,落盘一条 |
| 41 | `verdict: "rejected_hard_gate"` 记录(`circle: "fail"`,其余分项字段为 |
| 42 | `null`),然后建议:先跑 `stock-deep-dive` 建立六镜头笔记,笔记建好后再回来 |
| 43 | 跑一次 trade-gate。 |
| 44 | - **存在且非空** → `circle: "pass"`,继续下一层。 |
| 45 | |
| 46 | ### ② 可证伪逻辑(0–2 分) |
| 47 | |
| 48 | 问用户一句话:"为什么会涨?"+"什么情况算我错了?"(`thesis` + `falsifier`)。 |
| 49 | |
| 50 | - 逻辑清楚 + 写出证伪条件 = 2 |
| 51 | - 只有逻辑,没写证伪条件 = 0 |
| 52 | - 逻辑含糊(比如"感觉要涨") = 1 |
| 53 | |
| 54 | 用户拒绝写证伪条件:不代填、不猜,`falsifier` 记为空字符串,`logic` 按上述 |
| 55 | 标准打 0 分,照常往下走(这不是硬门,只是拉低软分)。 |
| 56 | |
| 57 | ### ③ 估值与周期(0–2 分) |
| 58 | |
| 59 | 拉两样东西: |
| 60 | |
| 61 | 1. 周期见顶清单当前触发数——**从 Claude memory 读取** |
| 62 | `project-ai-memory-cycle-top-signals` 这条记忆里记录的 11 条信号,逐条核对 |
| 63 | 最新状态(不要凭记忆里的旧状态直接报数,凡是能用 longbridge 数据核实的都 |
| 64 | 现查一遍)。 |
| 65 | 2. 股价相对 52 周区间与均线的位置——`longbridge kline <SYM>.US --period day` |
| 66 | 之类调用,判断是否处于历史高位/均线极端偏离。 |
| 67 | |
| 68 | 打分:触发 0–1 条且位置不极端 = 2;触发 2 条 = 1;触发 ≥3 条 = 0。 |
| 69 | |
| 70 | ### ④ 技术与买点(0–2 分) |
| 71 | |
| 72 | - 日 K + 分时定性放量/缩量——**对齐前几日同时段成交量再下结论**,不要拿全天 |
| 73 | 量粗暴对比分时量(这是 `market-session-tracker` 沿用下来的既有纪律)。 |
| 74 | - 检查是否处于爆仓潮未洗净期——三判据同 Step 2 的「反向保护」小节,触发即 |
| 75 | 视为技术层减分项。 |
| 76 | - 把 `journal/lessons.md` 里跟当前标的/setup 相关的技术教训逐条核对一遍, |
| 77 | 有相关的就在输出里点名。 |
| 78 | |
| 79 | 打分:量价配合且无未洗净爆仓潮 = 2;有一项存疑 = 1;缩量阴跌中接飞刀或处于 |
| 80 | 未洗净爆仓潮 = 0。 |
| 81 | |
| 82 | ### ⑤ 仓位与集中度(0–2 分) |
| 83 | |
| 84 | 拉 `longbridge positions --format json` + `longbridge portfolio --format json` |
| 85 | (**不要问用户持仓和现金,直接查长桥**——这是仓库级别的强制规则)。算本笔 |
| 86 | 加仓后 AI/半导体主线(NVDA/MRVL/SMH/DRAM/QQQM 等高度重叠的持仓)的合计真实 |
| 87 | 敞口——**按穿透后的合计算,不按单票算**,因为这几个标的对同一条主线有重叠 |
| 88 | 敞口。 |
| 89 | |
| 90 | 打分:不加杠杆且加仓后现金未清零 = 2;现金基本用尽(<本笔金额的 50%) = 1; |
| 91 | 需要杠杆或超出名义上限 = 0。 |
| 92 | |
| 93 | ### ⑥ 退出预设(硬门) |
| 94 | |
| 95 | 要求用户在下单前写死:止损位(具体价格数字)+ 机械减仓规则(比如"跌破止损 |
| 96 | 减半,反抽不站上前低清仓")。 |
| 97 | |
| 98 | - 任一项写不出来 → `exit: "fail"`,直接否决(`verdict: "rejected_hard_gate"`), |
| 99 | 不再看软分。 |
| 100 | - 两项都写出来 → `exit: "pass"`。 |
| 101 | |
| 102 | ### 判定与输出 |
| 103 | |
| 104 | - 硬门(①⑥)任一 `fail` → `verdict: "rejected_hard_gate"`,`soft_total: null`。 |
| 105 | - 两个硬门都 `pass` 时,`soft_total` = ②③④⑤ 四项之和(0–8): |
| 106 | - `soft_total ≥ 6` → `verdict: "buy_staged"`(可买,分批) |
| 107 | - `soft_total` 4–5 → `verdict: "watch"`(观望或试探仓) |
| 108 | - `soft_total < 4` → `verdict: "rejected"` |
| 109 | |
| 110 | 输出必须包含:六层分项得分(硬门用 pass/fail,软分用数字)、判定、每项依据的 |
| 111 | 关键数据(带 `source` + `at`,即 `key_data`)、若 `buy_staged` 则附 |
| 112 | `plan`(止损、机械减仓规则、名义上限、建议的分批节奏)。然后落盘(见 Step 4)。 |
| 113 | |
| 114 | ## Step 2 — 卖出触发器 |
| 115 | |
| 116 | 对单票(或巡检模式下的每个持仓)逐项检查,任一触发即在输出中高亮并给出对应 |
| 117 | 动作建议。**不发明新规则,只把用户已有规则编成可执行检查项:** |
| 118 | |
| 119 | ### 1. 6/27 持有计划触发线 A/B/C/D |
| 120 | |
| 121 | 来源:用户 2026-06-27 定的持有计划(memory |
| 122 | `project-hold-through-plan-2026-06-27`)。四条线: |
| 123 | |
| 124 | - A 基本面恶化——查 `longbridge-fundamental` / 财报数据 |
| 125 | - B SMH < $560——查 `longbridge quote SMH.US` |
| 126 | - C 连续 3 日机构派发——查 `longbridge-capital-flow` |
| 127 | - D 美联储转向加息——查 `fred` 联邦基金利率/点阵图相关序列 |
| 128 | |
| 129 | 四个布尔值都要给出,拿不到数据的那项写"未获取到",不猜。 |
| 130 | |
| 131 | ### 2. 周期见顶清单触发数(11 条) |
| 132 | |
| 133 | 同 Step 1③,从 memory `project-ai-memory-cycle-top-signals` 读取 11 条信号, |
| 134 | 现查触发状态而非照抄旧记忆里的数字。触发数变化时,按用户自己定的减仓规则 |
| 135 | 给建议(比如"触发数从 2 条变 3 条,按既定规则该减一档")。 |
| 136 | |
| 137 | ### 3. 原文六分类兜底 |
| 138 | |
| 139 | - `logic_falsified`(逻辑证伪)——对照买入时写的 `falsifier` 是否已经发生, |
| 140 | 能从数据判 |
| 141 | - `valuation_bubble`(估值泡沫)——能从数据判 |
| 142 | - `mechanical_trim_due`(机械减仓到点)——对照买入时的 `trim_rule`,能从数据判 |
| 143 | - `stop_hit`(止损触及)——对照买入时的 `stop`,能从数据判 |
| 144 | - `opportunity_cost`(机会成本)——列为问句,让用户自答,不强行给布尔值 |
| 145 | - `position_imbalance`(仓位失衡)——列为问句,让用户自答 |
| 146 | |
| 147 | ### 4. 反向保护——爆仓潮检查 |
| 148 | |
| 149 | 无论以上触发几条,都先查这一项。判据(来源 `journal/lessons.md` 2026-07-13 |
| 150 | 那条教训,三取二 = 洗净): |
| 151 | |
| 152 | 1. SK Hynix / KOSPI 连续两天不创新低——用 `korea-market` skill 查 |
| 153 | 2. 韩国追保比例掉头回落——用 `korea-market` skill 查 |
| 154 | 3. 美股存储链放量阳线——用 `longbridge` 查 MU/美光供应链相关标的 |
| 155 | |
| 156 | 三项里满足 ≥2 项才算洗净。**未洗净时**(`in_unclean_flush: true`),无论 |
| 157 | 上面 1–3 触发几条,判定恒为 `verdict: "blocked_by_flush"`,并在输出里附上 |
| 158 | 提示:"不要卖在爆仓潮里,要卖在洗净后的反弹里"——这条反向保护优先级高于其他 |
| 159 | 所有触发信号。 |
| 160 | |
| 161 | 韩国数据取不到时,`flush_check` 输出"未获取到",不阻塞主流程(既不算洗净也 |
| 162 | 不算未洗净,只是提示这块信息缺口,`verdict` 按其余触发器正常判定)。 |
| 163 | |
| 164 | ### 判定 |
| 165 | |
| 166 | 未处于未洗净爆仓潮时,综合 1–3 的触发情况给出:`exit`(应清仓)/ |
| 167 | `trim`(应减仓)/ `hold`(暂不动)。三个类别的具体归类没有额外的数字公式—— |
| 168 | 参照第 1、2 条触发的严重程度 + 第 3 条命中数量做综合判断,并在输出里写清楚 |
| 169 | "为什么是这个判定",而不是套死板算式(卖出端本来就是复用用户已有规则,不 |
| 170 | 新增打分体系)。 |
| 171 | |
| 172 | 落盘见 Step 4。 |
| 173 | |
| 174 | ## Step 3 — 巡检模式 |
| 175 | |
| 176 | 触发词:"/trade-gate 巡检"、"跑一遍卖出检查",或暴跌日主动建议跑一次。 |
| 177 | |
| 178 | 1. 拉 `longbridge positions --format json` 取全部持仓。 |
| 179 | 2. 先跑 |