generated from john/python-template
gpt-5.3-codex review phase 2 - update instructions & skills
Quality Gate / gate (push) Successful in 34s
Quality Gate / gate (push) Successful in 34s
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
---
|
||||
description: Cross-cutting error handling rules for services, API, and UI.
|
||||
applyTo: 'src/transcription/**/*.py'
|
||||
---
|
||||
|
||||
# Error Handling (Cross-cutting)
|
||||
|
||||
Primary references:
|
||||
|
||||
- `docs/ver4/error_handling_v4.md`
|
||||
- `docs/invariant/error_handling.md`
|
||||
- `docs/ver4/requirements_v4.md`
|
||||
|
||||
## Taxonomy and Categories
|
||||
|
||||
Use category-driven semantics aligned to canonical V4 policy:
|
||||
|
||||
- `validation`
|
||||
- `not_found`
|
||||
- `conflict`
|
||||
- `external`
|
||||
- `timeout`
|
||||
- `internal`
|
||||
|
||||
Do not invent ad hoc categories in user/API-facing envelopes unless canonical docs are updated.
|
||||
|
||||
## Translation Boundaries
|
||||
|
||||
- **Provider/adapters:** raise provider/domain exceptions; do not emit UI text.
|
||||
- **Services:** map raw exceptions into domain categories and preserve causal chain (`raise ... from ...`).
|
||||
- **UI/API:** emit user-safe, actionable messages based on category + operation context.
|
||||
|
||||
## Retry Rules
|
||||
|
||||
- No auto-retry for `validation`, `not_found`, `conflict`.
|
||||
- `external`/`timeout` may be retried when operation semantics are safe.
|
||||
- Preserve each retry as new evidence where applicable (no history rewrite).
|
||||
|
||||
## Job/Page Failure Semantics
|
||||
|
||||
- Page-level (`JobSource`): `pending`, `transcribed`, `failed`, `cancelled`.
|
||||
- Job terminals: `transcribed`, `partial_success`, `failed`.
|
||||
- Cancellation must keep job-level and page-level semantics explicit and consistent.
|
||||
|
||||
## User-Safe Messaging
|
||||
|
||||
- Never leak stack traces, credentials, auth headers, or local filesystem paths in user-facing output.
|
||||
- Include actionable remediation guidance aligned to category.
|
||||
- Keep envelope structure consistent across API endpoints.
|
||||
|
||||
## Logging and Diagnostics
|
||||
|
||||
- Log operation identifiers and error IDs where available.
|
||||
- Preserve category + cause-chain context.
|
||||
- Distinguish no-response timeout/network failures from returned provider error responses.
|
||||
|
||||
## Guardrails
|
||||
|
||||
- No broad catch-and-swallow patterns.
|
||||
- No success-shaped fallback values after exceptions.
|
||||
- Category mapping must remain deterministic and testable.
|
||||
|
||||
## Contract Sync Rule
|
||||
|
||||
If taxonomy, retries, or envelope semantics change:
|
||||
|
||||
1. Update canonical docs (`docs/ver4/error_handling_v4.md`, and invariant docs if needed).
|
||||
2. Update tests in the same change.
|
||||
3. Update related instruction/skill references.
|
||||
Reference in New Issue
Block a user