Story 1.3: 完善社区树洞核心功能
Status
Draft
Story
As a 用户, I want 在安全的社区环境中分享我的想法和获得支持, so that 我能够获得同伴支持并减少孤独感。
Acceptance Criteria
- AC1: 支持匿名发帖,包含文字、图片、标签选择
- AC2: 实现抱抱、评论等基础互动功能
- AC3: 集成风险识别算法,自动标记高风险内容
- AC4: 支持内容举报和审核机制
- AC5: 实现个性化内容推荐和关注功能
Tasks / Subtasks
[ ] Task 1: 实现匿名发帖功能 (AC: 1)
- [ ] 开发发帖编辑器,支持富文本编辑
- [ ] 实现图片上传和管理功能
- [ ] 添加标签选择和自定义标签功能
- [ ] 实现匿名/化名切换机制
- [ ] 开发草稿保存和续写功能
[ ] Task 2: 构建风险识别系统 (AC: 3)
- [ ] 集成AI内容风险分析算法
- [ ] 实现情绪温度条和风险评估
- [ ] 开发风险等级分类(R1-R4)
- [ ] 添加实时风险扫描和预警
- [ ] 实现高风险内容的自动干预
[ ] Task 3: 开发互动功能模块 (AC: 2)
- [ ] 实现抱抱功能和计数统计
- [ ] 开发评论系统,支持嵌套回复
- [ ] 添加收藏功能和收藏管理
- [ ] 实现点赞和分享功能
- [ ] 开发互动通知系统
[ ] Task 4: 建立内容审核机制 (AC: 4)
- [ ] 实现用户举报功能
- [ ] 开发审核工作台和流程
- [ ] 添加内容状态管理(草稿/审核中/已发布/已归档)
- [ ] 实现违规内容处理机制
- [ ] 建立审核记录和审计日志
[ ] Task 5: 实现个性化推荐系统 (AC: 5)
- [ ] 开发用户兴趣分析算法
- [ ] 实现基于标签的内容推荐
- [ ] 添加关注功能和关注管理
- [ ] 开发热门话题和趋势展示
- [ ] 实现个性化内容流
[ ] Task 6: 完善数据模型和服务层 (AC: 1, 2, 3, 4, 5)
- [ ] 设计和实现forum_posts数据库集合
- [ ] 创建forum_reactions互动数据集合
- [ ] 扩展forum.js服务,支持完整社区功能
- [ ] 实现数据归一化和缓存机制
- [ ] 完善Mock数据和测试场景
[ ] Task 7: 实现treeholeModeration云函数 (AC: 3, 4)
- [ ] 实现主要内容审核逻辑
- [ ] 集成风险识别算法
- [ ] 添加举报处理和状态管理
- [ ] 实现审核工作台API
- [ ] 添加错误处理和日志记录
[ ] Task 8: 集成现有功能验证 (Integration Verification)
- [ ] 验证与treeholeModeration云函数的协作
- [ ] 测试与今天页社区动态卡的集成
- [ ] 确认论坛数据正确写入forum_posts数据库集合
- [ ] 测试高并发情况下的系统稳定性
- [ ] 验证风险识别的准确性和及时性
[ ] Task 9: 编写单元测试和集成测试
- [ ] 为发帖功能编写测试用例
- [ ] 为风险识别算法编写测试
- [ ] 编写互动功能测试
- [ ] 创建审核机制测试
- [ ] 添加性能和负载测试
Dev Notes
Previous Story Insights
基于前两个故事的情绪打卡和AI建议系统,本故事需要将社区功能与情绪状态深度集成,实现完整的心理健康支持闭环。
Data Models
forum_posts集合设计 [Source: docs/页面文档/页面-树洞.md#数据需求]
- 主要字段:
post_id: string - 帖子唯一标识user_id: string - 用户标识(匿名化处理)content: string - 帖子内容tags: array - 标签数组mood_thermometer: number - 情绪温度(1-10)risk_level: string - 风险等级(R1-R4)anonymity_mode: string - 匿名模式(anon/pseudonym)status: string - 帖子状态
forum_reactions互动集合 [Source: docs/页面文档/页面-树洞.md#数据需求]
- 主要字段:
reaction_id: string - 互动唯一标识post_id: string - 关联帖子IDuser_id: string - 用户标识reaction_type: string - 互动类型(hug/comment/favorite/share)content: string - 互动内容(评论时使用)
risk_signals风险信号集合 [Source: docs/功能文档/功能-树洞发帖与草稿自检.md#数据需求]
- 主要字段:
signal_id: string - 信号唯一标识target_type: string - 目标类型(post/comment)target_id: string - 目标IDrisk_score: number - 风险评分risk_level: string - 风险等级processed: boolean - 是否已处理
API Specifications
服务层接口扩展 [Source: miniprogram/services/forum.js]
fetchFeed(params)- 获取帖子列表,支持筛选和排序publishPost(params)- 发布帖子,包含风险自检getPostDetail(postId)- 获取帖子详情getPostComments(params)- 获取评论列表submitComment(params)- 提交评论toggleInteraction(params)- 互动操作(抱抱、收藏)moderateContent(params)- 内容审核fetchDrafts(params)- 获取草稿列表
云函数接口 [Source: cloudfunctions/treeholeModeration/index.js]
action: 'assessRisk'- 评估内容风险action: 'moderateContent'- 内容审核action: 'processReport'- 处理举报action: 'getRecommendations'- 获取推荐内容action: 'updatePostStatus'- 更新帖子状态
Component Specifications
发帖编辑器组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]
- 富文本编辑器支持
- 图片上传和预览
- 情绪温度条选择器
- 标签输入和管理
- 风险自检提示
帖子卡片组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]
- 帖子摘要展示
- 情绪状态可视化
- 互动统计显示
- 风险等级标识
- 快速操作按钮
互动面板组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]
- 抱抱功能和计数
- 评论输入和显示
- 收藏和分享按钮
- 举报功能入口
File Locations
新增/修改文件位置 [Source: CLAUDE.md#模块结构图]
- 前端页面:
miniprogram/pages/treehole/index.js- 树洞Tab主逻辑 - 分包页面:
miniprogram/packages/community/- 社区功能分包 - 服务层:
miniprogram/services/forum.js- 社区服务(已存在,需大幅扩展) - 云函数:
cloudfunctions/treeholeModeration/index.js- 树洞审核(需要完整实现) - 组件:
miniprogram/components/post-editor/,miniprogram/components/post-card/- 社区组件(新增) - 数据库:
forum_posts,forum_reactions,risk_signals集合(新增)
Testing Requirements
测试策略 [Source: CLAUDE.md#测试策略]
- 风险识别算法测试:各种风险场景的识别准确性
- 发帖功能测试:包括匿名机制和内容安全
- 互动功能测试:抱抱、评论、收藏等功能
- 审核机制测试:举报处理和内容状态管理
- 性能测试:高并发情况下的系统稳定性
Technical Constraints
安全和隐私要求 [Source: docs/prd.md#技术约束和集成要求]
- 所有用户输入必须验证和过滤
- 匿名机制需要确保用户身份安全
- 风险识别需要及时准确,避免误判
- 内容审核需要遵循相关法规要求
性能要求 [Source: docs/prd.md#非功能需求]
- 系统响应时间必须在2秒内完成基础操作
- 支持至少1000并发用户
- 数据库查询响应时间小于500ms
- 风险识别需要在发帖时实时完成
内容安全要求
- 集成微信内容安全接口
- 建立敏感词过滤机制
- 实现人工审核工作流
- 遵循社区规范和法律法规
Integration Strategy
AI风险识别集成 [Source: docs/功能文档/功能-树洞风险提示与温和守护.md]
- 集成Dify工作流进行风险分析
- 实现多级风险评估和响应机制
- 与SOS系统联动,处理高风险事件
- 建立风险信号记录和追踪
情绪数据关联
- 与情绪打卡数据关联,提供个性化支持
- 基于情绪状态推荐相关内容
- 支持从情绪状态快速发帖求助
- 实现情绪趋势分析和预警
Testing
Testing Standards
测试文件位置 [Source: CLAUDE.md#测试策略]
- 单元测试:
miniprogram/services/__tests__/forum.test.js - 云函数测试:
cloudfunctions/treeholeModeration/__tests__/index.test.js - 组件测试:
miniprogram/components/__tests__/post-*.test.js - 集成测试:
__tests__/integration/treehole-workflow.test.js - 风险识别测试:
__tests__/integration/risk-detection.test.js
测试框架和模式
- 使用Jest进行单元测试
- 模拟AI风险识别API进行隔离测试
- 使用Mock数据覆盖各种场景
- 性能测试模拟高并发场景
具体测试要求
- 发帖功能的完整流程测试
- 风险识别算法的准确性测试
- 各种互动功能的边界条件测试
- 审核机制的流程完整性测试
- 匿名机制的安全性测试
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-10-18 | 1.0 | 初始版本创建 | Winston (Architect) |
Dev Agent Record
Agent Model Used
(待开发时填写)
Debug Log References
(待开发时填写)
Completion Notes List
(待开发时填写)
File List
(待开发时填写)
QA Results
(待QA测试时填写)