forked from EduCraft/curriculum-project-hub
18aac1ff16
ADR-0001/0003/0004 已 PINNED 但 spec/System 未落,补三模块: - ProjectGroup: project↔飞书群 1:1 绑定 + 单射良构(ADR-0001);群失效态 OPEN - Memory: 锚点类别 + MCP 读上下文按 run/project 授权不变式(ADR-0003) - PermissionGrant: grant(resource×principal×role)+settings 六旋钮(ADR-0004); role-capability×settings-policy 组合规则 OPEN - Prelude: 新增 ChatId 载体 - ADR-0017: AgentSession provider/model 绑定,切 model 即新 session, 跨 session 连续性由 ADR-0003 记忆/锚点重建;agent 层 provider 无关, @Claude 仅为触发品牌。RunId/SessionId doc 去 provider 暗示。 lake build 28/28 绿。
32 lines
1.6 KiB
Lean4
32 lines
1.6 KiB
Lean4
/-!
|
|
# Prelude —— System 层共享标识符
|
|
|
|
平台层反复引用一组标识符(项目、run、session、principal、chat)。其内部表示从未被决策
|
|
(UUID / 复合键、principal 子类型学),也非分歧点,故收口成 opaque 载体
|
|
`Identifiers`,System 各模块在其上参数化——契约谈得了"锁 owner 是哪个 run"这类
|
|
**关系**,却不对标识符表示作承诺。
|
|
-/
|
|
|
|
namespace Spec.System
|
|
|
|
/-- System 层标识符载体(关系结构 `PINNED`;各字段表示 `OPEN`)。 -/
|
|
structure Identifiers where
|
|
/-- 课程项目标识(`OPEN` 表示;聚合根,likec4 `Project`)。 -/
|
|
ProjectId : Type
|
|
/-- 一次 agent 任务的标识(`OPEN` 表示;锁的 owner、审计主体,`AgentRun`。provider 无关,
|
|
ADR-0017;`@Claude` 仅为触发品牌,不承诺 provider)。 -/
|
|
RunId : Type
|
|
/-- 长生命周期 agent 会话标识(`OPEN` 表示;**provider/model 绑定, ADR-0017**——一次
|
|
session 不跨 provider/model;切 model 即新 session,跨 session 连续性由 ADR-0003 项目
|
|
记忆/锚点重建,不由 session 自带。同 provider/model 内可跨多 run 复用, ADR-0002)。 -/
|
|
SessionId : Type
|
|
/-- 权限主体标识(`OPEN` 表示及其子类型学;ADR-0004 的 user/chat/department/…
|
|
子类型学未定且非本层分歧点,纯 plumbing,故只留 opaque 键)。 -/
|
|
Principal : Type
|
|
/-- 飞书项目群 chat 标识(`OPEN` 表示;ADR-0001 协作空间、ADR-0003 锚点引用、
|
|
ADR-0004 `feishu_chat` principal 三处共用同一实体。独立成载体而非 `Principal` 子
|
|
类型——principal 子类型学 OPEN 见上,本层不预设"chat 是 principal 的哪种子型")。 -/
|
|
ChatId : Type
|
|
|
|
end Spec.System
|