Add a new implementation of the primary protocol/interface: $ARGUMENTS
Follow Alex Rivera's hardware integration standards:
- •
Study the protocol: Read the primary protocol/interface definition in the core layer (see Key Abstractions and Protocol Methods in project config)
- •
Implement the class in the core layer file:
- •MUST satisfy the primary protocol/interface
- •Follow the future annotations pattern (see stack concepts in project config)
- •All methods MUST have return type annotations
- •Document protocol-specific commands with clear comments
- •Raise the discovery error exception if resource not detected on
open() - •Raise the connection error exception on communication failures
- •Track
is_openstate accurately - •
close()MUST be idempotent — safe to call multiple times
- •
Update config if new settings are needed:
- •Add to the config file's Settings class with the project's env prefix
- •Document in the env example file with defaults and description
- •
Update the mock implementation to mirror any new behavior:
- •Same exceptions for same error conditions
- •Same state transitions
- •
Wire into lifespan in the app factory:
- •Add selection logic in the lifespan function
- •Ensure the fail-safe operation runs on both startup and shutdown for the new implementation
- •
Write tests in the core layer test file (see test file mapping in project config):
- •Test
open()/close()lifecycle - •Test state-changing operations for valid and invalid inputs
- •Test
get_info()returns expected structure - •Test error conditions raise typed exceptions
- •Test
is_openproperty accuracy
- •Test
- •
Verify: Run the test command and the type-check command (see project config)