사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.



CLI 레퍼런스▾
AkanJS 레퍼런스▾create-ui, add-field, add-enum-field 워크플로가 적용하는 바로 그 단계입니다. 무엇을 바꿀지 이미 알고 있다면 직접 실행합니다.--surface에서 view, unit, template 중 하나를 고릅니다.--app이나 --module을 빼면 프롬프트 대신 리포트에 오류가 나옵니다.akan sync <app>와 akan lint <app>가 리포트에 적혀 있습니다.--format json은 스크립트와 에이전트용입니다. 같은 리포트를 JSON 객체 하나로 출력합니다.lib/<module>/에 UI 파일 하나를 씁니다. View, Unit, Template 중 하나입니다.
akan create-module이 모듈을 만들 때 쓰는 것과 같은 템플릿을 쓰고, 다른 파일은 건드리지 않습니다.
akan create-view, create-unit, create-template을 옵션으로 고르는 형태입니다.icecreamOrder 같은 대상 모듈 이름입니다.markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력합니다.General을 내보내는 <Module>.View.tsx로, 상세 화면을 그리는 서버 컴포넌트입니다.Card를 내보내는 <Module>.Unit.tsx로, 목록이나 카드 한 칸을 그리는 서버 컴포넌트입니다.General을 내보내는 <Module>.Template.tsx로, 첫 줄이 "use client"입니다.name 필드만 그리므로, 필요한 필드로 바꿔 씁니다.akan sync <app>, akan lint <app>를 차례로 실행합니다.<module>.constant.ts의 <Module>Input에, 라벨과 설명은 <module>.dictionary.ts의 .model<Module>에 들어갑니다.
타입이 Int나 Float이면 akanjs/base import도 더합니다.int 같은 소문자 별칭은 아래 참고 표대로 바로잡습니다.markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력합니다.int, integer는 Int로, float, double, decimal은 Float로 바뀝니다.string, boolean, date는 첫 글자를 대문자로 바꾸고, 나머지 이름은 그대로 씁니다.number와 numeric은 거절하므로, 정수는 Int, 소수는 Float를 씁니다.Int와 Float뿐이라, ID나 스칼라 타입은 직접 import합니다.Upload는 파일 업로드 요청 본문에만 쓰는 타입이라 거절하므로, File 모델과의 관계로 선언합니다.Int/Float는 숫자, Boolean은 true/false, Date는 now나 날짜를 받고, 나머지는 문자열입니다.() => dayjs()를 쓰므로 레코드마다 자기 시각을 받습니다. 날짜를 주어도 함수 형태로 씁니다.status 같은 흔한 단어만 채워지고, 나머지는 영어를 그대로 쓰니 직접 고칩니다.akan sync <app>, akan lint <app>를 차례로 실행합니다.<Module><Field> 이름의 enumOf 클래스를 만들고 enumOf import를 더한 뒤, dictionary의 .enum 단계에 선택지를 등록합니다.
그다음 그 클래스를 타입으로 하는 필드를 add-field와 똑같이 더합니다.order 모듈의 status 필드는 OrderStatus를 선언합니다.pending,serving,served처럼 쉼표로 구분한 enum 값입니다.--values 중 하나여야 합니다.markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력합니다.--type 대신 --values를 받습니다.add-enum-field로 만듭니다.add-field --type <Class>를 실행합니다.akan sync <app>, akan lint <app>를 차례로 실행합니다.akan workflow apply로 씁니다.plan_workflow로만 넘깁니다.akan add-field --field topping …akan workflow plan add-field … --out <path>