{"data":{"service":"Zaemit Design API","summary":"바깥 에이전트가 검색, 참고 사이트 선택, 기획과 문구 작성을 한다. 재밋은 구조 분석, 기획안 검사와 보관, 블록 선택과 조립을 한다. 가입이나 API 키 없이 무료로 사용한다.","steps":["1. 사용자에게 한 번만 짧게 묻는다(firstQuestion 참고). 사이트 형태(홈페이지형 또는 랜딩형)와 빠진 핵심 정보(이름, 하는 일, 원하는 분위기)만 묻는다. 이미 말한 것은 다시 묻지 않고, 다 말했으면 참고 사이트를 찾는다. 페이지 수는 묻지 않는다.","2. 검색으로 같은 업종의 참고 사이트 2~3곳을 고르고 POST /design/benchmark로 메인 페이지의 구조를 받는다. menu와 subpageCandidates에서 주요 서브페이지를 골라 주소마다 따로 요청한다. 요청 한 건은 한 페이지만 분석한다.","3. 사이트 전체 기획안을 작성해 POST /design/site-plan으로 보낸다. index는 메인 페이지, 나머지는 로그인 후 만들 서브페이지다. checks에 dropped가 있으면 해당 페이지의 availableTags에 있는 이름으로 고쳐 PUT /design/site-plan/:id로 전체 기획안을 다시 보낸다. 모든 페이지의 dropped가 없어질 때까지 반복한다. 메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다. 응답에 thinPages가 있으면 suggestedTags에서 골라 채우고 다시 보낸다.","4. site-plan 응답의 summary를 줄이거나 고쳐 쓰지 말고 그대로 보여 준다. questions가 있으면 선택형 질문 기능(예: Claude Code의 선택형 질문 창)으로 한 번에 묻는다. 그 기능이 없으면 questionsText를 그대로 보여 준다. 사용자의 답을 기획안에 반영해 PUT /design/site-plan/:id로 전체 기획안을 다시 보낸다. 답한 질문은 questions에서 빼고 필요하면 새 질문을 최대 4개 넣는다. 질문이 없는 응답을 받으면 \"이대로 메인 페이지를 만들까요?\"를 묻고 동의하면 제작한다. 승인 전에는 시안을 만들지 않는다.","5. 승인받은 기획안의 index 페이지로 spec을 만들고 sitePlanId와 함께 POST /design/plan으로 보낸다. spec.siteForm도 기획안과 맞춘다. dropped가 있으면 availableTags에서 이름을 고쳐 다시 요청한다. 반환된 textSlots의 i 순서와 최대 길이에 맞춰 모든 문구 칸을 구체적인 내용으로 채우고(rules의 사실 규칙 참고) imageQueries를 작성한다. POST /design/compose에 planId, texts, imageQueries를 보내 메인 시안을 만든다. screenshots와 findings를 보고 같은 planId로 compose를 반복한다. 배치를 바꾸려면 seed를 바꿔 같은 sitePlanId로 plan을 다시 요청한다.","6. 마지막 compose 응답의 userMessage를 줄이거나 고쳐 쓰지 말고 줄바꿈까지 그대로 보여 준다. 다운로드, 전체 페이지 이어서 만들기, 개발까지 요청하기의 세 갈래를 안내한다. 덧붙일 말은 그 뒤에 한두 문장으로 쓴다. 이어서 만들기나 개발을 고르면 compose 응답의 previewId를 쓴다. 이 previewId와 purpose(pages 또는 develop)로 POST /design/handoff를 요청한다. 받은 userMessage와 로그인 링크를 전달하고 pollUrl을 interval초마다 확인한다. ready가 되면 howToContinue대로 연결해 보관한 기획안에 따라 나머지 페이지를 이어서 만든다.","7. 계정 연결(링크 로그인) 뒤 howToContinue.nextSteps대로 이어간다. design_site_plan 응답의 summary를 그대로 보여 주고, questions(한 장씩 확인하며 / 한 번에 모두)를 선택형 질문으로 묻는다. 기획안이 없으면 draftMenu(시안 헤더의 메뉴와 하위 메뉴)로 페이지 구성을 먼저 정리해 확인받는다. 메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다. pageRecipes를 참고해 섹션별 역할과 실제 담을 내용을 메인 페이지만큼 기획해 보여 주고, 확인받은 뒤 만든다. 다 만들면 필요한 기능을 선택형 질문으로 묻는다.","8. 사용자가 \"이어가기 코드 XXXX-XXXX\" 문장을 주면 POST /design/resume으로 열쇠를 받고 7번과 같이 이어간다."],"firstQuestion":{"ko":"어떤 형태의 사이트로 만들까요?\n1. 홈페이지형: 메뉴가 있고 회사 소개, 서비스 같은 페이지로 나중에 늘려 갈 사이트\n2. 랜딩형: 한 페이지 안에 소개부터 문의까지 모두 담는 사이트\n(이름이나 하는 일처럼 아직 말하지 않은 것이 있으면 같이 알려 주세요.)","en":"What kind of site would you like?\n1. Homepage: a site with a menu that can grow into pages such as About and Services\n2. Landing page: a single page that covers everything from introduction to contact\n(If you have not mentioned your name or what you do yet, please include that too.)"},"siteForms":{"homepage":"메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다. 메인 페이지는 사이트 전체를 요약한다. 소개·서비스·특징·선택 이유·진행 과정·후기·자주 묻는 질문 같은 섹션을 고루 담고, 각 섹션은 나중에 서브페이지로 이어질 내용을 보여 주고 버튼으로 안내한다. 헤더 메뉴 칸에는 앞으로 만들 페이지 이름을 쓴다.","landing":"메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다. 한 페이지에 소개부터 문의까지 모든 내용을 담는다. 첫 화면에서 핵심 제안을 말하고, 이유·특징·후기·자주 묻는 질문을 거쳐 마지막을 문의나 신청(CTA, Contact)으로 끝낸다. 헤더 메뉴 칸에는 이 페이지의 섹션 이름을 쓴다."},"materialRules":{"sectionCount":{"ko":"메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다.","en":"Choose 5 to 10 main-page sections to fit the business: 5 to 6 for a small shop or a single service, 8 to 10 for a company with several services. Subpages use 3 to 6 sections; short pages such as terms or contact use 3."},"imageDomain":{"ko":"imageDomains 에는 사이트 업종에 맞는 사진 분야를 목록에서 1~2개 고른다. 목록에 없는 값은 쓰지 않는다. 맞는 분야가 없으면 비워 둔다."},"imageQuery":{"ko":"사진 칸이 있는 섹션은 모두 imageQueries 를 쓴다. subject(찍힐 대상)·scene(장소와 빛)·mood(분위기)를 영어로 구체적으로 쓰고, 칸이 여럿이면 칸마다 다르게 쓴다. 사람이 주인공인 사진은 people: true."},"palette":{"ko":"palette 는 imageQueries 에 쓴 사진의 분위기(재질, 빛, 배경색)와 같은 계열로 1~3색을 고른다. 첫 색이 포인트색이다. 사진과 따로 노는 색은 쓰지 않는다."}},"imageDomains":[{"id":"agriculture","label":"농업 농장"},{"id":"auto","label":"자동차 정비"},{"id":"beauty","label":"미용 뷰티"},{"id":"community","label":"지역 커뮤니티"},{"id":"consulting","label":"컨설팅 자문"},{"id":"culture","label":"박물관 미술관"},{"id":"ecommerce","label":"쇼핑몰 이커머스"},{"id":"education","label":"학원 교육"},{"id":"energy","label":"에너지 태양광"},{"id":"entertainment","label":"엔터 기획사"},{"id":"fashion","label":"패션 의류"},{"id":"finance","label":"금융 은행"},{"id":"fitness","label":"헬스 피트니스"},{"id":"flower","label":"꽃집 플라워"},{"id":"fnb","label":"음식 식당"},{"id":"it-tech","label":"소프트웨어 앱"},{"id":"legal","label":"법무 변호사"},{"id":"life-service","label":"생활 청소"},{"id":"manufacturing","label":"제조 공장"},{"id":"medical","label":"병원 의원"},{"id":"pet","label":"반려동물 애완"},{"id":"public","label":"공공 정부"},{"id":"realestate","label":"부동산 아파트"},{"id":"sharing","label":"공유 렌탈"},{"id":"sports","label":"스포츠 체육"},{"id":"subscription","label":"구독 정기배송"},{"id":"trading","label":"무역 물류"},{"id":"travel","label":"여행 관광"},{"id":"wedding","label":"웨딩 결혼"}],"pageRecipes":{"about":"SubVisual → About(이야기) → WhyUs 또는 Feature(가치·강점) → Flow(걸어온 길이나 일하는 방식) → Team → CTA","services":"SubVisual → Service(전체 목록) → Feature(서비스별 특징) → Flow(진행 과정) → FAQ → CTA","products":"SubVisual → Service 또는 Portfolio(대표 메뉴·상품) → Feature(재료·만드는 방식) → Testimonial → FAQ → CTA","cases":"SubVisual → CaseStudy 또는 Portfolio → Testimonial → Flow → CTA","visit":"SubVisual → Access(오시는 길) → Contact(문의) → FAQ(방문·예약 질문) → CTA","note":"기획안 검사 응답의 checks[].suggestedTags 와 thinPages 를 참고한다. availableTags 에 없는 이름은 쓰지 않는다."},"userGuidance":["기획안은 summary를 그대로 보여 주고 questions를 선택형으로 묻는다. 선택형 질문 기능이 없으면 questionsText를 그대로 보여 준다. 다른 응답의 userMessage는 줄이거나 고쳐 쓰지 말고 그대로 전달한다. 네 말은 그 뒤에 덧붙인다.","소비자 안내는 존댓말과 짧은 문장으로 쓴다. 한 문장에 한 가지를 담고 기술 용어, 긴 줄표, 이모지, 과장을 쓰지 않는다.","다운로드는 로그인 없이 파일 하나로 받는다. 나머지 두 선택은 로그인이 필요하다. 로그인하면 시안이 내 계정의 재밋 사이트로 등록되고, 그때부터 말로 페이지를 늘리고 기능을 붙이고 편집기에서 직접 고칠 수 있다. 사용자가 로그인이 왜 필요한지 물으면 이렇게 설명한다.","무료 사이트는 14일 동안 쓰지 않으면 잠들고, 그 뒤 14일이 더 지나면 보관함으로 간다."],"chatAppConnector":"claude.ai나 ChatGPT 웹 화면처럼 POST를 보낼 수 없으면, 재밋 커넥터가 이미 연결돼 있을 때는 그 도구로, 아니면 chatAppLink 방법으로 시안 링크 하나만 만들어 준다. 커넥터가 없어도 된다. 대화 안에서 캡처를 보며 고치고 싶은 사용자는 커넥터 https://zaemit.ai/design/mcp 를 추가해 같은 기능을 도구로 쓸 수 있다.","chatAppLink":{"when":"웹 채팅 앱(claude.ai, ChatGPT 등)처럼 페이지를 읽기만 하고 POST 요청을 보낼 수 없으면 이 방법을 쓴다. 단 재밋 커넥터(zaemit 도구)가 이미 연결돼 있으면 이 방법 대신 그 도구로 만든다. 방법은 하나만 고른다. 이 방법에서는 steps의 POST 요청과 커넥터 추가 안내를 쓰지 않는다. 가입, 커넥터, 설정 없이 대화만으로 된다.","doNot":["네가 직접 HTML, 웹페이지, 캔버스, 미리보기, 코드를 만들지 않는다. 시안은 재밋이 만든다. 직접 만들면 사용자는 사이트를 두 개 받고 시간도 몇 분 더 걸린다.","웹 검색이나 참고 사이트 조사를 하지 않는다. 사용자가 말한 내용만으로 기획한다.","재밋 커넥터 연결을 권하거나, 커넥터와 링크를 함께 쓰지 않는다."],"steps":["1. firstQuestion으로 한 번만 짧게 묻는다. 이미 말한 것은 다시 묻지 않는다.","2. 답을 바탕으로 메인 페이지 기획을 짧게 보여 준다. 메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다. 섹션마다 실제로 담을 제목, 설명, 항목을 쓴다. 사용자가 원한 분위기(예: 화려한 모션, 차분한, 고급스러운)는 tone에 그대로 담고 style에 가장 가까운 값을 고른다. 그다음 \"이대로 시안 링크를 만들까요?\"라고 묻는다.","3. 동의하면 format에 맞춰 시안 링크 하나를 만든다. 마크다운 링크 [재밋에서 시안 만들기](링크) 한 줄로 보여 주고, userMessage를 그대로 덧붙인다.","4. 사용자가 고칠 점을 말하면 내용을 고쳐 새 링크를 다시 만든다. 내 사이트로 이어서 만들고 싶다고 하면 시안 화면의 \"내 사이트로 이어 만들기\" 버튼을 누르라고 안내한다."],"format":{"url":"https://zaemit.ai/design/make# 뒤에 항목을 이어 쓴다.","name":"사이트 이름. 꼭 넣는다.","form":"homepage 또는 landing","lang":"사이트 언어. ko, en 등. 기본 ko","about":"하는 일, 대상, 사용자가 말한 사실을 한두 문장으로","tone":"분위기","colors":"palette 는 imageQueries 에 쓴 사진의 분위기(재질, 빛, 배경색)와 같은 계열로 1~3색을 고른다. 첫 색이 포인트색이다. 사진과 따로 노는 색은 쓰지 않는다. # 없이 쉼표로 잇는다. 예: 6B4226,F3E6D3","domain":"imageDomains 에는 사이트 업종에 맞는 사진 분야를 목록에서 1~2개 고른다. 목록에 없는 값은 쓰지 않는다. 맞는 분야가 없으면 비워 둔다. 쉼표로 잇는다. 목록: agriculture(농업 농장), auto(자동차 정비), beauty(미용 뷰티), community(지역 커뮤니티), consulting(컨설팅 자문), culture(박물관 미술관), ecommerce(쇼핑몰 이커머스), education(학원 교육), energy(에너지 태양광), entertainment(엔터 기획사), fashion(패션 의류), finance(금융 은행), fitness(헬스 피트니스), flower(꽃집 플라워), fnb(음식 식당), it-tech(소프트웨어 앱), legal(법무 변호사), life-service(생활 청소), manufacturing(제조 공장), medical(병원 의원), pet(반려동물 애완), public(공공 정부), realestate(부동산 아파트), sharing(공유 렌탈), sports(스포츠 체육), subscription(구독 정기배송), trading(무역 물류), travel(여행 관광), wedding(웨딩 결혼)","menu":"homepage일 때 앞으로 만들 페이지 이름. 쉼표로 잇는다.","style":"선택. minimal, rich, color, dark 중 하나","s":"섹션 하나. \"섹션이름:담을 문구\"로 쓰고 섹션마다 s를 반복한다. 적은 순서대로 배치한다. 섹션이름은 MainVisual, About, Service, Feature, WhyUs, Flow, Testimonial, FAQ, CTA, Contact 중에서 고르고 중복하지 않는다. 문구는 제목, 설명, 항목을 \" / \"로 나눠 실제 문장으로 쓴다."},"encoding":["항목은 &로 잇고 이름과 값은 =로 잇는다.","띄어쓰기는 +로 쓴다. 한글은 그대로 쓴다.","글자 그대로의 + & # % ( ) 는 %2B %26 %23 %25 %28 %29 로 쓴다. 줄바꿈은 쓰지 않는다.","링크 전체는 6000자 안으로 쓴다."],"example":"https://zaemit.ai/design/make#name=온기+베이커리&form=landing&lang=ko&about=동네+천연발효+빵집.+매일+아침+식빵과+캄파뉴를+굽고+예약+주문을+받는다&tone=따뜻하고+소박한&colors=6B4226,F3E6D3&domain=fnb&s=MainVisual:매일+아침+굽는+천연발효+빵+/+온기+베이커리가+동네의+아침을+엽니다+/+오늘의+빵+보기&s=About:빵집+이야기+/+긴+발효로+속이+편한+빵을+굽습니다+/+재료는+단순하게,+시간은+넉넉하게&s=Service:대표+빵+/+우유+식빵:+부드럽고+촉촉한+매일+식빵+/+캄파뉴:+겉은+바삭하고+속은+쫄깃한+시골빵+/+무화과+깜빠뉴:+무화과를+듬뿍+넣은+주말+한정+빵&s=WhyUs:온기+베이커리의+약속+/+천연발효종으로+천천히+/+당일+구운+빵만+판매+/+첨가물+없이+단순한+재료&s=FAQ:자주+묻는+질문+/+예약+주문은+어떻게+하나요?+전날+오후+6시까지+전화로+받습니다+/+빵은+어떻게+보관하나요?+당일은+실온,+이후는+잘라서+냉동해+주세요&s=Contact:찾아오시는+길+/+영업시간과+위치는+매장에+문의해+주세요+/+예약+문의하기","userMessage":{"ko":"위 링크를 누르면 재밋이 시안을 만들어요. 1분쯤 걸리고, 가입 없이 무료예요. 마음에 들면 시안 화면에서 파일로 받거나 내 사이트로 이어서 만들 수 있어요.","en":"Open the link above and Zaemit will build your draft in about a minute. It is free and needs no sign-up. From the draft page you can download it or continue it as your own site."},"rules":["사용자가 말하지 않은 숫자, 경력, 수상, 가격, 주소, 전화번호를 지어내지 않는다. 모르는 연락처는 \"문의하기\"처럼 쓴다.","링크는 사용자가 누른다. 네가 링크를 열거나 요청하려 하지 않는다.","링크 말고 JSON이나 코드 블록을 보여 주지 않는다.","링크는 한 번에 하나만 준다. 직접 만든 페이지를 함께 주지 않는다."]},"chatApps":"claude.ai나 ChatGPT에서 이어가려면 재밋 커넥터(https://zaemit.ai/mcp)를 추가하고 같은 계정으로 로그인해 이 사이트를 고른다.","requests":{"benchmark":{"method":"POST","path":"/design/benchmark","body":{"url":"https://example.com/"}},"sitePlan":{"method":"POST","path":"/design/site-plan","body":{"title":"다온 스튜디오","siteForm":"homepage","language":"ko","purpose":"브랜드 디자인 서비스를 소개하고 상담을 안내한다.","target":"소규모 브랜드 운영자","strengths":[],"tone":"차분하고 따뜻한","palette":["#234567","#E8C890"],"concept":"minimal","assumptions":["가정: 소개와 서비스 안내를 별도 페이지로 구성해요."],"questions":[{"header":"상담 방법","question":"상담은 어떤 방법으로 받으시나요?","multiSelect":false,"options":[{"label":"나중에 알려 줄게요(예시로 만들고 표시)","description":"상담 방법은 예시로 표시하고 나중에 바꿔요."},{"label":"전화","description":"전화로 상담할 수 있도록 안내해요."},{"label":"이메일","description":"이메일로 상담할 수 있도록 안내해요."}],"recommended":0}],"benchmarks":["https://example.com/"],"pages":[{"slug":"index","title":"홈","brief":"사이트 전체를 요약하고 소개와 서비스로 안내한다.","sections":[{"tag":"MainVisual","brief":"브랜드 디자인 서비스를 소개한다."},{"tag":"About","brief":"작업 방식을 요약한다."},{"tag":"Service","brief":"서비스를 안내한다."},{"tag":"FAQ","brief":"상담 준비 사항을 안내한다."},{"tag":"Contact","brief":"상담 방법을 안내한다."}]},{"slug":"about","title":"소개","brief":"작업 방식을 자세히 소개한다.","sections":[{"tag":"SubVisual","brief":"소개 페이지의 첫 화면을 구성한다."},{"tag":"About","brief":"브랜드의 이야기를 듣고 정리하는 과정을 설명한다."},{"tag":"Flow","brief":"상담부터 결과물 정리까지의 작업 방식을 설명한다."}]},{"slug":"services","title":"서비스","brief":"제공할 서비스를 안내한다.","sections":[{"tag":"SubVisual","brief":"서비스 페이지의 첫 화면을 구성한다."},{"tag":"Service","brief":"확인된 서비스의 범위를 설명한다."},{"tag":"FAQ","brief":"상담 준비와 작업 범위에 관한 질문에 답한다."}]}]}},"getSitePlan":{"method":"GET","path":"/design/site-plan/:id"},"replaceSitePlan":{"method":"PUT","path":"/design/site-plan/:id","body":"답을 반영한 SitePlanInput 전체. 답한 질문은 questions에서 뺀다."},"plan":{"method":"POST","path":"/design/plan","body":{"spec":{"title":"다온 스튜디오","siteForm":"homepage","pageContext":"소규모 브랜드 운영자에게 디자인 서비스를 소개하고 상담을 안내한다.","palette":["#234567","#E8C890"],"tone":"차분하고 따뜻한","concept":"minimal","language":"ko","sections":[{"tag":"MainVisual","brief":"브랜드 디자인 서비스를 소개하고 상담으로 안내한다."},{"tag":"About","brief":"브랜드의 이야기를 듣고 정체성을 정리하는 작업 방식을 설명한다."},{"tag":"Service","brief":"브랜드 진단, 로고 디자인, 패키지 디자인을 소개한다."},{"tag":"FAQ","brief":"상담 준비 자료와 작업 범위에 관한 질문에 답한다."},{"tag":"Contact","brief":"상담 전에 준비할 브랜드 소개와 원하는 작업 범위를 안내한다."}],"imageDomains":["consulting"]},"sitePlanId":"승인받은 site-plan 응답의 sitePlanId","seed":"studio"}},"handoff":{"method":"POST","path":"/design/handoff","body":{"previewId":"compose 응답의 previewId","purpose":"pages 또는 develop"},"poll":"응답의 pollUrl을 interval초마다 GET으로 확인한다. lang과 purpose 쿼리를 그대로 유지한다. ready의 연결 정보는 한 번만 전달된다."},"resume":{"method":"POST","path":"/design/resume","body":{"code":"사용자가 준 이어가기 코드"},"next":"ready이면 howToContinue.nextSteps를 따른다."},"download":{"method":"GET","path":"/design/download/:previewId"},"continue":{"method":"GET","path":"/design/continue/:previewId?purpose=pages|develop"},"previewImage":{"method":"GET","path":"/design/preview-image/:previewId"},"compose":{"method":"POST","path":"/design/compose","body":{"planId":"반환된 planId","texts":{"MainVisual":["브랜드의 이야기를 디자인합니다","다온 스튜디오","상담 안내"],"About":["브랜드를 이해하는 디자인","이야기를 듣고 방향을 정리합니다.","작업 방식"],"Service":["디자인 서비스","브랜드 진단","로고 디자인","패키지 디자인"],"FAQ":["자주 묻는 질문","무엇을 준비하나요?","브랜드 소개와 원하는 작업 범위를 준비합니다."],"Contact":["상담 안내","브랜드 소개와 원하는 작업 범위를 알려 주세요."],"Header":["다온 스튜디오","소개","서비스","상담"],"Footer":["다온 스튜디오","브랜드의 이야기를 함께 정리합니다."]},"imageQueries":{"About":{"subject":"logo sketches and color swatches spread across a wooden desk","scene":"a design studio with soft natural window light","mood":"calm, warm, and thoughtful","activity":"a designer reviewing printed logo concepts"}}}}},"exampleNote":"예시의 문구 개수는 설명용이다. 실제 plan 응답의 칸 수와 최대 길이에 맞춰 배열을 작성한다. 사진 칸이 있는 각 섹션에 imageQueries를 작성한다.","responses":{"benchmark":{"url":"요청한 공개 주소","finalUrl":"이동을 마친 공개 주소","title":"페이지 제목, 최대 60자","description":"페이지 설명 메타 정보","lang":"페이지 언어","menu":"헤더와 메뉴 안 링크 최대 20개. label, href, sameOrigin(같은 도메인 여부)을 반환한다.","subpageCandidates":"같은 도메인의 메뉴 링크 주소 최대 12개. 필요한 페이지만 골라 따로 분석을 요청한다.","sections":"섹션 순서와 제목(최대 60자), 사진 수, 입력 양식 유무, 카드 수, 글자 수와 높이를 반환한다. 본문 문장은 포함하지 않는다.","screenshot":"데스크톱 캡처 절대 주소. 최대 높이는 6000이며 캡처만 실패하면 이 필드는 없다."},"sitePlan":{"sitePlanId":"검사한 사이트 전체 기획안의 식별자. 사용자 승인 후 spec과 함께 plan에 전달한다.","revision":"처음 저장하면 1이며 같은 sitePlanId로 교체할 때마다 1씩 늘어난다.","expiresAt":"기획안은 처음 저장 후 7일 동안 보관하며 만료 시각은 ISO 문자열이다.","checks":"페이지마다 slug, pageKind(index는 main, 나머지는 sub), availableTags, dropped를 반환한다.","ok":"모든 페이지의 dropped가 비어 있으면 true다. false여도 기획안은 보관한다.","droppedHint":"사용할 수 없는 섹션 이름이 있으면 고쳐 다시 보낼 방법을 안내한다.","summary":"줄이거나 고쳐 쓰지 않고 그대로 보여 줄 짧은 요약과 페이지 구성 표다.","questions":"선택형 질문 기능에 한 번에 넣을 질문 목록이다. header, question, options(label, description), multiSelect를 포함하며 추천 선택지는 맨 앞에 있고 label 끝에 (추천)이 붙는다. 영어는 (Recommended)를 쓴다.","questionsText":"선택형 질문 기능이 없으면 그대로 보여 줄 번호 질문 목록이다. 질문이 없으면 빈 문자열이다.","userMessage":"summary와 questionsText를 합친 보조 안내문이다. 승인 전에는 만들지 않는다.","get":"GET /design/site-plan/:id는 sitePlanId, revision, updatedAt, plan, checks를 반환한다. updatedAt은 마지막 저장 시각이다."},"envelope":"성공 응답은 data, 실패 응답은 error.code와 error.message를 반환한다.","plan":{"planId":"compose에 전달하는 기획 식별자","expiresAt":"기획 만료 시각을 나타내는 ISO 문자열","sections":"본문 섹션 목록이며 key는 요청한 tag다.","textSlots":"문구 칸 목록이다. i는 texts 배열의 위치, role은 문구 역할, maxLength는 최대 글자 수다. sample은 원래 견본 문구의 공백을 접고 앞뒤 공백을 제거한 뒤 앞 40자이며 칸의 용도와 길이를 파악하는 데만 쓴다.","imageSlots":"섹션에 있는 사진 칸 수","header":"상단 문구 칸이다. texts.Header에 채운다.","footer":"하단 문구 칸이다. texts.Footer에 채운다.","dropped":"사용할 수 없어 제외된 섹션의 key 목록","availableTags":"이 pageKind의 후보 블록에 실제로 있는 섹션 태그다. 중복을 제거하고 정렬하며 Header와 Footer는 제외한다.","droppedHint":"dropped가 있을 때만 제공하는 외부 기획용 지침이며 사용자 안내 문구가 아니다."},"compose":{"previewId":"시안 식별자. 이어가기 요청에는 compose 응답의 previewId를 쓴다.","previewUrl":"사용자에게 전달할 미리보기 절대 주소","downloadUrl":"로그인 없이 HTML 파일 하나로 받는 주소. 기록 저장 실패 시 없다.","nextActions":"다운로드, 전체 페이지 이어서 만들기, 개발까지 요청하기의 세 선택. 기록 저장 실패 시 빈 목록이다.","userMessage":"사용자에게 그대로 전할 안내 문구.","screenshots":"desktop과 mobile의 JPEG 캡처 절대 주소다. 캡처 실패 시 비어 있다.","findings":"검토 결과 목록이다. kind는 종류, section은 해당 섹션, viewport는 해당 화면, message는 설명이다.","sections":"조립한 섹션의 key와 출처를 반환한다. source가 library면 라이브러리 사용, generated면 생성 섹션이다."},"shots":"GET /design/shots/:id로 JPEG를 받는다. 캡처는 저장 후 60분 동안 보관한다."},"slotRoles":{"heading":"제목","body":"본문 문장","button":"버튼 문구","label":"짧은 라벨","attr":"이미지 대체 텍스트"},"rules":["메인은 섹션 5~10개 안에서 업종과 내용에 맞게 정한다. 작은 가게나 서비스 하나면 5~6개, 서비스가 여럿인 회사는 8~10개. 서브페이지는 3~6개이고, 약관이나 문의처럼 짧은 페이지는 3개로 한다.","imageDomains 에는 사이트 업종에 맞는 사진 분야를 목록에서 1~2개 고른다. 목록에 없는 값은 쓰지 않는다. 맞는 분야가 없으면 비워 둔다.","사진 칸이 있는 섹션은 모두 imageQueries 를 쓴다. subject(찍힐 대상)·scene(장소와 빛)·mood(분위기)를 영어로 구체적으로 쓰고, 칸이 여럿이면 칸마다 다르게 쓴다. 사람이 주인공인 사진은 people: true.","palette 는 imageQueries 에 쓴 사진의 분위기(재질, 빛, 배경색)와 같은 계열로 1~3색을 고른다. 첫 색이 포인트색이다. 사진과 따로 노는 색은 쓰지 않는다.","벤치마킹은 메뉴 구성, 섹션 순서, 페이지 역할만 참고한다. 남의 문구, 사진, 상표를 옮기지 않는다.","만들면 안 되는 것은 확인할 수 없는 사실이다: 숫자(경력 연수, 고객 수, 수치 성과), 수상·인증, 실제 주소·전화·영업시간·가격, 실존 인물 이름과 후기. 이런 칸은 사실이 없으면 숫자 대신 짧은 문구를 쓰고, 매장 정보만 \"안내 예정\"으로 둔다.","그 밖의 내용은 시안답게 구체적으로 채운다. 그 업종에서 흔히 담는 내용(대표 메뉴·서비스 설명, 만드는 방식, 이용 흐름, 자주 묻는 질문과 답, 고객이 얻는 이점)을 실제 사이트처럼 쓰고 \"예시\", \"추후 안내\", \"준비 중\" 같은 문장으로 칸을 비우지 않는다. 문구 칸 하나에 한 가지 내용을 충분한 길이(maxLength 의 60% 이상)로 쓴다.","assumptions는 기록용이다. 가정은 목록으로 보여 주지 말고 추천 선택지가 있는 questions로 바꿔 묻는다.","질문은 한 번에 최대 4개다. header는 12자 이내이며 선택지는 2~4개로 쓴다. 추천 선택지를 맨 앞에 두고 recommended에 그 위치를 쓴다. 복수 선택이 필요하면 multiSelect를 true로 쓴다. 직접 입력은 선택 창에서 제공하므로 선택지에 넣지 않는다.","사용자가 모르는 정보(주소, 연락처 등)는 \"나중에 알려 줄게요(예시로 만들고 표시)\"를 추천 선택지로 둔다.","모든 문구 칸을 채운다.","각 문구는 maxLength 이하로 작성한다.","과장하거나 허위인 문구를 작성하지 않는다.","plan의 availableTags에서 섹션 이름을 고른다. dropped가 있으면 availableTags에서 비슷한 이름으로 바꿔 plan을 다시 요청한다. 서버는 이름을 자동 대체하지 않는다.","서브페이지 plan은 페이지마다 availableTags를 반환하고 어느 페이지든 dropped가 있으면 최상위 droppedHint를 반환한다.","imageQueries의 섹션별 값은 객체 또는 객체 배열(1~24개)이며 각 subject는 비어 있을 수 없다.","imageQueries 배열의 i번째 항목은 i번째 사진 칸의 설명이다. 칸 순서는 <img>, 본문 배경, CSS 배경, 샘플 영상이다. 배열이 짧으면 마지막 항목을 반복하고 길면 초과 항목을 버린다.","사진 칸이 여러 개면 칸마다 다른 설명을 배열로 보낸다. 예: {\"WhyUs\":[{\"subject\":\"baker kneading dough\"},{\"subject\":\"bread cooling on a rack\"}]}. 객체는 기존처럼 섹션 공통 설명으로 사용한다.","imageQueries 항목에 사람이 주요하게 나오는 사진이면 people: true 를 넣는다. 라이브러리에 맞는 사진이 없으면 새로 만들고, 만들지 못하면 스톡 사진으로 채운다.","textSlots 의 sample 은 그 칸의 원래 견본 문구다. 칸의 용도(로고, 메뉴, 숫자, 날짜, 장식용 큰 글자 등)와 길이를 파악하는 데만 쓰고, 사이트 내용에 맞게 새로 쓴다.","헤더의 로고 칸에는 사이트 이름을, 메뉴 칸에는 본문 섹션 이름을 쓴다. 숫자 칸에는 사실인 숫자만 쓰고 모르면 숫자가 아닌 짧은 문구로 바꾼다.","sections의 tag는 대소문자와 무관하게 중복하지 않는다."],"limits":{"preview":"시안 기록과 사진은 기본 7일 보관한다.","resumePerDay":"이어가기 코드 교환은 접속자별 하루 기본 30회다.","handoffPerDay":"로그인 연결 시작은 접속자별 하루 기본 20회다.","planId":"생성 후 60분 유효","sections":"본문 섹션 5~18개","planPerDay":"접속자별 하루 기획 30회, 한국 시간 자정에 초기화한다. 기본값이며 서버 설정에 따라 달라질 수 있다.","composePerDay":"접속자별 하루 조립 60회, 한국 시간 자정에 초기화한다. 기본값이며 서버 설정에 따라 달라질 수 있다.","composePerPlan":"기획 하나당 조립 15회가 기본값이다.","benchmarkPerDay":"접속자별 하루 참고 페이지 분석 20회가 기본값이다.","sitePlan":"사이트 전체 기획안은 페이지 1~12개, 페이지마다 섹션 1~18개이며 7일 보관한다. landing은 index 하나만 둔다.","concurrency":"참고 페이지 분석과 조립이 같은 동시 실행 한도를 공유하며 2건이 기본값이다.","queue":"대기열은 최대 8건, 최대 대기 시간은 60초가 기본값이다. 혼잡하면 Retry-After 이후 다시 요청한다."},"publish":"사이트 공개는 https://zaemit.ai 가입 후 진행한다.","sectionTags":["MainVisual","About","Service","Feature","WhyUs","Flow","Testimonial","FAQ","CTA","Contact"]}}