Scoped Property Plan 56c KO - teamswyg/laya-tools GitHub Wiki

์งง์€ ์ฃผ์žฅ ์‹คํ—˜56c: ํ•œ ์†์„ฑ์˜ ์ •๋‹ต๊ณผ ๋ฌธ์žฅ ์ค€๋น„ ๊ณ„ํš

English ยท ๋‹ค์Œ ๋ฐฉํ–ฅ ยท 56b ๊ฒฐ๊ณผ

์ด๋ฒˆ ๋ฌธ์„œ๋Š” ์‚ฌ์ „ ์ค€๋น„ ์„ค๊ณ„๋‹ค. ์ƒˆ ์†์„ฑ์˜ ๊ณต์‹ ๊ฐ์‚ฌยท์—ญํ•  ๋ถ„ํ• ยท์ˆœ์œ„ ๊ด€์ธกยทํ•™์Šตยท๋ชจ๋ธ ํ˜ธ์ถœยท์„ฑ๋Šฅ ์ธก์ •ยท์ตœ์ข… ํ‰๊ฐ€๋Š” ์•„์ง ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ commitํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์‹คํ–‰ ์ž…๋ ฅยท์›์ฒœยท๊ด€์ธก๊ธฐ๊ฐ€ ๋ด‰์ธ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์‹ค์ œ ๊ตฌํ˜„๊ณผ ๋ฌธ๊ตฌ ๊ฒ€ํ† ๊ฐ€ ์ค€๋น„๋˜๋ฉด ๋ณ„๋„ ์‹คํ–‰ manifest๋ฅผ ๊ฒฐ๊ณผ ์ „์— ๊ณ ์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋ฌธ์„œ ์ž‘์„ฑ ์‹œ์ ์—๋Š”56b PR79์˜ CI๊ฐ€ ์ง„ํ–‰ ์ค‘์ด๋ฉฐ, ๊ฒ€์ฆ ์™„๋ฃŒ๋‚˜ ๋ณ‘ํ•ฉ์„ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ˆ„๊ฐ€ ๋ฌด์—‡์— ์“ฐ๋ ค๋Š”๊ฐ€

๊ฐ€์ƒ ์‚ฌ์šฉ์ž๋Š” ์งง์€ Go ํ•จ์ˆ˜ ์„ค๋ช…์„ ๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆœ์„œ๋ฅผ ์ •ํ•˜๋Š” ์—์ด์ „ํŠธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€œquote ์•ˆ์˜ comma๋ฅผ ๋ณด์กดํ•˜๋Š” ํ›„๋ณดโ€ ๋˜๋Š” โ€œ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์— ๋ถ€๋ถ„ ํ† ํฐ์„ ๋‚จ๊ธฐ์ง€ ์•Š๋Š” ํ›„๋ณดโ€๋ฅผ ์ฐพ๋Š”๋‹ค. ์ž‘์€ ๋„๊ตฌ๋Š” ํ›„๋ณด์˜ ๊ฒ€์‚ฌ ์ˆœ์„œ๋งŒ ์ œ์•ˆํ•˜๊ณ  ์™ธ๋ถ€์˜ ๋…๋ฆฝ ๊ฒ€์‚ฌ๊ฐ€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋ชจ๋“  ํ›„๋ณดยท์›๋ž˜ ์ˆœ์„œยทfallback์„ ๋ณด์กดํ•œ๋‹ค. ํžŒํŠธ๊ฐ€ ๋‚ฎ์€ ํ›„๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ์Šน์ธ์„ ์ž๋™์œผ๋กœ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

ํ•œ ์†์„ฑ์ด ๋งž๋Š” ํ•จ์ˆ˜๋„ ๋‹ค๋ฅธ ์†์„ฑ์—์„œ๋Š” ํ‹€๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ ์ˆ˜๋Š” ์ •๋‹ต ํ™•๋ฅ ยท์ „์ฒด ํ•จ์ˆ˜์˜ ์ •๋‹ตยท์‹คํ–‰ ์Šน์ธ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ™์€ ์ž‘์—…์— ์ž‘์€ ํžŒํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์“ฐ๋Š” ๋ฐฉ์‹์˜ ํšจ์šฉ๊ณผ ์‹ค์ œ LLM ์‚ฌ์šฉ๋Ÿ‰์€ ๋ณ„๋„ ์‹คํ—˜์—์„œ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

๋ณด์กดํ•  ์ถœ๋ฐœ์ 

56b์˜ ๊ธฐ์กด ํ•ฉ๊ณ„72์š”์ฒญยท์ „์ฒด17์—ฐ๊ฒฐ ๊ทธ๋ฃนยท๋ผ๋ฒจ16์—ฐ๊ฒฐ ๊ทธ๋ฃน์€ ์—ญ์‚ฌ์  ๊ฐœ๋ฐœ ๊ธฐ๋ก์ด๋‹ค. ๋‘ ๊ทธ๋ฃน ์ˆ˜๊ฐ€ ์ค€๋น„ ํ•˜ํ•œ15๋ฅผ ๋„˜์—ˆ์–ด๋„, ํ•œ ํ˜‘์—… ํ•ฉ์„ฑ ์˜์–ด ์ž‘์„ฑ ๊ณผ์ •์˜ ์ž๋ฃŒ๋ผ๋Š” ํ•œ๊ณ„์™€ ์—ญํ•  ๊ณ„ํšยท๋‹ค์–‘์„ฑ ๋ถ€์กฑ์€ ๋‚จ์•„ ์žˆ๋‹ค. ํ†ต๊ณ„์  ๋…๋ฆฝ์„ฑ์ด๋‚˜ ํ•™์Šต ์ค€๋น„๋ฅผ ๋œปํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ์กด ๊ตฌ๋ถ„์ž4์š”์ฒญ์˜ unknown, ์›๋ฌธยทํ›„๋ณดยท์ •๋‹ตยท๊ทธ๋ฃนยท๋ด‰์ธ manifestยท๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์กดํ•œ๋‹ค. ์ข์€ ์†์„ฑ ์š”์ฒญ์€ ๋ณ„๋„ ID์™€ ์›๋ž˜ ๋ถ€๋ชจ ์—ฐ๊ฒฐ์„ ๊ฐ€์ง„ ์ƒˆ ๊ฐœ๋ฐœ ์ž๋ฃŒ๋กœ ์ค€๋น„ํ•˜๋ฉฐ, ๊ธฐ์กด unknown์„ known์œผ๋กœ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๊ณต๊ฐœ ์›์ฒœ120๊ฐœ ์กฐ์‚ฌ snapshot๊ณผ protected finalยทCoSQA reserve๋„ ๋ณด์กดํ•œ๋‹ค.

์ด๋ฒˆ ๊ณ„ํš์˜ ์‹คํ–‰ ๊ถŒํ•œ์€ ์ค€๋น„ ์„ค๊ณ„๊นŒ์ง€๋‹ค. ์—ญํ• 0ยท๋ถ„ํ• 0ยทfits0ยท์ƒˆ ๊ฐ€์ค‘์น˜0ยท๋ชจ๋ธ ํ˜ธ์ถœ0ยท์ƒˆ ์ˆœ์œ„0ยท์ƒˆ ์„ฑ๋Šฅ ์‹คํ–‰0ยท์œ ๋ฃŒ ํ˜ธ์ถœ0ยทprotected final ์ ‘๊ทผ/์ฑ„์ 0์„ ์œ ์ง€ํ•œ๋‹ค. ๊ธฐ์กด ์‹ค์ œ ์ฝ”๋”ฉ ์š”์ฒญ7๊ฐœยท๊ธฐ๋ก20๊ฐœ์™€ ์†Œ์ง„๋œ ์œ ๋ฃŒ ํ˜ธ์ถœ ์›์žฅ์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค.

์ตœ์ดˆ ๋ฒ”์œ„: ์„ธ ์†์„ฑ๊ณผ ๊ธฐ์กด ์•„ํ™‰ literal

๊ธฐ์กด internal/typedbehavior/flow.go์˜ ๊ณ ์ •๋œ ์›์ฒœ ๋„ค ๊ฐœ๋งŒ ์žฌ์‚ฌ์šฉํ•œ๋‹ค: quoted-correct, quoted-literal-comma, quoted-inside-escape, quoted-partial-error. ์ƒˆ ํ›„๋ณดยท์›๊ฒฉ ์ฝ”๋“œยท์‚ฌ์šฉ์ž ์ฝœ๋ฐฑยท๋™์  compile ์ž…๋ ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ๋‹ซํžŒ registry์™€ ์‹ค์ œ ์ฝ”๋“œ/helper closure ํ•ด์‹œ๊ฐ€ ๋งž๋Š” ์›์ฒœ๋งŒ ์ง€์›ํ•œ๋‹ค.

์†์„ฑ ์ดˆ์•ˆ ๊ธฐ์กด literal ์ž…๋ ฅ ๊ณ ์ •ํ•  ๊ด€์ธก๊ณผ ์ œ์™ธ ๋ฒ”์œ„
quoted-comma-content-v1 "a,b",c, ab"c,d"ef โ€”2๊ฐœ ๋‘ ์œ ํšจ ASCII ์ž…๋ ฅ์—์„œ ์ •์ƒ ๋ฐ˜ํ™˜, Count์™€ decoded token์„ literal ๊ธฐ๋Œ€๊ฐ’๊ณผ ๋น„๊ต. Quote๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  quote ๋ฐ– comma๋Š” ๋ถ„๋ฆฌ. ์ด ์ตœ์ดˆ ๋ฒ”์œ„๋Š” backslash๊ฐ€ ์—†๋Š” ์ž…๋ ฅ์ด๋ฉฐ ์˜ค๋ฅ˜ ๋™์ž‘์„ ์ธ์ฆํ•˜์ง€ ์•Š์Œ
outside-escaped-comma-v1 a\,b,c, a\\,b โ€”2๊ฐœ Quote ์—†๋Š” ์œ ํšจ ASCII ์ž…๋ ฅ์—์„œ ์ •์ƒ ๋ฐ˜ํ™˜, Count์™€ decoded token ๋น„๊ต. Backslash๊ฐ€ ๋‹ค์Œ byte๋ฅผ ๋‚ด์šฉ์œผ๋กœ ์†Œ๋น„ํ•จ. ๋‘ backslash ๋‹ค์Œ์˜ comma๋Š” ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์•„ ๋ถ„๋ฆฌ๋จ. Quote ์•ˆ escape์™€ ์˜ค๋ฅ˜ ๋™์ž‘์€ ๋ฒ”์œ„ ๋ฐ–
syntax-zero-output-v1 "a,b, a\, a,b\, "a\, a,"b โ€”5๊ฐœ ๊ธฐ์กด literal์ด ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋กœ ์ •ํ•œ ์ž…๋ ฅ์—์„œ ๋ฐ˜๋“œ์‹œ syntax ์˜ค๋ฅ˜, Count=0, ์ „์ฒด [8]string{}. ์›๋ฌธ128bytesยท8tokensยทํ† ํฐ๋‹น decoded8bytes ์ด๋‚ด์˜ ASCII ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋งŒ ์ง€์›. ASCII/์šฉ๋Ÿ‰ ์˜ค๋ฅ˜๋Š” ์ธ์ฆํ•˜์ง€ ์•Š์Œ

ํ•ฉ๊ณ„9๊ฐœ๋Š” ๊ธฐ์กด literal์„ ์ข์€ ๊ณ„์•ฝ์— ๋ฐฐ์น˜ํ•œ ์ˆ˜์ด๋ฉฐ ์ƒˆ ๋…๋ฆฝ ์š”์ฒญ9๊ฐœยท๋…๋ฆฝ ์›์ฒœ9๊ฐœยท์ƒˆ ๊ด€์ธก9๊ฐœ๋ผ๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค. ๊ณ ์ • literal ๊ธฐ๋Œ€๊ฐ’์€ ๋ชจ๋ธ ์ถœ๋ ฅ์ด ์•„๋‹ˆ๋ฉฐ, ๋…๋ฆฝ์ ์œผ๋กœ ํ™•๋ณดํ•œ ๊ณต๊ฐœ ์›์ฒœ ์š”์ฒญ๋„ ์•„๋‹ˆ๋‹ค. ๊ฐ ์†์„ฑ์€ finite literal ๊ด€์ธก๋งŒ ์ฃผ์žฅํ•œ๋‹ค. ํ…Œ์ด๋ธ”์— ์—†๋Š” ์ž…๋ ฅ์˜ ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜ ์ •ํ™•์„ฑ์„ ์ฆ๋ช…ํ•˜์ง€ ์•Š๋Š”๋‹ค. quote ์•ˆ escaped comma๊นŒ์ง€ ํ™•์žฅํ•˜๋ ค๋ฉด ๋ณ„๋„ literalยท๊ด€์ธกยท๋ฌธ๊ตฌยท๊ณ„ํš์„ ๋จผ์ € ๊ณ ์ •ํ•œ๋‹ค.

๊ธฐ๋Œ€ Countยทtokenยท์˜ค๋ฅ˜๋Š” ํ›„๋ณด ์‹คํ–‰์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ์กด ๋…๋ฆฝ ์ž‘์„ฑ literal์—์„œ ๊ทธ๋Œ€๋กœ ๊ฒ€ํ† ํ•ด ์˜ฎ๊ธฐ๊ณ  ์ƒˆ ํ‘œ์˜ ์ž…๋ ฅยท๊ด€์ธก ํ•„๋“œยท๊ธฐ๋Œ€๊ฐ’ยท๋ฒ„์ „์„ ํ•จ๊ป˜ ํ•ด์‹œํ•œ๋‹ค. ์‹ค์ œ ๊ณต์‹ ๊ด€์ธก ์ „๊นŒ์ง€ ์ƒˆ๋กœ์šด ํ—ˆ์šฉ ์ง‘ํ•ฉ์ด๋‚˜ assertion ์ˆ˜๋ฅผ ๊ฒฐ๊ณผ๋กœ ๊ธฐ์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ „์ฒด ํ•จ์ˆ˜ ๋ผ๋ฒจ๊ณผ ์†์„ฑ ๋ผ๋ฒจ์€ ๋‹ค๋ฅด๋‹ค

๋‹ค์Œ์€ ํ˜„์žฌ ์ฝ”๋“œ ๋…ํ•ด๋กœ ์˜ˆ์ƒํ•œ ๋™์ž‘์ด๋ฉฐ ์ƒˆ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ณต์‹ ๊ฐ์‚ฌ์—์„œ๋Š” ์†์„ฑ๋ณ„ literal ๊ด€์ธก์œผ๋กœ ๋‹ค์‹œ ํ™•์ธํ•œ๋‹ค.

๊ธฐ์กด source control ๊ธฐ์กด ์ „์ฒด ๊ณ„์•ฝ ํ‘œ์‹œ quoted comma ์†์„ฑ ์˜ˆ์ธก quote ๋ฐ– escaped comma ์˜ˆ์ธก syntax zero-output ์˜ˆ์ธก
quoted-correct correct ๋ถ€ํ•ฉ ๋ถ€ํ•ฉ ๋ถ€ํ•ฉ
quoted-literal-comma wrong ๋ถˆ์ผ์น˜ ๋ถˆ์ผ์น˜ ๋ถˆ์ผ์น˜: ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ
quoted-inside-escape wrong ๋ถ€ํ•ฉ ๋ถˆ์ผ์น˜ ๋ถˆ์ผ์น˜: quote ๋ฐ– trailing escape๋ฅผ ์˜ค๋ฅ˜๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ
quoted-partial-error wrong ๋ถ€ํ•ฉ ๋ถ€ํ•ฉ ๋ถˆ์ผ์น˜: ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์— ๋ถ€๋ถ„ ์ถœ๋ ฅ์„ ์œ ์ง€

quoted-partial-error๋Š” ์ •์ƒ ํŒŒ์‹ฑ ๊ฒฝ๋กœ๊ฐ€ ์ •์ƒ ๊ตฌํ˜„๊ณผ ๊ฐ™์ง€๋งŒ ํ›„๋ฐ˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์ดˆ๊ธฐ nonASCII ๋˜๋Š” raw ์ž…๋ ฅ128bytes ์ดˆ๊ณผ์—์„œ๋Š” ๋จผ์ € ์˜ค๋ฅ˜๋กœ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ถœ๋ ฅ์„ ๋น„์šด๋‹ค. ๋”ฐ๋ผ์„œ โ€œ์ดˆ๊ธฐ ์˜ค๋ฅ˜์—์„œ ๋น„์›€โ€์„ โ€œ๋ชจ๋“  ์˜ค๋ฅ˜์—์„œ ๋น„์›€โ€์œผ๋กœ ํ™•๋Œ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ์กด ๊ฐ์‚ฌ์˜ โ€œwhole-contract wrong ์†Œ์Šค๋Š” ์ตœ์†Œ1๋ฒกํ„ฐ ์‹คํŒจํ•ด์•ผ ํ•œ๋‹คโ€ ์กฐ๊ฑด์„ ์†์„ฑ ๊ฐ์‚ฌ์— ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Whole-contract control ํ‘œ์‹œยท๊ธฐ์กด ๋ถ€๋ชจ์˜ known/no-answer/unknownยท๊ธฐ์กด acceptable ๋ฐฐ์—ด์€ ์†์„ฑ ๋ผ๋ฒจ๋กœ ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ™์€ ์›์ฒœ์ด ์†์„ฑ์—๋Š” ๋ถ€ํ•ฉํ•  ์ˆ˜ ์žˆ๊ณ , ์ „์ฒด ๊ณ„์•ฝ์—์„œ ์˜ค๋‹ต๋งŒ ์žˆ๋Š” ํ›„๋ณด ์„ธํŠธ๋„ ํ•œ ์†์„ฑ์—์„œ๋Š” ๋‹ต์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด56b ๊ฐ์‚ฌ๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋ณ„๋„ ์†์„ฑ ๊ด€์ธก์„ ์ค€๋น„ํ•œ๋‹ค.

syntax-zero-output-v1์€ non-vacuous ๊ณ„์•ฝ์ด๋‹ค. got.Error!=OK์ผ ๋•Œ๋งŒ ์ถœ๋ ฅ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์€ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๊ณ ์ •๋œ ๋‹ค์„ฏ ์ž…๋ ฅ ๋ชจ๋‘ ์ง€์ • syntax ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์˜ค๋ฅ˜๋ฅผ ์•„์˜ˆ ์ƒ๋žตํ•œ ํ›„๋ณด๋„ ๋ถˆ์ผ์น˜๋‹ค. Count๋งŒ0์ด๋ฉด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์Šฌ๋กฏ์„ ํฌํ•จํ•œ ์ „์ฒด ํ† ํฐ ๋ฐฐ์—ด์ด ๋น„์–ด์•ผ ํ•œ๋‹ค. ์ •ํ™•ํ•œ ์˜ค๋ฅ˜ ์ข…๋ฅ˜๊นŒ์ง€ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๋Š” ๋” ์•ฝํ•œ ์†์„ฑ์€ ๋‹ค๋ฅธ ๊ณ„์•ฝ์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋ฒˆ ์†์„ฑ๊ณผ ํ˜ผ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

์งง์€ ์˜์–ด ๋ฌธ์žฅ์˜ ์™„์ „์„ฑ

์‹ค์ œ ์ˆœ์œ„ ์ž…๋ ฅ์€ ์š”์ฒญ๊ณผ ํ›„๋ณด์˜ ์˜์–ด text๋ฟ์ด๋‹ค. ๊ฐ ๋ฌธ๊ตฌ๋Š” ์œ ํšจ UTF-8์ด๋ฉฐ rawยทnormalized ๊ฐ๊ฐ ์ตœ๋Œ€512bytes, normalized ์ตœ๋Œ€32words๋ฅผ ์ง€์ผœ์•ผ ํ•œ๋‹ค. ๊ณต๋ฐฑ์œผ๋กœ ๋Œ€์ถฉ ์„ผ ๋‹จ์–ด ์ˆ˜ ๋Œ€์‹  ๊ธฐ์กด shortclaim.Validate์™€ ๋™์ผํ•œ ์ •๊ทœํ™” ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค. ์ž๋™ ์š”์•ฝยท์ž˜๋ฆผยท์ˆจ์€ registry ์ •๋ณด๋กœ ๋น ์ง„ ๋œป์„ ๋ณด์ถฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹ค์Œ์€ ํ›„์† ๋ฌธ๊ตฌ ๊ฒ€ํ† ์šฉ ์ดˆ์•ˆ์ด๋‹ค. ์‹ค์ œ ๊ธธ์ด ๊ฒ€์‚ฌ์™€ ๋…๋ฆฝ ์˜๋ฏธ ๊ฒ€ํ† ๋Š” ์•„์ง ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ด ๋ฌธ์„œ๋กœ READY๋ฅผ ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

์†์„ฑ ์˜์–ด ์š”์ฒญ ์ดˆ์•ˆ
quoted comma ASCII without backslashes; โ‰ค128 input bytes, โ‰ค8 tokens, โ‰ค8 decoded bytes/token. Preserve commas inside balanced double quotes, strip quotes, split outside commas; never panic.
outside escape ASCII, no quotes or trailing escape; โ‰ค128 input bytes, โ‰ค8 tokens, โ‰ค8 decoded bytes/token. Backslash consumes next byte as content; split unescaped commas; never panic.
syntax zero-output ASCII โ‰ค128 input bytes; โ‰ค8 tokens, โ‰ค8 decoded bytes/token. Unclosed quotes or trailing escapes must return syntax error, zero Count and eight empty Tokens; never panic.

์งง์•„์ง„ ๋ฒ”์œ„๊ฐ€ ์‹ค์ œ๋กœ32words ์•ˆ์—์„œ ์ถฉ์‹คํžˆ ์ „๋‹ฌ๋˜๋Š”์ง€๋Š” ์ฝ”๋“œ ๊ฒ€ํ† ์™€ ๋ณ„๋„๋กœ ํ™•์ธํ•œ๋‹ค. ํ›„๋ณด ๋ฌธ๊ตฌ๋„ ์›๋ž˜ ์†Œ์Šค์™€ ์ด ์†์„ฑ์˜ ์กฐ๊ฑดยท๊ด€์ธก์„ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์›๋ฌธ ํ›„๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ƒˆ ์†์„ฑ์— ๋Œ€ํ•œ ์ถฉ์‹ค์„ฑ ๊ฒ€ํ† ๋ฅผ ์ƒ๋žตํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋ฉด ๋ณ„๋„ ๋ฒ„์ „ยทํ•ด์‹œ๋ฅผ ๋‘๊ณ  ๊ธฐ์กด56b ๋ฌธ๊ตฌ๋Š” ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ํ•œ๊ธ€ยท์˜๋ฌธ ๋ฌธ์„œ ๋ฒˆ์—ญ์€ ์ƒˆ ํ‰๊ฐ€ ์ž…๋ ฅ์ด๋‚˜ ๋…๋ฆฝ ์š”์ฒญ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ƒˆ ๊ณ„์•ฝยท์›์ฒœยทํŠน์ง•ยท๊ทธ๋ฃน

์ƒˆ wire/result schema๋Š” ๊ธฐ์กด v2์™€ ๋ถ„๋ฆฌํ•œ๋‹ค. ์ œ์•ˆ ์ด๋ฆ„์€ riido-scoped-property-probes-v1, riido-scoped-property-truth-v1, riido-scoped-property-preparation-plan-v1์ด๋ฉฐ, ์‹ค์ œ ๊ตฌ์กฐยท๋ฒ„์ „ยท์ œํ•œ์€ ํ›„์† ์‹คํ–‰ manifest์—์„œ ๊ณ ์ •ํ•œ๋‹ค.

๊ฐ ๋ถ€๋ชจ๋Š” ์ƒˆ ID, ์›๋ž˜ ๋ถ€๋ชจ ID, ์†์„ฑ IDยท๋ฒ„์ „, ์š”์ฒญ, ์›๋ž˜ ํ›„๋ณด ์ˆœ์„œ์™€ ํ›„๋ณด source/code/bundle pins๋ฅผ ๊ฐ€์ง„๋‹ค. ์†์„ฑ ์ •์˜๋Š” ์ง€์› ๋ฒ”์œ„, literal ์ž…๋ ฅยท๊ธฐ๋Œ€๊ฐ’, ๋น„๊ต ํ•„๋“œ, ์˜ค๋ฅ˜ยทpanicยทunknown ์ •์ฑ…, ๋ฌธ๊ตฌ ๊ฒ€ํ†  ์ƒํƒœ์™€ ํ‘œ ํ•ด์‹œ๋ฅผ ๊ฐ€์ง„๋‹ค. ๊ด€์ธก๊ธฐ๋Š” ์‹ค์ œ ์ปดํŒŒ์ผ๋œ adapter ์›์ฒœ๊ณผ ๊ธฐ์กด ๋„ค source์˜ closure๋ฅผ ๋ชจ๋‘ ๊ณ ์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ธฐ์กด SourceArtifacts()๊ฐ€ ์ƒˆ adapter ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํฌํ•จํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ compiled provenance manifest์— adapterยทliteralยทschemaยท๋ฌธ๊ตฌยท๊ด€์ธก ๊ตฌํ˜„์„ ๋ช…์‹œํ•˜๋ฉฐ, ๋””์Šคํฌ ์›์ฒœ๊ณผ ์‹คํ–‰ ํŒŒ์ผ์˜ ์ผ์น˜๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.

์ˆœ์œ„ ํŠน์ง•์€ request/candidate text๋งŒ ํˆฌ์˜ํ•œ๋‹ค. property IDยท์›๋ž˜ ๋ถ€๋ชจยทsource IDยทํ•จ์ˆ˜ ํƒ€์ž…ยท์ฝ”๋“œ/bundle ํ•ด์‹œยทliteralยทExpectedControlยท์‹คํŒจ ์ˆ˜ยทํ—ˆ์šฉ ์ง‘ํ•ฉยท์—ญํ• ยท์ •๋‹ต์€ ํŠน์ง•์ด ์•„๋‹ˆ๋‹ค. Metadata๋ฅผ ๋ฐ”๊ฟ”๋„ text๊ฐ€ ๊ฐ™์œผ๋ฉด ํˆฌ์˜์€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ๋…๋ฆฝ ๊ฒ€์‚ฌ์™€ oracle์€ ๊ฐ์‚ฌ ๊ฒฝ๋กœ์—๋งŒ ์žˆ์œผ๋ฉฐ ์ˆœ์œ„ ๊ฒฝ๋กœ์—์„œ ์ •๋‹ต์„ ์กฐํšŒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ฐ™์€ ์›๋ž˜ ๋ถ€๋ชจยท๋ชจ๋“  positive/negative sourceยท๊ณต์œ  scanQuoted์™€ ์ž์ฒด helper/type/globalยท์›ํ˜•ยท์ฝ”๋“œ/๋ฌธ๊ตฌ ๋ณต์‚ฌ ๊ด€๊ณ„๋ฅผ ์ „์ด์ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. ๊ธฐ์กด unknown ๋ถ€๋ชจ๋„ ํฌํ•จํ•œ๋‹ค. ์†์„ฑ ID๋ฅผ ์ƒˆ prototype/core์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ด ๊ด€๊ณ„๋ฅผ ์ชผ๊ฐœ์ง€ ์•Š๋Š”๋‹ค. ์†์„ฑยท๋ฐ”๊ฟ” ์“ด ๋ฌธ์žฅยท๋ฒˆ์—ญยทseedยทํ˜•์ œยทINT8/PTQ child๋Š” ๋…๋ฆฝ ๊ทธ๋ฃน์„ ๋Š˜๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ ๊ทธ๋ฃน ์ˆ˜๋‚˜ ๋ผ๋ฒจ ๊ทธ๋ฃน ์ˆ˜๋Š” ๊ณต์‹ ๊ฐ์‚ฌ ์ „์—๋Š” ์˜ˆ์ƒ์น˜๋„ ์„ฑ๊ณผ๋กœ ๊ธฐ๋กํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ค€๋น„ READY ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ์ค‘๋‹จ ์กฐ๊ฑด

์•„๋ž˜ ํ•ญ๋ชฉ์€ ์•ž์œผ๋กœ ์ถฉ์กฑํ•ด์•ผ ํ•  ์กฐ๊ฑด์ด๋ฉฐ ํ˜„์žฌ ํ†ต๊ณผ ๊ธฐ๋ก์ด ์•„๋‹ˆ๋‹ค.

  • ์„ธ ์†์„ฑ์˜ ๋ฒ”์œ„ยท์ œ์™ธ ์กฐ๊ฑดยท9literalยท๊ด€์ธก ํ•„๋“œยท๋…๋ฆฝ ๊ธฐ๋Œ€๊ฐ’ยท์˜ค๋ฅ˜/panic ์ •์ฑ…์„ ๊ณ ์ •ํ•œ๋‹ค.
  • ๊ธฐ์กด ๋„ค source/code/helper closure์™€ ์ƒˆ ์ปดํŒŒ์ผ ๊ด€์ธก๊ธฐ ์›์ฒœ์„ ํ•จ๊ป˜ ๊ณ ์ •ํ•˜๊ณ  Go1.27.1์˜ ๋‹ซํžŒ ์ง€์› ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•œ๋‹ค.
  • ์š”์ฒญ๊ณผ ๋ชจ๋“  ํ›„๋ณด๋ฅผ ์‹ค์ œ raw/normalized512bytesยทnormalized32words ๊ทœ์น™์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ณ  ๋…๋ฆฝ ์˜๋ฏธ ๊ฒ€ํ† ๋ฅผ ๋งˆ์นœ๋‹ค. ์ดˆ๊ณผยท๋ถˆ์™„์ „ ๋ฌธ๊ตฌ๋Š” ์ž๋ฅด์ง€ ์•Š๊ณ  ๋ณด๋ฅ˜ํ•œ๋‹ค.
  • ์ƒˆ schema๊ฐ€ unknownยทknownยทno-answer์™€ ์ด์œ ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์ง€์› ๋ฐ–ยท๋ถˆ์™„์ „ ์„ค๋ช…ยท๊ด€์ธก๊ธฐ ๋ฌธ์ œ๋Š” unknown์ด๋ฉฐ ๋ถ€์ • ๋ผ๋ฒจ์ด ์•„๋‹ˆ๋‹ค.
  • ํ•„์š”ํ•œ ์˜ค๋ฅ˜๋ฅผ ์ƒ๋žตํ•œ ํ›„๋ณด, ์ž”์—ฌ ์Šฌ๋กฏ, ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€์ธกํ•œ no-panic ์œ„๋ฐ˜์„ ์†์„ฑ ๋ถˆ์ผ์น˜๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ด€์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ํ†ต๊ณผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Metadata ํŠน์ง• ์ œ์™ธ, ์›๋ž˜ ํ›„๋ณดยทfallback ๋ณด์กด, ์›๋ž˜ ๋ถ€๋ชจ์™€ ๋ชจ๋“  ์†Œ์Šค/helper ๊ด€๊ณ„๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.
  • ๊ธฐ์กด56b ๋„ค ๊ตฌ๋ถ„์ž unknownยท์ „์ฒด ์ž…๋ ฅยท๊ฒฐ๊ณผยท๋ด‰์ธ ํŒŒ์ผ์„ ์ •ํ™•ํžˆ ๋ณด์กดํ•œ๋‹ค.
  • ์‹ค์ œ ๊ตฌํ˜„ยท์ž…๋ ฅยท๋ฌธ๊ตฌ ๊ฒ€ํ† ยท์›์ฒœยทliteralยท์‹คํ–‰ manifest๋ฅผ commit์œผ๋กœ ๋จผ์ € ๋ด‰์ธํ•œ ๋’ค, ๋ณ„๋„ ๊ณ„ํš์œผ๋กœ ๊ณต์‹ ๊ฐ์‚ฌ1ํšŒ์™€ CI replay๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์ง€์› ๋ฐ– ์ž…๋ ฅ์ด๋‚˜ ๋ถˆ์™„์ „ ๋ฌธ๊ตฌ๋Š” unknown์œผ๋กœ ๋‚จ๊ธด๋‹ค. ์ง€์›๋œ no-panic ๊ณ„์•ฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํฌ์ฐฉํ•œ ํ›„๋ณด panic๊ณผ ์ž˜๋ชป๋œ ๋ฐ˜ํ™˜์€ known mismatch๋‹ค. ์†์ƒ๋œ JSONยทํ•ด์‹œยทsource binding, ํ’€๋ฆฌ์ง€ ์•Š๋Š” closure, ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๊ด€์ธก๊ธฐ, literal/๋ฌธ๊ตฌ ๋ถˆ์ผ์น˜, metadata ์œ ์ถœ ๋˜๋Š” ๊ด€๊ณ„ ๋ˆ„๋ฝ์€ ์ค€๋น„๋‚˜ ๊ฐ์‚ฌ๋ฅผ ์ค‘๋‹จํ•œ๋‹ค. ๊ฒฐ๊ณผ์— ๋งž์ถฐ ๊ธฐ๋Œ€๊ฐ’ยท๋ฌธ๊ตฌยทํ›„๋ณดยท์ฃผ ๊ธฐ์ค€์„ ์กฐ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋ฉด ์›์ธ๊ณผ ์ƒˆ ๊ณ„ํšยท๋ด‰์ธ ๊ฒฝ๊ณ„๋ฅผ ๋ณ„๋„๋กœ ๋‚จ๊ธด๋‹ค. ์‚ฌ๋žŒ ์Šน์ธ ๋Œ€์‹  CI ๊ฒ€์ฆ์„ ์‚ฌ์šฉํ•˜๋˜, CI ์„ฑ๊ณต์„ ์˜๋ฏธ ๊ฒ€ํ† ๋‚˜ ์›์ฒœ ๊ถŒ๋ฆฌ ๊ฒ€ํ† ์˜ ์ž๋™ ๋Œ€์ฒด๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์„ธ ์†์„ฑ์ด ์ค€๋น„๋˜์–ด๋„ ํ•™์Šต READY๋Š” ์•„๋‹ˆ๋‹ค. ๋‹ค์–‘์„ฑ๊ณผ ํ•™์Šต/validation/calibration ์—ญํ• ยท๊ทธ๋ฃน ๋ถ„ํ• ยท์ƒˆ ๋ฌดํ•™์Šต ํšจ์šฉ์ด ๊ณ ์ •๋˜์ง€ ์•Š์œผ๋ฉด fits0์„ ์œ ์ง€ํ•œ๋‹ค. ์ตœ์†Œ15๊ทธ๋ฃน ๋ฐ ์ตœ์†Œ5% ํšจ์šฉ ํ•„์š”์กฐ๊ฑด์€ ๋‚ฎ์ถ”์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ์กด protected finalยทCoSQA reserve๋ฅผ ์ฝ๊ฑฐ๋‚˜ ๋ผ๋ฒจ๋กœ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๋„๋ฉ”์ธ๋ณ„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ณดํ˜ธ ์ตœ์ข… ์š”์ฒญ ์ตœ์†Œ2,400๊ฐœ๋Š” ๋ณ„๋„ ํ™•๋ณด ๋ชฉํ‘œ๋‹ค.

์ดํ›„ ํšจ์šฉยท์ž์› ๊ฒฝ๋กœ

๋ณ„๋„ ํšจ์šฉ ๊ณ„ํš์—์„œ๋Š” answerable/no-answer/unknown์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ณ ์ •์ˆœ์„œยทBM25ยท์–ดํœ˜ยท์ข์€ ๊ทœ์น™ยทoracle์„ ๋™์ผ ๋น„์šฉ ๋ถ„๋ชจ์—์„œ ๋น„๊ตํ•œ๋‹ค. ํ›„๋ณด๋ฅผ ๋ณด์กดํ•˜๊ณ  unknown์„ ์‹คํŒจ ๋ผ๋ฒจ๋กœ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. Oracle ๊ฐœ์„  ์ƒํ•œ์€ ์‹ค์ œ ๋ชจ๋ธ ์ด๋“ยทLLM ํ† ํฐ ์ ˆ๊ฐ์ด ์•„๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์›์ฒœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ์š”์ฒญ120โ†’240, ์–ธ์–ดยท์กฐ๊ฑดยท์ž‘์„ฑ ๋ถ„ํฌ์™€ ๊ถŒ๋ฆฌยทrevisionยท๋‹ซํžŒ compileยท๋…๋ฆฝ ์ •๋‹ต์„ ์ค€๋น„ํ•œ ๋’ค ์—ญํ• ๊ณผ ์„ ํƒ ๊ทœ์น™์„ ๊ฒฐ๊ณผ ์ „์— ๊ณ ์ •ํ•œ๋‹ค.

๋ณ„๋„ ์ž์› ๊ณ„ํš์—์„œ๋Š” ์บ์‹œ ์—†๋Š” resident JSONL์˜ ๋™์ผ ์š”์ฒญ๊ณผ ์„œ๋กœ ๋‹ค๋ฅธ ๊ณต๊ฐœ ์š”์ฒญ์„ ๊ตฌ๋ถ„ํ•œ๋‹ค. Startupยทwarmupยท์ฒ˜๋ฆฌยทpipeยทcontroller์™€ ์ „์ฒด child RSS/CPU๋ฅผ ๋‚˜๋ˆ„๊ณ , queue ํ•œ๋„๋ฅผ ๊ฐ€์ง„ open-loop๋Š” ๊ทธ ๋’ค ๊ฒ€ํ† ํ•œ๋‹ค. ์บ์‹œยทlockยทSIMDยทGPU์˜ ์ด๋“์ด๋‚˜ ์ž‘์€ artifact bit ์ˆ˜๋ฅผ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌยทLLM ๋น„์šฉ ๊ฐœ์„ ์œผ๋กœ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

FP32 ๋ถ€๋ชจ์˜ ์œ ์šฉ์„ฑ์ด ๋จผ์ € ํ™•์ธ๋œ ๋’ค ๋™์ผ ๋ถ€๋ชจ INT8/PTQ child์™€ ๊ฐ™์€ ์˜ˆ์‚ฐ์˜ ternary STE ํ˜•์ œ๋ฅผ ๋ณ„๋„ ๊ณ„ํš์œผ๋กœ ๋น„๊ตํ•œ๋‹ค. ๊ธฐ์กด ์ตœ๋Œ€8fitsยท16ํŒŒ์ƒ ์‚ฐ์ถœ๋ฌผ ์ œ์•ˆ์€ ์•„์ง ์ง‘ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒˆ ์œ ๋ฃŒ ์‹œ๋„๋Š” ๋ณ„๋„ ์‹คํ–‰ ๊ณ„ํšยท์˜ˆ์‚ฐ ๊ธฐ๋ก์ด ํ•„์š”ํ•˜๋‹ค. ์œ ์šฉ์„ฑยท์‹ค์ œ ์›์ฒœ ๊ถŒ๋ฆฌยทCI ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•œ ์ƒˆ ๋ชจ๋ธ๋งŒ Hugging Face์— ๋ถˆ๋ณ€ ๋ฒ„์ „์œผ๋กœ ๊ฒŒ์‹œํ•˜๊ณ , Git์—๋Š” ์ฝ”๋“œยท๊ณ„ํšยท๊ณต๊ฐœ ์ˆ˜์น˜ยท๋ชจ๋ธ ์ฐธ์กฐ๋งŒ ๋‘”๋‹ค. ์ด๋ฒˆ ๋ฌธ์„œ๋Š” ์ƒˆ ๋ชจ๋ธ ๋ฐฐํฌ๋‚˜ ๊ทธ๋Ÿฌํ•œ ๊ฒ€์ฆ์˜ ์™„๋ฃŒ ๊ธฐ๋ก์ด ์•„๋‹ˆ๋‹ค.