基线:鉴权会话+工作组+工作台三区修复+编排工作区+产品设计文档
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -107,3 +107,25 @@ export const sessionSchema = z.object({
|
||||
grants: z.array(grantSchema),
|
||||
});
|
||||
export type Session = z.infer<typeof sessionSchema>;
|
||||
|
||||
/* ── 工作组(ADR-011) ────────────────────────────────────────────────── */
|
||||
|
||||
/**
|
||||
* 工作组 —— 一组「岗位 → 员工」的绑定,起单时装载、随工作流走。
|
||||
*
|
||||
* **不是第五种负责人策略**(OS 03「策略封闭四选」不动):
|
||||
* 四策略回答的是「这个岗位该派给谁」,工作组直接给出了答案,策略于是无从发问。
|
||||
* 键是**岗位 code**(BD / PM / FAE …),与流程包 `owner.position` 同一口径。
|
||||
*/
|
||||
export const workGroupSchema = z.object({
|
||||
id: z.string().min(1),
|
||||
name: z.string().min(1),
|
||||
/** 组归谁 —— 起单时按来源人取其组 */
|
||||
ownerId: staffIdSchema,
|
||||
members: z.record(z.string().min(1), staffIdSchema),
|
||||
});
|
||||
export type WorkGroup = z.infer<typeof workGroupSchema>;
|
||||
|
||||
/** 装进工作流的**快照**:改组不改已起的单(留痕不被改写) */
|
||||
export const workGroupBindingSchema = z.record(z.string().min(1), staffIdSchema);
|
||||
export type WorkGroupBinding = z.infer<typeof workGroupBindingSchema>;
|
||||
|
||||
Reference in New Issue
Block a user