Skip to content

📝 docs(general): 提交语音日程提醒工具产品原型设计文档 - #55

Closed
ZhaoXingPeng wants to merge 2 commits into
mainfrom
zhaoxingpeng/deepseek-github-bot
Closed

📝 docs(general): 提交语音日程提醒工具产品原型设计文档#55
ZhaoXingPeng wants to merge 2 commits into
mainfrom
zhaoxingpeng/deepseek-github-bot

Conversation

@ZhaoXingPeng

@ZhaoXingPeng ZhaoXingPeng commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

这份 PR 提交语音日程提醒工具的产品原型设计文档,用于评审 #54 是否可以作为后续原型和 Demo 的基线。本次已按最近三个 Proposal 修正:P1 负责语音创建与查询,P2 只处理提醒关闭和稍后,P3 负责已有日程变更与周期控制。

请重点确认:P1/P2/P3 的边界是否一致,语音与 IM 的分工是否清楚,创建冲突、并发提醒、周期范围、删除和撤销这些高风险场景是否足够支撑 MVP。

Refs #54

Lifecycle: Draft;产品原型评审用,不使用 Fixes 自动关闭 Issue。

本次提交

本次不做

验证

  • PR 最终文件列表只包含 1 个 Markdown 文档
  • git diff origin/main...HEAD --check 通过
  • AI 味校验:Humanizer score 89/100,No priority fixes
  • 无代码改动,无需运行测试

风险与收口

AI 协助说明

AI 协助读取 #56/#57/#58 最近 Proposal 活动,整理原型修正点并检查文档结构、PR 文件列表和去 AI 味结果;产品取舍和最终评审决定由团队人工负责。


规范化索引(2026-08-26)

一句话结论:本 PR 的原始改动描述保持不变;以下区块统一记录关联、Review、CI/测试和后续动作,便于按工程审查要求复核。

关联 Issue

变更与生命周期

  • 当前状态:已关闭但未合并。
  • Milestone:MS1。
  • 标签:FullSpec。
  • 规范化动作:标题/标签/Milestone/负责人按仓库规则补齐;原始正文未删除。

Review 与 CI

  • 人工 Review:未检测到人工 Review;不能以 FennoAI Review 替代人工判断。
  • FennoAI/自动 Review:fennoai[bot]=COMMENTED
  • CI:未读取到可用 check-run;请以 PR 页面最新 CI 为准。
  • 主要检查:无
  • 测试判断:覆盖率只作辅助指标;验收应覆盖核心逻辑和关键链路,并能在代码出错时失败。

AI 使用与责任

  • AI 可以辅助检索、起草和 Review,但提交者必须理解改动、能解释取舍,并对验证结果和合入后果负责。
  • 未处理的 Review 意见、缺失人工判断或无法复核的测试证据,均视为未完成。

后续动作

保留为历史交付记录;后续改动新建 Issue/PR。

本记录参考 2026-08-26 工程审查关注项:PR/人工 Review、Milestone/Issue 讨论、CI 与测试质量、AI 使用边界。

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review summary

Found three high-confidence issues affecting secret safety and the bot's trigger/context behavior. node --check .github/scripts/deepseek-github-bot.mjs passes.

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 — Execute only a trusted copy of the bot when secrets are present. On pull_request runs, the default checkout is the PR merge ref, so the later step executes .github/scripts/deepseek-github-bot.mjs from contributor-controlled head code while exposing DEEPSEEK_API_KEY (and a write-capable GITHUB_TOKEN). A same-repository contributor who cannot read Actions secrets can modify this script in a PR and transmit the secret when the workflow runs. Checkout the script from the trusted default branch (or otherwise isolate trusted bot code) before passing secrets.

Comment thread .github/scripts/deepseek-github-bot.mjs Outdated
const text = [
payload.comment?.body,
payload.review?.body,
payload.issue?.body,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 — Restrict mention matching to the current event text. For comment/review events this also searches the persistent issue/PR title and body. Once a description contains /ai, /bot, or another configured phrase, every later unrelated comment or review will keep triggering the bot, so mention mode effectively becomes automatic for that thread. Select the text by event type: use the new comment/review body for discussion events and the title/body only for issue/PR opened or edited events.

Comment thread .github/scripts/deepseek-github-bot.mjs Outdated

async function getRecentComments(owner, repo, issueNumber, token) {
const limit = positiveInt(env.DEEPSEEK_BOT_RECENT_COMMENTS, 8);
const path = `/repos/${owner}/${repo}/issues/${issueNumber}/comments?per_page=${limit}`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 — Fetch the newest comments rather than the first page. per_page=${limit} only limits the first page returned by the issue-comments endpoint; it does not select the tail of the discussion. Once a thread has more than the configured limit, recentComments contains the oldest comments and omits the current discussion, which can make the generated guidance stale. Paginate to the last page (or fetch then take the final limit entries).

@1024XEngineer 1024XEngineer deleted a comment from github-actions Bot Jul 21, 2026
@ZhaoXingPeng
ZhaoXingPeng force-pushed the zhaoxingpeng/deepseek-github-bot branch from cdcf261 to 47e06b8 Compare July 21, 2026 03:38
@ZhaoXingPeng ZhaoXingPeng self-assigned this Jul 21, 2026
@ZhaoXingPeng ZhaoXingPeng changed the title ci: add DeepSeek GitHub bot workflow docs: 提交语音日程提醒工具产品原型设计文档 Jul 21, 2026
@ZhaoXingPeng
ZhaoXingPeng marked this pull request as draft July 21, 2026 03:40
@ZhaoXingPeng
ZhaoXingPeng requested a review from JunLang-7 July 21, 2026 04:53
@ZhaoXingPeng ZhaoXingPeng added the Documented 文档状态-功能用户文档已提供 label Jul 21, 2026
@ZhaoXingPeng ZhaoXingPeng removed the Documented 文档状态-功能用户文档已提供 label Jul 21, 2026
@JunLang-7
JunLang-7 marked this pull request as ready for review July 22, 2026 06:43
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review summary

Found two high-confidence prototype inconsistencies affecting destructive-action safety and the stated acceptance criteria. The document-only change has no executable test target.

```text
用户:删掉今天下午三点和 Alex 的会。

系统语音:已删除今天下午三点和 Alex 的会。删错了就说撤销。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 — Require confirmation before deleting even a uniquely matched event. The risk table at line 115 and acceptance criterion 14 require deletion to be confirmed before execution, but this flow deletes immediately after the user's first request. Please add a confirmation step and keep the event unchanged until the user confirms.


用户:确定。

系统语音:已取消明天下午三点和 Alex 的会,可以撤销。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 — Add the required IM receipt and undo details to destructive/transformative flows. The acceptance criterion at line 535 says modification, skip, pause, termination, and deletion each need a matching IM receipt and undo explanation, but this single-event skip flow only provides voice feedback; the pause/termination flows have the same omission. Without the receipt/action state, the documented IM contract cannot be implemented or verified consistently.

@ZhaoXingPeng

Copy link
Copy Markdown
Collaborator Author

规范化复核记录(2026-08-26)

本条评论不替代原 PR 描述,只补充工程过程索引。

  • 关联 Issue:[Product] 语音日程提醒工具产品原型设计文档提案-20260721 #54
  • 生命周期:已关闭但未合并
  • Milestone:MS1
  • 人工 Review:缺少人工 Review
  • FennoAI/自动 Review:fennoai[bot]=COMMENTED, fennoai[bot]=COMMENTED
  • CI 摘要:0 个 check-run,0 通过,0 失败,0 未完成。
  • 测试要求:覆盖率不是充分条件;必须证明核心逻辑和关键链路能发现真实错误。
  • AI 责任:提交者需能解释改动、处理 Review 意见,并对验证和合入结果负责。

后续变更请回到 Issue 驱动的 PR;已关闭/已合并对象保留为历史记录,不在此处覆盖事实。

@ZhaoXingPeng ZhaoXingPeng changed the title docs: 提交语音日程提醒工具产品原型设计文档 📝 docs(general): 提交语音日程提醒工具产品原型设计文档 Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FullSpec 规格粒度-影响面大的完整规格

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants