# S5 · Rubric KSEC และหลักฐานการเรียนรู้

ใช้กับ `TRAIN-CSL-01` เท่านั้น. K = ความรู้, S = ทักษะ, E = จริยธรรม, C = ลักษณะบุคคลที่สังเกตจากการทวนงานนี้. ผู้เขียนมีข้อมูลแต่งและ expected; ผู้เรียน B/O/D ยัง 0/0/0 `NOT_RUN`, ผู้ตรวจเฉพาะสาขา `not_assigned/pending_field_review`, ผลภาคสนาม `NOT_RUN`, CLO/PLO `pending_design`. การอ่านบทหรือกรอกใบงานไม่ใช่ใบรับรองบุคคล/การบิน/การขนส่ง

| Outcome ID | หลักฐานขั้นต่ำเมื่อผ่าน | ต้องแก้หรือยังไม่มีหลักฐานเมื่อ |
|---|---|---|
| `APP-CSL-B-K01` | B-v1 อธิบายความต่างของ Q-A/v0→v1, STOCK-A requested→confirmed, allocation, planning message และ goods receipt ด้วยตัวอย่างแถวจริง | นับ Q-A/v0 เพิ่มเป็นอีกคำขอหรือบอกว่าส่งแผนเท่ากับส่งของ |
| `APP-CSL-B-S01` | ตาราง source_row 2–17 ครบ 16 แถว รักษา MSG-A/v0 สองแถว, จัด Q-A/Q-B/Q-C เป็น candidate/hold/ground พร้อมเหตุและทางเลือก | ข้าม duplicate, ใช้ STOCK-B requested เป็นของพร้อม, หรือไม่พบการหมดอายุ 09:00 |
| `APP-CSL-B-E01` | ถอนคำกล่าวว่า “ส่งถึงแล้ว/บินได้” เมื่อไม่มี receipt/permission; จำกัดข้อมูลแต่งเป็น `training_only` และบอกข้อไม่รู้ | อ้างภาพสร้าง/expected เป็นเหตุจริง หรือใช้ `sent` รับรองการรับมอบ |
| `APP-CSL-B-C01` | มี B-v0/v1 และ review log ≥2 คำทักพร้อมเหตุแก้ owner และเงื่อนไขทวน Q-B/PLAN-A | เขียนว่าจบทั้งสามคำขอโดยไม่มอบเจ้าของข้อค้างหรือไม่มีฉบับแก้ |
| `APP-CSL-O-K01` | O-v1 แยก gate สินค้า/ชุด, คน, สองปลายทาง/อากาศ, ห้วงอากาศ/สิทธิ์, ผู้รับ/receipt; ระบุว่า confirmation ของสินค้าไม่ผ่าน gate อื่น | ใช้เลขสาม kit เป็นพิกัด payload หรือใช้คำยืนยันในโจทย์เป็นการอนุญาตจริง |
| `APP-CSL-O-S01` | แผนหกช่วง, ตาราง requested/confirmed/reserved/expired, Q-A 3 kit ไม่จองซ้ำ, ทางเลือก Q-C ภาคพื้น, manifest/expiry/fallback และ owner ครบ | จอง STOCK-A ให้ Q-A และ Q-B ซ้ำ, ไม่มี recheck หลัง 09:00 หรือไม่เทียบวิธีอื่น |
| `APP-CSL-O-E01` | รักษา AIR-A `hold`, HAND-A ไม่มี receipt, MSG-A/v1 `sent` เท่านั้น; ไม่เปิดภารกิจ/ส่งสินค้าเพราะข้อมูลยังไม่พอ | เติม received/acknowledged/authorized หรือระบุว่าผู้รับได้รับสิ่งของโดยไม่มีเหตุการณ์ |
| `APP-CSL-O-C01` | O-v0/v1 กับ review log ≥2 คำทัก, เจ้าของ/เส้นตายขอคำตอบ Q-B/STOCK-B/AIR-A และเงื่อนไข fallback | ปิดข้อค้างด้วยคำคาดเดาหรือไม่บันทึกผู้รับผิดชอบและเวลาทวน |
| `APP-CSL-D-K01` | Contract ครบ 19 fields, enum/unknown/unit, composite key กับ `source_row`, กฎ version/expiry และ semantic ของ package versus goods receipt | ใช้ `unknown=0`, ยุบ MSG-A/v0 ซ้ำ หรือสร้าง `delivered` จาก `sent` |
| `APP-CSL-D-S01` | **เมื่อรันจริง** เก็บ hash/command/time/exit/raw/diff ของ 16 baseline rows, mutation ของ expiry/recipient/revision, duplicate/offline และ rollback/retest | มีเพียง test plan หรือ expected ไม่มี actual; ขาด negative case หรือไม่คืน baseline. หากไม่รันให้ `NOT_RUN` |
| `APP-CSL-D-E01` | D-v1 ปฏิเสธการแปลง synthetic/expected/ภาพสร้างเป็น authorization, delivery หรือผลผู้เรียน และคงข้อมูลที่ไม่ทราบ | แต่ง actual, เติมสิทธิ์บิน/ผู้รับ หรืออ้าง local author run เป็นผลผู้เรียน |
| `APP-CSL-D-C01` | issue/change log v0→v1 ≥2 ข้อพร้อม owner, เหตุแก้, version, rollback trigger และผล retest/NOT_RUN ตามจริง | ไม่มี trace ของการแก้หรือเขียนว่า retest ผ่านทั้งที่ไม่ได้รัน |

การให้ผลราย ID ใช้ `meets`, `needs_revision`, `insufficient_evidence` พร้อมอ้างชิ้นงาน/รุ่นและเหตุ; ผู้เรียนเดี่ยวทำ self-review ไม่อ้างว่ามีผู้ตรวจจริง. E/C เป็นพฤติกรรมที่สังเกตได้เฉพาะกิจกรรม ไม่ใช่ป้ายบุคลิกภาพถาวร. หากข้ออ้างด้านการขนส่ง/ห้วงอากาศเปลี่ยน ต้องส่งผู้ตรวจเฉพาะสาขาทวนก่อนใช้ภาคสนาม

## เทียบกับ outcome เดิมก่อนออกรหัสใหม่

เทียบ rubric ของ [M09](/downloads/drone-applications/field-logistics-rubric.md) และ [M10](/downloads/drone-applications/communications-support-rubric.md) รายมิติ. M09 ใช้ `TRAIN-LOG-01` (manifest 15 แถวและ handover 8 แถว พร้อมสูตรมวล/CG/พลังงาน); S5 ใช้ 16 event rows ที่ต้องแยกคำขอหลายราย, สต็อกเจ้าของ/expiry และ planning package จาก goods receipt. M10 ผูก fixture การส่งข้อมูลของตน. พฤติกรรมและเกณฑ์แถว/เวลาไม่ตรงแบบ `reuse_exact` จึงออก `APP-CSL-*` 12 รหัสใหม่โดยไม่เปลี่ยนเกณฑ์หรือผลเดิม; ID เดิมใช้เป็นพื้นฐานอ่าน ไม่ย้ายผลผ่าน. ทุก ID ใหม่ยังเป็นผลลัพธ์ **ที่ออกแบบ** จนมีหลักฐานผู้เรียนจริง
