Caroselli Canva (구 carosello-aurum)
2026년 10월 13일부터 Davide는 레슨 1 슬라이드 스타일을 선호하며 모든 캐러셀에 이를 적용하려고 합니다. 캐러셀은
caroselli-claude스킬(Canva 아님)로 제작됩니다. 이 스킬은 Canva에서 캐러셀을 제작할 때만 사용합니다.
이전 방식(수동으로 복사한 Canva 템플릿, 사진 위 Anton 폰트 + 어두운 띠)을 대체합니다. 이전 방식은 릴 커버 ([[copertine-reel]])의 기준 스타일로는 유효하지만, 더 이상 캐러셀에는 사용하지 않습니다. 또한 전역 스킬 ig-carousel(Higgsfield/Nano Banana)도 대체합니다. 해당 스킬은 AI 이미지와 텍스트를 생성했지만, 더 이상 사용하지 않습니다.
이 스킬을 열기 전에 콘텐츠(텍스트, 연구 자료, 톤)는 [caroselli]에 설명된 대로 준비합니다: Davide에게 5-6개의 질문, 입증된 실제 연구, Davide를 '당신'으로 부르는 비인칭 어조('나' 사용 금지). 이 스킬은 여기서부터 시작하며 그래픽 제작만 담당합니다.
이 방식을 사용하는 이유
edit-design(릴 커버에 사용되는 도구)은 기존 요소를 정밀하게 수정하지만, 새로운 것에 대한 폰트나 레이아웃을 선택할 수 없습니다. create-design은 다릅니다. 서면 브리프를 보내면 Canva 자체 AI 엔진('Magic Design'과 동일)이 폰트, 레이아웃, 아이콘, 위계를 결정합니다. 결과는 각 슬라이드마다 다른 그래픽(십자선, 거대한 숫자, 체크리스트, 번호가 매겨진 원)이 있는 실제 디자인이며, 콜라주가 아닙니다. 단점: 항상 확인해야 할 결함이 있습니다 — 따라서 아래의 4단계는 선택 사항이 아닙니다.
1단계 — 브리프
하나의 텍스트 브리프(구조화된 개요 아님 — 개요는 design_type: presentation에만 유효하며, 여기서는 사용하지 않음)로 다음을 포함합니다:
- 형식:
"Instagram Post"(4:5, 1080x1350 제공 — 이 프로젝트에서 확인됨). - 톤: 중간 수준의 기사도/로마식 레지스터, 2026년 9월 25일 Davide와 확정 (연구 후) — 검투사/스파르탄은 피트니스/격투 업계에서 가장 진부한 클리셰(Gladiator Gym Gear, Spartan Race...)이며, 기사는 덜 사용되었고 [[cammino-guerriero]](Musashi/Bushido = 개인 규율, 군단의 대중 규율이 아님)와 일관됨. 아직 100% 확정되지 않음 — Davide가 두 레지스터를 모두 좋아하며 시간이 지남에 따라 '적절한 조합'을 찾고 싶다고 말함: 마지막 확인 이후 시간이 많이 지났다면 확인을 요청하고, 그렇지 않으면 동일한 조합(Anton/Roboto/OpenSauce, 검은 배경에 금색, 명시적인 투구/방패/글라디우스 없음, 로마 숫자와 같은 미묘한 디테일만)을 다시 제안.
- 색상: 검은색/앤트러사이트 배경, 흰색 텍스트, 밝은 금색 악센트 하나 (
#c29342–#d8af54범위, 슬라이드마다 약간씩 다름 — AI가 생성하므로 버그가 아니며 통일할 필요 없음). - 사진: 표지만 사진 있음 (Davide가 9월 24일 결정: 나머지 슬라이드는 그래픽/타이포그래피로 유지, 사진 없음 — 다양한 이미지를 관리할 필요 없음). 브리프에는 "표지만 사진이 있으며... 나머지 7페이지는 그래픽/타이포그래피이며 사진이 없습니다"라고 작성.
- 구조: 각 슬라이드를
페이지 N: ...로 레이블, 제목, 본문, 인용된 연구가 있는 경우 이탤릭체로 메모와 함께 나열. 마지막 페이지는 CTA '저장'(아이콘 + 두 줄, 4단계 참조)으로 마무리. - 스크롤 표시기: 모든 페이지에 페이지 표시기 "1/8"…"8/8" + 화살표 요청 (마지막 페이지 제외 — 이렇게 제공되며, 4단계에서 로마 숫자로 변환).
- 로고/핸들: 각 페이지에 작고 눈에 띄지 않게 "AURUM MILES".
이 브리프로 create-design 호출, 짧은 user_intent, outline 없음(Instagram Post, Presentation 아님).
2단계 — 생성 대기
create-design은 비동기식입니다. job_id + continuation_token 및 status: pending을 반환합니다.
- 첫 번째 폴 전에
polling_policy.wait_seconds(보통 10-15초)를 기다립니다. job_id+ 마지막continuation_token으로get-create-design-async-job을 호출합니다.status: completed가 될 때까지 반복합니다. 보통 4-6회, 대기 시간을 줄이지 마십시오 (동일한 응답이 동일하게 반환되며, 속도가 빨라지지 않음). 대기하려면Bash와sleep을 사용하고, 연속 호출은 피하십시오.- 결과는
design.id와design.url을 제공합니다. 이것이 확인 및 수정할 캐러셀입니다.
3단계 — 품질 관리 (항상, 예외 없음)
Davide에게 무엇이든 보여주기 전에 모든 페이지를 읽고(read-design, design_content에서 page_indices 없이 한 번에 모든 텍스트 확인) 다음 사항을 확인합니다:
a) 페이지의 물리적 순서
생성기가 때로는 각 슬라이드 위에 쓰여진 순서("N/8")와 다른 순서로 페이지를 생성합니다. 각 페이지의 텍스트를 해당 레이블과 비교하고, 슬라이드가 잘못된 위치에 있으면 다음을 사용하여 재정렬합니다:
merge-designs, type: modify_existing_design, operations: [{type: move_pages, from_page_numbers: [N], to_after_page_number: M}]
호출당 하나의 작업 — 도구는 여러 배치를 거부합니다.
b) 누락된 슬라이드
생성기가 때로는 브리프의 페이지를 건너뜁니다(이미 발생: 8페이지 대신 7페이지, 마무리 누락). 누락된 경우:
- 구조가 가장 유사한 페이지의
copy-design(예: '01'과 같은 테마별 유령 숫자가 있는 페이지 대신 마무리를 위한 마지막 '수정'). - 기존 로케이터에 대해
replace_text로 텍스트를 다시 작성합니다(제목에add_text를 사용하지 마십시오 — 생성기가 선택한 폰트를 잃게 됨, 아래 기술 노트 참조). - 더 이상 필요하지 않은 장식 요소(예: CTA가 되는 체크리스트 아이콘 행)를
delete_element로 삭제합니다. - 최종 CTA(아이콘 + 두 줄, 아래 참조)를 삽입합니다.
merge-designs→insert_pages로 페이지를 올바른 위치에 다시 삽입합니다.
c) 배경의 '유령' 텍스트
이 생성기의 반복적인 버그: 원본 텍스트(replace_text 이전)가 때로는 페이지의 배경 이미지에 '구워져' 남아 수정 가능한 텍스트 요소뿐만 아니라 렌더링에서 사라지지 않습니다. 제목이나 본문 뒤에 희미한 글씨로 보입니다.
수정: insert_shape로 단단한 사각형(path M0,0 H<w> V<h> H0 Z), 페이지 검은색에 가까운 색상(#0e0e0e 또는 #131110 사용 가능), 더러운 영역 전체 위에 배치 — 그런 다음 항상 동일한 로케이터에 대해 layer_element와 position: "back"을 사용하여 패치가 래스터 배경 위에 있지만 제목/본문/배지(별도 요소로 유지, 표시됨) 아래에 오도록 합니다. 유령이 더 아래(예: 목록 근처)에서 계속 보이면 resize_element로 패치를 확장하여 흔적이 남지 않을 때까지 — 렌더링으로 항상 확인한 후에 마무리로 간주합니다.
d) 일반적인 겹침 순서(z-order)
모든 새 요소(insert_shape, add_text)는 항상 맨 위 (앞)에 삽입됩니다. 기존 텍스트 뒤에 있어야 하는 항목(위의 패치와 같은)을 추가하는 경우 항상 layer_element: back이 필요합니다. 반대로, 기존 요소(로고, 제목, 페이지 번호)가 추가한 항목 뒤에 있다면 해당 요소에 layer_element: front를 사용합니다.
e) 로마 숫자 페이지 번호
생성기는 "1/8", "2/8"…을 생성합니다. "I / VIII", "II / VIII"… 마지막 페이지는 "VIII / VIII"로 바꿉니다. 로마 텍스트는 더 깁니다. 거의 항상 상자 크기를 늘리고(resize_element, width +100/150px) 왼쪽으로 재배치(position_element)해야 옆에 있는 작은 화살표를 침범하지 않습니다. 항상 같은 페이지에 있는 화살표 아이콘의 왼쪽 위치를 확인하고 번호 상자를 그 앞에 flush하게 배치합니다. 마지막 슬라이드에는 화살표가 없습니다 (더 이상 스크롤할 내용이 없음): "VIII / VIII"만 남기고 다른 것은 건드리지 않습니다.
f) 일관된 폰트
생성기는 요소마다 다른 폰트를 할당합니다. 새 요소나 기존 요소의 폰트를 선택할 수 없습니다 — 어떤 작업도 이를 허용하지 않습니다(format_text는 크기/두께/색상/이탤릭만 변경하며, 폰트 패밀리는 변경할 수 없음). 유일한 방법: Davide가 Canva( edit_url 링크)에서 텍스트를 선택하고 수동으로 폰트를 선택합니다. 요소당 한 번; 그런 다음 replace_text를 사용하여 다른 요소에 재사용합니다. replace_text는 항상 대상 요소의 폰트를 유지합니다. 새 캐러셀이 슬라이드 간에 일관되지 않은 폰트로 나오는 것은 정상입니다. Davide에게 이미 했던 동일한 빠른 작업(제목은 한 폰트, 본문은 다른 폰트, 작은 레이블은 세 번째 폰트)을 요청한 다음 크기/간격을 직접 수정하십시오.
g) 표지 사진
Davide가 자신의 사진을 보내면: create-upload-url (upload-asset-from-url 아님 — URL 필요) → 받은 일회용 URL로 파일 직접 POST → mediaId → 표지 사진 사각형에 update_fill. Canva의 자동 자르기는 일반적으로 세로 또는 정사각형 사진에서 이미 좋습니다. crop_media로 수동 조정하기 전에 렌더링으로 확인하십시오. 다른 슬라이드는 사진 없이 유지됩니다(1단계 참조).
4단계 — 최종 CTA (종료 슬라이드)
Davide와 확정된 표준(2026년 9월 22-25일), 매번 동일하게 재현:
- 북마크 아이콘(
insert_shape, pathM0,0 H34 V44 L17,30 L0,44 Z, 금색) CTA 첫 번째 줄과 같은 줄에, 위에 있지 않음. - 1행 (행동, 예: "SALVALO PRIMA DEL PROSSIMO SPARRING."): 대문자, 굵게, 이탤릭체 아님, 금색.
- 2행 (추가 내용, 예: "Mandalo a chi deve salire la prossima volta."): 첫 글자 외 소문자, 이탤릭체, 동일한 금색 — 한 단계 더 연하게. 텍스트 주의: 대상을 너무 좁게 제한하지 마십시오(예: 메시지가 초보자뿐만 아니라 링에 다시 오르는 모든 사람에게 적용되어야 하는 경우 "chi sale per la prima volta" 금지 — 특정 콘텐츠에 따라 다름, 첫 번째 초안이 너무 좁아 보이면 Davide에게 문의).
- 위 단락과 실제 세로 간격(~150px)으로 분리, 바짝 붙지 않음 — 그렇지 않으면 같은 문장의 연속으로 보입니다.
- 두 줄 = 두 개의 별도 텍스트 요소 (하나 안에
\n아님), 각각 다른 서식이 적용되기 때문.
5단계 — 전달
export-design, 형식png,width: 1080, height: 1350,pages없음(모두 함께) 3단계가 완료되면.- 각 PNG를 다운로드하여
Caroselli elaborati/AAMMGG_Titolo/1.png … 8.png에 저장(텍스트,slide_,caption_,note_와 같은 폴더 — [[caroselli]] 및 [[produzione-contenuti]] 참조). - 연락처 시트 또는 8개 이미지를 Davide에게 최종 확정 전에 보냅니다. 항상 수정 과정이 있으며, 첫 번째 내보내기에서 승인된 것으로 간주하지 마십시오.
- 게시 전 확인: 내보낸 PNG 수(N)를 세고 전달 메시지에서 Davide에게 게시 버튼을 누르기 전에 모든 N 슬라이드가 Instagram 대기열에 있는지 명시적으로 확인하도록 상기시킵니다(예: "N개의 슬라이드, 1.png...N.png입니다 — 게시하기 전에 모두 있는지 확인하세요"). 이미 발생한 일(#8 캐러셀)로, 업로드 중 누락으로 인해 한 슬라이드가 빠져 아무도 게시 전에 알아차리지 못했습니다. 그때는 결과에 영향을 미치지 않았지만 비용이 들지 않는 확인입니다.
- Davide의 승인 후에만:
memoria/wiki/log.md에 기록하고 [[caroselli]]의 상태를 업데이트합니다.
레이아웃 표준 — Davide가 2026년 10월 2일 #12에서 확정 (지금부터 모든 캐러셀에 적용)
#8 복제 후(아래 참조) Davide가 Canva에서 수동으로 수정한 일련의 세부 사항은 '헤더' 슬라이드(상단에 레이블 + 로마 숫자 + 화살표, 예: "Tecnica N")마다 동일하게 나타납니다. 다음은 즉시 적용해야 하는 고정 치수/기준이며, 슬라이드마다 다시 발견할 필요가 없습니다:
- 레이블과 정렬된 로마 숫자: 로마 숫자의
top은 옆에 있는 레이블("Tecnica 2", "Perché" 등)의top과 일치(또는 거의 일치)해야 하며, 더 위나 아래에 있으면 안 됩니다. 같은 줄, 같은 시각적 높이. - 화살표: 폰트/크기
~32-36px, 색상 항상#c29342(표준 금색, 아래 참조). 화살표는 로마 숫자 바로 뒤에 작은 깔끔한 간격(~15-20px)을 두고 배치, 바짝 붙지 않음. - 헤더 아래 가로 구분선: 있을 때(레이블 아래 줄이 있는 슬라이드), 거의 전체 너비(560-930px 정도)로 만들고, 짧은 선이 아닙니다. 레이블+번호 블록 전체 아래를 깔끔하게 자릅니다.
- 본문 텍스트 굵게: 본문 텍스트(제목, 인용문 아님)는
font_weight: bold여야 하며,normal/medium이 아닙니다. 검은 배경에서 더 풍부하고 읽기 쉽습니다. 연속적인 짧은 단락(예: "문장 1:" + "문장 2.")은 논리적으로 두 줄로 나뉜 하나의 문장인 경우 각각을 유지하는 대신 하나의 텍스트 요소로 결합할 수 있습니다. - 절대 흰색 사용 금지:
#ffffff는 흰색 텍스트와 "Aurum Miles" 로고에 대해#f1f1f1로 대체해야 합니다. 검은색에 대해 약간 덜 강합니다. - 최종 CTA (아이콘+2줄): 저장 아이콘과 텍스트 첫 번째 줄("SALVALO...")은 동일한
top(같은 줄, 아이콘이 더 높고 텍스트가 더 낮지 않음)을 공유하며, 아이콘 오른쪽 가장자리와 텍스트 시작 사이에 ~25-30px의 수평 간격을 둡니다.
확인된 버그: 이미지 채움 아이콘의 resize_element
우리 쪽에서 해결 불가: 이미지 채움 아이콘(화살표, 배지)을 API를 통해 크기 조정하면 크기가 조정되는 대신 잘립니다([[caroselli]]의 메모 참조). 더 작은 화살표/아이콘이 필요할 때 resize_element를 사용하지 마십시오: 기본 크기로 두고 위치에서 작업하거나, Davide가 Canva에서 수동으로 수정하는 경우 크기 조정이 잘 작동한다는 점에 유의하십시오(실제 편집기는 콘텐츠를 올바르게 확장하며, API 작업에만 버그가 있음). 이런 식으로 무언가가 손상되었다는 구체적인 신호: textAlign: end가 있는 텍스트 근처의 요소가 '뒤집힌' 것처럼 보이는 경우 — 깨진 아이콘 조각이 겹쳐진 것일 수 있으며, 텍스트 버그가 아닙니다.
산발적인 기술 노트 (매번 다시 발견할 필요 없음)
merge-designs: 호출당 하나의 작업, 항상.resize-design(이전 방법, Canva 템플릿 사용)은 제한된/체험판 사용 — 이 워크플로우에서는 더 이상 필요하지 않음,create-design이 이미 올바른 형식으로 생성함.- 버전을 보존해야 하는 경우… (잘림)
[기술 노트 메모 원본에서 잘림 — 번역 완료]