Files
openbitdo/spec/requirements.yaml

53 lines
2.5 KiB
YAML

metadata:
version: 1
owner: cleanroom-sdk
status: draft
requirements:
- id: REQ-PROT-001
title: CommandFrame model
description: SDK shall expose CommandFrame with command id, payload, report id, and expected response metadata.
acceptance: Unit tests validate frame creation for all CommandId values.
- id: REQ-PROT-002
title: Response validation
description: SDK shall validate responses using command-specific byte signatures.
acceptance: Parser rejection tests fail malformed responses and accept matching responses.
- id: REQ-PROT-003
title: Deterministic retries
description: SDK shall retry reads on timeout/malformed responses using configured retry count.
acceptance: Retry tests cover delayed and partial responses.
- id: REQ-PROT-004
title: Report width support
description: SDK shall support both 64-byte reports and variable-length boot/firmware frames.
acceptance: Encode/decode tests cover Report64 and variable report wrappers.
- id: REQ-PID-001
title: PID registry completeness
description: SDK shall include all PIDs present in sanitized pid_matrix.csv.
acceptance: pid registry coverage test count equals pid_matrix.csv row count.
- id: REQ-PID-002
title: Support-level gating
description: detect-only devices shall reject unsupported operations with UnsupportedForPid.
acceptance: Capability gating tests verify rejection for unsafe operations on detect-only PIDs.
- id: REQ-SAFE-001
title: Unsafe command dual confirmation
description: Unsafe commands shall require both unsafe and brick-risk acknowledgement flags.
acceptance: Boot safety tests verify command denial without both flags.
- id: REQ-SAFE-002
title: Experimental command policy
description: Inferred commands shall require experimental mode.
acceptance: Inferred-command tests verify denial without experimental flag.
- id: REQ-TEST-001
title: Golden profile fixture
description: SDK shall parse and serialize profile blobs compatible with golden binary fixture.
acceptance: Profile serialization test round-trips fixture payload.
- id: REQ-TEST-002
title: CLI structured output
description: CLI shall provide JSON output for automation.
acceptance: CLI tests assert stable JSON keys and command responses.
- id: REQ-TEST-003
title: Clean-room guard
description: CI shall fail if cleanroom/sdk references forbidden dirty-room locations or tokens.
acceptance: cleanroom guard script is executed in CI and by integration test.