Imported from yinhm/alphalake (
AGENTS.md). Install upstream withnpx skills add yinhm/alphalake. Copyright stays with the author.
AlphaLake
-
默认项目范围仅沪深市场,不同步或纳入北交所批量估值与覆盖率分母;只有明确指定才包含北交所。混合市场原始文件完整归档,按已解析身份限定发布范围;已有北交所证据和历史记录保留,不把排除范围当作退市、缺失或采集失败。
-
当前产品主线仅沪深非金融企业的自动化条件估值;金融专项模型和多市场扩展暂停,既有事实及已批准的A股市值代理保留。固定100家仅作回归样本;金融样本标明范围外,不删除原验收分母或用补EBIT凑准入。
-
先按通用缺口定位既有来源的同步、关联和物化原因,统一主库参考版本到原生后端实际输入,再审核增长、利润率和资本效率。事实、参考、政策代理及用户覆盖分别留痕;用户显式输入优先,不把默认值当公司事实。采集成功不等于网页更新,候选须经原生API验收再原子发布,失败回滚。当前优先级见
docs/implementation-status.md,发布操作见docs/guides/system-delivery.md。 -
使用中文沟通和编写文档。先读
README.md、docs/implementation-status.md,涉及语义时查docs/decisions/;不要把设计中的计划当成已实现功能。当前状态与历史验收分开,更新功能时修正文档中的过时结论,不只在末尾追加。README只作入口,当前数量与优先级集中在实现状态;操作和方法按主题维护,阶段记录归入docs/history,冻结证据不改写。文档移动同步引用,已完成或退出当前模型的待办及时删除。 -
当前无实际生产部署,只维护当前数据模型与接口契约;禁止为旧版本保留别名、兼容包装、双路径或静默降级。变更须同步全部调用方、测试、skill与文档;旧库及输入采用显式一次性转换或可验证重建,先保存不可重建的证据与审核记录。冻结历史按原提交复验,不要求当前运行时兼容;不得以清理兼容为由删除血缘或缺项拒绝。
-
先追踪调用链,再修根因;复用现有代码、Go 标准库和 DuckDB 能力,不为假想需求增加抽象或依赖。
-
财务存储与导出以速度和体积为发布门槛:固定同一真实数据集测量入库、重放、标准查询、整批导出及峰值内存,保留失败结果。共享元数据按报告/记录保存,禁止新增逐字段重复血缘、重复诊断及逐公司启动进程的批量路径;不得以加内存、缩小批次或删除证据代替结构性优化,具体门槛见
docs/guides/financial-storage-redesign-20260925.md。 -
TDX连接直接按上游
tdx.Hosts顺序轮询,单次请求最多三台,失败留记录;不另设下载节点、HTTP后备或自建分段重组。 -
当前估值接入以完善数据并导出符合 Investment_Valuation_Agent 原SQL/API契约的输入为目标;保持其原页面和流程,仅允许明确BUG修复及必要后端API/数据适配,不另建前端或用专项估值绕过数据缺口。数据无法达标时列明原因、调研具体补充方案并等待审批,不擅自扩大来源或填默认事实。
-
动态数据只放workspace,按来源组织(tdx-cache、cninfo、damodaran等),派生结果放derived;唯一权威库为workspace/alphalake.duckdb,财务及已接入达摩达兰等参考数据合库。禁止按日期重复建同步目录、独立日常参考库或把运行结果写入代码目录;已有冻结测试/研究证据不混删。tdx-cache仅放清单及直接落盘的zip,不设objects或逐包JSON;历史血缘证据保存在tdx;damodaran按可识别文件名平铺,必要版本后缀,不引入objects分层。TDX优先复用校验合格的本地缓存,上游未变不下载;下载失败允许明确标记的本地回退,旧缓存不冒称最新,损坏缓存拒绝。迁移备份仅用于回滚,重开验收后清理并留路径、哈希和原因;临时测试库用系统临时目录。
-
工具实现与研究产物分开:独立 Go 工具入口放
cmd/<工具名>/,数据源解析及通用逻辑复用internal/;Python 估值/研究工具放valuation/backend/tools/。valuation/research/只保留研究配置、证据快照、结果与说明,不混入工具实现;移动入口时同步命令和引用。 -
数据源语义必须有真实响应、原始文件或权威文档佐证,并将发现固化为回归测试;模拟测试通过不代表真实接口可用。特别检查空响应、分页尾页和未来报告期占位包。
-
不猜身份、单位或时间:按业务时点解析证券身份,歧义保留待解析证据;报告期不等于公告时间;交易披露、交割/登记与会计确认时点分别留痕,不互相替代。CNINFO 日期精度公告到中国次日零点才可用于 PIT。
-
财务数据分层不得绕过:TDX 是主要结构化数值来源,CNINFO 提供公告身份、时点和原文核验。原始证据→源解析→语义/校验→标准事实→财务派生→估值,来源独立留痕;PDF 不静默覆盖 TDX,冲突留诊断。 逐期间源零审核须绑定源包/行序、映射指纹和原文,支持撤销;审核补充不冒充标准事实。 原始ZIP已保留时,库内源层只存轻量记录定位与治理关系,禁止重复持久化源BLOB、源位值或源字段长表;解析后直接批量写标准宽表,源位核对按哈希及原文行序回读ZIP。
-
估值方法一律以达摩达兰原始教材及官方公开资料为准,方法或公式调整须注明出处和适用条件;增长、利润率等输入可依公司证据与历史复验校准,但不得为通过回测改写FCFF、净再投资、ROIC或WACC定义。行业均值及模型假设不冒充公司事实;既有方法偏差须记录并修正,不把本地实现当作方法依据。
-
所有估值假设(含自动选择及继承默认值)须符合达摩达兰方法的适用条件与内部一致性,分别记录原始方法出处、公司经济依据和本地政策选择。增长、利润率、再投资、税率、风险及终值须相互一致;不得将示例参数、行业均值或统一阈值当作其理论规定。公司依据未闭合时仅可输出明确标记的条件情景,不得自动采用为已核实的合理估值;数值可得、公式复算、回测或接近股价均不替代经济依据核验。
-
财务字段统一使用标准目录中的通用名称,明确单位、期间及报表范围;禁止在业务查询、派生、估值、研究计算、政策配置及对外 API/CLI 参数、输出、文档和说明中以源编号(如 TDX FN)代替标准名称,不得只改展示名或另设编号别名。源编号仅允许用于必要的源解析、映射、源校验、血缘追溯及明确标注的源维护操作;业务输出仅在独立来源证据中按需保留,禁止默认暴露或要求使用者理解编号。原始证据、历史迁移及冻结归档保留原编号,不批量改写;分层改造须迁移旧库与输入契约并验证数值不变,语义纠错另行说明影响。
-
估值行情补采应限定实际消费的日期窗口,不默认抓取全历史;限定窗口不得冒充完整日线历史或推进其完成检查点。导出/展示历史窗口不等于估值准入门槛;派生输入按各自所需字段读取历史,不因其他字段缺失裁掉已有数据;按引擎实际消费及所选方法区分必需、条件与可选输入,缺历史不补零、不压缩期间。估值优先消费标准事实查询;缺项须区分源缺失、未同步、未映射/未派生与部分目标范围,禁止把实现缺口说成上游无数据;确实缺失或尚未审核的字段必须分别列明,必要附注作为显式补充输入,政策/预测另层保存。上市前历史优先复用招股披露范围审核(ADR021)关联TDX数值,不另建PDF数值主源;研发历史长度由所选摊销政策决定,不设统一六年门槛。真实零、不适用和未列报分别处理;哈希或逐格差异不能单独裁决公告有效性。不得用 PDF 直算样本冒充生产数据链路验收,完成度按系统实际交付的输入统计。
-
哈希、重复提取和恒等式各有边界,不等于独立语义核验。新增公司须验证 TDX→物化/时点查询→估值输入,并以财报核对期间、单位、范围及源精度;保留差异,不为对齐模型恢复 float32 丢失的小数或将缺项归零。
-
官方文档明确的字段定义、单位及期间可作为批量标准映射依据;映射审核与逐公司金额核验分开记录,不以逐字段PDF取证阻塞接入。缺项、源零、单位/期间歧义及未审核项显式保留;期初余额、每股指标和来源比率不得按普通流量加总。
-
TDX财务源解析统一由完整目录驱动,禁止按估值需求另建字段白名单、散落编号分支或重复词典;新增已定义字段复用解析与单位规则。源位置覆盖、定义依据、标准审核和估值适用分别计数,参考词典不冒充审核,未公布语义不猜,零值不自动视为已披露。
-
财务字段同时核对单位和期间:TDX FN230–FN237 是单季度金额,年报包中也不是全年累计;FN238 是期末股本。未审核字段只保留源证据。折旧等分量可能跨期合并/拆分列示,先按公司和期间核对组成范围,再聚合TTM;不固定叠加字段或将未单列认定为零。 历史比较区分原披露与追溯调整口径;定向发现差异保留诊断,不用最新PDF覆盖旧TDX,不把日期可用等同于数值可比。
-
保留不可变原始证据和血缘;失败或不完整快照不得覆盖可信历史、关闭身份区间或推进完成检查点。数据与对应检查点原子发布,重放保持幂等。
-
财务按证券/期间宽行批量读写,先限定证券、期间及标准列再展开;禁止源字段逐行入库、逐公司/期间启动导出进程,以及以包间反复重连掩盖表设计问题。性能验收注明数据范围、冷暖缓存、耗时、库与归档体积和进程内存;大任务必须与交互终端隔离并设硬限额。
-
派生结果从本地标准事实重建,按内容变化判断失效;复权不得纳入存储价格锚点之前的事件。修正语义时同时考虑已有数据库的迁移或重算。
-
原生估值参考随SQLite发布并绑定会话版本,用户显式参数优先;US行业口径不得以Global静默替代,总ERP不得重复叠加国家风险溢价,源重复冲突不得按行序覆盖。
-
参考数据的发布日期、业务生效日、首次取得和本次取得分别留痕;未知日期不借用其他数据集日期,重复下载不改写首次取得。行业映射、资本效率、信用档与目标权重是显式政策代理,不冒充公司事实或公司市场 WACC。
-
完成度须标明证券分母、报告期、信息截止及数据库范围;核心字段齐全、模型准入、估值产出和逐公司原文核验分别计数。缺口按通用类别统计适用分母、自动闭合、人工审核、仍歧义和不适用;人工逐值审核不称自动化闭合,样本转绿不代替全范围验证。保留零事实、拒绝与失败公司,副本/分区批次不冒称主库/单次全市场验收。
-
报告估值须标明模型/政策版本、财务与信息时点、股本基期及可追溯运行;专项研究与通用批次分别展示。不同模型不串成价格更新,条件值不称当前目标价,政策过期或缺项不静默降级。
-
解释估值变化先比实际输入,再区分财务、预测、WACC与股权/股本调整;声称单因素变化须验证其余输入相同。库升级或副本发布先保留备份、比较受影响内容并重开验收,运行元数据变化不等于财务值变化。
-
系统允许持续演进:有来源或方法依据的合法数据、口径和模型变更,应保留旧证据,按新输入重建基线、重新估值并解释差异;不得仅因与旧数据、旧方法或旧结果不同而拒绝。禁止混用新旧口径,但须提供完整重建路径,不能以一致性校验将旧基线固化为枷锁;合法变更不等于自动认证经济合理性。
-
预测规则改进须先建立当前规则基线,固定样本、信息截止、实际值版本与留出期间;后来取得的历史数据不冒称当时已留存,更正/当前参考不得泄漏入历史预测。公式复算、估值成功率和贴近股价不代替预测有效性,保留拒绝与缺数据分母。同公司多期不冒称独立样本,点估计通过与不确定性分开报告;重采样不消除版本、幸存者或宏观共同冲击偏差。 经用户授权的简化回溯可在独立研究层采用TDX源数值与FN314日期、按异常定向核验CNINFO;不得伪造标准事实或声称严格PIT。
-
估值改进以持续经营公司的通用能力为主线;疫情异常、重大重组等个案仅作边界诊断,新增取证须说明会改变哪项估值决策。不得无期限追查异常或按事后误差筛出“正常”公司;真实周期和亏损保留。每轮候选保留既有基线作对照,合法变更按新口径重建、明确停止条件,失败不继续扫描阈值;最终交付须解释经营预测如何影响现金流和条件估值,局部误差改善不冒称完整DCF准确度提升。
-
当前聚焦估值输入与增长、利润率、再投资、WACC的经济一致性;暂停为历史回测或凑齐比较窗口向更早年度扩展采集。历史不足单列,不阻断已有条件估值;只有明确会改变当前估值决策并重新获准时才扩大历史补证范围。
-
自动估值以跨公司可重复规则为交付单位,禁止以个股专项调参代替通用能力;事前固定样本、规则和停止条件,统一生成有来源的条件情景并保留拒绝。历史均值、行业代理和持续期判断分别标注,不按估值高低或股价选择情景;公司专项仅作回归证据。
-
异常值先区分解析错误、口径不可比与真实极端经营结果;不删除原始证据,不以亏损、负季度收入或高研发费用率直接判错。训练过滤须只用起点可得信息、事前固定规则并报告移除数,完整评价分母保留;按事后误差挑公司剔除只作敏感性,不用过滤后的好看结果证明预测有效。
-
代码修改后运行
gofmt、相关回归测试、go test ./...和go build ./cmd/alphalake;依赖变更检查go mod tidy。Python 估值或解析改动运行对应回归,明确解释器依赖、CI覆盖与本地skip;新增真实证据须有可重复的正向与篡改拒绝校验。仅文档修改检查链接与git diff --check,无需跑 Go 测试。行为变化同步相关文档,如实说明验证范围及未通过项。 -
本机曾因全量财务重放触发OOM,systemd随后杀掉同scope的bash和Codex。 Go及会调用Go的Python测试服务须显式设置
GOPATH/GOCACHE。测试服务不得继承指向真实主库归档的ALPHALAKE_WORKSPACE;测试使用各自临时目录,实际库重建另行显式设置。大库重放、导出及全套测试须串行运行,使用与交互终端分离且已核验MemoryMax的systemd服务,预留系统内存;DuckDB memory_limit不等于进程硬上限;资源预算覆盖整个服务组(含编排进程),等待子进程时不得保留无用全量报告。先小批验收,监控资源,异常退出先查内核和单元日志,禁止原参数盲目重试;不得删除WAL冒充恢复。
