테스트 DB 계약과 실행 안전성 정렬
ci / backend (push) Failing after 0s
ci / static (push) Failing after 6s
ci / backend (pull_request) Failing after 1s
ci / static (pull_request) Failing after 7s
Build & Test with Secrets / build (pull_request) Failing after 1s
ci / frontend (push) Failing after 48s
Build & Test with Secrets / security-scan (pull_request) Successful in 5s
Build & Test with Secrets / frontend (pull_request) Failing after 1m23s
ci / frontend (pull_request) Failing after 1m32s
Build & Test with Secrets / notification (pull_request) Failing after 2s
ci / backend (push) Failing after 0s
ci / static (push) Failing after 6s
ci / backend (pull_request) Failing after 1s
ci / static (pull_request) Failing after 7s
Build & Test with Secrets / build (pull_request) Failing after 1s
ci / frontend (push) Failing after 48s
Build & Test with Secrets / security-scan (pull_request) Successful in 5s
Build & Test with Secrets / frontend (pull_request) Failing after 1m23s
ci / frontend (pull_request) Failing after 1m32s
Build & Test with Secrets / notification (pull_request) Failing after 2s
This commit is contained in:
@@ -267,3 +267,40 @@ Every task — code change, refactor, new feature, tooling, infrastructure — m
|
||||
- ❌ Magic number → 근거 있는 상수, Policy ID로 추적
|
||||
- ❌ "다른 모듈 테이블 조회" → Contract/Read Model만
|
||||
- ❌ 스킵된 테스트 기록 안 함 → Debt register에 DECISION_REQUIRED
|
||||
|
||||
## Execution Protocol Addendum
|
||||
|
||||
### Before Any Change
|
||||
|
||||
- Read the current Source of Truth first: user-provided configuration, current schema, active contracts, and existing tests.
|
||||
- Record `Source / Assumption / Unknown / Decision Required` in the Slice note before editing.
|
||||
- Preserve user-fixed development and production configuration values. Never replace them with compose defaults, environment fallbacks, or guessed credentials.
|
||||
- Classify the change as exactly one Vertical Slice or one behavior-preserving refactoring. Do not mix policy, schema, configuration, and unrelated cleanup.
|
||||
|
||||
### Database Test Routing
|
||||
|
||||
- Unit tests do not connect to a database.
|
||||
- Integration and migration tests use the configured test database from the test project's Development settings.
|
||||
- Production database access is read-only diagnostics only unless an explicitly approved production release step says otherwise.
|
||||
- Before any destructive test-database operation, parse and verify the database name is the approved test database. Refuse all other names.
|
||||
- Do not infer schema from a legacy migration file. Compare active runtime SQL, tests, and the current database schema first.
|
||||
|
||||
### Time and Timezone
|
||||
|
||||
- Persist instants in UTC with timezone-aware database types where the contract permits.
|
||||
- Convert to KST only at display, reporting, scheduling, or MarketCalendar boundaries.
|
||||
- Keep `IClock.UtcNow` as the application clock contract. A KST conversion requires an explicit contract and characterization test.
|
||||
- Never change a timezone or reinterpret existing timestamps without a documented data-meaning decision and rehearsal evidence.
|
||||
|
||||
### Blockers Must Be Actionable
|
||||
|
||||
- Do not repeatedly report that work is blocked without a concrete resolution proposal.
|
||||
- For each blocker, state: exact cause, safe options, recommended option, required command or approval, and the evidence that will be produced.
|
||||
- If the user has provided the required authority or test resource, proceed within that scope instead of asking for the same approval again.
|
||||
- If an external prerequisite is missing, perform all safe read-only checks first, then give one precise request to unblock the next Slice.
|
||||
|
||||
### Evidence and Completion
|
||||
|
||||
- Never claim completion from an intended command. Record the actual command result and artifact path.
|
||||
- For migrations, preserve fresh-install, upgrade, re-run, and failure-rehearsal evidence before calling the Slice complete.
|
||||
- When a change fails validation, revert or isolate the failed draft before starting the next Slice; do not leave an unapplied journal or partial scaffold as if it were approved.
|
||||
|
||||
Reference in New Issue
Block a user