@teamix-evo/skills 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +7 -3
  2. package/manifest.json +3 -2
  3. package/package.json +2 -2
  4. package/src/teamix-evo-code-opentrek/SKILL.md +12 -10
  5. package/src/teamix-evo-code-opentrek/api-layering.md +8 -5
  6. package/src/teamix-evo-code-opentrek/checklist.md +2 -0
  7. package/src/teamix-evo-code-opentrek/error-and-loading.md +38 -25
  8. package/src/teamix-evo-code-opentrek/file-structure.md +63 -54
  9. package/src/teamix-evo-code-opentrek/forms-and-validation.md +14 -12
  10. package/src/teamix-evo-code-opentrek/reuse-first.md +2 -0
  11. package/src/teamix-evo-code-opentrek/routing-and-codesplit.md +23 -21
  12. package/src/teamix-evo-code-opentrek/testing.md +32 -28
  13. package/src/teamix-evo-code-uni-manager/SKILL.md +12 -10
  14. package/src/teamix-evo-code-uni-manager/api-layering.md +2 -0
  15. package/src/teamix-evo-code-uni-manager/checklist.md +2 -0
  16. package/src/teamix-evo-code-uni-manager/error-and-loading.md +3 -1
  17. package/src/teamix-evo-code-uni-manager/file-structure.md +2 -0
  18. package/src/teamix-evo-code-uni-manager/forms-and-validation.md +2 -0
  19. package/src/teamix-evo-code-uni-manager/reuse-first.md +3 -1
  20. package/src/teamix-evo-code-uni-manager/routing-and-codesplit.md +3 -1
  21. package/src/teamix-evo-code-uni-manager/testing.md +2 -0
  22. package/src/teamix-evo-design-opentrek/SKILL.md +213 -52
  23. package/src/teamix-evo-design-opentrek/boundaries.md +25 -5
  24. package/src/teamix-evo-design-opentrek/brand.md +7 -7
  25. package/src/teamix-evo-design-opentrek/checklist.md +15 -13
  26. package/src/teamix-evo-design-opentrek/components.md +89 -39
  27. package/src/teamix-evo-design-opentrek/examples/detail-ai-gateway-1.html +1069 -0
  28. package/src/teamix-evo-design-opentrek/examples/detail-ai-gateway-instance.html +941 -0
  29. package/src/teamix-evo-design-opentrek/examples/detail-page-api-doc.html +906 -0
  30. package/src/teamix-evo-design-opentrek/examples/detail-page-config.html +993 -0
  31. package/src/teamix-evo-design-opentrek/examples/detail-page-monitor.html +1339 -0
  32. package/src/teamix-evo-design-opentrek/examples/detail-page.html +933 -0
  33. package/src/teamix-evo-design-opentrek/examples/settings-page.html +1119 -0
  34. package/src/teamix-evo-design-opentrek/examples/standard-card-list.html +1094 -0
  35. package/src/teamix-evo-design-opentrek/examples/standard-table-list.html +1361 -0
  36. package/src/teamix-evo-design-opentrek/examples/wizard-form-page.html +877 -0
  37. package/src/teamix-evo-design-opentrek/flows.md +85 -12
  38. package/src/teamix-evo-design-opentrek/foundations.md +12 -9
  39. package/src/teamix-evo-design-opentrek/generation-flow.md +84 -14
  40. package/src/teamix-evo-design-opentrek/pages/detail-page/SKILL.md +260 -0
  41. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/api-doc-detail.md +163 -0
  42. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/comparison-detail.md +100 -0
  43. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/monitor-detail.md +190 -0
  44. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/resource-detail.md +148 -0
  45. package/src/teamix-evo-design-opentrek/pages/form-page/SKILL.md +362 -0
  46. package/src/teamix-evo-design-opentrek/pages/list-page/SKILL.md +286 -0
  47. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/action-column-spec.md +60 -0
  48. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/column-meta-rules.md +117 -0
  49. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/search-combo-spec.md +194 -0
  50. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/state-action-pattern.md +51 -0
  51. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/advanced-filter-list.md +94 -0
  52. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/card-list.md +558 -0
  53. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/drawer-list.md +76 -0
  54. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/expandable-list.md +70 -0
  55. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/l2-sidebar-list.md +73 -0
  56. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/standard-list.md +198 -0
  57. package/src/teamix-evo-design-opentrek/patterns/color-mapping.md +96 -0
  58. package/src/teamix-evo-design-opentrek/patterns/dashboard.md +2 -0
  59. package/src/teamix-evo-design-opentrek/patterns/detail-page.md +218 -152
  60. package/src/teamix-evo-design-opentrek/patterns/form-page.md +437 -228
  61. package/src/teamix-evo-design-opentrek/patterns/list-page.md +221 -260
  62. package/src/teamix-evo-design-opentrek/patterns/page-types.md +40 -125
  63. package/src/teamix-evo-design-opentrek/philosophy.md +7 -5
  64. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AGENT RUNTIME.svg +1 -0
  65. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AI GATEWAY.svg +1 -0
  66. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AI STUDIO.svg +1 -0
  67. package/src/teamix-evo-design-opentrek/rules/_assets/OP_DEV-2.svg +1 -0
  68. package/src/teamix-evo-design-opentrek/rules/_assets/OP_LOGO.svg +1 -0
  69. package/src/teamix-evo-design-opentrek/rules/_assets/OP_OPS.svg +1 -0
  70. package/src/teamix-evo-design-opentrek/rules/boundaries.rules.json +3 -3
  71. package/src/teamix-evo-design-opentrek/rules/business-mapping.json +124 -0
  72. package/src/teamix-evo-design-opentrek/rules/common-components.json +924 -0
  73. package/src/teamix-evo-design-opentrek/rules/component-specs.json +1083 -0
  74. package/src/teamix-evo-design-opentrek/rules/design-tokens.css +433 -0
  75. package/src/teamix-evo-design-opentrek/rules/design-tokens.json +2798 -0
  76. package/src/teamix-evo-design-opentrek/rules/layout-rules.json +218 -0
  77. package/src/teamix-evo-design-opentrek/rules/page-flow.json +351 -0
  78. package/src/teamix-evo-design-opentrek/rules/page-frame.json +241 -0
  79. package/src/teamix-evo-design-opentrek/rules/page-header-spec.md +123 -0
  80. package/src/teamix-evo-design-opentrek/rules/page-types.json +206 -0
  81. package/src/teamix-evo-design-opentrek/rules/sidebar-spec.md +217 -0
  82. package/src/teamix-evo-design-opentrek/rules/styling.json +188 -0
  83. package/src/teamix-evo-design-opentrek/rules/token-mapping.md +284 -0
  84. package/src/teamix-evo-design-uni-manager/SKILL.md +18 -27
  85. package/src/teamix-evo-design-uni-manager/boundaries.md +7 -4
  86. package/src/teamix-evo-design-uni-manager/brand.md +1 -1
  87. package/src/teamix-evo-design-uni-manager/components.md +33 -28
  88. package/src/teamix-evo-design-uni-manager/foundations.md +24 -21
  89. package/src/teamix-evo-design-uni-manager/generation-flow.md +46 -8
  90. package/src/teamix-evo-design-uni-manager/patterns/dashboard.md +3 -1
  91. package/src/teamix-evo-design-uni-manager/patterns/detail-page.md +42 -13
  92. package/src/teamix-evo-design-uni-manager/patterns/form-page.md +67 -30
  93. package/src/teamix-evo-design-uni-manager/patterns/list-page.md +73 -40
  94. package/src/teamix-evo-design-uni-manager/patterns/page-types.md +14 -12
  95. package/src/teamix-evo-design-uni-manager/philosophy.md +4 -2
  96. package/src/teamix-evo-design-uni-manager/rules/boundaries.rules.json +3 -3
  97. package/src/teamix-evo-manage/SKILL.md +74 -66
@@ -0,0 +1,163 @@
1
+ # API文档详情页 (api-doc-detail)
2
+
3
+ > 路由自 `../SKILL.md`
4
+ > 布局模式: 模式B + C 组合
5
+ > 核心组件: ApiEndpoint + ParameterTable + CodeBlock + DescriptionList
6
+ > PageHeader 规范: `../../../rules/page-header-spec.md`
7
+
8
+ ---
9
+
10
+ ## 1. 识别关键词
11
+
12
+ `"API"` / `"接口"` / `"端点"` / `"文档"` / `"接口文档"` / `"模型API"`
13
+
14
+ ## 2. 核心特征
15
+
16
+ - ApiEndpoint 端点信息(HTTP方法 + 路径 + 状态)
17
+ - ParameterTable 参数表(请求/响应,支持嵌套展开)
18
+ - CodeBlock 示例代码(多语言 Tab)
19
+ - **代表场景**:模型 API 详情、服务接口文档、MCP Tool 文档
20
+
21
+ ## 3. 标准布局骨架
22
+
23
+ ```
24
+ PageContainer
25
+
26
+ ContentWrapper
27
+
28
+ Card(白卡容器)
29
+ ├─ PageHeader (面包屑模式)
30
+ │ └─ 模型 API > API 列表 > 接口详情
31
+ │ [在线调试] [编辑] [×]
32
+
33
+ ├─ ApiEndpoint
34
+ │ └─ [POST] /v1/chat/completions [已发布 ●]
35
+
36
+ ├─ DescriptionList — 基本信息
37
+ │ └─ 所属服务 | 关联模型 | 创建时间 | 调用次数 | 平均延迟
38
+
39
+ ├─ Tabs
40
+ │ ├─ 请求参数
41
+ │ │ └─ ParameterTable(type=request) — 可展开嵌套
42
+ │ ├─ 响应参数
43
+ │ │ └─ ParameterTable(type=response) — 可展开嵌套
44
+ │ ├─ 请求示例
45
+ │ │ └─ CodeBlock — 多语言 Tab(curl/Python/Node.js/Java)
46
+ │ └─ 响应示例
47
+ │ └─ CodeBlock — JSON 格式
48
+
49
+ └─ (无 Footer)
50
+ ```
51
+
52
+ ## 4. 必需组件
53
+
54
+ | 组件 | 说明 |
55
+ |------|------|
56
+ | PageHeader | 面包屑模式 |
57
+ | ApiEndpoint | API 端点概览卡 |
58
+ | ParameterTable | 参数结构化展示 |
59
+ | DescriptionList | 基本信息展示 |
60
+
61
+ ## 5. 条件组件
62
+
63
+ | 组件 | 条件 | 说明 |
64
+ |------|------|------|
65
+ | CodeBlock | 有示例代码时 | 多语言代码块 |
66
+ | Tabs | 参数分多类时 | 请求/响应/示例 |
67
+ | Badge | 状态标识 | API 状态 |
68
+ | Tooltip | 参数说明 | — |
69
+ | Dialog | 操作确认 | — |
70
+
71
+ ## 6. 嵌套约束
72
+
73
+ | 父子关系 | 状态 | 说明 |
74
+ |----------|------|------|
75
+ | Card → ApiEndpoint | ✅ ALLOW | 紧跟 PageHeader 之后 |
76
+ | Tabs → ParameterTable | ✅ ALLOW | Tab 面板内展示参数 |
77
+ | Tabs → CodeBlock | ✅ ALLOW | Tab 面板内展示示例 |
78
+ | ParameterTable → ParameterTable | ✅ ALLOW | 嵌套参数展开 |
79
+ | ApiEndpoint → Form | ❌ FORBID | Endpoint 为只读展示 |
80
+
81
+ ## 7. 交互规范
82
+
83
+ | 操作 | 触发方式 | 行为 |
84
+ |------|---------|------|
85
+ | 复制端点 URL | 点击 ApiEndpoint 复制图标 | 复制完整 URL,Sonner "已复制" |
86
+ | 展开嵌套参数 | 点击 ParameterTable 展开箭头 | 展开子参数行(缩进+连接线) |
87
+ | 切换示例语言 | 点击 CodeBlock 内语言 Tab | 切换 curl/Python/Node.js/Java |
88
+ | 在线调试 | 点击 PageHeader "在线调试" | 打开 Sheet(API Playground) 或跳转调试页 |
89
+ | 复制示例代码 | 点击 CodeBlock 复制按钮 | 复制当前语言示例,Sonner "已复制" |
90
+
91
+ ## 8. 边界情况
92
+
93
+ | 场景 | 处理方式 |
94
+ |------|----------|
95
+ | 无请求参数 | ParameterTable 展示"该接口无请求参数" |
96
+ | 嵌套层级>3 | 最多展示 3 层,更深层显示 "..." + Tooltip |
97
+ | 无示例代码 | CodeBlock 展示 "暂无示例" + "贡献示例" 链接 |
98
+ | API 已下线 | ApiEndpoint 状态标红 + 顶部 Alert "该接口已下线" |
99
+ | 参数过多(>30) | ParameterTable 默认折叠非必填参数 + "展示全部" |
100
+
101
+ ---
102
+
103
+ ## 9. 专用业务组件规格
104
+
105
+ ### CodeBlock — 代码/配置块
106
+
107
+ | 属性 | 规格 |
108
+ |------|------|
109
+ | **用途** | 代码、配置文件(YAML/JSON/TOML)只读展示,支持语法高亮 |
110
+ | **最小高度** | 120px |
111
+ | **最大高度** | 480px(超出滚动) |
112
+ | **内边距** | 16px |
113
+ | **背景色** | `hsl(var(--gray-muted))` |
114
+ | **圆角** | `var(--radius-md)` = 8px |
115
+ | **字体** | `font-family: 'SF Mono', 'Fira Code', monospace; font-size: 13px; line-height: 1.6` |
116
+ | **行号** | 左侧 40px 宽,颜色 `hsl(var(--muted-foreground))`,右侧 1px 分割线 |
117
+ | **复制按钮** | 右上角固定,24×24px,hover 时显示 |
118
+ | **折叠模式** | 超过 maxHeight 时底部渐变遮罩 + "展开全部(N行)" 按钮 |
119
+ | **语言Tab** | 顶部内嵌 Tab(CodeBlock 内部),12px 字号,切换不同语言 |
120
+ | **高亮** | 关键字=`hsl(var(--primary))`,字符串=`hsl(142 76% 36%)`,注释=`hsl(var(--muted-foreground))` |
121
+
122
+ ### ApiEndpoint — API 端点卡
123
+
124
+ | 属性 | 规格 |
125
+ |------|------|
126
+ | **用途** | API 端点信息概览(HTTP方法 + 路径 + 状态) |
127
+ | **容器高度** | 48px |
128
+ | **容器背景** | `hsl(var(--gray-muted))` |
129
+ | **容器圆角** | `var(--radius-md)` = 8px |
130
+ | **容器内边距** | 0 16px |
131
+ | **方法标签** | Badge 形式,圆角 4px,字号 12px/600,各方法颜色如下 |
132
+ | **方法颜色** | GET=`hsl(218 100% 47%)`(蓝), POST=`hsl(142 76% 36%)`(绿), PUT=`hsl(40 88% 48%)`(橙), DELETE=`hsl(0 72% 51%)`(红), PATCH=`hsl(262 83% 58%)`(紫) |
133
+ | **路径文字** | monospace, 14px/500, `hsl(var(--gray-primary))` |
134
+ | **状态标识** | 右侧 Badge — 已发布=绿, 未发布=灰, 已下线=红 |
135
+ | **复制图标** | 路径右侧,hover 显示,复制完整 URL |
136
+
137
+ ### ParameterTable — 参数表格
138
+
139
+ | 属性 | 规格 |
140
+ |------|------|
141
+ | **用途** | API 请求/响应参数结构化展示 |
142
+ | **表头** | 参数名 / 类型 / 必填 / 说明,高度 36px,背景 `hsl(var(--gray-muted))` |
143
+ | **行高** | 40px |
144
+ | **参数名字体** | monospace, 13px, `hsl(var(--gray-primary))` |
145
+ | **类型标签** | Badge 形式, 12px, 背景浅色 — string=蓝, number=绿, boolean=橙, object=紫, array=青 |
146
+ | **必填标识** | 红色星号 * 或 Badge "必填" |
147
+ | **选填标识** | 灰色文字 "选填" |
148
+ | **展开箭头** | 左侧 16px,有子参数时显示 ▶/▼ |
149
+ | **子参数缩进** | 每层 24px,左侧 1px 竖线连接 |
150
+ | **最大展开层级** | 3 层,更深显示 "..." |
151
+
152
+ ## 10. 验证清单
153
+
154
+ > 通用检查项见 `../../../docs/validation-workflow.md`。此处仅列出 API 文档详情模式差异项。
155
+
156
+ | 验证项 | 检查点 | 目标 |
157
+ |--------|--------|------|
158
+ | PageHeader | 面包屑模式合规(见 `rules/page-header-spec.md`) | 15 项全部通过 |
159
+ | ApiEndpoint | 方法 Badge 颜色正确,容器高度 48px | 正确 |
160
+ | ParameterTable | 嵌套缩进 24px/层,最多 3 层 | 正确 |
161
+ | CodeBlock | 多语言 Tab 切换,复制功能正常 | 正确 |
162
+ | 端点复制 | 复制完整 URL + Sonner | 正确 |
163
+ | 下线状态 | ApiEndpoint 标红 + Alert 提示 | 正确 |
@@ -0,0 +1,100 @@
1
+ # 对比型详情页 (comparison-detail)
2
+
3
+ > 路由自 `../SKILL.md`
4
+ > 布局模式: 模式B
5
+ > 核心组件: PageHeader(面包屑) + 双栏/多栏 DescriptionList
6
+ > PageHeader 规范: `../../../rules/page-header-spec.md`
7
+
8
+ ---
9
+
10
+ ## 1. 识别关键词
11
+
12
+ `"对比"` / `"比较"` / `"差异"` / `"版本对比"` / `"规格对比"`
13
+
14
+ ## 2. 核心特征
15
+
16
+ - 双栏或多栏 DescriptionList 并列对照
17
+ - 高亮差异项(字段值不同时标记)
18
+ - 适用场景:版本对比、规格对比、配置变更前后对照
19
+
20
+ ## 3. 标准布局骨架
21
+
22
+ ```
23
+ PageContainer
24
+
25
+ ContentWrapper
26
+
27
+ Card(白卡容器)
28
+ ├─ PageHeader (面包屑模式)
29
+ │ └─ 配置管理 > 版本对比
30
+ │ [应用版本B] [返回]
31
+
32
+ ├─ ComparisonHeader — 对比标题栏
33
+ │ └─ [版本 A (当前)] vs [版本 B (待应用)]
34
+
35
+ ├─ DescriptionList (双栏对照模式)
36
+ │ ┌───────────────────┬───────────────────┐
37
+ │ │ 字段名 版本 A │ 字段名 版本 B │
38
+ │ ├───────────────────┼───────────────────┤
39
+ │ │ 实例规格 2C4G │ 实例规格 4C8G ★ │ ← 差异高亮
40
+ │ │ 存储空间 100GB │ 存储空间 200GB ★ │
41
+ │ │ 网络类型 VPC │ 网络类型 VPC │ ← 相同项
42
+ │ │ 备份策略 自动 │ 备份策略 手动 ★ │
43
+ │ └───────────────────┴───────────────────┘
44
+
45
+ └─ (无 Footer)
46
+ ```
47
+
48
+ ## 4. 必需组件
49
+
50
+ | 组件 | 说明 |
51
+ |------|------|
52
+ | PageHeader | 面包屑模式 |
53
+ | DescriptionList | 双栏对照展示 |
54
+ | DescriptionItem | 键值对单元 |
55
+
56
+ ## 5. 条件组件
57
+
58
+ | 组件 | 条件 | 说明 |
59
+ |------|------|------|
60
+ | Badge | 标记差异项 | “已变更” 标识 |
61
+ | Tooltip | 字段悬浮提示 | — |
62
+ | Alert | 变更影响说明 | 顶部警告 |
63
+ | ConfigDiff | 配置文件级对比 | 代码级 diff 展示(详规格见 `resource-detail.md` §7) |
64
+
65
+ ## 6. 差异高亮规则
66
+
67
+ | 场景 | 视觉处理 |
68
+ |------|----------|
69
+ | 字段值不同 | 变更后值使用 `hsl(var(--primary))` 颜色 + 右侧 ★ 标记 |
70
+ | 字段新增 | 背景 `hsl(var(--success-bg))` + Badge "新增" |
71
+ | 字段删除 | 文字 `hsl(var(--destructive))` + 删除线 |
72
+ | 字段相同 | 默认样式,无特殊标记 |
73
+
74
+ ## 7. 交互规范
75
+
76
+ | 操作 | 触发方式 | 行为 |
77
+ |------|---------|------|
78
+ | 应用变更 | 点击 PageHeader "应用版本B" | Dialog 确认 → 执行变更 |
79
+ | 返回 | 点击面包屑/返回按钮 | 返回原页面 |
80
+ | 仅查看差异 | Toggle 开关 | 隐藏相同项,仅显示差异行 |
81
+ | 展开详情 | 点击 DescriptionItem | 展开字段变更说明 |
82
+
83
+ ## 8. 嵌套约束
84
+
85
+ | 父子关系 | 状态 | 说明 |
86
+ |----------|------|------|
87
+ | Card → DescriptionList(双栏) | ✅ ALLOW | 并列对照 |
88
+ | Card → ConfigDiff | ✅ ALLOW | 代码级 diff |
89
+ | DescriptionList → DescriptionList | ❌ FORBID | 不嵌套 |
90
+
91
+ ## 9. 验证清单
92
+
93
+ > 通用检查项见 `../../../docs/validation-workflow.md`。此处仅列出对比型详情模式差异项。
94
+
95
+ | 验证项 | 检查点 | 目标 |
96
+ |--------|--------|------|
97
+ | PageHeader | 面包屑模式合规(见 `rules/page-header-spec.md`) | 15 项全部通过 |
98
+ | 双栏对齐 | 两栏宽度相等,字段名对齐 | 正确 |
99
+ | 差异高亮 | 变更项有明确视觉标识 | 正确 |
100
+ | 仅差异视图 | Toggle 后隐藏相同项 | 正确 |
@@ -0,0 +1,190 @@
1
+ # 监控详情页 (monitor-detail)
2
+
3
+ > 路由自 `../SKILL.md`
4
+ > 布局模式: 模式B + C 组合
5
+ > 核心组件: MetricCard + ChartPanel + AlertList + TimeRangeSelector
6
+ > PageHeader 规范: `../../../rules/page-header-spec.md`
7
+
8
+ ---
9
+
10
+ ## 1. 识别关键词
11
+
12
+ `"监控"` / `"指标"` / `"性能"` / `"告警"` / `"Metrics"` / `"Dashboard"`
13
+
14
+ ## 2. 核心特征
15
+
16
+ - MetricCard 指标卡(请求量/成功率/延迟/Token消耗)
17
+ - ChartPanel 图表面板(折线图/柱状图/面积图)
18
+ - AlertList 告警列表
19
+ - TimeRangeSelector 时间范围选择
20
+ - **代表场景**:实例监控、模型调用监控、MCP 监控、服务健康度
21
+
22
+ ## 3. 标准布局骨架
23
+
24
+ ```
25
+ PageContainer
26
+
27
+ ContentWrapper
28
+
29
+ Card(白卡容器)
30
+ ├─ PageHeader (面包屑模式)
31
+ │ └─ 实例管理 > 实例详情 > 监控
32
+ │ [TimeRangeSelector] [⟳ 刷新]
33
+
34
+ ├─ MetricCard Row (× 4)
35
+ │ └─ [请求总量 12.5K ↑23%] [成功率 99.2% ↑] [平均延迟 128ms ↓] [Token消耗 1.2M ↑]
36
+
37
+ ├─ ChartPanel — 全宽请求趋势图
38
+ │ └─ 折线图: X=时间 Y=请求数
39
+
40
+ ├─ Tabs
41
+ │ ├─ 性能指标
42
+ │ │ └─ ChartPanel Grid (2×2)
43
+ │ │ ├─ 延迟分布(柱状图)
44
+ │ │ ├─ 吞吐量(折线图)
45
+ │ │ ├─ 错误率(面积图)
46
+ │ │ └─ Token 消耗(折线图)
47
+ │ ├─ 告警记录
48
+ │ │ └─ AlertList — 告警列表 + 严重度标识
49
+ │ └─ 调用明细
50
+ │ └─ DataTable — 最近调用记录(时间/模型/状态/延迟/Token)
51
+
52
+ └─ (无 Footer)
53
+ ```
54
+
55
+ ## 4. 必需组件
56
+
57
+ | 组件 | 引用 | 说明 |
58
+ |------|------|------|
59
+ | PageHeader | — | 面包屑模式 |
60
+ | MetricCard | — | 关键指标数值展示 |
61
+ | ChartPanel | — | 图表容器 |
62
+ | TimeRangeSelector | — | 时间范围快捷选择 |
63
+
64
+ ## 5. 条件组件
65
+
66
+ | 组件 | 引用 | 条件 | 说明 |
67
+ |------|------|------|------|
68
+ | Tabs | — | 多维度监控时 | 性能指标/告警/调用明细 |
69
+ | AlertList | — | 有告警功能时 | 告警事件列表 |
70
+ | DataTable | — | 仅在 Tab 内 | 调用明细表 |
71
+ | Badge | — | 状态标识 | — |
72
+ | Tooltip | — | 数据点提示 | — |
73
+ | Skeleton | — | 加载态 | — |
74
+
75
+ ## 6. 嵌套约束
76
+
77
+ | 父子关系 | 状态 | 说明 |
78
+ |----------|------|------|
79
+ | Card → MetricCard Row | ✅ ALLOW | 紧跟 PageHeader 之后,横排 |
80
+ | Card → ChartPanel | ✅ ALLOW | 全宽图表 |
81
+ | Tabs → ChartPanel Grid | ✅ ALLOW | Tab 内 2×2 图表网格 |
82
+ | Tabs → AlertList | ✅ ALLOW | Tab 内告警列表 |
83
+ | Tabs → DataTable | ✅ ALLOW | Tab 内调用明细表 |
84
+ | MetricCard → ChartPanel | ❌ FORBID | MetricCard 为原子卡片 |
85
+ | ChartPanel → ChartPanel | ❌ FORBID | 不可嵌套 |
86
+
87
+ ## 7. 交互规范
88
+
89
+ | 操作 | 触发方式 | 行为 |
90
+ |------|---------|------|
91
+ | 切换时间范围 | 点击 TimeRangeSelector | 全页数据刷新(MetricCard + Chart + AlertList) |
92
+ | 刷新数据 | 点击刷新按钮 | 当前时间范围内全量刷新 |
93
+ | 图表缩放 | 拖拽选区 / 滚轮 | 局部放大时间段 |
94
+ | 查看告警详情 | 点击 AlertList 条目 | 展开告警详情(Sheet 或内联展开) |
95
+ | 确认告警 | 点击确认按钮 | Dialog 确认 → 告警状态变更 |
96
+ | 导出数据 | 点击图表右上角导出 | 导出 CSV/PNG |
97
+
98
+ ## 8. 边界情况
99
+
100
+ | 场景 | 处理方式 |
101
+ |------|----------|
102
+ | 无监控数据 | ChartPanel 展示 Empty + "等待数据上报" |
103
+ | 数据加载中 | MetricCard 骨架屏 + ChartPanel Skeleton |
104
+ | 时间范围无数据 | 图表展示空折线 + "所选时间段无数据" |
105
+ | 告警列表为空 | AlertList 展示 "暂无告警,一切正常 ✓" |
106
+ | 指标异常 | MetricCard 值变红 + 闪烁提示 |
107
+ | 图表数据点过多 | 自动聚合(1h→分钟级, 7d→小时级) |
108
+
109
+ ---
110
+
111
+ ## 9. 专用业务组件规格
112
+
113
+ ### MetricCard — 指标数据卡
114
+
115
+ | 属性 | 规格 |
116
+ |------|------|
117
+ | **用途** | 单个关键指标数值展示 |
118
+ | **卡片尺寸** | flex: 1, 最小宽度 200px, 高度 96px |
119
+ | **内边距** | 16px 20px |
120
+ | **背景** | `hsl(var(--gray-muted))` |
121
+ | **圆角** | `var(--radius-md)` = 8px |
122
+ | **标题** | 12px/400, `hsl(var(--muted-foreground))` |
123
+ | **数值** | 24px/600, `hsl(var(--gray-primary))` |
124
+ | **单位** | 14px/400, `hsl(var(--muted-foreground))`,紧跟数值 |
125
+ | **趋势箭头** | ↑=`hsl(var(--success))`, ↓=`hsl(var(--destructive))`, →=`hsl(var(--muted-foreground))` |
126
+ | **趋势百分比** | 12px,颜色同箭头 |
127
+ | **迷你图(sparkline)** | 底部可选,高度 24px,线宽 1.5px,颜色同趋势 |
128
+ | **横排布局** | `display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px` |
129
+ | **响应式** | ≤1200px: repeat(2, 1fr),≤768px: 1fr |
130
+
131
+ ### ChartPanel — 图表面板
132
+
133
+ | 属性 | 规格 |
134
+ |------|------|
135
+ | **用途** | 图表容器(折线图/柱状图/面积图) |
136
+ | **容器高度** | 全宽单图 280px,Grid 内 220px |
137
+ | **内边距** | 16px |
138
+ | **背景** | transparent(继承 Card 背景) |
139
+ | **圆角** | `var(--radius-md)` = 8px(有背景时) |
140
+ | **标题栏** | 上方,14px/500 标题 + 右侧操作(导出/全屏) |
141
+ | **坐标轴文字** | 11px, `hsl(var(--muted-foreground))` |
142
+ | **网格线** | `hsl(var(--gray-line))`, 虚线, 0.5px |
143
+ | **折线颜色** | `hsl(var(--primary))` 主线,多线时从调色板取 |
144
+ | **Loading 态** | Skeleton 占位,脉冲动画 |
145
+ | **Empty 态** | 居中 "暂无数据" + 图表图标 |
146
+ | **Grid 布局** | `display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px` |
147
+
148
+ ### AlertList — 告警列表
149
+
150
+ | 属性 | 规格 |
151
+ |------|------|
152
+ | **用途** | 告警事件列表展示 |
153
+ | **条目高度** | 最小 56px |
154
+ | **条目内边距** | 12px 16px |
155
+ | **条目间距** | 无间距,用 border-bottom 分隔 |
156
+ | **严重度图标** | 左侧 20px 圆点 — Critical=`hsl(var(--destructive))`红, Warning=`hsl(var(--warning))`橙, Info=`hsl(var(--primary))`蓝 |
157
+ | **标题** | 13px/500, `hsl(var(--gray-primary))` |
158
+ | **时间** | 12px/400, `hsl(var(--muted-foreground))` |
159
+ | **描述** | 12px/400, `hsl(var(--gray-secondary-foreground))`,最多 2 行 |
160
+ | **操作** | 右侧 "确认" 按钮(Ghost),hover 显示 |
161
+ | **空态** | "暂无告警,系统运行正常" + 绿色 ✓ 图标 |
162
+
163
+ ### TimeRangeSelector — 时间范围选择器
164
+
165
+ | 属性 | 规格 |
166
+ |------|------|
167
+ | **用途** | 时间范围快捷选择 + 自定义范围 |
168
+ | **容器形式** | SegmentedControl 样式(连续按钮组) |
169
+ | **高度** | 32px |
170
+ | **预设选项** | 1h / 6h / 24h / 7d / 30d |
171
+ | **选项字号** | 12px/500 |
172
+ | **选中态** | 背景 `hsl(var(--primary))`, 文字白色 |
173
+ | **未选中态** | 背景 transparent, 文字 `hsl(var(--gray-secondary-foreground))` |
174
+ | **圆角** | `var(--radius-md)` = 8px(外层),内部按钮无圆角(首尾除外) |
175
+ | **自定义范围** | 最右侧日历图标,点击弹出 DateRangePicker |
176
+ | **位置** | PageHeader 右侧,与刷新按钮同行 |
177
+
178
+ ## 10. 验证清单
179
+
180
+ > 通用检查项见 `../../../docs/validation-workflow.md`。此处仅列出监控详情模式差异项。
181
+
182
+ | 验证项 | 检查点 | 目标 |
183
+ |--------|--------|------|
184
+ | PageHeader | 面包屑模式合规(见 `rules/page-header-spec.md`) | 15 项全部通过 |
185
+ | MetricCard 横排 | grid 4列布局,gap 12px | 正确 |
186
+ | TimeRangeSelector | PageHeader 右侧,SegmentedControl 样式 | 正确 |
187
+ | ChartPanel Grid | 2×2 网格,gap 16px | 正确 |
188
+ | 时间切换联动 | 切换后全页数据刷新 | 正确 |
189
+ | 告警严重度 | Critical=红, Warning=橙, Info=蓝 | 正确 |
190
+ | 空态处理 | 无数据时各组件正确降级 | 正确 |
@@ -0,0 +1,148 @@
1
+ # 资源详情页 (resource-detail)
2
+
3
+ > 路由自 `../SKILL.md`
4
+ > 布局模式: 模式B + C 组合(Card 分组 + Tabs 分组)
5
+ > 核心组件: PageHeader(面包屑) + InfoCard + DescriptionList + Tabs
6
+ > PageHeader 规范: `../../../rules/page-header-spec.md`
7
+
8
+ ---
9
+
10
+ ## 1. 识别关键词
11
+
12
+ `"实例详情"` / `"资源"` / `"详情"` / `"查看"` / `"信息"`
13
+
14
+ ## 2. 核心特征
15
+
16
+ - InfoCard 顶部摘要(组织/资源集/创建人/创建时间)
17
+ - ChartPanel 监控概览(可选;规格遵循 monitor-detail.md §9)
18
+ - Tabs 多维度信息切换(实例详情/监控/云盘/安全组/快照等)
19
+ - DescriptionList 结构化键值对展示
20
+ - 操作按钮组(编辑/删除/续费/更多)
21
+
22
+ ## 3. 标准布局骨架(含 Sidebar)
23
+
24
+ ```
25
+ ┌──────────┬──────────────────────────────────────────────┐
26
+ │ │ PageContainer │
27
+ │ Sidebar │ ┌─ Card(白卡容器) ───────────────────────┐ │
28
+ │ │ │ PageHeader (仅面包屑,禁止标题) │ │
29
+ │ │ │ 实例与镜像 > 实例列表 > 实例详情 │ │
30
+ │ │ │ [创建镜像] [续费] [更多] [×] │ │
31
+ │ │ │ InfoCard ─ 基本信息 │ │
32
+ │ │ │ 组织 | 资源集 | 创建人 | 创建时间 │ │
33
+ │ │ │ InfoCard ─ 监控 │ │
34
+ │ │ │ [CPU使用率折线图] [内存使用率折线图] │ │
35
+ │ │ │ Tabs │ │
36
+ │ │ │ [实例详情] [监控] [云盘] [安全组] [快照] │ │
37
+ │ │ │ DescriptionList ─ 基本信息 │ │
38
+ │ │ │ 架构: X86 地域: cn-beijing │ │
39
+ │ │ │ 实例ID: i-xxx 实例名称: test-ecs │ │
40
+ │ │ │ 实例规格: ecs.c6.large 状态: 运行中 │ │
41
+ │ │ │ DescriptionList ─ 配置信息 │ │
42
+ │ │ │ vCPU: 2 内存: 4 GiB │ │
43
+ │ │ │ 系统盘: 高效云盘 40GiB OS: Linux 3... │ │
44
+ │ │ │ DescriptionList ─ 网络信息 │ │
45
+ │ │ │ VPC: vpc-xxx 交换机: vsw-xxx │ │
46
+ │ │ │ 私有IP: 172.16.x.x EIP: eip-xxx │ │
47
+ │ │ └────────────────────────────────────────┘ │
48
+ └──────────┴──────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ## 4. 简洁模式(无 Sidebar)
52
+
53
+ ```
54
+ ┌─────────────────────────────────────────────────────────┐
55
+ │ ┌─ Card(白卡容器) ──────────────────────────────────┐ │
56
+ │ │ PageHeader (仅面包屑,禁止标题) │ │
57
+ │ │ 用户列表 > 张三 [编辑] [删除] │ │
58
+ │ │ DescriptionList (column: 2) │ │
59
+ │ │ 姓名: 张三 邮箱: zhangsan@example.com │ │
60
+ │ │ 角色: 管理员 状态: 启用 │ │
61
+ │ │ 创建时间: 2026-01-15 更新时间: 2026-04-20 │ │
62
+ │ └───────────────────────────────────────────────────┘ │
63
+ └─────────────────────────────────────────────────────────┘
64
+ ```
65
+
66
+ ## 5. 必需组件
67
+
68
+ | 组件 | 引用 | 位置 | 说明 |
69
+ |------|------|------|------|
70
+ | PageHeader | — | top | 面包屑模式 + 操作按钮组 |
71
+ | DescriptionList | — | center | 核心展示组件,支持 2/3/4 列 |
72
+ | DescriptionItem | — | center | 单个键值对单元 |
73
+
74
+ ## 6. 条件组件
75
+
76
+ | 组件 | 引用 | 条件 | 说明 |
77
+ |------|------|------|------|
78
+ | InfoCard | — | 需展示摘要信息 | 顶部摘要(组织/资源集/创建人) |
79
+ | Tabs | — | 信息分多类展示 | 实例详情/监控/云盘等 Tab |
80
+ | ChartPanel | — | 资源详情页监控区 | CPU/内存/网络监控图表(详规格见 `monitor-detail.md` §9) |
81
+ | StatCard | — | 详情页概览区 | 三段式统计卡(label/value/subtitle) |
82
+ | OverviewStatGrid | — | 多张 StatCard | StatCard 响应式网格容器 |
83
+
84
+ ## 7. 专用业务组件
85
+
86
+ ### ConfigDiff — 配置对比
87
+
88
+ | 属性 | 规格 |
89
+ |------|------|
90
+ | **用途** | 两个配置版本的 diff 对比展示 |
91
+ | **模式** | inline(单栏标记差异) / split(双栏并排) |
92
+ | **默认模式** | split |
93
+ | **容器高度** | 自适应内容,最大 600px(超出滚动) |
94
+ | **添加行背景** | `hsl(var(--success-bg))` |
95
+ | **删除行背景** | `hsl(0 72% 96%)` (浅红) |
96
+ | **行号** | 双栏各自独立行号 |
97
+ | **顶部信息栏** | 左=旧版本号+时间,右=新版本号+时间,高度 36px |
98
+ | **字体** | monospace, 13px |
99
+ | **统计栏** | 底部显示 "+N行 / -M行" |
100
+
101
+ ### VersionHistory — 版本历史
102
+
103
+ | 属性 | 规格 |
104
+ |------|------|
105
+ | **用途** | 版本变更时间线,支持回滚操作 |
106
+ | **布局** | 垂直时间线(左侧圆点 + 连线 + 右侧内容) |
107
+ | **时间线圆点** | 8px 圆,当前版本=`hsl(var(--primary))`,历史=`hsl(var(--gray-line))` |
108
+ | **连线** | 1px solid `hsl(var(--gray-line))`,圆点间距 |
109
+ | **条目高度** | 最小 56px |
110
+ | **条目内容** | 版本号(14px/500) + 操作人 + 时间(12px/--muted-foreground) + 变更摘要 |
111
+ | **回滚按钮** | hover 时显示,Ghost 样式,12px "回滚到此版本" |
112
+ | **当前版本标记** | Badge "当前" (primary 色) |
113
+ | **紧凑模式** | compact=true 时条目高度 40px,隐藏变更摘要 |
114
+
115
+ ## 8. 嵌套约束(资源详情页特有)
116
+
117
+ | 父子关系 | 状态 | 说明 |
118
+ |----------|------|------|
119
+ | Card → InfoCard | ✅ ALLOW | 摘要卡片 |
120
+ | Card → Tabs | ✅ ALLOW | 分类 Tab |
121
+ | InfoCard → DescriptionList | ✅ ALLOW | 摘要区基本信息 |
122
+ | InfoCard → ChartPanel | ✅ ALLOW | 摘要区监控图表(详规格见 monitor-detail.md §9) |
123
+ | Tabs → TabPane → DescriptionList | ✅ ALLOW | Tab 内展示详情 |
124
+ | Tabs → TabPane → DataTable | ✅ ALLOW | Tab 内展示关联资源列表 |
125
+
126
+ ## 9. 与 PageContainer 模式对照
127
+
128
+ 资源详情页使用 **模式B(Card 分组)+ 模式C(Tabs 分组)组合**:
129
+ ```
130
+ PageContainer → ContentWrapper → Card → PageHeader(面包屑模式) + InfoCard + Tabs → TabPane[DescriptionList]
131
+ ```
132
+ 简洁详情页退化为 **模式B**:
133
+ ```
134
+ PageContainer → ContentWrapper → Card → PageHeader(面包屑模式) + DescriptionList
135
+ ```
136
+
137
+ ## 10. 验证清单
138
+
139
+ > 通用检查项见 `../../../docs/validation-workflow.md`。此处仅列出资源详情模式差异项。
140
+
141
+ | 验证项 | 检查点 | 目标 |
142
+ |--------|--------|------|
143
+ | PageHeader | 面包屑模式合规(见 `rules/page-header-spec.md`) | 15 项全部通过 |
144
+ | InfoCard 表面 | 独立 Card 模式跟随 v7.6;嵌入模式仅 padding + border-bottom | 正确 |
145
+ | ChartPanel | 资源页嵌入监控图表时遵循 monitor-detail.md §9 规格 | 正确 |
146
+ | DescriptionList | 列数(默认2)、字段截断+Tooltip、空值"-"占位 | 正确 |
147
+ | Tab 切换 | 懒加载、URL hash 同步、Empty 状态 | 正确 |
148
+ | 返回约定 | 面包屑父级项可点击返回 + 关闭按钮(×) | 正确 |