允许 - #873
Conversation
时间改为14.30
添加右侧量化过滤
根据stock_list执行右侧量化分析
改为绝对路径+debug查看当前路径
修正启动方式
🤖 自动审查报告
📁 修改的文件
🧠 AI 代码审查意见本次 PR 审查结论:Not Ready 结构化审查结果
必改项 (最多 5 条)
建议项 (最多 5 条)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 95b1ce5cc8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| mkdir -p data logs reports | ||
|
|
||
| - name: Generate Right Side Pool | ||
| run: python3 ./scripts/right_side_selector.py > stock_list.txt |
There was a problem hiding this comment.
Use the actual right-side selector path in workflow
The new workflow step runs python3 ./scripts/right_side_selector.py, but this commit adds the script at .github/scripts/right_side_selector.py, so the referenced path does not exist on the runner and the job will fail before main.py executes. This breaks the scheduled analysis run in every environment using this workflow.
Useful? React with 👍 / 👎.
|
|
||
| - name: Export STOCK_LIST | ||
| run: | | ||
| echo "STOCK_LIST=$(cat stock_list.txt)" >> $GITHUB_ENV |
There was a problem hiding this comment.
Ensure generated STOCK_LIST is the value passed to analysis
This step exports a generated STOCK_LIST via $GITHUB_ENV, but the later 执行股票分析 step still defines STOCK_LIST explicitly from ${{ vars.STOCK_LIST || secrets.STOCK_LIST || '600519' }}, which shadows the generated value; as a result, the right-side pool computation has no effect and analysis continues using the static/default list. This causes silently incorrect stock selection rather than the intended dynamic list.
Useful? React with 👍 / 👎.
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过,自动生成分析股票池并接入每日分析 workflow 属于与仓库主流程直接相关的能力变更。
- 是否有对应 issue:无(未看到
Fixes/Refs,描述里也没有说明无 issue 时的验收标准)。 - PR 类型:feat,新增右侧选股脚本并改动每日分析 workflow 的输入股票池与调度行为。
- description 完整性:不完整,缺少 Background/Scope/Issue Link/实际验证结果/兼容性风险/回滚方案,也没有说明默认执行时间为何从 18:00 调整为 14:25,以及相关文档落点。
- 是否可直接合入:不可,当前存在确定性的 workflow 接线错误,且调度语义与文档不一致,至少需要先修正脚本路径、让生成的
STOCK_LIST真正传递到分析步骤,并补齐文档/变更记录。
主要问题
.github/workflows/daily_analysis.yml:Generate Right Side Pool调用了python3 ./scripts/right_side_selector.py,但本 PR 新增的文件实际在.github/scripts/right_side_selector.py。按当前 diff,workflow 会在生成股票池这一步直接失败;现有 PR CI success 也没有覆盖这条daily_analysisworkflow。.github/workflows/daily_analysis.yml:前一步通过$GITHUB_ENV导出的STOCK_LIST,会被“执行股票分析”步骤里的 step-levelenv.STOCK_LIST: ${{ vars.STOCK_LIST || secrets.STOCK_LIST || '600519' }}覆盖。结果是右侧股票池并不会传给main.py,本 PR 的核心能力实际上没有接入主流程。.github/workflows/daily_analysis.yml及现有文档:cron 已从0 10 * * 1-5改为25 6 * * 1-5,实际执行时间从北京时间 18:00 变成 14:25;但 workflow 注释、README.md、docs/full-guide.md、docs/DEPLOY.md及对应中英文文档仍写 18:00,docs/CHANGELOG.md也未更新。按AGENTS.md,这类 workflow/部署语义变化需要同步文档与变更记录,否则运维预期会和实际运行时间分叉。.github/scripts/right_side_selector.py:新脚本直接调用ak.stock_zh_a_spot_em(),没有复用仓库现有data_provider里的重试、缓存、熔断和降级路径。本仓库原本就在使用 AkShare,但本 PR 把这条依赖前移成 workflow 的硬前置,单一数据源抖动就会在进入main.py前终止整次分析,这和AGENTS.md里“单一数据源失败不应拖垮整个分析流程”的稳定性护栏相冲突。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过,自动生成分析股票池并接入
每日股票分析workflow 属于与仓库主流程直接相关的能力变更。 - 是否有对应 issue:无(未填写
Fixes/Refs,也未说明无 issue 时的验收标准)。 - PR 类型:feat,新增右侧选股脚本并调整每日分析 workflow 的股票来源与定时行为。
- description 完整性:不完整,模板中的 Background/Scope、Issue Link、实际验证结果、Compatibility And Risk、Rollback Plan 基本未填写;对于默认调度时间变更也未说明原因、影响范围和文档落点。
- 是否可直接合入:不可。当前 CI 虽通过,但这次改动在实际
daily_analysisworkflow 路径上存在运行时阻断,而且新增调度语义与现有文档不一致。
主要问题
- [Correctness blocker]
.github/workflows/daily_analysis.yml新增的Export STOCK_LIST步骤直接执行cat stock_list.txt,但当前仓库和本 PR diff 中都没有stock_list.txt,也没有任何先生成该文件的步骤。与此同时,新加的.github/scripts/right_side_selector.py在当前改动里没有被 workflow 调用。结果是:要么 workflow 在这里直接失败,要么新增脚本根本没有接入主流程,这个 feature 当前并未真正落地。 - [Correctness blocker]
.github/workflows/daily_analysis.yml虽然前一步尝试通过GITHUB_ENV导出STOCK_LIST,但后面的“执行股票分析”步骤仍显式把STOCK_LIST绑定为${{ vars.STOCK_LIST || secrets.STOCK_LIST || '600519' }}。当前 diff 没有建立“选股脚本输出 -> 分析步骤输入”的明确数据通路,至少说明生成股票池并没有被可靠消费,行为依赖环境变量覆盖顺序,风险较高。 - [Process blocker]
.github/workflows/daily_analysis.yml的 cron 已从0 10 * * 1-5改成25 6 * * 1-5,实际执行时间从北京时间 18:00 变成 14:25,但文件内注释仍写着“UTC 10:00 = 北京时间 18:00”。仓库里现有的README.md、docs/full-guide.md、docs/DEPLOY.md等通用文档也仍说明默认是 18:00。按AGENTS.md,这类调度语义和用户可见 workflow 行为变化需要同步文档与docs/CHANGELOG.md,或者至少说明为什么不更新README.md以及信息落点。当前是“已有通用文档,但本次新增语义未说明”,会直接造成运维预期与实际行为不一致。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
PR Type
Background And Problem
请描述当前问题、影响范围与触发场景。
(EN) Describe the problem, its impact, and what triggers it.
Scope Of Change
请列出本 PR 修改的模块和文件范围。
(EN) List the modules and files changed in this PR.
Issue Link
必须填写以下之一 / Fill in one of:
Fixes #<issue_number>Refs #<issue_number>Verification Commands And Results
请填写你实际执行过的命令和关键结果(不要只写"已测试")。
(EN) Paste the commands you actually ran and their key output (don't just write "tested"):
关键输出/结论 / Key output & conclusion:
Compatibility And Risk
请说明兼容性影响、潜在风险(如无请写
None)。(EN) Describe compatibility impact and potential risks (write
Noneif not applicable).Rollback Plan
请至少写一句可执行的回滚方案(必填)。
(EN) Provide at least one actionable rollback step (required).
EXTRACT_PROMPT Change (if applicable)
若本 PR 修改了
src/services/image_stock_extractor.py中的EXTRACT_PROMPT,请在此处粘贴完整变更后的 prompt。If this PR changes
EXTRACT_PROMPTinsrc/services/image_stock_extractor.py, paste the full updated prompt here:展开 / Expand: Full EXTRACT_PROMPT
Checklist
docs/CHANGELOG.md;若未更新README.md,已说明原因与文档落点 / If user-visible changes are included, the relevant docs anddocs/CHANGELOG.mdare updated; ifREADME.mdwas not updated, the reason and documentation location are explained