Skip to content

Commit ba46de0

Browse files
committed
docs: sync and archive completed changes
1 parent da67178 commit ba46de0

56 files changed

Lines changed: 2486 additions & 84 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

openspec/changes/harden-web-ui-system/.openspec.yaml renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/.openspec.yaml

File renamed without changes.

openspec/changes/harden-web-ui-system/admin-mutation-matrix.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/admin-mutation-matrix.md

File renamed without changes.

openspec/changes/harden-web-ui-system/design.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/design.md

File renamed without changes.

openspec/changes/harden-web-ui-system/proposal.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/proposal.md

File renamed without changes.

openspec/changes/harden-web-ui-system/specs/admin-dashboard/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/admin-dashboard/spec.md

File renamed without changes.

openspec/changes/harden-web-ui-system/specs/feedback-command-system/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/feedback-command-system/spec.md

File renamed without changes.

openspec/changes/harden-web-ui-system/specs/navigation-shell/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/navigation-shell/spec.md

File renamed without changes.

openspec/changes/harden-web-ui-system/specs/topic-detail-experience/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/topic-detail-experience/spec.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,20 @@
22

33
### Requirement: Topic action surface 分层
44

5-
话题详情 action surface SHALL 将普通用户动作、作者直接编辑和管理动作分层展示。收藏/取消收藏、查看回复和举报 MUST 保持普通动作语义;作者编辑自己的话题 MUST 直接可见;admin 编辑他人话题 MUST 位于单一“管理”菜单;有既有权限的 mod 或 admin 执行置顶、高亮和删除时,这些动作 MUST 收纳在同一“管理”菜单中。该分层 MUST NOT 改变任何角色原有的动作权限。
5+
话题详情正文后的 action surface SHALL 将主互动、页内导航和更多/管理动作分层展示,避免收藏、查看回复、编辑、举报和管理操作以同级按钮零散平铺。收藏/取消收藏、查看回复和举报 MUST 保持普通动作语义;作者编辑自己的话题 MUST 直接可见;admin 编辑他人话题 MUST 位于单一“管理”菜单;有既有权限的 mod 或 admin 执行置顶、高亮和删除时,这些动作 MUST 收纳在同一“管理”菜单中。该分层 MUST NOT 改变任何角色原有的动作权限。
6+
7+
#### Scenario: 主互动和页内导航分离
8+
9+
- **WHEN** 话题详情正文渲染完成
10+
- **THEN** 收藏/取消收藏作为主互动操作展示
11+
- **AND** “查看回复”作为页内导航操作展示
12+
- **AND** 两者在视觉上不与高风险管理动作同级混排。
13+
14+
#### Scenario: 更多和管理动作归组
15+
16+
- **WHEN** 当前用户具备编辑、举报或管理权限
17+
- **THEN** 编辑话题、举报、置顶、高亮和删除等动作 SHALL 归入更多/管理区域或等价分组
18+
- **AND** destructive 动作必须保持明确危险语义和确认流程。
619

720
#### Scenario: 普通互动和页内导航保持可见
821

@@ -47,7 +60,9 @@
4760
#### Scenario: 移动端 action surface 可用
4861

4962
- **WHEN** 话题详情页在移动端渲染
63+
- **THEN** 主互动和查看回复仍可直接触达
5064
- **THEN** 收藏/取消收藏、查看回复和作者直接编辑 MUST 保持可触达
65+
- **AND** 低频或管理动作可以折叠,但不得消失或变成不可发现的死控件
5166
- **AND** 举报和“管理”菜单 MAY 按普通动作与管理动作层级折叠,但不得消失或变成不可发现的死控件
5267
- **AND** 菜单内容 MUST 可滚动且不得被底部 safe area 遮挡。
5368

openspec/changes/harden-web-ui-system/specs/user-management/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/user-management/spec.md

File renamed without changes.

openspec/changes/harden-web-ui-system/specs/web-ui-components/spec.md renamed to openspec/changes/archive/2026-08-02-harden-web-ui-system/specs/web-ui-components/spec.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,18 @@
22

33
### Requirement: shadcn/ui 原子组件层
44

5-
Web UI SHALL 继续使用仓库内源码所有权的 shadcn/ui 原子组件层,并 SHALL 以 Base UI 作为交互 primitive 基础,提供 `button`、`input`、`label`、`card`、`badge`、`avatar`、`dropdown-menu`、`dialog`、`sheet`、`tabs`、`table`、`tooltip`、`skeleton`、`sonner`、`form`、`select`、`native-select`、`textarea`、`alert-dialog`、`alert`、`pagination`、`empty`、`command` 和 `radio-group`。这些组件 MUST 共享语义颜色、尺寸、焦点和禁用状态;迁移完成后 Web 源码和直接依赖 MUST NOT 保留 Radix primitive 或 Slot 兼容层。
5+
Web UI SHALL 继续使用 `apps/web/app/components/ui/` 内源码复制进仓库(非 npm 依赖)的 shadcn/ui 原子组件层,并 SHALL 以 Base UI 作为交互 primitive 基础,提供 `button`、`input`、`label`、`card`、`badge`、`avatar`、`dropdown-menu`、`dialog`、`sheet`、`tabs`、`table`、`tooltip`、`skeleton`、`sonner`、`form`、`select`、`native-select`、`textarea`、`alert-dialog`、`alert`、`pagination`、`empty`、`command` 和 `radio-group`。每个组件 MUST 用 `cn()` 工具合并 class 并引用语义 token(如 `bg-background`);这些组件 MUST 共享语义颜色、尺寸、焦点和禁用状态。迁移完成后 Web 源码和直接依赖 MUST NOT 保留 Radix primitive 或 Slot 兼容层。
6+
7+
#### Scenario: 新建页面使用原子组件
8+
9+
- **WHEN** 开发者在 `routes/` 下新建页面
10+
- **THEN** 页面内的按钮、输入框、卡片等 MUST 从 `~/components/ui/` 导入,不得手写 `<button className="bg-blue-600 ...">` 等裸 Tailwind 字符串。
11+
12+
#### Scenario: 组件源码进仓库
13+
14+
- **WHEN** 查看 `apps/web/app/components/ui/`
15+
- **THEN** 原有 `button.tsx`、`input.tsx` 等 15 个组件文件以及本 Requirement 新增的组件文件 MUST 存在
16+
- **AND** 每个文件 MUST 是完整的组件源码,而非 re-export。
617

718
#### Scenario: 页面使用一致的语义组件
819

0 commit comments

Comments
 (0)