Requirements
55 requirements
| Requirement | Description | Dataset | Priority | Status | Updated Sort by last updated | Actions |
|---|---|---|---|---|---|---|
| REQ-201 | The document requires that customer data be renamed to 'customer_thai' and the 'fax' field must be changed to 'address', with all new data entries being formatted as a comma-separated pair of 'customer_id,address'. | album | low | active | Sep 30, 2026, 8:21 AM | View · Edit |
| REQ-CHINOOK-001 | Pipeline ที่นำเข้าข้อมูลจากตาราง track ต้องตรวจสอบ Schema ก่อนประมวลผล โดยต้องตรวจสอบว่าคอลัมน์ที่จำเป็นยังมีอยู่และชนิดข้อมูลไม่เปลี่ยนแปลง หากพบการเปลี่ยนแปลงที่ไม่เข้ากัน ต้องหยุดการประมวลผลของขั้นตอนถัดไป และต้องบันทึกเหตุการณ์ Schema Drift พร้อมระบุคอลัมน์ที่มีการเปลี่ยนแปลงไว้สำหรับตรวจสอบย้อนหลัง | customer | low | active | Sep 30, 2026, 9:03 AM | View · Edit |
| REQ-COPILOT-001 | Copilot routing-layer regression coverage. | customer | low | active | Aug 5, 2026, 4:14 AM | View · Edit |
| REQ-COVERAGE-001 | Requirement-level coverage-report regression coverage. | customer | low | active | Aug 4, 2026, 9:46 AM | View · Edit |
| REQ-DE-002 | เนื่องจากจะรับข้อมูลลูกค้าจากระบบ CRM ใหม่ customer_id ต้องเปลี่ยนจาก INTEGER เป็น VARCHAR(20) รูปแบบ 'CRM-xxxxx' ยังคงห้ามซ้ำและห้ามเป็นค่าว่าง และตารางปลายทางที่ใช้ customer_id ต้องรองรับชนิดใหม่ | customer | high | active | Oct 2, 2026, 10:40 AM | View · Edit |
| REQ-DE-003 | Customer email addresses must be fully hidden in all downstream reporting outputs. | customer | high | active | Oct 2, 2026, 12:58 PM | View · Edit |
| REQ-DE-004 | Data governance requirement for the customer dataset. | customer | high | active | Oct 2, 2026, 12:58 PM | View · Edit |
| REQ-DIAG-001 | diag | customer | high | active | Sep 4, 2026, 2:22 AM | View · Edit |
| REQ-DIAG-002 | diag | customer | high | active | Sep 22, 2026, 10:33 AM | View · Edit |
| REQ-DIFF-TEST-001 | Customer phone numbers must be retained for 90 days after account closure. | customer | critical | active | Oct 12, 2026, 5:15 AM | View · Edit |
| REQ-ERRMAP-001 | Error-mapping regression coverage for /requirements/{id}/impact. | customer | low | active | Aug 4, 2026, 8:17 AM | View · Edit |
| REQ-HIST-001 | History regression coverage. | customer | critical | active | Oct 12, 2026, 5:15 AM | View · Edit |
| REQ-PROMO-01 | เปลี่ยนมาทำโปรโมชั่นระดับอัลบั้ม (album) แทนระดับเพลงเดี่ยว | album | medium | active | Sep 24, 2026, 4:03 AM | View · Edit |
| REQ-PROMO-02 | Verification requirement for docker container fix (port 3001 write path) | customer | medium | active | Sep 24, 2026, 3:19 AM | View · Edit |
| REQ-PROMO-03 | โปรโมชั่นเดือนนี้อิงข้อมูลลูกค้าเพื่อหาเพลงยอดฮิตของเดือน" | customer | critical | active | Sep 24, 2026, 2:50 PM | View · Edit |
| REQ-PROMO-04 | ติดตามข้อมูลอัลบัมเพื่อทำ catalog → เปลี่ยนมาติดตามข้อมูลการซื้อขายของแทน เพราะเป็นจุดที่กระทบระบบอื่นเยอะที่สุด | invoice | low | active | Sep 24, 2026, 2:54 PM | View · Edit |
| REQ-TEST-001 | Customer email must be masked in downstream reporting. | customer | high | active | Aug 3, 2026, 6:55 AM | View · Edit |
| REQ-TEST-TT-001 | Test Traceability fixture requirement REQ-TEST-TT-001. | customer | medium | active | Sep 1, 2026, 8:58 AM | View · Edit |
| REQ-TEST-TT-GAP-001 | Test Traceability fixture requirement REQ-TEST-TT-GAP-001. | customer | medium | active | Sep 1, 2026, 8:58 AM | View · Edit |
| REQ-TOOLREG-01 | tool_registry.py Phase 3 requirement-tool regression coverage. | customer | medium | active | Sep 7, 2026, 3:05 AM | View · Edit |
| REQ-TT-001 | Test Traceability fixture requirement REQ-TT-001. | customer | medium | active | Sep 1, 2026, 8:59 AM | View · Edit |
| REQ-TT-COV-ACT | Coverage endpoint fixture requirement (active). | customer | medium | active | Oct 12, 2026, 5:16 AM | View · Edit |
| REQ-TT-COV-RET | Coverage endpoint fixture requirement (retired). | customer | medium | deprecated | Sep 4, 2026, 2:49 PM | View · Edit |
| REQ-TT-GAP-01 | Test Traceability fixture requirement REQ-TT-GAP-01. | customer | medium | active | Sep 1, 2026, 8:59 AM | View · Edit |
| REQ-TT-STALE-1 | Test Traceability fixture requirement REQ-TT-STALE-1. | customer | medium | active | Oct 12, 2026, 5:16 AM | View · Edit |
| REQ-WIKI-001 | Wiki requirement-scoped retrieval regression coverage. | customer | low | active | Aug 5, 2026, 6:57 AM | View · Edit |
| THS-REQ-001 | ค่า `customer_id` ในตาราง customer ต้องไม่ซ้ำกัน | customer | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-002 | คอลัมน์ `customer_id` ของตาราง customer ต้องมีชนิดข้อมูล `int` | customer | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-003 | ค่า `email` ที่ไม่ว่างทุกแถวต้องตรง regex `^[^@\s]+@[^@\s]+\.[^@\s]+$` | customer | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-004 | ค่า `support_rep_id` ที่ไม่ว่างทุกแถวต้องมีอยู่ใน `employee.employee_id` | customer | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-006 | ค่า `first_name, last_name, email, support_rep_id` ราย `customer_id` ต้องตรงกับต้นทางทุกแถว | customer | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-007 | ค่า `total` ของ invoice ต้องอยู่ระหว่าง 0 ถึง 25 | invoice | medium | active | Oct 15, 2026, 10:46 AM | View · Edit |
| THS-REQ-009 | จำนวนแถวของ invoice_line ปลายทางต้องเท่ากับต้นทางในทุก partition | invoice_line | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-011 | ค่า `name` ต้องเป็นหนึ่งใน 5 ค่า: AAC audio file, MPEG audio file, Protected AAC audio file, Protected MPEG-4 video file, Purchased AAC audio file | media_type | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-012 | ตาราง customer_summary ต้องมีคอลัมน์ `total_spend` | customer_summary | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-013 | customer_summary ต้องถูกเขียนสำเร็จครั้งล่าสุดไม่เกิน 24 ชั่วโมง | customer_summary | medium | active | Oct 15, 2026, 10:26 AM | View · Edit |
| THS-REQ-014 | ค่า `spend_tier` ต้องเป็นหนึ่งใน `high`, `medium`, `low` | customer_feature | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-015 | ค่า `customer_id` ของ invoice_summary ต้องไม่ว่างทุกแถว | invoice_summary | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-016 | คอลัมน์ `milliseconds` ของ track ต้องมีชนิด `int` | track | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-017 | คอลัมน์ `unit_price` ของ invoice_line ต้องมีชนิด `decimal(10,2)` | invoice_line | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-018 | invoice_summary ต้องถูกเขียนสำเร็จครั้งล่าสุดไม่เกิน 72 ชั่วโมง (ตาม DQ rule 47) | invoice_summary | medium | active | Oct 8, 2026, 5:16 PM | View · Edit |
| THS-REQ-019 | `line_count` ของแต่ละ `invoice_id` ต้องเท่ากับจำนวน `invoice_line_id` ใน invoice_line และ invoice ที่ไม่มีแถวใน invoice_line ต้องมี `line_count` เป็น 0 (fillna(0) ที่ core/capabilities/invoice_summary.py:25) | invoice_summary | medium | active | Oct 8, 2026, 7:02 PM | View · Edit |
| THS-REQ-020 | `total_spend` ของแต่ละ `customer_id` ต้องเท่ากับผลรวม `total_amount` ใน invoice_summary และ customer ที่ไม่มีแถวใน invoice_summary ต้องไม่มี total_spend (null) | customer_summary | medium | active | Oct 15, 2026, 10:20 AM | View · Edit |
| THS-REQ-021 | `spend_tier` ต้องเป็น `high` เมื่อ `total_spend >= 100`, `medium` เมื่อ `>= 40`, นอกนั้น `low` | customer_feature | medium | active | Oct 15, 2026, 11:19 AM | View · Edit |
| THS-TLC-001 | จำนวนแถวของ raw_trips ต่อวัน (partition ตามวัน pickup) เท่ากับจำนวนแถวของไฟล์ต้นทางในวันนั้น | raw_trips | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-002 | checksum ราย partition (วัน pickup) ของ column หลักใน raw_trips (21 column ที่ประกาศจากไฟล์ต้นทาง) ตรงกับต้นทาง | raw_trips | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-003 | `clean_trips.fare_amount` ต้องไม่ติดลบ | clean_trips | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-004 | ค่าที่ไม่ว่างของ `clean_trips.payment_type` ต้องอยู่ใน {0, 1, 2, 3, 4, 5, 6} ตาม data dictionary | clean_trips | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-005 | `clean_trips.PULocationID` และ `DOLocationID` ต้องไม่ว่าง | clean_trips | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-007 | รายได้รวม (`total_revenue`) ใน borough_kpi เท่ากับผลรวม `total_amount` ของ clean_trips ต่อ (`pickup_date`, `pu_borough`) | borough_kpi | medium | active | Oct 19, 2026, 6:49 AM | View · Edit |
| THS-TLC-008 | ระยะทางเฉลี่ยต่อเที่ยว (`avg_trip_distance`) ใน borough_kpi เท่ากับค่าเฉลี่ย `trip_distance` ของ clean_trips ต่อ (`pickup_date`, `pu_borough`) | borough_kpi | medium | active | Oct 19, 2026, 6:50 AM | View · Edit |
| THS-TLC-009 | clean_trips ต้องแสดง column ตามรายการที่กำหนด (column ที่มีอยู่ตอนสร้าง baseline) | clean_trips | medium | active | Oct 19, 2026, 6:50 AM | View · Edit |
| THS-TLC-010 | ชนิดของ `clean_trips.trip_distance` เป็น double และ `lpep_pickup_datetime` เป็น timestamp | clean_trips | medium | active | Oct 19, 2026, 6:50 AM | View · Edit |
| THS-TLC-011 | การโหลด clean_trips ที่สำเร็จล่าสุดต้องไม่เก่ากว่า 35 วัน (840 ชั่วโมง) เมื่อเทียบกับนาฬิกาจำลอง | clean_trips | medium | active | Oct 19, 2026, 6:50 AM | View · Edit |
| THS-TLC-012 | partition วันล่าสุดของ clean_trips ต้องไม่ถอยหลังจาก partition ล่าสุดของ snapshot ล่าสุดที่ผ่าน requirement นี้ (high-watermark) และจำนวนเที่ยวของ partition นั้นต้องไม่น้อยกว่าค่าต่ำสุดของ 28 partition ก่อนหน้า | clean_trips | medium | active | Oct 19, 2026, 6:50 AM | View · Edit |