> ## Documentation Index
> Fetch the complete documentation index at: https://automationlaboratoryprotocol.mimedal.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 符合性

> ALL 与 FSP 实现声明和最小验证要求

## 符合性对象

实现可以声明以下一种或多种角色：

| 角色     | 验证范围                         |
| ------ | ---------------------------- |
| FSP 服务 | 远程消息、能力发现、读取、调用、异步任务、错误与安全行为 |
| 设备适配器  | FSP 与设备既有接口的映射及状态一致性         |
| 技能提取工具 | 技能派生、质量报告和合格设备技能库准入          |
| 方法工具   | 候选方法生成、验证、绑定和执行计划输出          |
| 调用方    | 版本、修订号、状态和诊断处理               |

## 声明示例

```json theme={null}
{
  "protocol": "ALL",
  "protocol_version": "2026-09-01",
  "transport": "https",
  "message_format": "json-rpc-2.0",
  "roles": ["fsp_service", "device_adapter"],
  "fsp": {
    "progressive_disclosure": true,
    "request_classes": ["read", "write", "invoke"],
    "skill_dimensions": ["object", "control", "system"],
    "async_tasks": true
  }
}
```

## FSP 服务最小要求

FSP 服务必须：

* 只通过远程 HTTPS 暴露基础端点；
* 实现 `fsp/discover`、`fsp/get_capabilities`、`fsp/read` 和 `fsp/invoke`；声明可写状态时还必须实现 `fsp/write`；
* 使用 `summary` 和 `full` 两级技能披露，并禁止调用方仅凭摘要构造请求；
* 每项技能从对象、控制和系统三个维度完整描述，不得把三个维度拆成互不关联的技能；
* 完整描述技能参数的类型、必填性、单位、范围、枚举和说明；
* 将 `read`、`write` 和 `invoke` 作为请求分类，并执行对应的最低安全约束；
* 对 `write` 执行可写性、修订号和写后验证，对 `invoke` 执行前置条件、安全围栏和结果验证；
* 对长任务实现 `fsp/get_task`，支持取消时再实现 `fsp/cancel_task`；
* 使用标准结果、任务状态和诊断结构。

## 最小验证集

| 编号    | 验证内容   | 通过条件                                |
| ----- | ------ | ----------------------------------- |
| `C01` | 渐进式披露  | 发现返回设备元数据，摘要返回技能清单，详情返回所选技能三个维度及修订号 |
| `C02` | 参数边界   | 类型、范围、枚举和单位错误均被拒绝                   |
| `C03` | 修订号冲突  | 返回 `revision_conflict`，不执行动作        |
| `C04` | 前置条件失败 | 返回诊断，状态不提交                          |
| `C05` | 分类约束   | 读取不改状态，写入完成后验证目标值，物理调用前后均完成强制检查     |
| `C06` | 异步操作   | 状态按任务状态机变化，结果可查询                    |
| `C07` | 结果未知   | 不把计划效果提交为实际状态                       |
| `C08` | 适配器映射  | FSP 参数、底层调用、结果和状态变化一致               |

## 示例边界

规范中的质量报告、函数式技能、仿真报告和执行计划示例可以验证转换流程，但不能替代真实 FSP 服务的设备状态和异步任务符合性测试。
