1
0
Files
DiAL/openspec/changes/archive/2026-05-11-simplify-judgment-model/specs/command-checker/spec.md

1.1 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 命令执行

系统 SHALL 使用 Bun.spawn 执行命令类型目标,继承父进程环境变量并支持覆盖。

Scenario: 禁止 stdin 交互

  • THEN 系统 MUST 设置 stdin 为 "ignore",防止子进程等待标准输入而阻塞

Requirement: 结果记录

系统 SHALL 记录命令执行的完整结果。

Scenario: 命令成功执行

  • WHEN 命令正常退出
  • THEN 系统 SHALL 记录 durationMs、statusDetail="exitCode=N",并进入 expect 校验

Scenario: 命令启动失败

  • WHEN 命令无法启动
  • THEN 系统 SHALL 记录 matched=false并在 failure 中写入 kind=error 和具体错误信息

Scenario: 命令超时

  • WHEN 命令执行超过 timeout 限制
  • THEN 系统 MUST 终止该子进程,记录 matched=false并在 failure 中写入命令超时信息

Scenario: 输出超限

  • WHEN 命令输出超过 maxOutputBytes 限制
  • THEN 系统 MUST 停止收集输出并终止该检查,记录 matched=false并在 failure 中写入输出超限信息