mirror of
https://github.com/bybrooklyn/openbitdo.git
synced 2026-03-19 04:12:56 -04:00
release prep: rc.1 baseline and gating updates
This commit is contained in:
16
spec/dossiers/2028/core_diag.toml
Normal file
16
spec/dossiers/2028/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2028-CORE"
|
||||
pid_hex = "0x2028"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/2028/firmware.toml
Normal file
16
spec/dossiers/2028/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2028-FIRMWARE"
|
||||
pid_hex = "0x2028"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/202e/core_diag.toml
Normal file
16
spec/dossiers/202e/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-202E-CORE"
|
||||
pid_hex = "0x202e"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/202e/firmware.toml
Normal file
16
spec/dossiers/202e/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-202E-FIRMWARE"
|
||||
pid_hex = "0x202e"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/2039/core_diag.toml
Normal file
16
spec/dossiers/2039/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2039-CORE"
|
||||
pid_hex = "0x2039"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with command marker bytes"
|
||||
response_shape = "status header plus optional payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Peripheral/Specialty dispatch"
|
||||
notes = "Stretch target dossier; candidate-readonly until runtime+hardware evidence"
|
||||
16
spec/dossiers/203a/core_diag.toml
Normal file
16
spec/dossiers/203a/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-203A-CORE"
|
||||
pid_hex = "0x203a"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/203a/firmware.toml
Normal file
16
spec/dossiers/203a/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-203A-FIRMWARE"
|
||||
pid_hex = "0x203a"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/2049/core_diag.toml
Normal file
16
spec/dossiers/2049/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2049-CORE"
|
||||
pid_hex = "0x2049"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/2049/firmware.toml
Normal file
16
spec/dossiers/2049/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2049-FIRMWARE"
|
||||
pid_hex = "0x2049"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/2056/core_diag.toml
Normal file
16
spec/dossiers/2056/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2056-CORE"
|
||||
pid_hex = "0x2056"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with command marker bytes"
|
||||
response_shape = "status header plus optional payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Peripheral/Specialty dispatch"
|
||||
notes = "Stretch target dossier; candidate-readonly until runtime+hardware evidence"
|
||||
30
spec/dossiers/2100/core_diag.toml
Normal file
30
spec/dossiers/2100/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2100-CORE-DIAG-W2"
|
||||
pid_hex = "0x2100"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_Xcloud; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/2100/firmware_preflight.toml
Normal file
30
spec/dossiers/2100/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2100-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x2100"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_Xcloud; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/2100/mode_or_profile_read.toml
Normal file
30
spec/dossiers/2100/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2100-MODEPROFILE-W2"
|
||||
pid_hex = "0x2100"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_Xcloud; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/2101/core_diag.toml
Normal file
30
spec/dossiers/2101/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2101-CORE-DIAG-W2"
|
||||
pid_hex = "0x2101"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_Xcloud2; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/2101/firmware_preflight.toml
Normal file
30
spec/dossiers/2101/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2101-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x2101"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_Xcloud2; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/2101/mode_or_profile_read.toml
Normal file
30
spec/dossiers/2101/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-2101-MODEPROFILE-W2"
|
||||
pid_hex = "0x2101"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_Xcloud2; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/3004/core_diag.toml
Normal file
16
spec/dossiers/3004/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3004-CORE"
|
||||
pid_hex = "0x3004"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3004/firmware.toml
Normal file
16
spec/dossiers/3004/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3004-FIRMWARE"
|
||||
pid_hex = "0x3004"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/3010/core_diag.toml
Normal file
16
spec/dossiers/3010/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3010-CORE"
|
||||
pid_hex = "0x3010"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3010/firmware.toml
Normal file
16
spec/dossiers/3010/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3010-FIRMWARE"
|
||||
pid_hex = "0x3010"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/3011/core_diag.toml
Normal file
16
spec/dossiers/3011/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3011-CORE"
|
||||
pid_hex = "0x3011"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3011/firmware.toml
Normal file
16
spec/dossiers/3011/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3011-FIRMWARE"
|
||||
pid_hex = "0x3011"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/3012/core_diag.toml
Normal file
16
spec/dossiers/3012/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3012-CORE"
|
||||
pid_hex = "0x3012"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3012/firmware.toml
Normal file
16
spec/dossiers/3012/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3012-FIRMWARE"
|
||||
pid_hex = "0x3012"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/3013/core_diag.toml
Normal file
16
spec/dossiers/3013/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3013-CORE"
|
||||
pid_hex = "0x3013"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3013/firmware.toml
Normal file
16
spec/dossiers/3013/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3013-FIRMWARE"
|
||||
pid_hex = "0x3013"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/3019/core_diag.toml
Normal file
16
spec/dossiers/3019/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3019-CORE"
|
||||
pid_hex = "0x3019"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/3019/firmware.toml
Normal file
16
spec/dossiers/3019/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3019-FIRMWARE"
|
||||
pid_hex = "0x3019"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
30
spec/dossiers/301a/core_diag.toml
Normal file
30
spec/dossiers/301a/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-301A-CORE-DIAG-W2"
|
||||
pid_hex = "0x301a"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_UltimateBT2C; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/301a/firmware_preflight.toml
Normal file
30
spec/dossiers/301a/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-301A-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x301a"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_UltimateBT2C; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/301a/mode_or_profile_read.toml
Normal file
30
spec/dossiers/301a/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-301A-MODEPROFILE-W2"
|
||||
pid_hex = "0x301a"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_UltimateBT2C; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/3021/core_diag.toml
Normal file
16
spec/dossiers/3021/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3021-CORE"
|
||||
pid_hex = "0x3021"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with command marker bytes"
|
||||
response_shape = "status header plus optional payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Peripheral/Specialty dispatch"
|
||||
notes = "Stretch target dossier; candidate-readonly until runtime+hardware evidence"
|
||||
30
spec/dossiers/3026/core_diag.toml
Normal file
30
spec/dossiers/3026/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3026-CORE-DIAG-W2"
|
||||
pid_hex = "0x3026"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_XBOXUK; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/3026/firmware_preflight.toml
Normal file
30
spec/dossiers/3026/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3026-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x3026"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_XBOXUK; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/3026/mode_or_profile_read.toml
Normal file
30
spec/dossiers/3026/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3026-MODEPROFILE-W2"
|
||||
pid_hex = "0x3026"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_XBOXUK; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/3027/core_diag.toml
Normal file
30
spec/dossiers/3027/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3027-CORE-DIAG-W2"
|
||||
pid_hex = "0x3027"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_XBOXUKUSB; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/3027/firmware_preflight.toml
Normal file
30
spec/dossiers/3027/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3027-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x3027"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_XBOXUKUSB; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/3027/mode_or_profile_read.toml
Normal file
30
spec/dossiers/3027/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3027-MODEPROFILE-W2"
|
||||
pid_hex = "0x3027"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_XBOXUKUSB; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/3100/core_diag.toml
Normal file
30
spec/dossiers/3100/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3100-CORE-DIAG-W2"
|
||||
pid_hex = "0x3100"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_USB_Ultimate; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/3100/firmware_preflight.toml
Normal file
30
spec/dossiers/3100/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3100-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x3100"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_USB_Ultimate; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/3100/mode_or_profile_read.toml
Normal file
30
spec/dossiers/3100/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3100-MODEPROFILE-W2"
|
||||
pid_hex = "0x3100"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_USB_Ultimate; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/3105/core_diag.toml
Normal file
30
spec/dossiers/3105/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3105-CORE-DIAG-W2"
|
||||
pid_hex = "0x3105"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_USB_Ultimate2; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/3105/firmware_preflight.toml
Normal file
30
spec/dossiers/3105/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3105-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x3105"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_USB_Ultimate2; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/3105/mode_or_profile_read.toml
Normal file
30
spec/dossiers/3105/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-3105-MODEPROFILE-W2"
|
||||
pid_hex = "0x3105"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_USB_Ultimate2; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/5200/core_diag.toml
Normal file
16
spec/dossiers/5200/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5200-CORE"
|
||||
pid_hex = "0x5200"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/5200/firmware.toml
Normal file
16
spec/dossiers/5200/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5200-FIRMWARE"
|
||||
pid_hex = "0x5200"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/5201/core_diag.toml
Normal file
16
spec/dossiers/5201/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5201-CORE"
|
||||
pid_hex = "0x5201"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with fixed command marker bytes and JP handshake gating"
|
||||
response_shape = "status header plus minimal payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "JpHandshake dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/5201/firmware.toml
Normal file
16
spec/dossiers/5201/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5201-FIRMWARE"
|
||||
pid_hex = "0x5201"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
30
spec/dossiers/5203/core_diag.toml
Normal file
30
spec/dossiers/5203/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5203-CORE-DIAG-W2"
|
||||
pid_hex = "0x5203"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_NUMPAD; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/5203/firmware_preflight.toml
Normal file
30
spec/dossiers/5203/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5203-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x5203"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_NUMPAD; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/5203/mode_or_profile_read.toml
Normal file
30
spec/dossiers/5203/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5203-MODEPROFILE-W2"
|
||||
pid_hex = "0x5203"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_NUMPAD; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/5204/core_diag.toml
Normal file
30
spec/dossiers/5204/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5204-CORE-DIAG-W2"
|
||||
pid_hex = "0x5204"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_NUMPADRR; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/5204/firmware_preflight.toml
Normal file
30
spec/dossiers/5204/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5204-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x5204"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_NUMPADRR; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/5204/mode_or_profile_read.toml
Normal file
30
spec/dossiers/5204/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5204-MODEPROFILE-W2"
|
||||
pid_hex = "0x5204"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_NUMPADRR; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/5205/core_diag.toml
Normal file
16
spec/dossiers/5205/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5205-CORE"
|
||||
pid_hex = "0x5205"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with command marker bytes"
|
||||
response_shape = "status header plus optional payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Peripheral/Specialty dispatch"
|
||||
notes = "Stretch target dossier; candidate-readonly until runtime+hardware evidence"
|
||||
16
spec/dossiers/5206/core_diag.toml
Normal file
16
spec/dossiers/5206/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5206-CORE"
|
||||
pid_hex = "0x5206"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report with command marker bytes"
|
||||
response_shape = "status header plus optional payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Peripheral/Specialty dispatch"
|
||||
notes = "Stretch target dossier; candidate-readonly until runtime+hardware evidence"
|
||||
16
spec/dossiers/5209/firmware_core.toml
Normal file
16
spec/dossiers/5209/firmware_core.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5209-Firmware"
|
||||
pid_hex = "0x5209"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["Jp108EnterBootloader", "Jp108FirmwareChunk", "Jp108FirmwareCommit", "Jp108ExitBootloader"]
|
||||
request_shape = "boot transition frames followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status and completion indicators"
|
||||
validator_rules = ["boot transition acknowledged", "chunk ack observed", "commit response accepted"]
|
||||
retry_behavior = "firmware retries are bounded and guarded by unsafe flags"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-JP108-002", "REQ-DR-001", "REQ-DR-002"]
|
||||
class_family = "JP firmware update dispatch"
|
||||
notes = "Unsafe flow remains runtime-gated with dual acknowledgement"
|
||||
16
spec/dossiers/5209/jp108_dedicated.toml
Normal file
16
spec/dossiers/5209/jp108_dedicated.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-5209-JP108-Dedicated"
|
||||
pid_hex = "0x5209"
|
||||
operation_group = "JP108Dedicated"
|
||||
command_id = ["Jp108ReadDedicatedMappings", "Jp108WriteDedicatedMapping", "Jp108ReadFeatureFlags", "Jp108WriteFeatureFlags", "Jp108ReadVoice", "Jp108WriteVoice"]
|
||||
request_shape = "64-byte JP108 command frames with dedicated index/value payloads"
|
||||
response_shape = "status header plus dedicated mapping/flag payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "byte1 indicates command family", "payload length meets command minimum"]
|
||||
retry_behavior = "bounded retries for read/ack operations"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-JP108-001", "REQ-DR-001", "REQ-DR-002"]
|
||||
class_family = "JP108Advance / JP108AdvanceUI dispatch"
|
||||
notes = "Dedicated mapping scope remains A/B/K1-K8 in current product milestone"
|
||||
16
spec/dossiers/6002/core_diag.toml
Normal file
16
spec/dossiers/6002/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6002-CORE"
|
||||
pid_hex = "0x6002"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/6002/firmware.toml
Normal file
16
spec/dossiers/6002/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6002-FIRMWARE"
|
||||
pid_hex = "0x6002"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
16
spec/dossiers/6003/core_diag.toml
Normal file
16
spec/dossiers/6003/core_diag.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6003-CORE"
|
||||
pid_hex = "0x6003"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle", "GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report with command byte and optional slot/mode payload"
|
||||
response_shape = "status header with mode/profile payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "status byte must indicate success"]
|
||||
retry_behavior = "retry timeout/malformed response up to configured attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002", "REQ-PID-002"]
|
||||
class_family = "Standard64 dispatch"
|
||||
notes = "Wave 1 candidate-readonly dossier; no runtime trace or hardware write confirmation yet"
|
||||
16
spec/dossiers/6003/firmware.toml
Normal file
16
spec/dossiers/6003/firmware.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6003-FIRMWARE"
|
||||
pid_hex = "0x6003"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["EnterBootloaderA", "EnterBootloaderB", "EnterBootloaderC", "FirmwareChunk", "FirmwareCommit", "ExitBootloader"]
|
||||
request_shape = "bootloader entry sequence followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status oriented responses with transfer progression"
|
||||
validator_rules = ["boot transition acknowledged", "chunk response indicates acceptance", "commit response indicates completion"]
|
||||
retry_behavior = "firmware retries are bounded; unsafe flows remain blocked for candidate-readonly"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-002", "REQ-PROM-001", "REQ-PROM-002"]
|
||||
class_family = "Firmware update dispatch"
|
||||
notes = "Firmware path is intentionally blocked for candidate-readonly support tier in this wave"
|
||||
30
spec/dossiers/6006/core_diag.toml
Normal file
30
spec/dossiers/6006/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6006-CORE-DIAG-W2"
|
||||
pid_hex = "0x6006"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_Pro2_CY; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/6006/firmware_preflight.toml
Normal file
30
spec/dossiers/6006/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6006-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x6006"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_Pro2_CY; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/6006/mode_or_profile_read.toml
Normal file
30
spec/dossiers/6006/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6006-MODEPROFILE-W2"
|
||||
pid_hex = "0x6006"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_Pro2_CY; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/6012/firmware_core.toml
Normal file
16
spec/dossiers/6012/firmware_core.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6012-Firmware"
|
||||
pid_hex = "0x6012"
|
||||
operation_group = "Firmware"
|
||||
command_id = ["U2EnterBootloader", "U2FirmwareChunk", "U2FirmwareCommit", "U2ExitBootloader"]
|
||||
request_shape = "boot transition frames followed by chunked firmware transfer frames"
|
||||
response_shape = "ack/status and completion indicators"
|
||||
validator_rules = ["boot transition acknowledged", "chunk ack observed", "commit response accepted"]
|
||||
retry_behavior = "firmware retries are bounded and guarded by unsafe flags"
|
||||
failure_signatures = ["boot transition failure", "chunk ack mismatch", "commit timeout"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-U2-002", "REQ-DR-001", "REQ-DR-002"]
|
||||
class_family = "Ultimate2 firmware update dispatch"
|
||||
notes = "Unsafe flow remains runtime-gated with dual acknowledgement"
|
||||
16
spec/dossiers/6012/u2_core.toml
Normal file
16
spec/dossiers/6012/u2_core.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-6012-U2-Core"
|
||||
pid_hex = "0x6012"
|
||||
operation_group = "Ultimate2Core"
|
||||
command_id = ["U2GetCurrentSlot", "U2ReadConfigSlot", "U2WriteConfigSlot", "U2ReadButtonMap", "U2WriteButtonMap", "U2SetMode"]
|
||||
request_shape = "64-byte Ultimate2 command frames with slot/mode/map payload sections"
|
||||
response_shape = "status header plus slot/config/map payload bytes"
|
||||
validator_rules = ["byte0 == 0x02", "payload length meets command minimum", "slot readback value is bounded"]
|
||||
retry_behavior = "bounded retries for slot/map reads and write acknowledgements"
|
||||
failure_signatures = ["timeout", "malformed response", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-U2-001", "REQ-DR-001", "REQ-DR-002"]
|
||||
class_family = "Ultimate2_4Advance2 / Ultimate2_4Advance2UI dispatch"
|
||||
notes = "Advanced theme/sixaxis/deep macro controls remain intentionally hidden"
|
||||
30
spec/dossiers/901a/core_diag.toml
Normal file
30
spec/dossiers/901a/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-901A-CORE-DIAG-W2"
|
||||
pid_hex = "0x901a"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_ArcadeStick; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/901a/firmware_preflight.toml
Normal file
30
spec/dossiers/901a/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-901A-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x901a"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_ArcadeStick; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/901a/mode_or_profile_read.toml
Normal file
30
spec/dossiers/901a/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-901A-MODEPROFILE-W2"
|
||||
pid_hex = "0x901a"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_ArcadeStick; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
30
spec/dossiers/9028/core_diag.toml
Normal file
30
spec/dossiers/9028/core_diag.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-9028-CORE-DIAG-W2"
|
||||
pid_hex = "0x9028"
|
||||
operation_group = "CoreDiag"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetControllerVersion", "Version", "Idle"]
|
||||
request_shape = "64-byte HID report; command opcode in request[1], pid-specific capability gating outside payload"
|
||||
response_shape = "status header (byte0/byte1) + optional payload bytes for pid/version/revision"
|
||||
validator_rules = ["byte0 == 0x02", "response_len >= 4", "signature bytes match command expectation"]
|
||||
retry_behavior = "retry timeout or malformed responses up to configured max attempts with bounded backoff"
|
||||
failure_signatures = ["timeout", "malformed_frame", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Wave 2 static dossier for PID_N64RR; support tier remains candidate-readonly"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceConnected"
|
||||
action = "Run core diagnostics read sequence"
|
||||
post_state = "DeviceIdentified"
|
||||
invalid_transitions = ["NoDevice", "TransportClosed", "BootloaderOnly"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime request/response traces for core diagnostics", "command-level status validation examples"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["identify + diag run on physical device", "repeatable read success across reconnects"]
|
||||
30
spec/dossiers/9028/firmware_preflight.toml
Normal file
30
spec/dossiers/9028/firmware_preflight.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-9028-FW-PREFLIGHT-W2"
|
||||
pid_hex = "0x9028"
|
||||
operation_group = "FirmwarePreflight"
|
||||
command_id = ["GetReportRevision", "GetControllerVersion", "Version"]
|
||||
request_shape = "64-byte HID read commands used for firmware readiness and metadata preflight"
|
||||
response_shape = "status bytes + firmware/version metadata bytes when present"
|
||||
validator_rules = ["byte0 == 0x02", "metadata bytes pass bounds checks", "device remains in application mode"]
|
||||
retry_behavior = "safe-read retries only; firmware transfer/write commands stay blocked for candidate-readonly"
|
||||
failure_signatures = ["timeout", "metadata_mismatch", "unsupported_for_pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-001", "REQ-PROM-W2-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Preflight-only dossier for PID_N64RR; no bootloader entry/chunk/commit enablement"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read firmware preflight metadata"
|
||||
post_state = "FirmwarePreflightReady"
|
||||
invalid_transitions = ["NoDevice", "BootloaderActive", "TransferInProgress"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime preflight metadata traces", "error signature samples for invalid firmware path"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware preflight check success", "metadata stability across reconnects"]
|
||||
30
spec/dossiers/9028/mode_or_profile_read.toml
Normal file
30
spec/dossiers/9028/mode_or_profile_read.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-9028-MODEPROFILE-W2"
|
||||
pid_hex = "0x9028"
|
||||
operation_group = "ModeProfileRead"
|
||||
command_id = ["GetMode", "GetModeAlt", "ReadProfile"]
|
||||
request_shape = "64-byte HID report; mode/profile selector byte in command payload"
|
||||
response_shape = "status header + mode/profile bytes when available"
|
||||
validator_rules = ["byte0 == 0x02", "mode/profile payload length is bounded", "fallback command path is defined"]
|
||||
retry_behavior = "use standard safe-read retry policy; fallback between mode-read command variants when defined"
|
||||
failure_signatures = ["timeout", "unsupported_for_pid", "invalid_signature"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-DR-001", "REQ-DR-W2-001", "REQ-PROM-001", "REQ-PROM-W2-002", "REQ-PID-002"]
|
||||
class_family = "Standard64"
|
||||
notes = "Read-only mode/profile snapshot for PID_N64RR; no write enablement in this wave"
|
||||
|
||||
[state_machine]
|
||||
pre_state = "DeviceIdentified"
|
||||
action = "Read mode/profile snapshot"
|
||||
post_state = "ModeProfileSnapshotReady"
|
||||
invalid_transitions = ["NoDevice", "WritePending", "BootloaderActive"]
|
||||
|
||||
[runtime_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["runtime traces for mode/profile read commands", "read consistency across repeated probes"]
|
||||
|
||||
[hardware_placeholder]
|
||||
required = true
|
||||
evidence_needed = ["hardware readback for mode/profile snapshot", "cross-slot/read variant sanity checks where applicable"]
|
||||
16
spec/dossiers/global/core.toml
Normal file
16
spec/dossiers/global/core.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sanitized static dirty-room dossier
|
||||
|
||||
dossier_id = "DOS-CORE-GLOBAL"
|
||||
pid_hex = "*"
|
||||
operation_group = "Core"
|
||||
command_id = ["GetPid", "GetReportRevision", "GetMode", "GetModeAlt", "GetControllerVersion", "Version", "Idle", "ReadProfile", "WriteProfile", "SetModeDInput"]
|
||||
request_shape = "64-byte HID commands with command selector and optional payload bytes"
|
||||
response_shape = "status header plus command-dependent payload"
|
||||
validator_rules = ["byte0 == 0x02", "response length >= 4", "command-specific signature checks"]
|
||||
retry_behavior = "deterministic retries on timeout and malformed responses"
|
||||
failure_signatures = ["timeout", "malformed response", "invalid response signature", "unsupported for pid"]
|
||||
evidence_source = "static"
|
||||
confidence = "inferred"
|
||||
requirement_ids = ["REQ-PROT-001", "REQ-PROT-002", "REQ-DR-001", "REQ-DR-002"]
|
||||
class_family = "Core transport and command dispatch"
|
||||
notes = "Global core command dossier linked from command matrix rows"
|
||||
Reference in New Issue
Block a user