Architecture
공유 팩 배포
Codaro curricula and automation recipe packs for local import, export, and future gallery distribution.
공유 팩 배포
Codaro 공유 단위는 codaroPack.yaml을 루트에 둔 pack이다. GitHub Pages는 전시장, GitHub repository 또는 release asset은 배포 원본, Codaro 로컬 importer는 검증과 설치를 맡는다.
GitHub Pages gallery
→ codaroPack.yaml 또는 .zip 링크
→ Codaro local inspect
→ manifest/path/YAML/automation 검증
→ localData/sharePacks 아래 설치
→ 공유 팩 제품 표면에서 커리큘럼 열기 또는 자동화 태스크 등록
Pack 구조
codaro-pack/
codaroPack.yaml
curricula/
python/
my-track/
00_intro.yaml
01_first_run.yaml
automations/
dailyReport.py
assets/
README.md
LICENSE
기본 manifest:
kind: codaroPack
specVersion: 1
id: example.daily-work
version: 0.1.0
title: 업무 자동화 입문 팩
author: example
license: MIT
codaro:
minVersion: "0.1.0"
contents:
curricula:
- path: curricula/python/my-track/00_intro.yaml
- path: curricula/python/my-track/01_first_run.yaml
automations:
- path: automations/dailyReport.py
packages:
- pandas
permissions:
filesystem: read
network: optional
설치 경계
- built-in 커리큘럼은 저장소의
curricula/가 source of truth다. - 공유받은 pack은 built-in 레지스트리에 복사하지 않고 Codaro 저장소 내부의
localData/sharePacks아래에 설치한다. localData/는.gitignore대상이다. 설치된 pack, inspect cache, export archive, index는 Git 추적 대상이 아니다.- 저장소 루트,
curricula/,automations/에 외부 콘텐츠를 직접 풀지 않는다. - 같은 pack id/version을 다시 설치하면 로컬 pack store 안에서만 교체한다.
- uninstall은 pack store에서 제거하거나 archive로 이동하는 로컬 사용자 데이터 작업이며, 저장소 파일을 삭제하지 않는다.
검증 규칙
inspect는 실행 전 검토 단계다. 다음은 오류로 간주해 설치를 막는다.
kind가codaroPack이 아니다.id,title,contents가 비어 있다.- content path가 절대 경로이거나
..를 포함한다. - manifest에 선언된 파일이 없다.
- curriculum YAML을 파싱할 수 없다.
- automation recipe가
.py파일이 아니거나# %% [automation]셀을 갖지 않는다. - 공유 automation recipe에
DRY_RUN = True가 없다.
다음은 경고다.
- curriculum YAML에
meta.id,meta.category,tags가 없다. - curriculum lesson에
sections가 없다. packages가 manifest와 lessonmeta.packages중 한쪽에만 있다.- automation recipe가 외부 파일/네트워크/브라우저 권한을 요구하지만 manifest
permissions가 비어 있다.
원격 배포 규칙
- GitHub Pages는 정적 파일만 제공한다. 서버 사이드 설치 로직을 기대하지 않는다.
- 원격 URL은
.zip또는codaroPack.yamlURL을 우선 지원한다. - 원격 manifest 방식은 디렉터리 listing을 할 수 없으므로
contents.*[].path는 파일 경로여야 한다. - 버전 고정 배포는 GitHub Release asset
.zip을 권장한다. - raw URL이나 Pages URL은 빠른 공유에는 좋지만, 재현 가능한 배포는 tag/release URL을 사용한다.
UI 운영
- 공개 제품 UI의 왼쪽 사이드바에
공유 팩표면을 둔다. - 제품 표면은 URL/path 입력 → inspect → install → installed list → open/register 순서를 가진다.
- 커리큘럼은 설치된 pack에서 읽어
나만의 커리큘럼으로 저장한 뒤 커리큘럼 표면에서 연다. - 자동화 recipe는 내용을 먼저 확인하고, 태스크 등록 시에도
DRY_RUN = True상태를 유지한다. - 공유 작성자는
codaroPack.yaml이 있는 폴더를 zip으로 export한 뒤 GitHub Release 또는 Pages static asset으로 올릴 수 있다. - GitHub에 올리는 기능은 인증, 권한, secret 보관, repository 선택 문제가 있으므로 1차 범위에서는 archive export까지만 제공한다.
- 실제 publish 자동화는 별도 GitHub provider/profile 경계를 갖춘 뒤 추가한다.
GitHub Pages 갤러리
- React GitHub Pages 표면의
/packs가 공식 공유 팩 갤러리다. - 각 카드에는 manifest URL을 그대로 노출한다. 사용자는 이 URL을 Codaro 공유 팩 표면에 붙여넣어 검사/설치한다.
- 공식 예제 pack은
landing/static/share-packs/아래에 둔다. 이 디렉터리의 pack 파일은 Git 추적 대상이다. - 설치된 사용자 pack과 cache는
localData/sharePacks아래에 남기며 Git 추적 대상이 아니다.
관련
- [[curriculum-registry]] — built-in curriculum과 imported pack의 경계
- [[curriculum-authoring]] — 공유 가능한 curriculum YAML 품질 기준
- [[automation-authoring-loop]] — 공유 가능한 automation recipe 작성 기준
- [[automation-tasks-reports]] — 설치 후 task 등록과 실행 경계