safety
Software safety principles
معلومات المصدر
- المستودع
- ffsshhttiikk/opencode-agents-skills
- آخر نشاط في المصدر
- ٢٨ فبراير ٢٠٢٦ في ٢٢:٥٤
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ٣
- التفرعات
- ٢
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- safety
- description
- Software safety principles
- license
- MIT
- compatibility
- opencode
- metadata
- {"audience":"developers","category":"safety"}
## What I do
- Design safe systems
- Implement safety-critical code
- Handle errors gracefully
- Prevent unsafe states
- Test for failure conditions
## When to use me
When building systems where failures could cause harm.
## Safety Engineering
### Failure Mode Analysis
```python
from enum import Enum
class FailureSeverity(Enum):
CATASTROPHIC = 1 # Loss of life
CRITICAL = 2 # Severe injury
MARGINAL = 3 # Minor injury
NEGLIGIBLE = 4 # No injury
class FailureModeAnalysis:
"""Analyze potential failure modes"""
def __init__(self):
self.failure_modes = []
def add_failure_mode(self, component: str, failure_mode: str,
cause: str, effect: str, severity: FailureSeverity):
"""Add failure mode to analysis"""
self.failure_modes.append({
"component": component,
"failure_mode": failure_mode,
"cause": cause,
"effect": effect,
"severity": severity.value,
"detection": "unknown",
"mitigation": "none"
})
def prioritize_mitigation(self) -> list:
"""Order failure modes by priority"""
return sorted(
self.failure_modes,
key=lambda f: f["severity"]
)
```
### Defensive Programming
```python
class DefensiveInputValidation:
"""Validate all inputs"""
def validate_and_convert(self, value: Any, expected_type: type,
default: Any = None) -> Any:
"""Validate and safely convert input"""
try:
if value is None:
if default is not None:
return default
raise ValueError("Required value is None")
if not isinstance(value, expected_type):
value = expected_type(value)
return self._validate_range(value)
except (ValueError, TypeError):
if default is not None:
return default
raise
def _validate_range(self, value) -> Any:
"""Validate value is within acceptable range"""
return value # Override with range checks
class SafeStateMachine:
"""Implement fail-safe state machine"""
STATES = ["initializing", "ready", "processing", "paused", "error", "stopped"]
SAFE_STATE = "error"
def __init__(self):
self.state = "initializing"
self.previous_state = None
def transition(self, new_state: str) -> bool:
"""Validate and perform state transition"""
if new_state not in self.STATES:
return False
if not self._is_valid_transition(self.state, new_state):
return False
self.previous_state = self.state
self.state = new_state
return True
def _is_valid_transition(self, from_state: str,
to_state: str) -> bool:
"""Define valid state transitions"""
valid_transitions = {
"initializing": ["ready", "error"],
"ready": ["processing", "stopped", "error"],
"processing": ["ready", "paused", "stopped", "error"],
"paused": ["ready", "stopped", "error"],
"error": ["stopped"],
"stopped": []
}
return to_state in valid_transitions.get(from_state, [])
def handle_failure(self):
"""Move to safe state on failure"""
self.previous_state = self.state
self.state = self.SAFE_STATE
```
### Error Handling
```python
import logging
class SafeErrorHandler:
"""Handle errors safely"""
def __init__(self):
self.logger = logging.getLogger(__name__)
def handle_exception(self, exception: Exception,
context: Dict) -> None:
"""Handle exception with appropriate action"""
error_type = type(exception).__name__
# Log the error
self.logger.error(
f"Error in {context.get('operation')}: {error_type}",
extra=context,
exc_info=True
)
# Take corrective action based on severity
if self._is_critical_error(exception):
self._trigger_safe_mode()
else:
self._attempt_recovery(exception, context)
def _is_critical_error(self, exception: Exception) -> bool:
"""Determine if error is critical"""
critical_errors = [
MemoryError,
SystemError,
KeyboardInterrupt # Don't catch Ctrl+C
]
return any(isinstance(exception, e) for e in critical_errors)
def _trigger_safe_mode(self):
"""Enter safe mode for critical errors"""
# Save state
# Stop operations gracefully
# Alert operators
pass
```
### Resource Safety
```python
class ResourceSafety:
"""Ensure safe resource management"""
@contextmanager
def managed_resource(self, resource, cleanup: Callable = None):
"""Safely manage resource lifecycle"""
try:
yield resource
finally:
if cleanup:
cleanup()
elif hasattr(resource, "close"):
resource.close()
def safe_allocation(self, size: int, max_size: int) -> bytes:
"""Safely allocate memory"""
if size > max_size:
raise MemoryError(f"Requested {size} exceeds max {max_size}")
return np.empty(size, dtype=np.uint8)
class ConcurrencySafety:
"""Thread-safe operations"""
def __init__(self):
self.lock = threading.RLock()
@contextmanager
def critical_section(self):
"""Protect critical section"""
with self.lock:
yield
def atomic_update(self, update_fn: Callable) -> Any:
"""Atomically update shared state"""
with self.lock:
return update_fn()
```
عرض على GitHub