๐ SSOT: ARCHITECTURE.md ยท governance CLAUDE.md
์์ฑ 2026-05-19. hexa-lang ์ ์ถฉ๋-์ํ ํค์๋ demote ์์ ์ ๋ค๋ฅธ ์ธ์ ์ด ์ด์ด๋ฐ๊ธฐ ์ํ ์ธ๊ณ ๋ฌธ์. ๋ถ์์ ๋๋ฌ๊ณ ์ฝ๋ ๋ณ๊ฒฝ ์ ๋จ๊ณ์์ ๋ฉ์ถค.
hexa-lang ๋ ์๊ฐ hard keyword ๋ก ๋ฑ๋กํ ๋จ์ด ์ค ํํ ์๋จ์ด(ํจ์๋ช
ยท๋ณ์๋ช
์ผ๋ก
์์ฐํ ์ฐ์)์ ์ถฉ๋ํ๋ ๊ฒ๋ค์ demote(soft-keyword / @-attribute ํ / ์ ๊ฑฐ)ํ๋ค.
๋ฐ๋จ: tool/n6_verify.hexa ๊ฐ fn verify(...) ๋ฅผ ์ ์ โ verify hard keyword ์
์ถฉ๋ โ codegen ERROR: unhandled statement kind: VerifyStmt.
- โ
๋ถ์ยทํ๋ณด๊ตฐยท๋์ํค์๋ ํ์ โ
KEYWORD_DEMOTE.md(root, SSOT). ์ปค๋ฐdffb4ab5ยท34f06ad2ยท99a0eb43, origin/rfc043-hexa-torch ํธ์๋จ. - โ ์ธก์ : hexa-lang ๋ด๋ถ 433-ํ์ผ transpile-sweep + ํค์๋๋ณ ์ฌ์ฉ๋.
- โ demote ์ฝ๋ ๋ณ๊ฒฝ ๋ฏธ์ฐฉ์.
hexa-lang ์ ์์กด์ฑ ์คํ์ ์ตํ๋จ โ ํค์๋ ๋ณ๊ฒฝ์ ~/core/* ์ ๋ชจ๋
๋ค์ด์คํธ๋ฆผ .hexa(wilson ยท echoes ยท anima ยท hexa-* ๋ฑ)์ ์ํฅ. demote ์ฐฉ์ ์
๋ฐ๋์ ๊ธ๋ก๋ฒ ์ฌ์ฉ๋์ ์ธก์ ํ๋ค:
~/core/*/**/*.hexa(.git์ ์ธ) ์์ ํ๋ณด ํค์๋๋ณ๋ก:- construct-form ์ฌ์ฉ (
select { },verify NAME { }๋ฑ) โ demote ๊ฐ ์ด๊ฑธ ๊นจ๋จ๋ฆผ. 0 ์ด์ด์ผ ์์ . - identifier-form ์ฌ์ฉ (
fn select,select(...)) โ demote ๊ฐ ์ด๊ฑธ ๊ณ ์นจ (ํ์ฌ ์ถฉ๋๋ก ๊นจ์ ธ ์์).
- construct-form ์ฌ์ฉ (
- construct-form ์ฌ์ฉ์ด 0 ์ด๋ฉด ๊ทธ ํค์๋ demote ๋ ์์ ์ด๋(๋ค์ด์คํธ๋ฆผ ์๋ณ์ ์ถฉ๋ ํด์, ๊นจ์ง๋ ๊ฒ 0). 0 ์ด ์๋๋ฉด ๊ทธ ๋ค์ด์คํธ๋ฆผ์ ๋ง์ด๊ทธ๋ ์ด์ ํ์ โ ยง๊ฑฐ๋ฒ๋์ค ์ฐธ์กฐ.
(์ด ์ธก์ Bash ๊ฐ ํ ๋ฒ ๊ฑฐ๋ถ๋จ โ ์ฌ์ฉ์๊ฐ ๋ณธ HANDOFF ๋ก ์ ํ ์ง์. ๋ค์ ์ธ์ ์ด read-only grep ์ผ๋ก ์ํ.)
hexa-lang ์ upstream โ ๋ค์ด์คํธ๋ฆผ repo ๋ฅผ ์ง์ inline-ํธ์ง ๊ธ์ง (f3
consumer-direct-edit). ํค์๋ ๋ณ๊ฒฝ์ผ๋ก ๋ค์ด์คํธ๋ฆผ .hexa ๊ฐ ๊นจ์ง๋ฉด: (a) demote
๋ฅผ backward-compatible(soft-keyword)๋ก ์ค๊ณํ๊ฑฐ๋, (b) ๋ค์ด์คํธ๋ฆผ repo ๊ฐ ์์ฒด
์์ (๊ทธ์ชฝ ์ธ์
), (c) heads-up ์ ๋จ๊ธด๋ค. hexa-lang ์ธ์
์ด ~/core/wilson ๋ฑ์
์ง์ ๊ณ ์น์ง ์๋๋ค. (๋จ read-only grep ์ธก์ ์ ๋ฌด๋ฐฉ.)
select generate channel verify derive optimize guard scope
select๊ฐ ์ต์ฐ์ : hexa-lang ๋ด๋ถ construct ์ฌ์ฉ 0 / ์๋ณ์ 13. ์์ค 0.- ๋์ ํค์๋: ์ ์ธยทํํธ๋ฅ(deriveยทoptimizeยทgenerateยทverify) โ
@-attribute, channel โchan, guard โunless(์ ์ง ์), selectยทscope โ ์ ๊ฑฐ. ์์ธ๋KEYWORD_DEMOTE.md ยง๋์ ํค์๋. - ์ ์ง:
proof(์ค์ฌ์ฉ 13)ยทtheoremยทspawnโ ์ถฉ๋ 0.
self/lexer.hexaโ keyword ๋ฑ๋ก ์ค ์ ๊ฑฐ (์if word == "select").self/parser.hexaโ statement dispatch ๋ถ๊ธฐ (if kind == "Select"...) +parse_*_stmtํจ์. soft-keyword ๋ฉดp_expect_ident/expression parser ๊ฐ ํด๋น ํ ํฐ์ ident ๋ก ์์ฉํ๊ฒ; ์ ๊ฑฐ๋ฉด ๋ถ๊ธฐยทparse ํจ์ ์ญ์ .self/codegen_c2.hexaโ ํด๋น AST kind ํธ๋ค๋ฌ (์ ๊ฑฐ ์ ์ ๋ฆฌ).- AST kind ๊ฐ
@-attribute ๋ก ์ด๋ํ๋ฉด attribute ํ์ฑยทcodegen ๊ฒฝ๋ก๋ก.
hexa parseparse-gate (lexer/parser/codegen_c2/main.hexa).hexa cc --regenโ ํ๋ณด hexa_v2 ๋น๋ (regen step-3 ์-x c runtime.o๋ฒ๊ทธ ํํผ:.newโ.c๋ณต์ฌ ํ clang. ๋ฐํ์์ split ๊ตฌ์กฐ โ runtime.c ๊ฐ#include "runtime_core.c").- 433-ํ์ผ transpile-sweep ์ฌ์ธก์ (test/ + tool/ + stdlib/flame/) โ unhandled kind 0 ํ์ธ.
atlas_verify_smoke118/118 + self-host fixpoint byte-identical (regen diff 0).- hexa.real ์ค์น, ์ปค๋ฐ, push.
- RFC 062 (argv[0] dedup) LANDED
26a785af. RFC 061-P1 (runtime 2-layer split, runtime.c โ runtime_core.c) LANDED4fb439fcโ ๋ฐํ์์ ์ด์ split ๊ตฌ์กฐ. - ์ธํฐํ๋ฆฌํฐ ์์ฌ ์ ๊ฑฐ: run/batch dead code ยท verify_interp_builtins ยท bc-VM
ํด๋ฌ์คํฐ(16,685์ค) ์ญ์ ๋จ. codegen ์ EffectDecl ๊ฐญ fix
cf113765. - ๋ธ๋์น
rfc043-hexa-torch.~/core/hexa-lang๋ฉ์ธ ์ฒดํฌ์์์ ~8์ธ์ ๊ณต์ โ ์ปค๋ฐ ์ git branch --show-currentํ์ธ, ๊ฒฉ๋ฆฌ worktree ๊ถ์ฅ.
- 2026-05-19 โ HANDOFF ์์ฑ. KEYWORD_DEMOTE ๋ถ์ ์๋ฃ, demote ๋ฏธ์ฐฉ์.
๋ค์ ์ธ์
:
~/core/*blast-radius ์ธก์ โ ์์ ํค์๋๋ถํฐ demote.