💻 源码
from typing import Any, Literal

StepStatus = Literal["passed", "blocked", "skipped", "warning"]


def make_step(
    step_id: str,
    name: str,
    *,
    status: StepStatus,
    enabled: bool,
    summary: str,
    detail: str | None = None,
) -> dict[str, Any]:
    return {
        "id": step_id,
        "name": name,
        "status": status,
        "enabled": enabled,
        "summary": summary,
        "detail": detail,
    }


def skipped_step(step_id: str, name: str, reason: str) -> dict[str, Any]:
    return make_step(step_id, name, status="skipped", enabled=False, summary=reason)


STEP_LABELS = {
    "input_guard": "① 输入隔离与注入检测",
    "jailbreak_guard": "② 越狱策略检测",
    "task_lock": "③ 任务边界锁定",
    "llm_call": "④ 安全调用模型",
    "output_guard": "⑤ 输出敏感过滤",
}