Skip to content

Commit 9c56174

Browse files
authored
Merge branch 'main' into main
2 parents c3e0839 + f9549c7 commit 9c56174

495 files changed

Lines changed: 123794 additions & 8727 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Repository Claude Skills
2+
3+
本目录存放仓库级协作 skills,属于版本库资产。
4+
5+
- 规则真源:仓库根目录 `AGENTS.md`
6+
- 兼容入口:根目录 `CLAUDE.md`(应为指向 `AGENTS.md` 的软链接)
7+
- 本目录中的 skill 需要与 `AGENTS.md` 保持一致
8+
- `.claude/reviews/` 属于本地分析产物,不作为规则真源
9+
10+
如果未来需要兼容其他 agent 目录(如 `.agents/skills/``.github/skills/`),应先明确单一真源,再通过脚本或镜像同步,而不是手工长期维护多份同义内容。
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Analyze Issue
2+
3+
分析 GitHub Issue,判断其真实性、优先级、仓库责任边界与建议动作。
4+
5+
**Repository**: https://github.com/ZhuLinsen/daily_stock_analysis/issues
6+
7+
## Usage
8+
9+
```text
10+
/analyze-issue <issue_number>
11+
```
12+
13+
## Instructions
14+
15+
分析时使用简洁中文,优先遵循仓库根目录 `AGENTS.md`
16+
17+
### Step 1: 拉取 Issue 信息
18+
19+
```bash
20+
gh issue view <issue_number> --repo ZhuLinsen/daily_stock_analysis
21+
gh issue view <issue_number> --repo ZhuLinsen/daily_stock_analysis --comments
22+
```
23+
24+
如为 bug,优先核对 issue 模板中是否提供了以下信息:
25+
26+
- 是否已同步到最新版本
27+
- commit hash / 版本基线
28+
- 运行环境与复现步骤
29+
- 日志或报错信息
30+
31+
### Step 2: 回答 4 个核心问题
32+
33+
1. 版本是否明确
34+
2. 问题是否真实且可验证
35+
3. 是否属于仓库责任边界
36+
4. 是否值得立即处理
37+
38+
### Step 3: 结合仓库现状做证据检查
39+
40+
- 阅读相关代码、配置、测试、脚本、工作流与文档
41+
- 如果问题涉及 API、数据源 fallback、报告生成、通知发送、认证、桌面端、发布流程,明确写出影响面
42+
- 判断是实际 bug、环境配置问题、使用方式问题、还是外部依赖问题
43+
- 如怀疑已被修复,检查当前代码而不是只看 issue 描述
44+
45+
### Step 4: 形成结论
46+
47+
至少给出以下字段:
48+
49+
- `版本基线`:最新 / 非最新 / 未提供
50+
- `是否合理`:是/否 + 理由
51+
- `是否是 issue`:是/否 + 理由
52+
- `是否好解决`:是/否 + 难点
53+
- `结论``成立 / 部分成立 / 不成立`
54+
- `分类``bug / feature / docs / question / external`
55+
- `优先级``P0 / P1 / P2 / P3`
56+
- `难度``easy / medium / hard`
57+
- `建议动作``立即修复 / 排期修复 / 文档澄清 / 关闭`
58+
59+
### Step 5: 生成分析文档
60+
61+
保存到 `.claude/reviews/issues/issue-<number>.md`
62+
63+
## Output Document Format
64+
65+
```markdown
66+
# Issue #<number> Analysis
67+
68+
**Date**: YYYY-MM-DD
69+
**Status**: Pending Review
70+
71+
## Summary
72+
73+
- 版本基线:
74+
- 是否合理:
75+
- 是否是 issue:
76+
- 是否好解决:
77+
- 结论:
78+
- 分类:
79+
- 优先级:
80+
- 难度:
81+
- 建议动作:
82+
83+
## Evidence
84+
85+
- 关键 issue 信息:
86+
- 关键代码/脚本/工作流证据:
87+
88+
## Impact Scope
89+
90+
- 受影响模块:
91+
- 受影响运行路径(本地 / Docker / GitHub Actions / API / Web / Desktop):
92+
93+
## Root Cause / Main Reasoning
94+
95+
<根因或主要判断依据>
96+
97+
## Proposed Handling
98+
99+
<建议修复、澄清或关闭方式>
100+
101+
## Risks And Rollback
102+
103+
- 风险点:
104+
- 若修复,回滚方式:
105+
106+
## Draft Reply
107+
108+
<建议回复内容>
109+
```
110+
111+
## Allowed Auto-Actions (No Confirmation Needed)
112+
113+
- 拉取 issue 详情与评论
114+
- 阅读相关代码、配置、脚本、工作流和文档
115+
- 生成分析文档
116+
117+
## Actions Requiring Confirmation
118+
119+
执行以下动作前,先询问用户:
120+
121+
1. 添加或修改标签
122+
2. 在 issue 下评论
123+
3. 关闭 issue
124+
4. 开始修复 issue

.claude/skills/analyze-pr/SKILL.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Analyze PR
2+
3+
分析 GitHub Pull Request,评估必要性、描述完整性、验证证据、主要风险与是否可直接合入。
4+
5+
**Repository**: https://github.com/ZhuLinsen/daily_stock_analysis/pulls
6+
7+
## Usage
8+
9+
```text
10+
/analyze-pr <pr_number>
11+
```
12+
13+
## Instructions
14+
15+
分析时使用简洁中文,优先遵循仓库根目录 `AGENTS.md``.github/PULL_REQUEST_TEMPLATE.md`
16+
17+
### Step 1: 拉取 PR 基本信息
18+
19+
```bash
20+
gh pr view <pr_number> --repo ZhuLinsen/daily_stock_analysis
21+
gh pr view <pr_number> --repo ZhuLinsen/daily_stock_analysis --comments
22+
gh pr checks <pr_number> --repo ZhuLinsen/daily_stock_analysis
23+
gh pr diff <pr_number> --repo ZhuLinsen/daily_stock_analysis
24+
```
25+
26+
如有失败的 CI,优先查看失败日志,而不是立刻在本地重跑全部检查:
27+
28+
```bash
29+
gh run view <run_id> --log-failed
30+
```
31+
32+
### Step 2: 按仓库模板检查描述完整性
33+
34+
对照 `.github/PULL_REQUEST_TEMPLATE.md`,确认是否覆盖:
35+
36+
- `PR Type`
37+
- `Background And Problem`
38+
- `Scope Of Change`
39+
- `Issue Link`
40+
- `Verification Commands And Results`
41+
- `Compatibility And Risk`
42+
- `Rollback Plan`
43+
44+
若 PR 涉及第三方模型 / API 兼容语义、请求参数固定值、OpenAI-compatible 路由、YAML alias、fallback 行为或运行时配置保存 / 清理 / 迁移逻辑,还要额外检查描述里是否明确写出:
45+
46+
- 官方来源链接或公告
47+
- 当前锁定依赖 / 运行时兼容范围(例如 LiteLLM 版本窗口)
48+
- 已验证的调用链路覆盖面
49+
- 旧配置是否会被静默改写、清空、迁移或保持不变
50+
- 最小回滚路径(通常是 revert 本 PR)
51+
52+
### Step 3: 优先使用 CI / Diff 证据
53+
54+
- 先根据 `gh pr checks`、PR diff、现有测试与工作流日志判断问题
55+
- 仅当 CI 未覆盖改动面、CI 结果不足以定性问题、或需要验证关键回归风险时,再补充本地最小验证
56+
- 不要默认切换当前分支或执行 `gh pr checkout`
57+
58+
如果必须补本地验证,按改动面选择最接近的检查,例如:
59+
60+
- 后端:`./scripts/ci_gate.sh``python -m py_compile <changed_python_files>`
61+
- 前端:`cd apps/dsa-web && npm ci && npm run lint && npm run build`
62+
- 桌面端:先构建 Web,再构建 Electron
63+
64+
### Step 4: 评估正确性与风险
65+
66+
重点检查:
67+
68+
- 是否解决了明确问题,且没有夹带无关改动
69+
- 是否破坏 API / Schema / Web / Desktop 兼容性
70+
- 是否破坏 fallback、降级路径、通知链路或发布流程
71+
- 是否存在明显逻辑错误、异常吞没、安全问题、配置语义变化未同步文档
72+
73+
### Step 5: 生成评审文档
74+
75+
保存到 `.claude/reviews/prs/pr-<number>.md`
76+
77+
## Output Document Format
78+
79+
```markdown
80+
# PR #<number> Analysis
81+
82+
**Date**: YYYY-MM-DD
83+
**Status**: Pending Review
84+
85+
## Findings
86+
87+
- [严重级别] file:line - 问题描述
88+
89+
## Summary
90+
91+
- 必要性:
92+
- 是否有对应 issue:
93+
- PR 类型:
94+
- description 完整性:
95+
- 验证情况:
96+
- 主要风险:
97+
- 是否可直接合入:
98+
99+
## Validation Evidence
100+
101+
- CI 结论:
102+
- 本地补充验证(如有):
103+
104+
## Compatibility And Risk
105+
106+
- API / Web / Desktop:
107+
- 配置 / Docker / GitHub Actions:
108+
- fallback / 通知 / 报告结构:
109+
- 第三方依赖 / 官方约束来源:
110+
- 运行时兼容窗口 / 已覆盖链路:
111+
- 旧配置迁移或静默改写风险:
112+
113+
## Draft Review Comment
114+
115+
<建议评论内容>
116+
```
117+
118+
## Allowed Auto-Actions (No Confirmation Needed)
119+
120+
- 拉取 PR 元数据、diff、评论和 CI 状态
121+
- 阅读相关代码、模板、工作流与文档
122+
- 在必要时执行最小化本地验证
123+
- 生成评审文档
124+
125+
## Actions Requiring Confirmation
126+
127+
执行以下动作前,先询问用户:
128+
129+
1. 发布评论
130+
2. Approve PR
131+
3. Request changes
132+
4. Merge PR
133+
5. 关闭 PR

.claude/skills/fix-issue/SKILL.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Fix Issue
2+
3+
基于 issue 分析结果实现修复,并按仓库规则补齐验证、风险与回滚说明。
4+
5+
**Repository**: https://github.com/ZhuLinsen/daily_stock_analysis
6+
7+
## Usage
8+
9+
```text
10+
/fix-issue <issue_number>
11+
```
12+
13+
## Prerequisites
14+
15+
优先先完成 `/analyze-issue <issue_number>`,确保问题成立且边界清晰。
16+
17+
## Instructions
18+
19+
### Step 1: 确认分析基线
20+
21+
检查 `.claude/reviews/issues/issue-<number>.md` 是否存在;如果不存在,先补做 issue 分析或在本次修复中补齐最小分析结论。
22+
23+
### Step 2: 选择安全的工作方式
24+
25+
- 默认基于当前工作树做最小相关改动
26+
- 不要默认执行 `git pull`
27+
- 不要默认切换分支或改写用户当前工作状态
28+
- 如果用户明确要求建分支,再执行最小必要的分支操作
29+
30+
### Step 3: 实施修复
31+
32+
- 根据 issue 结论定位相关文件
33+
- 优先复用现有模块、配置入口、脚本和测试
34+
- 保持默认行为向后兼容,避免破坏 fallback / fail-open
35+
- 如果修复涉及用户可见行为、配置语义、CLI/API、部署、通知、报告结构,要同步更新相关文档、`docs/CHANGELOG.md``.env.example`
36+
-`docs/CHANGELOG.md` 写入条目时,在 `[Unreleased]` 段追加一行,格式为 `- [类型] 描述`,其中 `[类型]``[新功能]/[改进]/[修复]/[文档]/[测试]/[chore]` 中按本次变更内容选择;只有修复 bug 时才使用 `[修复]`**不要**`[Unreleased]` 内新增 `### 类目标题`
37+
- `README.md` 只承载项目定位、核心能力、快速开始、主要入口、赞助/合作等首页级信息;非必要不更新 README,避免持续膨胀
38+
- 更细的模块行为、页面交互、专题配置、排障说明、字段契约、实现语义和边界条件,优先更新对应 `docs/*.md`
39+
40+
### Step 4: 按改动面验证
41+
42+
`AGENTS.md` 的验证矩阵执行最接近的检查:
43+
44+
- 后端优先:`./scripts/ci_gate.sh`
45+
- 最低后端要求:`python -m py_compile <changed_python_files>`
46+
- 前端:`cd apps/dsa-web && npm ci && npm run lint && npm run build`
47+
- 桌面端:先构建 Web,再构建桌面端
48+
49+
如无法完成完整验证,必须记录缺口、原因与潜在风险。
50+
51+
### Step 5: 更新 issue 分析文档
52+
53+
`.claude/reviews/issues/issue-<number>.md` 中补充:
54+
55+
```markdown
56+
## Fix Implementation
57+
58+
**Date**: YYYY-MM-DD
59+
60+
### Changes Made
61+
62+
- 文件与改动点:
63+
64+
### Validation
65+
66+
- 已执行:
67+
- 未执行:
68+
69+
### Risks
70+
71+
- 风险点:
72+
73+
### Rollback
74+
75+
- 回滚方式:
76+
```
77+
78+
### Step 6: 需要确认的后续动作
79+
80+
只有在用户明确确认后,才执行:
81+
82+
- 建分支
83+
- `git commit`
84+
- `git push`
85+
- 创建 PR
86+
- 在 issue 下回复或关闭 issue
87+
88+
## Allowed Auto-Actions (No Confirmation Needed)
89+
90+
- 阅读和分析代码
91+
- 应用与当前任务直接相关的最小修复
92+
- 运行非破坏性的本地验证
93+
- 更新本地 issue 分析文档
94+
95+
## Actions Requiring Confirmation
96+
97+
1. 切换或创建分支
98+
2. `git commit`
99+
3. `git push`
100+
4. 创建 PR
101+
5. 回复或关闭 issue

0 commit comments

Comments
 (0)