첫 프로젝트 만들기

dira는 프로토콜과 티켓, 페르소나를 프로젝트 단위로 다룹니다. 프로젝트끼리는 서로 간섭하지 않습니다.

처음 열면 보이는 화면

프로젝트가 0건일 때의 홈입니다. 위쪽 띠에 dira 로고와 버튼 셋(매뉴얼 · Star · 설정)이 있고, 본문은 dira와 한 줄로 시작합니다. 그 한 줄이 등록된 프로젝트가 없습니다. 하나 만들면 시작합니다.입니다. 아래로 이미 만들어 둔 .dira가 있다면 등록합니다.프로젝트 등록 버튼이 한 줄로 지나가고, 그다음이 새 프로젝트 카드입니다. 폼이 이미 열려 있습니다.

프로젝트가 0건일 때의 첫 화면. 등록된 프로젝트가 없다는 한 줄 아래에 새 프로젝트 카드가 펼쳐져 있고, 이름·프로젝트 폴더·통합 브랜치·스펙 문서 칸과 프로젝트 만들기 버튼이 있습니다. 그 위 한 줄에 이미 만들어 둔 .dira를 등록하는 버튼이 따로 있습니다.

이 장에서 채우는 것이 그 폼입니다. 헤더에 새로 만들기가 없습니다. 폼이 눈앞에 펼쳐져 있는데 그 폼을 여는 버튼을 같은 화면에 또 세울 이유가 없기 때문입니다. 위의 등록 한 줄은 우회로입니다. .dira를 이미 만들어 뒀거나 남이 쓰던 프로젝트를 받아온 분이 그리로 갑니다. 처음이라면 지나쳐도 됩니다.

폼 아래로 계속 내리면 제품 소개가 이어집니다. 웹에서 보는 그 페이지와 같은 글이고, 앱에서는 프로젝트 자리가 그 위에 얹혀 첫 화면이 됩니다. 지금은 폼만 채우시면 됩니다.

폼에 넣는 것

카드 제목 밑에 한 줄이 붙어 있습니다. 이 폼이 하는 일이 그 문장에 다 들어 있습니다.

.dira를 만들고 워커 하나를 crontab에 올립니다 — 30초 뒤부터 티켓을 물어갑니다.

crontab은 cron이 읽는 예약 목록입니다. 여기에 한 줄이 올라가면 그때부터 맥이 알아서 워커를 30초마다 부릅니다.

필드넣는 것
이름화면에 보일 이름입니다. 아래에 주소에 쓰일 이름(슬러그)이 미리보기로 뜹니다
프로젝트 폴더.dira의 부모입니다. ~/Projects/myproject처럼 적으면 그 밑에 .dira를 만듭니다. 칸 아래 도움말도 같은 말을 합니다(여기에 .dira를 만듭니다. ~는 확장됩니다). 폴더가 없으면 만듭니다
통합 브랜치세션이 결과를 올릴 브랜치입니다. 기본값은 main입니다
스펙 문서선택입니다. 프로젝트 스펙 파일 경로(docs/DESIGN.md 같은 것)를 적습니다. 아직 없는 파일을 미리 적어도 됩니다

도움말에 나오는 ~는 홈 폴더를 가리키는 줄임말입니다. ~/Projects/myproject라고 적으면 /Users/<사용자 이름>/Projects/myproject와 같은 자리를 뜻합니다.

프로젝트 만들기를 누르세요.

이미 프로젝트가 있는 화면에서는 같은 폼이 다이얼로그로 열립니다. 목록 위 새로 만들기가 그 트리거고, 칸도 도움말도 제출 버튼도 방금 채운 것과 같습니다.

새 프로젝트 만들기 다이얼로그. 이름·프로젝트 폴더·통합 브랜치·스펙 문서 칸과 프로젝트 만들기 버튼.

프로젝트가 만들어졌습니다

고른 폴더 밑에 .dira가 이렇게 놓입니다.

<프로젝트>/.dira/
  tickets/                                    빈 큐
  protocols/AGENTS.md                         협업 프로토콜. 브랜치와 스펙 문서가 치환된 상태
  protocols/tickets.md                        티켓 쪼개는 기준
  protocols/ontology.md                       온톨로지 규약
  protocols/CORE*.md                          코어 문서 사본 셋. 티켓 문법이 여기 있다
  personas/{pm,developer,qa,designer,archive-manager}/PROFILE.md
  workers/w1.sh                               워커 하나. 실행 권한까지 붙어 있다
  self-heal.sh                                앱을 지우면 워커가 스스로 물러납니다
text

여기에 crontab 등록(w1.sh를 30초마다 부르는 줄)과 레지스트리 등록(앱이 이 프로젝트를 목록에 들고 있게 하는 것)이 더해집니다. <프로젝트> 안에 만드는 것은 .dira 하나뿐이고 프로젝트 소스에는 손대지 않습니다.

워커는 하나입니다. 한 번에 티켓 하나가 돈다는 뜻입니다. 동시에 두 건 이상 돌리고 싶으면 워커를 더 만들면 됩니다. 워커에서 다룹니다.

이제 요구할 차례입니다

성공하면 목록에 행이 하나 생기고, 폼이 있던 자리가 결과 카드로 바뀝니다. 카드 안은 세 줄입니다. 만든 파일 수, 유도한 엔진 레포 경로, 그리고 마지막 줄입니다.

crontab에 등록됨 — 30초 뒤부터 티켓을 물어갑니다

이 줄이 보이면 끝났습니다. 카드에는 보드 열기닫기가 같이 있고, 닫기를 눌러야 결과가 접힙니다. 급하지 않으면 읽고 나서 닫으세요. 잘못 적은 경로를 알아챌 자리가 여기입니다.

승인 창 · 등록 실패 · 이미 있는 .dira

macOS가 승인 창을 띄웁니다. crontab에 쓰려면 앱 관리 권한이 필요합니다. 만드는 동안 폼 아래에 권한 창이 뜨면 [허용]을 누르세요 — crontab 등록이 그 대답을 기다립니다.가 떠 있습니다. 허용을 누르면 하던 등록이 그대로 이어집니다. 창을 방치하면 3분 뒤 등록만 실패로 떨어집니다.

crontab 등록만 실패해도 프로젝트는 만들어져 있습니다. 만든 파일을 되돌리지 않고, 사유와 함께 화면이 등록 명령을 띄웁니다. 복사해서 터미널에 붙여 넣으면 그 자리에서 끝납니다. 실패했을 때만 나오는 우회로입니다.

고른 폴더에 이미 .dira가 있으면 만들지 않습니다. 안에 tickets/workers/가 있으면 <경로>/.dira는 이미 dira 프로젝트입니다. 만들지 않고 등록하세요.와 등록 다이얼로그를 여는 버튼이 뜹니다. 있는 파일을 덮는 경로는 이 앱에 없습니다.

아직 비어 있는 큐

프로젝트가 돌기 시작했지만 물어갈 티켓이 없습니다. 다음 장에서 하고 싶은 말을 한 칸에 넣으면 pm이 그것을 티켓으로 쪼갭니다.

다음은 요구사항 접수하기입니다.