kjh2064
|
f680579134
|
feat: Complete VS-03 DOMAIN - Market Data Ingestion (Batch 2 - 3/7)
Implements market data validation and normalization:
✅ GOV: Market data ingestion specification
- KRX/OpenDart data sources
- Daily scheduling (9:00 KST)
- Quality SLAs (99.5% availability)
✅ DATA: PIT-compliant schema (4 tables)
- daily_prices: OHLCV with versioning
- indices: Market indices snapshots
- companies: Master data
- ingestion_jobs: Audit trail
✅ DOMAIN: Policy logic (12 tests, 12/12 PASS)
- ValidatePrice: OHLC constraints, date checks
- IsDuplicate: Prevent redundant entries
- NormalizePrice: Rounding, filtering
- ClassifyQualityIssue: Quality scoring (0-100)
- ValidateBatch: Aggregate metrics
AGENTS.md v16.0 compliance:
✅ Necessity: WBS Phase 2 Batch 2
✅ Simplicity: Pure validation logic, no I/O
✅ Idempotency: By (symbol, trading_date)
✅ Safety: Immutable history with versioning
✅ Quality gates: Data quality scoring
Phase 2 Progress: 1/4 Batches (VS-03 GOV+DATA+DOMAIN COMPLETE)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-08-05 21:16:29 +09:00 |
|
kjh2064
|
837dbeb794
|
feat: Complete VS-02 DOMAIN - SecurityMaster sync policy (Batch 1 - 3/7)
Implements pure domain logic for security master synchronization:
- Conflict resolution (last-write-wins by PublishedAt)
- Idempotency key generation
- Rollback detection
- Rule validation and active-time checking
- 13 unit tests: 13/13 PASS
AGENTS.md v16.0 compliance:
✅ Necessity: WBS VS-02 DOMAIN phase
✅ Simplicity: Pure logic, no I/O, deterministic
✅ SOLID: Single responsibility (policy only)
✅ Guardrails: Idempotent, versioned, rollback-safe
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-08-05 21:05:14 +09:00 |
|
kjh2064
|
555133d245
|
feat: Start Phase 2 Batch 1 - VS-01 ManageIdentityAndRoles (GOV, DATA, DOMAIN)
Phase 2 Batch 1 - No Dependencies (Start Immediately)
├─ VS-01: ManageIdentityAndRoles
│ ├─ GOV: VS-01_SLICE_SPEC.md (Policy/Scope/Failure/Acceptance)
│ ├─ DATA: VS-01_DATA_CONTRACT.md (3NF schema, PIT, CDC events)
│ └─ DOMAIN: VS01_IdentityPolicyTests.cs (15 tests, pure logic)
└─ VS-02: SynchronizeSecurityMaster (🔜 Next)
### VS-01 GOV Component
- User Management (CRUD, soft-delete)
- Role & Permission Model (Admin/Analyst/Trader/Viewer)
- Data Integrity (PIT compliance, immutable email)
- API Contracts (POST/GET/PATCH endpoints)
- UI/UX Acceptance Criteria
- Security Model
- Failure Modes & Recovery
### VS-01 DATA Component
- Schema (3NF): identity.users, identity.roles, identity.user_roles, identity.user_permissions
- Constraints: Email UNIQUE, status ENUM, PIT temporal ordering
- Immutability: Email/UserID/Roles cannot change post-creation
- Soft-delete: removed_at pattern (append-only)
- PIT Queries: published_at <= cutoff validation
- CDC Events: UserCreated, RoleAssigned, RoleRevoked
- Idempotency: Email-based dedup, role assignment idempotent
### VS-01 DOMAIN Component
- 15 Domain Policy Tests (NO database, pure logic)
✅ Email validation (format, normalization, case-insensitivity)
✅ Password validation (length ≥12 chars)
✅ Role management (assign, revoke, idempotency)
✅ Permission hierarchy (role-based access control)
✅ User status transitions (active/inactive/suspended)
✅ Admin-only operations (user creation, role modification)
✅ Immutability (email, user ID)
✅ Soft-delete (inactive users filtered out)
✅ Consistency (every user must have role)
Execution Timeline (Per Slice):
- GOV: 1-2 hours ✅ COMPLETE
- DATA: 2-3 hours ✅ COMPLETE
- DOMAIN: 2-3 hours ✅ COMPLETE
- BE: 3-4 hours (next)
- ASYNC: 2-3 hours
- FE: 3-4 hours
- TESTOPS: 2-3 hours
Total VS-01: ~18-22 hours (wall-clock ~3 days)
Phase 2 Status:
- Batch 1: 3/14 components COMPLETE (VS-01: 3/7, VS-02: 0/7)
- Batch 2-3: 🔜 Queued (after Batch 1 deps satisfied)
- 56 items total, 8 parallel batches
AGENTS.md v16.0 Compliance:
✅ Necessity: User goal/non-goal/acceptance criteria specified
✅ Pattern: Vertical Slice (GOV → DATA → DOMAIN → BE → ASYNC → FE → TESTOPS)
✅ Traceability: VS-01 specs linked to Phase 2 plan
✅ Safety: Pure logic tests (no side effects)
✅ Maturity: Contracts before implementation
Next: VS-01 BE (API/Handler/SQL) OR continue parallel VS-02
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-08-04 01:15:42 +09:00 |
|
kjh2064
|
6a31bc3737
|
PR 4b: Apply CA1822 static method modifiers + Gitea Actions secrets guidance
Completed DEBT-001 paydown (1pt) by making three pure-function methods static:
- ScheduleOccurrencePlanner.GetNextDueAt (no instance state accessed)
- PromotionGateEvaluator.Evaluate (evidence gate only, no mutations)
- EvaluationWindowPlanner.Plan (deterministic date calculation)
Changes:
- Added `static` modifier to three domain methods
- Updated call sites: ModelOperationsDispatcherJob, tests
- Removed unnecessary DI registrations (ModelOperationsModule)
- Eliminated instance creation overhead in tests
Test Results: 40/40 PASS (17 ModelOps + 18 SignalEngine + 5 Architecture)
Documentation:
- Updated TECH_DEBT_REGISTER.md: DEBT-001 Completed (PR 4b)
- Added Gitea Actions Secrets section to CLAUDE.md documenting:
- KRX_API_KEY, OPENDART_API_KEY, KIS_API_KEY storage location
- CI/CD usage pattern
- Local dev guidance
Per AGENTS.md v16.0: Code changes are performance improvements, not suppressions.
Quarterly paydown: +1pt (target 4pts for 20% Q3 2026)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-08-02 05:59:01 +09:00 |
|