GitHub 트렌딩 딥다이브 · 2026-06-23

astrid-handbook 딥다이브
— Astrid OS를 '어떻게 만드는가': 폴리레포·RFC·기여 등급·릴리스의 운영 법전

같은 Astrid OS 프로젝트의 자매 문서다. book이 "무엇을 만들었나"(기술 사양)라면, handbook"어떻게 함께 만드는가"(운영·거버넌스)다. 폴리레포 구조, "커널은 멍청하다" 법칙, 언제 RFC가 필수인가, 4단계 기여 등급, 릴리스 규율을 — 권고가 아니라 CI로 강제되는 '하드 법(hard law)'으로 못 박았다. 마크다운 6장뿐인데 별이 2.6k다. (저장소: unicity-astrid/handbook · "The Astrid Contributor Handbook" · mdBook · Apache-2.0+MIT · ★ 2.6k · 커널 astrid ★ 9.2k · TrendShift #23)

목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도 (= 프로세스 스택)
  4. 아키텍처 심화 분석 (= 거버넌스 흐름)
  5. 디렉토리/챕터 구조 해부
  6. 학습 포인트 (프로세스별)
  7. 하드웨어/시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

"오픈소스 OS 하나를 '규율 있게' 굴리는 법을, 코드처럼 박아둔 법전."

한 줄로

handbook은 Astrid를 '바꾸려는' 사람을 위한 운영 법전 — 폴리레포·RFC·기여 등급·릴리스 규율을 CI로 강제한다.

오픈소스 프로젝트 대부분의 CONTRIBUTING.md는 "이렇게 해주세요" 정도의 부드러운 권고다. Astrid는 다르다. 거버넌스를 지키지 않으면 빌드가 깨지는 '하드 법'으로 만들었다. 기여 등급이 "당신이 어떤 파일을 건드릴 수 있는지"를 가르고, 계약 표면을 바꾸려면 RFC가 요청이 아니라 필수이며, 버전 올리기는 별도 PR로 격리해야 하고, 모든 PR은 이슈를 닫아야 한다 — 전부 .github/workflows/에 배선돼 있다.

중요한 건 대상 독자다. 서문이 못 박는다 — "이 핸드북은 Astrid로(with) 무언가를 만드는 사람이 아니라, Astrid를(on) 바꾸는 사람을 위한 것". 즉 커널·SDK·계약 표면·레퍼런스 캡슐을 손대는 사람용이지, 캡슐 앱을 만드는 일반 사용자용이 아니다. 그래서 이 문서는 'OS 내부 사양'이 아니라 '그 OS를 함께 짓는 규율'을 다룬다(내부 사양은 자매 문서 book의 몫).

용어
폴리레포(polyrepo)
모노레포(monorepo)의 반대. 커널·SDK·RFC·모든 캡슐이 각각 별도의 GitHub 저장소로 존재하고, 로컬에선 한 상위 폴더 아래 나란히 놓고 작업한다. "Astrid는 모노레포가 아니다"가 핸드북의 출발점. 디렉터리 이름(astrid-capsule-<이름>)과 레포 이름(capsule-<이름>)을 매핑하는 규칙까지 정해 둔다.
용어
RFC & RFC 트리거
RFC(Request for Comments)는 설계 제안 문서. Astrid에선 커널↔유저공간 '계약 표면'(호스트 ABI, IPC 프로토콜, 능력 모델, 매니페스트 스키마, VFS 의미, 캡슐 인터페이스 표준, SDK 공개 API — 7가지)을 바꿀 때 반드시 작성해야 한다. 이걸 판단하는 7문항 체크리스트가 RFC 트리거다. 내부 구현만 바꾸는 변경엔 RFC가 필요 없다.

저자는 book과 같은 Joshua J. Bouw(Unicity Labs), 라이선스도 Apache-2.0+MIT다. 분량은 서문 + 5개 챕터(마크다운 6개, 약 1,200줄)로 작지만 밀도가 높다. "문서와 코드가 다르면 코드가 이긴다 — 문서가 버그다"라는 셋째 규칙이 이 작은 책의 태도를 압축한다.

2왜 주목받는가

"별 9천짜리 보안 OS를 '어떻게 운영하는지'가, 코드만큼 배울 거리라서."

사람들은 코드만 보지 않는다. 보안이 중요한 프로젝트를 '어떻게' 굴리는지를 궁금해한다. 핸드북은 단 6장의 마크다운으로 별 2.6k를 모았는데, 그 자체가 신호다 — 거버넌스를 '읽을 가치가 있는 문서'로 만든 드문 사례다.

보통 OSS 거버넌스의 함정
"CONTRIBUTING.md는 대개 양심에 맡기는 권고라, 잘 안 지켜진다"

대부분의 기여 가이드는 "커밋 메시지는 이렇게, 테스트는 꼭"이라고 말로만 적는다. 강제력이 없으니 신규 기여자가 보안 핵심 코드를 덜컥 건드리거나, 버전 변경과 기능 변경이 한 PR에 뒤섞여 리뷰가 어려워지거나, 이슈 없는 PR이 쏟아진다. 규율이 '문화'에만 기대면, 사람이 바뀔 때마다 흔들린다.

Astrid의 해결
거버넌스를 CI 게이트로 — 안 지키면 빌드가 깨진다

Astrid는 규율을 자동 강제한다. 기여 등급이 '건드릴 수 있는 파일 경로'를 막고, 계약 표면 변경엔 RFC가 필수이며, 버전 올리기는 별도 PR이어야 하고, 모든 PR은 Closes #N으로 이슈를 닫아야 한다. 1000줄 넘는 파일은 거부되고, 커밋은 GPG 서명이 필수다. 규율이 사람의 의지가 아니라 파이프라인에 박혀 있다.

비유

보통 기여 가이드 = "안전벨트 매주세요" 스티커 — 안 매도 차는 출발한다.
Astrid 핸드북 = 벨트를 안 매면 시동이 안 걸리는 차 — 규칙이 안내문이 아니라 장치다. 그래서 누가 운전석에 앉아도 규율이 유지된다.

게다가 핸드북엔 가르칠 만한 원칙이 많다. 대표가 "커널은 멍청하다(kernel-is-dumb)" 법칙 — 커널은 라우팅·게이팅·검증만 하고 비즈니스 로직은 0이라는 건축적 불변식을, 옳은 예/틀린 예까지 붙여 가르친다. 보안 위협 모델을 컴파일러 린트(arithmetic_side_effects = "deny")에까지 박아 넣은 점, GPG 서명·콘텐츠 주소(BLAKE3) 바이너리·빌드 출처 메트릭 같은 디테일도 흔치 않다.

보통 OSS vs Astrid 거버넌스

항목보통 OSSAstrid 핸드북
규율 성격권고(양심)CI 강제(하드 법)
누가 뭘 건드리나대체로 자유기여 등급별 경로 게이트
계약 변경PR로 바로RFC 필수 → 리뷰 → 머지
버전 올리기아무 PR에나별도 격리 PR
커밋/이슈자유GPG 서명 + 이슈 우선(Closes #N)

3기술 스택 전체 지도 (= 프로세스 스택)

여기서 '스택'은 도구가 아니라 '방법론'이다 — 그걸 발행·강제하는 얇은 도구가 곁들여진다.

이 레포의 '기술 스택'은 방법론 스택이다. 다섯 방법론 부품과, 그것을 웹으로 발행하고 CI로 강제하는 도구로 나뉜다.

방법론 부품 5종

부품무엇인가
폴리레포 모델커널·SDK·RFC·모든 캡슐이 각각 별도 레포. 로컬에선 한 상위 폴더에 나란히
"커널은 멍청하다" 법칙커널은 라우팅·게이팅·검증만. "라우팅/게이팅/검증 안 하면 그건 캡슐 IPC 영역"
RFC 트리거7가지 계약 표면 변경 시 RFC 필수. 내부 변경엔 불필요
기여 등급New → Astrinaut → Core → Maintainer, CI가 경로로 게이팅
릴리스 프로세스태그(v*) 트리거, 4타깃 빌드, 콘텐츠 주소 바이너리, 격리된 버전 PR

발행·강제 도구

도구역할
mdBook 0.5.2핸드북을 정적 사이트로(테마 ayu) → GitHub Pages 자동 배포
Conventional Commitsfeat/fix/chore/docs/... 접두사 규약, GPG 서명 필수, HTTPS 푸시
커널 CI(pr-checks.yml)template·contributor-gate·file-size·linked-issue·account-age
커널 CI(ci.yml)check·fmt·clippy -D warnings·test·msrv(1.95)·audit
Rust 린트unsafe_code="deny" · arithmetic_side_effects="deny" · rustfmt 100열 · 파일 1000줄 한도
용어
MSRV & Conventional Commits
MSRV(Minimum Supported Rust Version)는 "이 버전 이상 Rust가 있어야 빌드됨"의 최소 보장선(커널 1.95, SDK 1.94). Conventional Commits는 커밋 메시지를 타입: 요약 형식(feat:, fix: …)으로 통일하는 규약으로, 자동 체인지로그·릴리스 노트의 토대가 된다.

4아키텍처 심화 분석 (= 거버넌스 흐름)

'아이디어 → RFC 관문 → 이슈 우선 → 자기검열 → CI 게이트 → 머지 → 릴리스'의 파이프라인.

핸드북은 하나의 변경이 아이디어에서 릴리스까지 어떻게 흐르는지를 정의한다. 핵심은 세 개의 독립적 관문 — 코드보다 앞선 RFC 관문, PR 시점의 등급+CI 관문, 분리된 릴리스 관문이다.

아이디어 / 작업 │ ▼ ┌──────────────────────────────────────────────┐ │ RFC 트리거 (7문항 체크리스트) │ │ 커널↔유저공간 '계약 표면'을 바꾸나? │ │ (호스트 ABI / IPC 스키마 / 능력 모델 / 매니페스트 │ │ / VFS 의미 / 캡슐 인터페이스 / SDK 공개 API) │ └───────────┬──────────────────────┬─────────────┘ 예↓ 아니오↓ ┌──────────────────────┐ ┌──────────────────────┐ │ RFC 필수 (rfcs 레포) │ │ RFC 불필요(내부 변경) │ │ 9개 섹션 작성 → PR │ └───────────┬──────────┘ │ 머지 때 번호 부여 │ │ │ Draft→Active→Final │ │ └───────────┬──────────┘ │ └───────────┬──────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 이슈 먼저 (issue-first) : 무단 PR 금지 │ │ Core PR은 반드시 'Closes #N'으로 이슈를 닫는다 │ └───────────────────────┬──────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ origin/main 에서 브랜치 → 작업 │ │ Conventional Commits + GPG 서명(필수) │ │ 자기검열: "이게 새벽 3시에 어떻게 터지나?" │ └───────────────────────┬──────────────────────┘ ▼ ════════════ CI 게이트 (커널 레포) ════════════ contributor-gate : 등급 vs 변경 파일 경로 New → 'newcomer-approved' 라벨 필요 Astrinaut → 보안/코어 경로 건드리면 즉시 실패 Core → 통과(보안 경로는 메인테이너 공동리뷰) Maintainer → 무조건 통과 template / linked-issue / file-size(1000줄↑ 거부) / account-age ci.yml : check · fmt · clippy -D warnings · test · msrv · audit ▼ ┌──────────────────────────────────────────────┐ │ 리뷰 & 머지 (보안 경로=메인테이너 공동리뷰) │ └───────────────────────┬──────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 버전 올리기 = 별도 PR (chore: release X.Y.Z) │ │ 워크스페이스 버전 + CHANGELOG 헤딩만 건드림 │ └───────────────────────┬──────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 릴리스 : git tag vX.Y.Z → release.yml 발동 │ │ 4타깃 매트릭스 · BLAKE3 콘텐츠 주소 바이너리 │ │ 체인지로그 추출 + SHA256SUMS + homebrew-tap │ └──────────────────────────────────────────────┘
용어
자기검열(adversarial self-review) — "새벽 3시 테스트"
사소하지 않은 변경엔 리뷰 전에 스스로 "이게 운영 중 새벽 3시에 어떻게 실패하나?"를 묻게 하는 의무 절차. 위협 모델은? 악용 가능성은? 암호적 증명은? 감사 가능한가? 안전하게 실패(fail-secure)하나? — 5문항으로 자기 코드를 적대적으로 본다.

이 흐름의 통찰은 관문이 세 번 따로 선다는 것이다. RFC는 코드보다 앞에서(설계), 등급+CI는 PR 시점에서(권한·품질), 릴리스는 격리된 PR과 태그에서(배포) 막는다. 각 관문이 독립적이라, 한 곳을 통과해도 다음에서 다시 걸러진다.

5디렉토리/챕터 구조 해부

마크다운 6장이 전부 — 서문 + 5개 챕터가 '운영 법전'의 5개 기둥.

레포는 mdBook 한 권이다. src/ 아래 서문 1장 + 챕터 5장(약 1,200줄)이 곧 다섯 기둥 — 폴리레포·커널법칙·RFC·기여등급·릴리스다.

handbook/ ├── README.md 제목·"mdBook으로 빌드"·mdbook serve --open ├── book.toml mdBook 설정(테마 ayu, 검색, 접기) ├── LICENSE-MIT / LICENSE-APACHE ├── .github/workflows/ │ └── deploy.yml mdBook → GitHub Pages 배포 └── src/ ├── SUMMARY.md 목차 ├── introduction.md 대상 독자 + '모든 걸 지배하는 세 규칙' └── handbook/ ├── polyrepo-and-workflow.md 폴리레포 지도 + 깃 워크플로 (319줄) ├── the-kernel-is-dumb-law.md 커널 법칙 + 옳은/틀린 예 (208줄) ├── rfc-trigger.md 언제 RFC가 필수인가(7표면) (161줄) ├── contribution-tiers.md 4단계 등급 + 보안 핵심 크레이트 (161줄) └── release-and-standards.md 릴리스 파이프라인 + 린트/표준 (320줄)

다섯 챕터 한 줄 요약

챕터핵심
서문대상('Astrid를 바꾸는 사람') + 세 규칙: ① 커널은 멍청 ② RFC는 계약 변경용 ③ 코드에 근거
폴리레포·워크플로레포 지도, 디렉터리↔레포 매핑, origin/main 브랜치, GPG 서명, 이슈 우선, 10항 점검표
커널은 멍청하다커널의 세 임무(라우팅/게이팅/검증), 6개 옳은·틀린 예, 기여자 점검표
RFC 트리거7가지 계약 표면, 7문항 테스트, RFC 9개 섹션, 생애주기(Draft/Active/Final)
기여 등급·보안 크레이트4단계 + CI 게이팅, 보안 핵심 8개 크레이트, 취약점 신고(48h/7d)

실제 'Astrinaut 등급' 게이트 (경로로 권한을 가른다)

# contribution-tiers — 이 경로들을 건드리면 등급이 막는다
SECURITY_PATHS="crates/astrid-crypto crates/astrid-capabilities \
  crates/astrid-audit crates/astrid-approval crates/astrid-vfs \
  crates/astrid-storage crates/astrid-sys crates/astrid-core"

CORE_PATHS="crates/astrid-kernel crates/astrid-events \
  crates/astrid-hooks crates/astrid-config crates/astrid-mcp"
# Astrinaut가 SECURITY_PATHS/CORE_PATHS를 건드리면 CI가 즉시 실패

6학습 포인트 (프로세스별)

"코드가 아니라 '엔지니어링 운영'을 배우는" 드문 교본.

① 폴리레포 OSS 운영법

레포-당-컴포넌트 구성, 디렉터리↔레포 매핑 규칙, "각 컴포넌트가 별도 레포라 먼저 cd", origin/main에서 브랜치(로컬 main은 낡는다)까지 — 모노레포와의 트레이드오프(스코프 규율, 크로스레포 브랜치 불가)가 명시돼 있다.

② 확장 가능한 RFC 프로세스 설계

핵심 통찰은 '계약 표면'만 게이팅하고 내부는 자유롭게 둔다는 것. "게스트에게 보이는 WIT가 바뀌나? 캡슐을 재컴파일해야 하나?"라는 리트머스가 그대로 재사용 가능한 휴리스틱이다.

실습 아이디어

가상의 새 호스트 함수에 대해 RFC 9개 섹션(요약·동기·가이드·레퍼런스·단점·대안·선행연구·미해결·향후)을 채워 한 편 써 보라. 시그니처와 에러 계약까지 명시해야 진짜다.

③ 기여 등급 거버넌스

신뢰를 문서가 아니라 CI 경로 게이트로 인코딩하는 법. 신규는 라벨 필요, 하위 등급이 보안 경로를 건드리면 하드 실패, 코어가 암호 경로를 건드리면 소프트 경고 — 단계적·자동화 가능한 모델이다.

실습 아이디어

나만의 contributors.yml + contributor-gate 셸 스니펫을 작성해, PR 작성자의 등급을 분류하고 SECURITY_PATHS를 건드린 하위 등급을 하드 실패시켜 보라.

④ 릴리스 규율 & ⑤ 아키텍처 순수성 강제

버전 올리기를 별도 PR로 격리(리뷰어가 진짜 변경만 보게), 태그 트리거 릴리스, 무결성용 콘텐츠 주소(BLAKE3) 바이너리. 그리고 "커널은 멍청하다"처럼 불변식을 선언하고 옳은/틀린 예 + 기여자 점검표로 박아 원칙이 실제 PR에서 살아남게 하는 법.

⑥ 보안 우선 리뷰 문화

자기검열("새벽 3시"), 5가지 위협 모델 질문, 안전한 실패(fail-secure)를 비협상 원칙으로 두기, 위협 모델을 컴파일러 린트에 박기(arithmetic_side_effects="deny", std::env::set_var 금지) — 보안을 '문화'가 아니라 '장치'로 만드는 실전.

7하드웨어/시스템 요구사항

핸드북 자체는 마크다운. 다만 '기여'하려면 Rust·GPG·이슈·등급 조건을 갖춰야 한다.

핸드북을 읽고 빌드하는 데엔 mdBook 하나면 된다. 진짜 '요구사항'은 Astrid에 기여하기 위한 전제 조건들로, 핸드북이 깐깐하게 명시한다.

목적요구비고
핸드북 읽기웹브라우저unicity-astrid.github.io/handbook
로컬 빌드mdbook serve --openmdBook(CI 0.5.2 고정), 순수 마크다운
Rust 툴체인커널 1.95 · SDK 1.94 · Edition 2024캡슐은 wasm32-unknown-unknown 타깃
커밋GPG 서명 필수git log --format="%G?"G여야
계정30일 이상 권장account-age 잡이 신규 계정에 경고
PR 전이슈 먼저무단 PR은 닫힘(이슈 우선 규칙)
제출 전 점검fmt · clippy -D warnings · testCI와 동일 기준
초보 기여자가 놓치는 함정
"무단 PR·미서명 커밋·1000줄 파일은 CI에서 바로 막힌다"

좋은 의도로 큰 PR을 던져도, 이슈가 없으면(Closes #N 누락) linked-issue가, GPG 서명이 없으면 검증이, 파일이 1000줄을 넘으면 file-size가, 등급보다 민감한 경로를 건드리면 contributor-gate가 막는다. "코드가 좋으면 통과"가 아니라 "절차를 지켜야 통과"다. 그래서 핸드북을 먼저 읽으라는 것.

8직접 해볼 수 있는 실습 과제

"세 규칙 요약 → 로컬 빌드 → RFC 작성 → 등급 게이트 구현 → 트리거 봇"으로 난이도 상승.

과제 1. '세 규칙' 내 말로 요약 난이도 ★☆☆☆☆

서문을 읽고 ① 커널은 멍청 ② RFC는 계약 변경 ③ 코드에 근거 — 세 규칙을 각각 한 줄로 자기 말로 정리한다. 왜 이 셋이 '모든 걸 지배'하는지 생각해 본다.

과제 2. mdBook 로컬 빌드 난이도 ★★☆☆☆

cargo install mdbook → 클론 → mdbook serve --open. 챕터를 하나 추가해 SUMMARY.md에 연결하고, GitHub Pages 배포 워크플로(deploy.yml)를 재현해 본다.

과제 3. 진짜 RFC 한 편 쓰기 난이도 ★★★☆☆

가상의 새 호스트 함수(예: astrid:clock)에 대해 RFC 9개 섹션을 채운다. "이 변경이 7개 계약 표면 중 무엇을 건드리나"를 트리거 체크리스트로 먼저 판정하는 게 핵심.

과제 4. 기여 등급 게이트 구현 난이도 ★★★★☆

contributors.ymlcontributor-gate 셸 스크립트를 직접 짜서, PR 작성자 등급을 분류하고 SECURITY_PATHS를 건드린 하위 등급 PR을 하드 실패시킨다. GitHub Actions로 돌려 본다.

과제 5. RFC-트리거 PR 봇 난이도 ★★★★★

PR diff를 스캔해 wit/host/·wit/interfaces/·매니페스트 스키마 변경을 감지하면 "RFC required"를 자동 코멘트하는 봇을 만든다. 또 "버전 줄과 .rs 변경이 한 PR에 섞이면 실패"시키는 체크도 추가.

9관련 기술 심화 학습 로드맵

'OSS 거버넌스 → RFC 프로세스 → 기여등급·CI → 릴리스·보안 리뷰'의 4주 코스.

주차주제학습 내용 & 핸드북 연결
1주차OSS 거버넌스 기초모노레포 vs 폴리레포, Conventional Commits, GPG 서명. polyrepo-and-workflow.md로 레포 지도와 깃 규약을 학습.
2주차RFC 프로세스 설계RFC 생애주기, '계약 표면'만 게이팅하는 휴리스틱. rfc-trigger.md 정독 후 RFC 한 편 작성.
3주차기여 등급 & CI 게이팅경로 기반 권한, 보안 핵심 크레이트, PR CI 잡 5종. contribution-tiers.md로 게이트 로직을 분해해 재구현.
4주차릴리스 규율 & 보안 리뷰격리된 버전 PR, 콘텐츠 주소 바이너리, 자기검열·위협 모델. release-and-standards.md로 린트·릴리스 파이프라인을 통독.
학습 팁
"book(사양) ↔ handbook(운영)"을 함께 읽어라

이 핸드북은 운영·거버넌스를 다루고, 자매 문서 book커널·캡슐·ABI·버스·보안기술 사양을 다룬다. "왜 이런 규율이 필요한가"는 handbook이, "그 규율이 지키려는 구조가 무엇인가"는 book이 답한다. 둘을 짝지어 읽으면 "보안 OS를 어떻게 설계하고 어떻게 함께 짓는가"가 입체적으로 잡힌다. (같은 폴더 astrid-book-deep-dive.html 참고)

10핵심 키워드 사전

핸드북에 반복되는 운영 용어를 한 곳에.

용어
폴리레포(polyrepo)
커널·SDK·RFC·모든 캡슐이 각각 별도 GitHub 레포인 구성(모노레포의 반대). 로컬에선 한 상위 폴더에 나란히 두고, 디렉터리(astrid-capsule-<이름>)와 레포(capsule-<이름>)를 매핑한다.
용어
"커널은 멍청하다" 법칙
커널은 IPC 라우팅·능력 강제·WASM 샌드박스 소유만 하고 비즈니스 로직은 0이라는 건축 불변식. "커널이 라우팅/게이팅/검증하지 않는 것은 캡슐 IPC 영역."
용어
RFC & RFC 트리거
RFC는 계약 표면 변경용 사양 문서(rfcs 레포, 머지 때 번호 부여, Draft→Active→Final). 트리거는 7가지 계약 표면 중 하나라도 바뀌면 RFC가 필수임을 판정하는 규칙. 리트머스: "게스트가 보는 WIT 표면이 바뀌나?"
용어
기여 등급(contribution tier)
New → Astrinaut → Core → Maintainer 4단계의 CI 강제 신뢰 레벨. 어떤 파일을 수정할 수 있는지를 가른다(contributors.yml 정의, contributor-gate 잡 강제).
용어
Astrinaut
첫 기여 성공 후의 2단계 등급. CLI·SDK·캡슐·문서·테스트엔 PR 가능하지만, 보안/코어 경로를 건드리면 CI가 하드 실패시킨다.
용어
보안 핵심 크레이트
암호·인가 경계를 이루는 8개 크레이트(astrid-crypto·astrid-capabilities·astrid-audit·astrid-approval·astrid-vfs·astrid-storage·astrid-sys·astrid-core). Core/Maintainer만 수정 가능.
용어
이슈 우선(issue-first)
모든 Core PR은 GitHub 이슈를 Closes #N으로 닫아야 한다는 규칙. linked-issue 잡이 강제하며, 이슈 없는 무단 PR은 닫힌다.
용어
자기검열(adversarial self-review)
리뷰 전 의무 절차. "이게 새벽 3시에 어떻게 실패하나?" + 위협 모델/악용/암호 증명/감사 가능성/안전 실패 5문항으로 스스로를 적대적으로 점검.
용어
콘텐츠 주소 바이너리(content-addressed)
캡슐 WASM을 이름이 아니라 BLAKE3 해시 경로(~/.astrid/bin/<해시>.wasm)에 저장하는 방식. 무결성·동시성 안전을 위해 임시 파일 후 원자적 rename으로 쓴다.
용어
동결 파일 규칙(frozen-file)
공개된 버전의 인터페이스 파일은 수정 금지, 새 버전은 새 경로의 새 파일로. 호스트 ABI가 호환을 유지하며 진화하는 방법(기술 세부는 자매 문서 book 참고).

11참고 링크

공식 저장소·호스팅판·자매 레포.

GitHub 저장소(handbook) · github.com/unicity-astrid/handbook — "The Astrid Contributor Handbook" 원본.

호스팅판(읽기) · unicity-astrid.github.io/handbook — 설치 없이 바로 읽기.

자매 문서(book) · github.com/unicity-astrid/book — 기술 사양(같은 폴더 astrid-book-deep-dive.html 참고).

RFC 저장소 · github.com/unicity-astrid/rfcs — RFC 템플릿·제안 목록.

커널 저장소 · github.com/unicity-astrid/astrid — CI 워크플로·크레이트가 사는 곳(★ 9.2k).

조직/제작 · unicity.ai (Unicity Labs)

TrendShift · trendshift.io/repositories/60290