error/v1 v1.1.0: details มีกฎแล้ว (ADR-0030) - #67
Merged
Conversation
care-agent-platform ไล่ปิด metadata ของ audit event ในบ้านตัวเองตามที่ตกลงกันไว้ แล้วรายงานว่าเจอช่องที่สามระหว่างทาง คือ error/v1 details เป็น type object เปล่า รูปเดียวกับ metadata เป๊ะ ต่างกันแค่ไม่มีใครพูดถึงมัน รวมทั้งตัวเขาเองที่เพิ่งไล่ปิด metadata ทั้งใบแล้วเดินผ่าน details ไปโดยไม่เห็น เปิดไฟล์ตรวจแล้วจริง และความไม่สมมาตรอยู่ห่างกันสิบบรรทัดในไฟล์เดียวกัน message ห้าม PII ไว้ตั้งแต่ v1.0.0 ส่วน details ไม่มีคำอธิบายเลยสักบรรทัด error/v1 ไม่ใช่ contract ที่ derive semantics มาจากใคร เป็นของ agent-platform เต็มใบ จึงแก้ได้เองโดยไม่ต้องมี RFC ที่ต้นทาง ต่างจาก event/v1 transition reason ซึ่งเป็นช่อง เดียวกันแต่อยู่ในสัญญาที่ derive มา เคาะ option C คือเติมกฎให้สอดคล้องกับ message พร้อมเขียนไว้ในตัวฟิลด์ว่ากฎนี้บังคับ ได้ที่ผู้ผลิตเท่านั้น ปฏิเสธการปิดด้วย propertyNames enum ด้วยเหตุผลของผู้รายงานเอง คือ schema เขียนได้แค่ว่าคีย์ไหนมีได้ เขียนไม่ได้ว่าใครเป็นคนเขียนค่านั้นซึ่งเป็นแกนจริง ของกฎ และรายการที่ต้องซิงก์สองที่จะ drift ภายในเดือนเดียว ข้อสังเกตที่ทำให้ใบนี้มีค่ากว่าการแก้ไฟล์คือประโยคของผู้รายงานว่าช่องเปิดที่อันตราย ที่สุดไม่ใช่ช่องที่มีคนเถียงกันว่าควรปิดไหม แต่เป็นช่องที่ไม่มีใครเอ่ยชื่อมันเลยในทั้ง กระทู้ metadata ถูกพูดถึงจนได้รับการปิด details อยู่ในไฟล์เดียวกันรูปเดียวกันและรอด มาได้เพราะไม่มีใครพิมพ์ชื่อมัน บทเรียนที่บันทึกไว้ใช้ต่อ ครั้งหน้าที่ไล่ปิด open bag ให้ไล่จากรายการฟิลด์ในไฟล์ ไม่ใช่ จากรายการที่มีคนพูดถึงในกระทู้ สองรายการนี้ไม่เท่ากันและส่วนต่างคือช่องที่รอดมาได้ ไม่ breaking เพิ่มคำอธิบายและกฎ ไม่แตะ type ไม่แตะ required ไม่ปิด object drift check 34/34 FAIL=0 WARN=0 Claude-Session: https://claude.ai/code/session_01LHv7HRmnnGAoKT5BvxDWHs Co-authored-by: monthop-gmail <monthop-gmail@users.noreply.github.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
care-agent-platformไล่ปิดmetadataของ audit event ในบ้านตัวเอง แล้วรายงานว่าเจอช่องที่สามระหว่างทาง — และมันเป็นสัญญาของเราความไม่สมมาตรที่อยู่ห่างกันสิบบรรทัดในไฟล์เดียวกัน
error/v1อยู่ที่v1.0.0ตั้งแต่ 17 ส.ค. ไม่เคยขยับ และ ไม่ derive semantics มาจากใคร — เป็นของเราเต็มใบ แก้ได้เองโดยไม่ต้องมี RFC ที่ต้นทาง ต่างจากevent/v1.transition.reasonซึ่งเป็นช่องเดียวกันแต่ derive มาข้อสังเกตที่ทำให้ ADR นี้มีค่ากว่าการแก้ไฟล์
ผู้รายงานสรุปเอง:
ไม่มีอะไรใน JSON Schema ตรวจสองอย่างนี้ได้ — ทั้งคู่ต้องมีคนอ่านแล้วเอ่ยชื่อ
Decision: C
เติมกฎให้
detailsสอดคล้องกับmessage+ เขียนไว้ในตัวฟิลด์ว่ากฎนี้บังคับได้ที่ผู้ผลิตเท่านั้นปฏิเสธ B (
propertyNamesenum) ด้วยเหตุผลของผู้รายงานเอง — schema เขียนได้แค่ว่าคีย์ไหนมีได้ เขียนไม่ได้ว่าใครเป็นคนเขียนค่านั้น ซึ่งเป็นแกนจริงของกฎ · และรายการที่ซิงก์สองที่จะ drift ภายในเดือนเดียวv1.0.0→v1.1.0— ไม่ breakingเพิ่มคำอธิบายและกฎ · ไม่แตะ
typeไม่แตะrequiredไม่ปิด object · consumer ที่ pin ไว้ (care-agent-platform·devfactory-core·botforge) ไม่ต้องแก้อะไร แต่ควรไล่ดูว่าของที่ใส่ในdetailsเข้ากฎหรือไม่ยังไม่ปิด
event/v1.transition.reason— ช่องเดียวกันแต่ derive จากdevfactory-coreต้องเป็น RFC ที่ต้นทาง และเป็นฟิลด์ที่ข้อกำหนดสองข้อชนกันตรวจแล้ว
drift check 34/34 · FAIL=0 · WARN=0🤖 Generated with Claude Code
https://claude.ai/code/session_01LHv7HRmnnGAoKT5BvxDWHs