파일 46개 · 합성 예시 프로젝트 1개 · 스킬 cmds-standard 와 스크립트 3개(check_note.py · new_project.py · build_concept.py, 표준 라이브러리만). SHA-256 d7f6d2dc2df6…
THE FLOW
기획은 볼트에, 실행은 DEV에.
1차시 숙제(니즈 · 진행 상황 · 대체할 일 · 기대 성과 · 도식)가 그대로 기획서의 다섯 칸이 됩니다. 프로젝트 하나 = 볼트 폴더 하나 + DEV 폴더 하나. 둘은 서로를 가리키고, 그 사이를 상태 파일이 잇습니다.
기획은 볼트에, 실행은 DEV에. 둘 사이를 상태 파일이 잇는다.
단계
어디에
남는 파일
차시
기획
볼트 10. Projects/<날짜-슬러그>/
<이름> 기획서.md · 작업 노트 3~5개
2
연결
DEV ~/DEV/<슬러그>/
DEV README.md(볼트로 돌아가는 링크) · 기획서 localDev
2
산출
DEV
첫 작업 산출 파일 · <이름> 상태.md 새 구역
2
검증·스킬
볼트 + DEV
<이름> 재발방지 규칙.md · .claude/skills/<내 스킬>/SKILL.md
3
발행
DEV concept-site/ → 웹
기획서 published · publishedUrl · <이름> 마무리.md
3
BEFORE YOU START
메인 볼트 밖에 풀고, 새 보관함으로 엽니다.
ZIP 을 메인 볼트 밖 새 폴더에 풉니다(예: ~/Documents/CMDS-Project-Vault/).
Obsidian → 보관함 열기 → 폴더를 보관함으로 열기. 커뮤니티 플러그인은 없습니다. 보드가 안 보이면 설정 → 코어 플러그인 → Bases.
터미널에서 그 폴더로 가서 에이전트를 엽니다: cd ~/Documents/CMDS-Project-Vault → claude (Codex 는 codex). 폴더 신뢰를 물으면 허용합니다. 스킬이 자동으로 잡힙니다.
나.md 를 5분 채웁니다. 에이전트가 내 말투와 범위를 여기서 배웁니다.
아래 P00 부터 복사합니다.
고객 원본 · 실명 · 연락처 · 계정은 넣지 않습니다. 로컬 파일이라도 에이전트가 읽으면 내용이 모델 서버로 갈 수 있습니다. AI 구독 · 호스팅 요금은 수강료와 별도이고, 발행은 내가 승인한 한 번만 합니다. Windows 에서는 python3 대신 python 또는 py.
WHAT'S INSIDE
볼트의 하네스는 시스템 파일과 규격입니다.
에이전트는 볼트를 열면 CLAUDE.md 를 먼저 읽고, 거기서 규격 세 파일을 불러옵니다. 노트를 만들 때는 스킬 cmds-standard 가 그 규격을 적용하고, 끝났다고 말하기 전에 검사기를 돌립니다. 규칙은 rules 에, 순서는 스킬에, 판정은 검사기에 있습니다.
시스템 파일이 규격을 부르고, 스킬이 규격대로 쓰고, 검사기가 끝을 판정한다.
자리
무엇
CLAUDE.md · AGENTS.md
시스템 파일. 볼트 목적 · 폴더 지도 · 하지 말 일 · 멈출 조건 (Claude / Codex · Cursor)
맨 끝 summary: FILES=… FAIL=0 WARN=… 이 통과입니다. 검사기는 값이 있는지를 보고, 값이 맞는지는 사람이 봅니다. 아무 파일도 고치지 않습니다. 본 파일이 0개면 통과가 아니라 멈춥니다. .canvas 도 봅니다(깨진 카드 · 끊긴 화살표).
TWO SESSIONS
2차시는 손으로 한 번, 3차시는 검사하고 굳혀서 냅니다.
차시
블록
할 일
프롬프트
2차시
기획서 발표 (15분)
한 사람 2분: 니즈 한 줄 · 대체할 일 · 도식 한 장
없으면 P01
2차시
실습 5 (25분)
볼트 열기 · 내 기획서를 프로젝트로 등록 · 검사 FAIL 0
P00 · P02
2차시
실습 6 (30분)
작업 쪼개기 · DEV 연결 · 첫 작업 산출(시작 전 승인 한 곳)
P03 · P04 · P05
2차시
결과 확인 (8분)
볼트↔DEV 왕복 링크, 상태 파일만 보고 새 세션 재개
P06
3차시
검증·복구 (20분)
검사기 전체 → git diff → 고른 변경만 고침 → 재발방지 규칙 한 줄
P07
3차시
내 스킬 (14분)
손으로 한 번 한 일을 SKILL.md 로 → 두 번째 입력 재실행
P08
3차시
발행 (25분)
컨셉 페이지 → 공개 점검 → 사람 승인 → 발행 → published 기록
P09
3차시
내 시스템 한 장 (18분)
완성 · 한계 · 다음 개선 · 증거 파일 경로 · 30일 운영 = 오후 발표 재료
마무리
입력 자료가 없거나 민감하면 예시 프로젝트를 복제해 이름만 바꾸거나, 1차시 키트의 사례 1·2 자료를 20. Knowledge/ 에 넣어 같은 흐름으로 합니다.
COPY, ADAPT, VERIFY
복사한 다음, 결과 파일을 직접 엽니다.
대괄호 [ ] 만 내 것으로 바꿉니다. 슬래시 명령에 기대지 않는 일반 요청문이라 Claude Code · Codex · Cursor 어디서나 됩니다.
2차시 · 11.06 금
P00
볼트 열기와 시작 기록
이 폴더는 내 프로젝트 실습 볼트야. CLAUDE.md 를 읽고, 이 볼트에서 네가 지켜야 할 규칙을 다섯 줄로 요약해 줘.
그다음 이 폴더를 git 저장소로 시작하고 지금 상태를 첫 커밋으로 남겨 줘(메시지: "실습 볼트 시작"). git 이 없으면 하지 말고 그렇다고만 말해 줘.
마지막으로 cmds-standard 스킬의 검사기를 볼트 전체에 돌려서 summary 줄을 보여 줘.
끝난 기준 규칙 다섯 줄, 첫 커밋(또는 "git 없음"), summary: … FAIL=0
P01
기획 인터뷰 (기획 문서가 아직 없을 때만)
내가 자동화하고 싶은 일을 기획 문서로 만들고 싶어. 질문을 한 번에 하나씩 해 줘.
순서: 니즈(왜 필요한가) → 현재 상태(지금 어떻게 하고 시간이 얼마나 드나) → 대체할 일(AI에게 넘길 것, 사람이 남길 것, 하지 말 일, 멈출 조건) → 기대 성과(성공을 무엇으로 재나) → 흐름(입력에서 결과까지 단계).
내 답에 없는 내용은 채우지 말고, 다섯 가지를 다 들으면 요약해서 보여 줘. 파일은 아직 만들지 마.
끝난 기준 다섯 칸 요약이 화면에 있다(파일 없음)
P02
내 기획 문서를 프로젝트로 등록
cmds-standard 스킬로 새 프로젝트를 등록해 줘. 이름: [프로젝트 이름], 코드: [ESG 같은 영문 대문자], 슬러그: [esg-review 같은 영문], 마감: [2026-11-07].
DEV 폴더는 아직 만들지 마(--no-dev). 먼저 --dry-run 으로 만들 파일을 보여 주고, 내가 좋다고 하면 만들어.
그다음 내 기획 문서 [파일 경로 또는 아래 붙여넣기]의 내용을 기획서의 니즈 · 현재 상태 · 대체할 일 · 기대 성과 · 워크플로 도식 칸에 옮겨 줘.
내 문서에 없는 내용은 지어내지 말고 "빈칸: 무엇이 필요한지" 로 남겨. description 은 영어 1~2문장으로.
끝나면 그 프로젝트 폴더에 검사기를 돌려 FAIL 0 이 될 때까지 고치고, summary 줄과 남은 WARN 을 보여 줘.
끝난 기준10. Projects/<날짜-슬러그>/<이름> 기획서.md 에 내 문서 내용, 도식 1개 이상, 검사 FAIL=0
P03
작업 쪼개기와 상태 기록
[프로젝트 이름] 기획서를 읽고 작업을 3~5개로 나눠 작업 노트를 만들어 줘(작업/ 폴더, 이름은 [코드]-02 처럼 이어서).
작업마다 doneWhen 에는 파일을 열어 확인할 수 있는 끝 기준 한 줄, dueDate 를 넣어. 첫 번째로 할 작업 하나만 inProgress, 나머지는 unread.
기획서에 없는 작업은 만들지 마. 상태 파일 맨 아래에 "작업 나누기" 구역을 붙이고, 검사기를 돌려 FAIL 0 을 보여 줘.
끝난 기준 작업 노트 3~5개가 기획서 작업 보드에 보인다, 상태 파일 새 구역, FAIL=0
P04
DEV 폴더 연결
[프로젝트 이름] 프로젝트에 DEV 폴더를 연결해 줘. cmds-standard 의 new_project.py 를 --link-dev 로 실행해(이름·코드·슬러그는 등록 때와 같게). 먼저 --dry-run 으로 보여 줘.
연결 뒤 기획서 localDev 가 DEV 폴더를 가리키는지, DEV 의 README.md 에 볼트 기획서로 돌아가는 링크가 있는지 열어서 확인해 줘.
코드 · 데이터 · 산출 파일은 DEV 에만, 기획 · 결정 · 상태는 볼트에만 둔다는 규칙을 지켜. 상태 파일에 "DEV 연결" 구역을 붙여.
끝난 기준~/DEV/<슬러그>/README.md 가 있고 기획서 localDev 와 서로를 가리킨다
P05
첫 작업 산출 (승인 한 곳)
작업 [코드-NN 제목] 을 DEV 폴더에서 해 줘. 시작하기 전에 무엇을 만들지, 어떤 파일을 읽을지, 결과 파일이 어디에 생길지 세 줄로 말하고 내 승인을 기다려.
승인하면 만들고, 끝나면 결과 파일을 다시 열어 확인한 뒤 작업 노트의 result 와 status 를 고치고 상태 파일에 구역을 붙여.
기획서의 하지 말 일이나 멈출 조건에 닿으면 만들지 말고 멈춰서 이유를 말해. 실행하지 않은 것을 완료로 적지 마.
끝난 기준 DEV 에 산출 파일, 작업 노트 result·status, 상태 파일 구역(승인 기록 포함)
P06
새 세션에서 재개
[프로젝트 이름] 상태 파일만 먼저 읽고, 지금 어디까지 왔는지와 다음에 할 일 하나를 말해 줘.
완료로 표시된 단계는 다시 하지 마. 마지막 구역의 사람 승인이 "승인됨"이 아니면 다음 단계로 가지 말고 나에게 물어.
끝난 기준 상태 파일 맨 아래 구역과 같은 말을 한다, 완료 단계를 반복하지 않는다
OPT
선택 · 프로젝트 지도 캔버스
[프로젝트 이름] 프로젝트 지도를 캔버스로 만들어 줘(json-canvas 스킬): 같은 폴더에 "[프로젝트 이름] 지도.canvas".
기획서 · 상태 파일 · 작업 노트 · 기준 문서는 파일 카드로, DEV 폴더는 글 카드 하나로 놓고, 작업 순서와 "실행 → 기록" 흐름을 화살표로 이어.
없는 파일을 카드로 만들지 마. 만든 뒤 검사기를 돌려 캔버스 FAIL 이 0 인지 보여 주고, 기획서 7. 연결에 지도 링크를 넣어.
끝난 기준 Obsidian 에서 캔버스가 열리고 카드가 모두 실제 노트를 보여 준다, 검사 FAIL=0
3차시 · 11.07 토
P07
검증과 복구
검사기를 볼트 전체에 돌려서 FAIL 과 WARN 을 보여 줘. 고치기 전에 git diff 로 어제 첫 커밋 이후 바뀐 파일 목록을 보여 줘.
내가 고른 변경만 고치거나 되돌려 줘(고르지 않은 파일은 건드리지 마). 고친 뒤 검사기를 다시 돌려.
같은 실수가 다시 안 나게 [프로젝트 이름] 재발방지 규칙 노트에 날짜를 붙인 규칙 한 줄을 써 줘(없으면 노트 템플릿으로 만들어).
끝난 기준 FAIL=0, 고른 변경만 바뀐 diff, 날짜 붙은 규칙 한 줄
P08
손으로 한 번 한 일을 내 스킬로
어제 P05 에서 한 일을 다시 시킬 수 있게 스킬로 만들어 줘: .claude/skills/[영문-스킬-이름]/SKILL.md.
cmds-standard 의 SKILL.md 와 같은 칸으로 써: 시작 조건, 사용하지 않을 조건, 단계(사람 승인 위치 포함), 출력 형식, 실패 처리, 변경 이유 표.
description 에는 언제 쓰는지와 NOT for 를 같이 쓰고, 결과를 볼트에 기록할 때는 cmds-standard 규격을 따르게 해.
만든 다음 내 두 번째 입력 [파일 경로]으로 새로 실행하고, 첫 실행과 무엇이 달랐는지 상태 파일에 적어.
끝난 기준 내 스킬 SKILL.md, 두 번째 입력의 산출 파일, 차이 기록
P09
컨셉 페이지 만들고 발행하기
[프로젝트 이름] 기획서로 컨셉 페이지를 만들어 줘(cmds-standard 의 build_concept.py). 공개 점검 결과를 보여 주고, PRIVACY_FAIL 이 있으면 기획서에서 고친 뒤 다시 만들어.
페이지를 브라우저로 열어 줘. 내가 문장을 고쳐 달라고 하면 DEV 의 index.html 에서 고쳐.
내가 "발행해"라고 하면 그때 concept-site 폴더에서 Vercel 로 발행하고 주소를 알려 줘(로그인이 필요하면 내가 직접 할 명령을 알려 줘).
발행 뒤 기획서 published 와 publishedUrl 을 고치고 상태 파일에 구역을 붙인 다음 검사기를 돌려.
끝난 기준 공개 점검 0, 사람 승인, 발행 주소, 기획서 published: true·publishedUrl, FAIL=0
END
마무리 한 장 (3차시 F)
[프로젝트 이름] 마무리 노트를 만들어 줘(같은 프로젝트 폴더, 노트 템플릿).
칸: 완성한 것 / 아직 안 되는 것(한계) / 다음 개선 하나 / 증거 파일 경로(기획서·상태·산출·스킬·발행 주소) / 30일 동안 어떻게 굴릴지.
내 파일에 없는 성과는 쓰지 마. 끝나면 검사기를 돌려.
끝난 기준<이름> 마무리.md 가 검사 FAIL=0, 모든 성과에 증거 파일 경로
맞는 프롬프트가 없습니다.
PUBLISH ONCE
페이지는 기획서의 사본이고, 발행은 내가 승인한 한 번입니다.
만들기
build_concept.py 가 기획서 다섯 칸으로 concept-site/index.html 을 만듭니다. 기획서 검사가 FAIL 이면 만들지 않습니다.
공개 점검이 같이 돕니다: 이메일 · 전화번호 · 로컬 경로 · 내부 링크 · 키 모양 문자열. PRIVACY_FAIL=0 이 아니면 기획서(원본)를 고칩니다.
문장 · 디자인은 DEV 의 index.html 에서 다듬습니다. 다시 만들면 index.generated.html 로 따로 써서 내 수정을 덮지 않습니다.
내보내기
Vercel 계정(무료)이 있으면: 처음 한 번 에이전트 창에서 ! npx vercel login 을 내가 직접 입력합니다.
그다음 에이전트에게 "발행해"라고 하면 concept-site/ 에서 npx vercel deploy --prod --yes 를 실행하고 주소를 알려 줍니다.
회사 정책이나 계정 때문에 어렵다면 concept-site 폴더를 ZIP 으로 묶어 수업 제출처에 냅니다.
발행 뒤 기획서 published: true · publishedUrl 을 고치고 검사합니다.
SETTINGS FROM SESSION 1
1차시에 보여 드린 세팅 값
cmux 계층과 단축키 (강사 환경 기준)
하는 일
단축키
워크스페이스 만들기
Ctrl + Cmd + N
탭 만들기
Cmd + T
워크스페이스 그룹 만들기
Cmd + Shift + G
워크스페이스 이름 바꾸기
Cmd + Shift + R
화면 좌우로 나누기
Cmd + D
자주 쓰는 탭 · 워크스페이스 고정
오른쪽 클릭 → 핀
계층은 윈도우 → 워크스페이스 그룹 → 워크스페이스 → 탭 네 단계입니다. 용도별로 색과 이름을 붙이면(강의 · 개발 · 개인) 세션이 많아져도 찾습니다. 앱 버전에 따라 단축키가 다를 수 있습니다.
자주 가는 폴더로 한 번에
Finder 에서 폴더를 고르고 Cmd + Option + C → 경로가 복사됩니다.
터미널에서 open ~/.zshrc 로 열어 맨 아래에 한 줄을 붙입니다.
alias pv='cd "$HOME/Documents/CMDS-Project-Vault"'
저장 뒤 source ~/.zshrc. 이제 pv 만 치면 실습 볼트로 갑니다. cd 자체를 덮어쓰는 alias 는 만들지 않습니다.
볼트에 함께 든 Obsidian 문법 스킬 3종(obsidian-markdown · obsidian-bases · json-canvas)은 kepano/obsidian-skills(MIT, Steph Ango) 원본을 고치지 않고 넣었습니다. 각 폴더에 LICENSE 가 있습니다.