feat(workspace): 增加工作活动日报引擎
This commit is contained in:
@@ -165,3 +165,15 @@ V2 接入后端后改为基于 `ProjectMember` 表的 RBAC(Owner/Admin/Member/
|
||||
- `task-category.ts`:DevTask/TestCase 共用任务类型字典,`id` 用于存储,`code` 用于 AI 语义映射。
|
||||
|
||||
页面组件只消费规则层输出,不直接拼完成条件或候选筛选条件。
|
||||
## Work Activity Daily Report Layer (2026-06-26)
|
||||
|
||||
The personal daily report is derived from two inputs:
|
||||
|
||||
- `work-activities`: append-only activity records created by successful business actions.
|
||||
- `task-worklogs`: legacy/manual worklog records that still contribute hours and written work content.
|
||||
|
||||
`work-activity-factory.ts` owns the mapping from domain actions to reportable activity semantics. Zustand stores call this factory after a successful operation, then append the result through `useWorkActivityStore`.
|
||||
|
||||
`workspace-daily-report.ts` remains a pure aggregation engine. It groups today's current-user activity into delivery, progress, creation, risk, and note sections, and also detects in-progress work that started before today but has no activity or progress note today.
|
||||
|
||||
This is intentionally not a generic rules engine or event bus. The rule surface is explicit, typed, and local to the workspace/daily-report use case.
|
||||
|
||||
@@ -330,3 +330,16 @@
|
||||
- 测试用例按所属需求分组时展示“已提测/待提测”标签;只有该需求下所有开发任务都 `submitted` 才展示“已提测”,否则展示“待提测”。
|
||||
|
||||
**理由**:第一轮承载完整测试范围,后续轮次应复跑同一范围而不是临时拼装;执行记录按轮次隔离,整体投入按版本累计,能同时回答“这一轮测得怎么样”和“这个版本测试总共花了多少”。
|
||||
## 28. Daily report uses work activity log, not a generic rules engine
|
||||
|
||||
**Problem**: A daily report based only on manual `task-worklogs` misses important actions such as submitting a product plan, starting a development task, submitting code to test, fixing bugs, or marking blockers.
|
||||
|
||||
**Decision**: Add a lightweight `work-activities` document key and a typed `work-activity-factory.ts`. Business stores append activity records after successful operations. The workspace daily report derives a personal report from activities, legacy worklogs, and current work items.
|
||||
|
||||
**Why**:
|
||||
- Automatic activity records provide evidence that work happened today.
|
||||
- Manual progress notes explain multi-day work when no status changed today.
|
||||
- A generic rules engine is too heavy for the current AppData stage and would hide business rules behind configuration.
|
||||
- A pure aggregation function keeps report behavior testable and predictable.
|
||||
|
||||
**Rule**: Key status changes count as daily evidence. Multi-day in-progress work without today's activity or progress note is flagged as needing a progress update.
|
||||
|
||||
@@ -136,3 +136,7 @@ NestJS + Prisma + PostgreSQL 已开始接入。第一阶段先用 `app_data` JSO
|
||||
| V2 后端接入 | 进行中(V2.1 AppData 已实现) |
|
||||
| V3 AI 集成 | 等 V2 数据沉淀 |
|
||||
| 公开发布 | TBD |
|
||||
**2026-06-26**
|
||||
- Workspace daily report upgraded from manual worklog summary to mixed activity aggregation.
|
||||
- Added `work-activities` AppData key and a typed activity factory for VersionPlan, DevTask, TestCase, and Bug actions.
|
||||
- `/workspace` daily report now groups delivery/progress/creation/risk/progress-note records and flags in-progress work that needs today's progress update.
|
||||
|
||||
@@ -203,3 +203,21 @@ AI 估时约束:
|
||||
- `version-plan-workflow.ts` 是调研/产品方案/UI 设计完成条件的唯一入口。
|
||||
- `requirement-selector.ts` 是版本内关联需求候选的唯一入口。
|
||||
- `TaskCategory.code` 是 AI 和系统任务类型的稳定映射锚点,`id` 只作为存储主键。
|
||||
## Work Activity Daily Report Flow (2026-06-26)
|
||||
|
||||
The daily report flow uses mixed evidence:
|
||||
|
||||
1. Automatic evidence is written when a user performs a successful domain action:
|
||||
- VersionPlan created, started, or completed.
|
||||
- DevTask created, started, moved to self-test, submitted to test, blocked, or unblocked.
|
||||
- TestCase created, started, passed, failed, or blocked.
|
||||
- Bug created, moved to fixing, fixed, closed, or transferred.
|
||||
2. Manual progress notes are used for multi-day work that does not change status today.
|
||||
3. `/workspace` shows only the current logged-in user's report.
|
||||
4. Project-owner and management views will reuse the same `work-activities` data later, but are not part of the personal workspace panel.
|
||||
|
||||
Implementation convention:
|
||||
|
||||
- Activity wording and category mapping belong in `apps/web/lib/work-activity-factory.ts`.
|
||||
- Daily report grouping belongs in `apps/web/lib/workspace-daily-report.ts`.
|
||||
- Page components should consume report output, not rebuild report rules.
|
||||
|
||||
Reference in New Issue
Block a user