Files
ClassIsland Prompt Kit 22c1784bab feat: ClassIsland / ClassHelper 灵动岛提示词套件
- 重构版主提示词(14 parts,面向 ClassHelper 灵动岛重构)
- ClassIsland 全量规格提示词(20 parts,含分卷与逐章版本)
- 投喂指南、分卷、逐节文件
- 调研记录、一致性基线、生成与质检脚本
2026-11-12 21:59:58 +08:00

198 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# analysis/windows.md — Part 10(设置中心)与 Part 11(其它窗口)的工作底稿
负责人:windows(Part 10 / Part 11)
工作方式:只读静态分析。未构建、未运行、未截图。所有结论来自源码文本与行号。
## 1. 已读文件清单(含读取范围)
### 1.1 设置中心(Part 10 证据)
| 文件 | 行数 | 读取范围 | 用途 |
|---|---|---|---|
| `repos/ClassIsland/ClassIsland/Views/SettingsWindowNew.axaml` | 266 | 全量 | 窗口尺寸、标题栏、导航、抽屉、遮罩、菜单 |
| `repos/ClassIsland/ClassIsland/Views/SettingsWindowNew.axaml.cs` | 883 | 全量 | 导航构建、过滤、缓存、关闭/重启、URI、菜单动作 |
| `repos/ClassIsland/ClassIsland/Models/Settings.cs` | 2655 | 1–900 精读 + 全部字段声明 grep(32–222、1836–1875) | 所有设置默认值 |
| `Views/SettingPages/GeneralSettingsPage.axaml(.cs)` | 315 / 100 | 全量 | 基本页 |
| `Views/SettingPages/AppearanceSettingsPage.axaml(.cs)` | 595 / 57 | 全量 | 外观页 |
| `Views/SettingPages/WindowSettingsPage.axaml` | 276 | 全量 | 窗口页 |
| `Views/SettingPages/ClockSettingsPage.axaml` | 95 | 全量 | 时钟页 |
| `Views/SettingPages/StorageSettingsPage.axaml` | 111 | 全量 | 存储页 |
| `Views/SettingPages/PrivacySettingsPage.axaml` | 42 | 全量 | 隐私页 |
| `Views/SettingPages/AdvancedSettingsPage.axaml` | 77 | 全量 | 高级页 |
| `Views/SettingPages/ErrorSettingsPage.axaml` | 35 | 全量 | 错误页 |
| `Views/SettingPages/TestSettingsPage.axaml` | 17 | 全量 | 调试测试页 |
| `Views/SettingPages/RefreshingSettingsPage.axaml` | 159 | 全量 | 翻新与迎新页 |
| `Views/SettingPages/ManagementSettingsPage.axaml` | 117 | 全量 | 集控页 |
| `Views/SettingPages/ManagementPolicySettingsPage.axaml` | 113 | 全量 | 集控策略页 |
| `Views/SettingPages/ManagementCredentialsSettingsPage.axaml` | 101 | 全量 | 集控凭据页 |
| `Views/SettingPages/AboutSettingsPage.axaml` | 319 | 全量 | 关于页 |
| `Views/SettingPages/WeatherSettingsPage.axaml` | 332 | 全量 | 天气页 |
| `Views/SettingPages/UpdateSettingsPage.axaml` | 403 | 全量 | 更新页 |
| `Views/SettingPages/ThemesSettingsPage.axaml` | 368 | 全量 | 主题页 |
| `Views/SettingPages/NotificationSettingsPage.axaml` | 497 | 全量 | 提醒页 |
| `Views/SettingPages/ComponentsSettingsPage.axaml` | 644 | 全量 | 组件页 |
| `Views/SettingPages/AutomationSettingsPage.axaml` | 402 | 全量 | 自动化页 |
| `Views/SettingPages/PluginsSettingsPage.axaml(.cs)` | 884 / 680 | axaml 全量;cs 1–80 | 插件页 |
| `Views/SettingPages/DebugPage.axaml` | 133 | 全量 | 调试页 |
| `ClassIsland.Core/Abstractions/Controls/SettingsPageBase.cs` | 79 | 全量 | 页面基类、抽屉/重启命令 |
| `ClassIsland.Core/Extensions/Registry/SettingsWindowRegistryExtensions.cs` | 81 | 全量 | 页面/分组注册机制 |
| `ClassIsland.Core/Services/Registry/SettingsWindowRegistryService.cs` | 21 | 全量 | 注册表 |
| `ClassIsland.Core/Attributes/SettingsPageInfo.cs` | 47 | 全量 | 页面元数据定义 |
| `ClassIsland.Core/Enums/SettingsWindow/SettingsPageCategory.cs` | 24 | 全量 | 分类枚举与排序 |
| `ClassIsland.Core/Attributes/GroupAttribute.cs` | 13 | 全量 | 分组 id |
| `ClassIsland.Core/StylesBase.axaml` | 341 | 1–340 | settings-container、cardContainer、Slider tooltip、动画级别相关样式 |
| `ClassIsland.Core/ThemeBase.axaml` | 57 | 全量 | `SettingsContainerWidth=960`、导航图标尺寸 20、开关默认「开/关」 |
| `ClassIsland.Core/Controls/ListDetailView.axaml(.cs)` | 72 / 91 | 全量 | 设置页两栏布局、压缩阈值 800 |
| `ClassIsland.Core/Controls/DrawerHost.axaml(.cs)` | 87 / 133 | 全量 | 设置抽屉宽度/动画/交互 |
| `ClassIsland.Core/Controls/MyWindow.cs` | 244 | 全量 | 窗口基类、Mica、F3/F6/F7、Toast adorner |
| `ClassIsland/App.Services.xaml.cs` | 326 | 130–209 | 页面注册顺序、分组、Excel/窗口 DI |
| `ClassIsland/ViewModels/SettingsNewViewModel.cs` | 207 | 全量 | 窗口 VM 字段 |
| `ClassIsland/Services/SettingsService.cs` | 294 | 100–294 | 即时保存、设置叠层、迁移 |
| `ClassIsland/Views/SettingPages/PluginsSettingsPage.axaml.cs` | 680 | 1–80 | 插件市场首次刷新策略(7 天) |
### 1.2 其它窗口(Part 11 证据)
| 文件 | 行数 | 读取范围 |
|---|---|---|
| `Views/WelcomeWindow.axaml(.cs)` | 30 / 244 | 全量 |
| `Views/WelcomePages/WelcomePage.axaml(.cs)` | 102 / 70 | 全量 |
| `Views/WelcomePages/LicensePage.axaml` | 44 | 全量 |
| `Views/WelcomePages/RefreshingPage.axaml` | 91 | 全量 |
| `Views/WelcomePages/GeneralPage.axaml` | 50 | 全量 |
| `Views/WelcomePages/ColorThemePage.axaml` | 81 | 全量 |
| `Views/WelcomePages/AppearancePage.axaml` | 80 | 全量 |
| `Views/WelcomePages/SystemPage.axaml` | 101 | 全量 |
| `Views/WelcomePages/FinishPage.axaml` | 99 | 全量 |
| `Controls/OobeIntroAnimationControl.axaml(.cs)` | 144 / 165 | 全量 |
| `Views/SplashWindow.axaml(.cs)` | 100 / 131 | 全量 |
| `Services/SplashService.cs` | 93 | 全量 |
| `Views/CrashWindow.axaml(.cs)` | 99 / 86 | 全量 |
| `Views/RecoveryWindow.axaml` | 22 | 全量 |
| `Views/RecoveryPages/HomePage.axaml` | 85 | 全量 |
| `Views/RecoveryPages/RecoverBackupPage.axaml` | 45 | 全量 |
| `Views/UpdateProgressWindow.xaml` | 39 | 全量 |
| `Views/TimeAdjustmentWindow.axaml` | 101 | 全量(cs 未读) |
| `Views/ClassChangingWindow.axaml(.cs)` | 273 / 193 | 全量 |
| `Views/ClassPlanDetailsWindow.axaml` | 199 | 全量(cs 未读) |
| `Views/ExcelImportWindow.xaml` | 992 | 全量 |
| `Views/ExcelImportWindow.xaml.cs` | 824 | 1–45、320–429、735–824 + grep(整文件被 `#if false` 包裹) |
| `Views/ExcelExportWindow.xaml` | 301 | 全量 |
| `Views/ExcelExportWindow.xaml.cs` | 539 | 1–30(`#if false`,未读其余) |
| `Views/DataTransferWindow.axaml(.cs)` | 20 / 57 | 全量 |
| `Views/DataTransferPage.axaml` | 273 | 全量 |
| `Views/DataTransferPage.axaml.cs` | 803 | 1–120 + grep(ImportDescription) |
| `Views/TutorialCenterWindow.axaml(.cs)` | 249 / 85 | 全量 |
| `Views/TutorialControllerWindow.axaml` | 46 | 全量(cs 未读) |
| `Views/TutorialEditorWindow.axaml` | 378 | 全量(cs 未读) |
| `Views/TutorialScriptEditWindow.axaml` | 29 | 全量(cs 未读) |
| `Views/AuthorizeWindow.axaml` | 153 | 全量(cs 未读) |
| `Controls/AuthorizeProvider/PasswordAuthorizeProvider.axaml` | 67 | 全量 |
| `Controls/JoinManagementDialog.axaml` | 64 | 全量 |
| `Views/AppLogsWindow.axaml` | 178 | 全量(cs 未读) |
| `Views/ConfigErrorsWindow.xaml` | 106 | 全量 |
| `Views/InstanceExistedWindow.xaml` | 54 | 全量 |
| `Views/WindowsPicker.xaml` | 150 | 全量 |
| `Views/WallpaperPreviewWindow.xaml` | 74 | 全量 |
| `Views/TopmostEffectWindow.axaml` | 35 | 全量 |
| `Views/ClearNotificationButtonWindow.xaml` | 15 | 全量 |
| `Views/RefreshingScopesConfigDialog.axaml` | 60 | 全量 |
| `Views/WindowRuleDebugWindow.axaml` | 30 | 全量 |
| `Views/ScreenshotHelperWindow.axaml` | 37 | 全量 |
| `Views/FeatureDebugWindow.xaml` | 246 | 1–120(其余为内部测试页签) |
| `Views/DevPortalWindow.axaml` | 269 | 全量 |
| `Views/ProfileSettingsWindow.axaml` | 2004 | 1–80(仅窗口外壳;内容归 part 06) |
## 2. 设置页面清单(导航顺序 = 注册顺序,证据 `App.Services.xaml.cs:156-184`、`SettingsWindowNew.axaml.cs:145-227`)
| # | id | 名称 | category | 分组 | 图标(未选/选中) | 关键策略过滤 |
|---|---|---|---|---|---|---|
| 1 | general | 基本 | Internal | classisland.general(通用) | EF27/EF26(默认) | DisableSettingsEditing |
| 2 | clock | 时钟 | Internal | 通用 | E4C4/E4C3 | 同上 |
| 3 | storage | 存储 | Internal | 通用 | E6B7/E6B6 | 同上 |
| 4 | privacy | 隐私 | Internal | 通用 | EF65/EF64 | 同上 |
| 5 | refreshing | 翻新与迎新 | Internal | 通用 | E0B8/E0B9 | 同上 |
| 6 | advanced | 高级 | Internal | 通用 | F49F/F49E | 同上 |
| 7 | components | 组件 | Internal | classisland.mainwindow(主界面) | E06F/E06F | 同上 |
| 8 | appearance | 外观 | Internal | 主界面 | E51E/E51D | 同上 |
| 9 | window | 窗口 | Internal | 主界面 | F485/F484 | 同上 |
| 10 | notification | 提醒 | Internal | — | E02B/E02A | 同上 |
| 11 | weather | 天气 | Internal | — | F44F/F44E | 同上 |
| 12 | automation | 自动化 | Internal | — | EEF1/EEF0 | 同上 |
| 13 | update | 更新 | Internal | — | E161/E160 | 注册条件:AllowedPackageTypes |
| 14 | classisland.plugins | 插件 | External | — | E071/E071 | FullWidthPage;DisableSettingsEditing |
| 15 | classisland.themes | 主题 | External | — | E6AF/E6AE | 同上 |
| 16 | test-settings-page | 测试页面 | Debug | — | 默认 | DisableDebugMenu / IsDebugOptionsEnabled |
| 17 | debug | 调试 | Debug | — | E2C8/E2C7 | 同上 |
| 18 | about | 关于 ClassIsland | About | — | E9E4/E9E3 | 无(始终可见) |
| 19 | management | 集控 | About | — | 默认 | hideDefault |
| 20 | management.credentials | 集控凭据设置 | About | — | 默认 | hideDefault |
| 21 | management.policy | 集控策略 | About | — | 默认 | hideDefault |
| 22 | _error | 出错啦! | About | — | 默认 | hideDefault(错误页) |
设置窗口:`1240×550`,`MinWidth=560`,导航窗格 `OpenPaneLength=283`,内容限宽 `960`,压缩阈值 `800`,标题栏高 `48`(`SettingsWindowNew.axaml:16-22`、`:52-60`、`:92-104`、`.cs:135`、`:437-446`)。
## 3. 窗口清单表
| 窗口/页面 | 尺寸 (W×H) | 最小/最大 | 模态/单例 | 关键样式 | 证据 |
|---|---|---|---|---|---|
| 设置窗口 SettingsWindowNew | 1240×550 | MinW 560 | 非模态单例 | Mica、自定义标题栏 48、导航 283 | `SettingsWindowNew.axaml:16-22` |
| 欢迎向导 WelcomeWindow | 800×600 | 不可缩放 | 模态(ShowAsDialog) | Mica、CenterScreen | `WelcomeWindow.axaml:14-20` |
| 闪屏 SplashWindow | 400×100 | — | 非模态、置顶 | 无边框、背景透明、Acrylic、暗色 | `SplashWindow.axaml:12-23` |
| 崩溃 CrashWindow | 800×450 | — | 独立 | Mica | `CrashWindow.axaml:13-16` |
| 恢复 RecoveryWindow | 450×600 | — | 主窗口(-m -r) | 无 Mica 声明 | `RecoveryWindow.axaml:14` |
| 更新进度 UpdateProgressWindow | 300×100 | 不可缩放 | 置顶/手动定位 | 纯色 | `UpdateProgressWindow.xaml:9-24` |
| 对齐铃声 TimeAdjustmentWindow | 600×330 | 不可缩放 | CenterOwner | Mica | `TimeAdjustmentWindow.axaml:11-16` |
| 换课 ClassChangingWindow | 600×250(SizeToContent) | Min 730×175 | CenterScreen | Mica | `ClassChangingWindow.axaml:17-26` |
| 课表详细信息 ClassPlanDetailsWindow | 800×500 | — | 独立 | Mica、三列 1*/5px/2* | `ClassPlanDetailsWindow.axaml:14-23` |
| Excel 导入 | 最大化(设计 800×450) | — | 模态 | 源码停用,本实现 P1 重建(xlsx) | `ExcelImportWindow.xaml:27-34` |
| Excel 导出 | 1400×700、最大化 | — | 独立 | 源码停用,本实现 P1 重建(xlsx) | `ExcelExportWindow.xaml:14-25` |
| 数据迁移 DataTransferWindow | 800×600 | 不可缩放 | 模态(ShowAsDialog) | Mica | `DataTransferWindow.axaml:9-18` |
| 授权 AuthorizeWindow | 500×SizeToContent | MinH 300 / MaxH 700 | 模态、置顶 | — | `AuthorizeWindow.axaml:14-24` |
| 加入管理 JoinManagementDialog | 400×Auto | 不可缩放 | 对话框 | — | `JoinManagementDialog.axaml:12-15` |
| 教学中心 TutorialCenterWindow | 1240×550 | — | 非模态单例 | Mica、SplitView 328 | `TutorialCenterWindow.axaml:14`、`:58-63` |
| 教程控制条 TutorialControllerWindow | SizeToContent | 不可缩放 | 置顶无边框 | Acrylic、透明 | `TutorialControllerWindow.axaml:10-17` |
| 教程编辑器 TutorialEditorWindow | 最大化 | — | 独立 | 五列 220/Auto/*/Auto/328 | `TutorialEditorWindow.axaml:15`、`:239` |
| 教程脚本编辑 TutorialScriptEditWindow | 800×520 | 480×320 | 独立 | 深色代码编辑器 | `TutorialScriptEditWindow.axaml:9-11` |
| 日志 AppLogsWindow | 1200×600 | — | 非模态单例 | Mica | `AppLogsWindow.axaml:15` |
| 配置错误 ConfigErrorsWindow | 1200×600 | — | 独立 | 纯色 | `ConfigErrorsWindow.xaml:18` |
| 实例已存在 InstanceExistedWindow | 800×450 | 不可缩放 | 独立 | 纯色 | `InstanceExistedWindow.xaml:20-22` |
| 窗口选择 WindowsPicker | 1300×600 | — | 对话框 | MaterialDesign 混合 | `WindowsPicker.xaml:13` |
| 壁纸预览 WallpaperPreviewWindow | 800×450 | — | CenterOwner | 纯色 | `WallpaperPreviewWindow.xaml:11` |
| 顶层特效 TopmostEffectWindow | 1×1(运行时全屏) | 不可缩放 | 置顶无边框 | 透明 | `TopmostEffectWindow.axaml:8-15` |
| 清除通知按钮 ClearNotificationButtonWindow | SizeToContent | — | 不实现(源码 `#if false`) | 空按钮遗留 | `ClearNotificationButtonWindow.xaml:8-11` |
| 翻新范围 RefreshingScopesConfigDialog | 400×600 | 不可缩放 | 模态 | — | `RefreshingScopesConfigDialog.axaml:9-14` |
| 窗口规则调试 WindowRuleDebugWindow | 400×Auto | — | 置顶 | Mica | `WindowRuleDebugWindow.axaml:9-14` |
| 截图辅助 ScreenshotHelperWindow | 未设(Auto) | — | 独立 | — | `ScreenshotHelperWindow.axaml:1-10` |
| 功能调试 FeatureDebugWindow | 800×450 | — | 独立(开发) | 纯色 | `FeatureDebugWindow.xaml:28` |
| DevPortal | 1200×700 | — | 独立(开发) | Mica | `DevPortalWindow.axaml:17-21` |
| OOBE 各页 | 800×600 内 | — | 导航页 | settings-container 限宽 600 | 各 `WelcomePages/*.axaml` |
| 数据迁移页 | 800×600 内 | — | Carousel 5 页 | 限宽 600 | `DataTransferPage.axaml:17-23` |
| 恢复子页 | 450×600 内 | — | Frame | — | `RecoveryPages/*.axaml` |
## 4. 关键判定与发现
1. **设置持久化是「逐属性即时写盘」**:`SettingsService.SettingsChanged` 在每个属性变化后调用 `SaveSettings(propertyName)`(`Services/SettingsService.cs:261-280`、`:171-179`);`[JsonIgnore]` 字段(`IsSentryEnabled`、`ShowSellingAnnouncement`)不写 `Settings.json`(`Models/Settings.cs:518-535`、`:2615-2628`)。
2. **设置叠层**:`SettingsOverlays` JSON 键名为 `SettingsOverlay`;叠层用 `"@"` 保存原始值,`guid` 为各写入者(`Models/Settings.cs:263-273`、`SettingsService.cs:191-259`)。用户在 UI 改任意属性会清掉该属性全部叠层。
3. **页面缓存**:`SettingsPagesCachePolicy` 仅在两处使用(`SettingsWindowNew.axaml.cs:425-428`、`:513-516`);`0` 不缓存、`1` 窗口内缓存、`>=2` 跨窗口缓存为推断。
4. **OOBE 实际为 8 页**(`WelcomeWindow.axaml.cs:64-73`),不是任务描述中的「9 页」;页序为 欢迎/许可/翻新/基本/颜色主题/外观/系统/完成,且按 isRefreshing/isOnboarding 条件裁剪。
5. **Excel 导入/导出源码为停用遗留**:两个 code-behind 文件整体被 `#if false` 包裹(`ExcelImportWindow.xaml.cs:1`、`ExcelExportWindow.xaml.cs:1`),DI 注册被注释(`App.Services.xaml.cs:204-205`),且原实现依赖 WPF/`ReoGrid`/`System.Windows.Forms`。**Lead 最终裁决:本实现按 P1 必须实现(用 `xlsx` 重建,ReoGrid/WPF 仅作参考),与 part 06 口径一致**;Part 11 已按此改写并给出 `xlsx`/Vue 网格技术约束。
6. **无通知中心窗口**:全仓库 `Views/` 下不存在通知中心类窗口;提醒呈现依赖主界面行 + 强提醒特效(part 07 范围)。Lead 已确认该结论并在 part 01 修正提法;Part 11 明确「不得创建通知中心窗口」。
6b. **ClearNotificationButtonWindow 为 `#if false` 遗留**(内容仅空按钮):Lead 裁决**不实现**,清除提醒改由主界面右键菜单「清除全部提醒」承担(归 part 04/07)。Part 11 已改写为「不实现」,不再列为实现窗口。
7. **设置抽屉**:统一为右侧抽屉,动画 `250ms cubic-bezier(0,0,0,1)`,`Esc`/点遮罩关闭,只有 `IThemeService.AnimationLevel>=1` 才启用动画(`DrawerHost.axaml:42-59`、`.cs:70-72`、`:78-118`)。不同页面抽屉宽度:实验性 332、城市搜索 320、主题排序 300、主题错误 450、插件源 500、插件更新 320、更新下载 450、更新日志 500、提醒源 500、规则集 600。
8. **响应式**:设置窗口 `<800px` 进入压缩模式;ListDetailView 自身也有 `<800px`(`MinCompressWidth=800`)压缩阈值,因此提醒/插件/自动化页在 800px 附近会二次压缩。
9. **标题栏右侧「金刚键空位」140px** 与 macOS 左侧 60px 是 FluentAvalonia AppWindow 的窗口控制区预留(`SettingsWindowNew.axaml:120-126`、`:252`)。
10. **调试快捷键**:F3/F6/F7 是窗口基类统一行为,不限于设置窗口(`MyWindow.cs:115-166`)。
## 5. 未决问题 / 缺口(交给 Lead 决策)
1. **FluentAvalonia 控件自带几何值缺失**:`SettingsExpander`/`SettingsExpanderItem` 的行高、内边距、圆角、图标槽宽度来自 FluentAvalonia 主题包,仓库中只有覆盖样式(如 `MinHeight` 调整、`CornerRadius` 覆盖),没有完整数值。Part 10 中相关数值已标注【推断】(建议实现时取 `min-height: 64px`、`padding: 16px`、圆角 4–7px)。
2. **`SettingsPagesCachePolicy = 2` 的语义**为推断(源码只区分 `>=1` 与 `<=1`)。若 Lead 有 1.x 文档可确认。
3. **部分设置页的 .cs 行为未读**(`WindowSettingsPage.axaml.cs`、`NotificationSettingsPage.axaml.cs`、`UpdateSettingsPage.axaml.cs` 等):其「立即生效 vs 重启」结论主要来自 XAML 绑定 + `RequestRestart` 调用点。已确认需重启:`AnimationLevel`、`IsWaitForTransientDisabled`;其余(渲染模式、系统标题栏、Qt 缩放)标注为推断。
4. **ProfileSettingsWindow(档案编辑,2004 行)与 EditModeView(编辑模式)** 只记录了窗口外壳参数(`MinWidth=750`、`1100×600`、Mica、标题「档案编辑」),内容归 part 06 / part 04。若 Lead 希望 Part 11 覆盖其内部三栏布局,需要追加分配。
5. **TimeAdjustmentWindow 的校准数学、TopmostEffectWindow 的全屏放置逻辑、TutorialControllerWindow 的定位逻辑**均在未读的 .cs 中(分别为 .cs 6173/4461/2568 字节),本文只给出 UI 规格与推断行为;如需精确算法需再读这三个文件。
6. **Excel 功能已裁决**:Lead 定为 **P1 必须实现(xlsx 重建;ReoGrid/WPF 仅参考)**,与 part 06 同步;Part 11 已删除「可选/遗留、默认不实现」措辞并补齐技术约束与验收项。
7. **通知中心**(简报 §6 中 part 11 的关键词)在源码中不存在;建议 Lead 在 part 07 中说明提醒的呈现位置,并在总纲中更正该关键词。
8. **OOBE 页数与简报不一致**(8 vs 9);建议以源码为准。
9. **「搜索设置」功能不存在**:任务描述提到「设置中心:导航/搜索」,但 `SettingsWindowNew` 无搜索框。Part 10 已注明不得编造。
10. **多语言/本地化**:设置页与窗口文案在源码中为硬编码中文(未走 `Localization` 资源)。Lead 裁决:保留中文字面量作为规格,但**要求集中到常量文件**(Part 10 §10.5 第 8 条、Part 11 §11.1 第 6 条已写入)。