Core engineering standards during implementation. Use when implementing features, writing production code, or when user mentions error handling, constants management, progress logging, or code quality standards.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/terrylica/cc-skills/blob/main/plugins/itp/skills/impl-standards/SKILL.md -a claude-code --skill impl-standardsInstallation paths:
.claude/skills/impl-standards/# Implementation Standards
Apply these standards during implementation to ensure consistent, maintainable code.
## When to Use This Skill
- During `/itp:go` Phase 1
- When writing new production code
- User mentions "error handling", "constants", "magic numbers", "progress logging"
- Before release to verify code quality
## Quick Reference
| Standard | Rule |
| ---------------- | ------------------------------------------------------------------------ |
| **Errors** | Raise + propagate; no fallback/default/retry/silent |
| **Constants** | Abstract magic numbers into semantic, version-agnostic dynamic constants |
| **Dependencies** | Prefer OSS libs over custom code; no backward-compatibility needed |
| **Progress** | Operations >1min: log status every 15-60s |
| **Logs** | `logs/{adr-id}-YYYYMMDD_HHMMSS.log` (nohup) |
| **Metadata** | Optional: `catalog-info.yaml` for service discovery |
---
## Error Handling
**Core Rule**: Raise + propagate; no fallback/default/retry/silent
```python
# ✅ Correct - raise with context
def fetch_data(url: str) -> dict:
response = requests.get(url)
if response.status_code != 200:
raise APIError(f"Failed to fetch {url}: {response.status_code}")
return response.json()
# ❌ Wrong - silent catch
try:
result = fetch_data()
except Exception:
pass # Error hidden
```
See [Error Handling Reference](./references/error-handling.md) for detailed patterns.
---
## Constants Management
**Core Rule**: Abstract magic numbers into semantic constants
```python
# ✅ Correct - named constant
DEFAULT_API_TIMEOUT_SECONDS = 30
response = requests.get(url, timeout=DEFAULT_API_TIMEOUT_SECONDS)
# ❌ Wrong - magic number
response = requests.get(url, timeout=30)
```
See [Constants Management Reference](./references/c