Communitygithub.com

texopub-publish

사용자의 TexoPub 공간에 정적 HTML 웹사이트를 게시하거나 업데이트하거나 독립 파일을 업로드합니다. 연결된 클라우드 MCP 도구를 사용합니다. 사용자가 TexoPub 게시, 업데이트, 개인 자산 저장, 크리에이터 프로필, AI 파트너, 외부 사이트 카탈로그, 자산 권한, 목록 변경, 기본 설정, 영구 삭제를 요청할 때 사용하세요.

texopub-publish란 무엇인가요?

TexoPub 게시 스킬은 AI 에이전트가 사용자의 TexoPub 클라우드 공간에서 정적 웹사이트, 독립 파일, 외부 사이트를 관리할 수 있도록 지원합니다. MCP(모델 컨텍스트 프로토콜) 도구를 통해 제공되며, 로컬 파일 시스템 경로가 아닌 클라우드 기반 파일 핸들링을 사용합니다. 이 스킬은 Claude Code, Cursor, Codex 등 마키나(MCP)를 지원하는 모든 AI 에이전트 플랫폼에서 사용할 수 있습니다. 주요 기능으로는 새 웹사이트 게시(publish_website), 기존 웹사이트 업데이트, 독립 파일 업로드(upload_asset), 외부 사이트 카탈로그 등록(submit_website), AI 파트너 카드 등록/수정(upsert_ai_partner), 프로필 업데이트(update_my_profile), 목록 변경(set_work_listing), 퍼블리시 기본 설정(set_publish_preferences), 자산 가시성 변경(set_asset_visibility), 영구 삭제(delete_work) 등이 있습니다. 사용자는 OAuth로 연결되며 별도의 API 키나 검증 코드가 필요하지 않습니다. 스킬은 작업의 멱등성 키를 지원하여 재시도 시 안전하게 처리하며, 버전 충돌 시 현재 상태를 다시 읽어 중복 생성이나 변경 사항 손실을 방지합니다. 대규모 사이트는 단계적 업로드(prepare_upload → upload_file → commit_upload)를 지원하며, 최대 250개 파일, 100MiB 패키지 제한을 가집니다. 사용자가 명시적으로 요청하지 않는 한 웹페이지를 게시하거나 홈페이지를 활성화하지 않으며, 모든 작업은 사용자의 명시적 승인을 기반으로 합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/ivanliyuanning/texopub/tree/main/service/plugin/skills/texopub-publish

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

English instructions: https://texopub.com/for-ai/en/SKILL.md · English interface: https://texopub.com/?lang=en

TexoPub 클라우드 퍼블리싱

TexoPub MCP 도구를 사용하세요. 이 도구들은 클라우드에서 실행되며 로컬 파일 시스템 경로를 읽을 수 없습니다. 플러그인 연결은 사용자의 TexoPub 계정을 사용합니다. 패키지를 설치한다고 해서 퍼블리싱이 자동으로 승인되는 것은 아닙니다.

작업 선택

요청먼저 읽기쓰기/액션 도구
카테고리 또는 공개 작품 찾기list_categories; HTTP를 통한 공개 카탈로그퍼블리싱 불필요
자신의 공간/콘텐츠 식별get_my_space, list_my_works, get_work, list_my_materials변경 불필요
인간 이름/아바타/소개 변경get_my_profileupdate_my_profile
AI 파트너 카드 등록/변경get_my_profileupsert_ai_partner
호스팅된 정적 사이트 게시/업데이트list_categories; 업데이트 시 get_workpublish_website
기존 외부 사이트 카탈로그 등록/업데이트list_categories; 업데이트 시 get_worksubmit_website
독립 파일 업로드/업데이트업데이트 시 get_workupload_asset
대형 전체 사이트 게시inspect_files (배치 단위)prepare_upload → upload_file → commit_upload
기존 웹사이트 목록 변경get_workset_work_listing
향후 기본 목록 변경get_my_spaceset_publish_preferences
독립 자산 접근 권한 변경get_workset_asset_visibility
접근 종료 / 영구 삭제get_work각각 archive_work / delete_work

get_work는 소유한 콘텐츠만 읽으며, 초안/아카이브를 포함합니다. 임의의 공개 작품 리더가 아닙니다. 연결된 플러그인은 OAuth를 사용합니다. 별도의 API 키를 요구하거나 확인 코드/쿠키를 요청하지 마세요. 웹사이트는 읽기/표시 커뮤니티로, 인간 로그인, 홈페이지 옵트인 및 자격 증명 관리를 제공합니다. 콘텐츠 편집은 AI의 영역입니다.

목록 선택 및 영구 삭제

각 웹사이트 게시 전에 다음을 물어보세요: "展示在哪里?不展示 / 仅个人主页 / 公开展示(默认)". 기본값 제안을 위해 get_my_space.default_listing을 읽으세요. 사용자가 요청에서 이미 선택했거나 적용 가능한 지속적 지침을 제공했다면 다시 묻지 말고 따르세요. 제안된 기본값은 답변이 아닙니다. 답변이 필요할 때는 기다리세요. 초기 기본값은 public입니다. 사용자는 기존 작품을 변경하거나 홈페이지를 열지 않고 set_publish_preferences(default_listing)을 사용하여 기본값을 변경하도록 요청할 수 있습니다. 기본값만 변경하는 경우 게시 질문을 생략하지 않습니다.

  • listing: unlisted = 不展示 (소유자의 관리 컬렉션에서만)
  • profile = 仅个人主页 (활성화된 개인 홈페이지만)
  • public = 公开展示 (홈페이지 및 TexoPub 검색)

세 가지 모드 모두 URL과 종속성을 링크가 있는 모든 사람이 접근할 수 있도록 유지합니다. 이는 목록 제어이지 비공개 인증이 아닙니다. 독립 자산은 별도의 비공개/공개 접근 규칙을 유지합니다. 자동으로 개인 홈페이지를 활성화하지 마세요.

목록을 publish_website 또는 prepare_upload에 전달하세요. 목록을 생략한 업데이트는 기존 값을 유지합니다. 파일 업로드 없이 목록을 변경하려면 get_work를 읽은 후 set_work_listing(work_id, expected_version, expected_revision, listing)을 호출하세요.

영구 삭제가 명시적으로 요청된 경우 get_work를 읽은 후 delete_work(work_id, expected_version, confirm=true)를 호출하세요. 초안의 버전은 null일 수 있습니다. 삭제는 되돌릴 수 없습니다: 접근을 닫고, 모든 과거 버전과 다른 콘텐츠에서 사용하지 않는 파일을 제거하며, 완료 후 할당량을 해제합니다. deleted=false이면 deleted=true가 될 때까지 정확히 동일한 매개변수를 계속 사용하세요. 오류가 발생하면 동일한 매개변수로 재시도하세요. 조기에 성공을 보고하지 마세요. 작은 주소 흔적은 남아 있어서 이전 URL이 다른 사람의 미래 작업을 가리키지 않도록 합니다. archive_work는 접근만 닫고 기록/할당량을 유지하므로 영구 삭제가 아닙니다. 승인 후 폐기 가능한 테스트 게시물은 delete_work로 정리하세요.

웹사이트 게시

  1. 요청된 콘텐츠가 정적 웹사이트인지, 사용자가 게시를 요청했는지 확인하세요. 페이지를 만드는 것 자체가 게시 권한은 아닙니다. 자격 증명, 소스 연구, 관련 없는 파일을 업로드하지 마세요.
  2. list_categories를 읽어 유효한 2단계 category_id와 적절한 format을 선택하세요. 완전한 group.id/child.id 경로(예: technology/software)를 사용하고, 하위 ID인 software만 사용하지 마세요.
  3. 새 웹사이트의 경우, 주제에 맞는 전용 자체 포함 SVG 아이콘을 만들어 icon_svg로 전달하세요. 일반 플랫폼 아이콘은 작품별 아이콘이 아닙니다.
  4. publish_website를 사용하세요. 작은 자체 포함 페이지를 html로, 추가 텍스트 페이지/CSS/JS는 text_files로, 승인된 대화 파일은 attachment_paths와 일치하는 attachments로 전달하세요. 파일 값은 호스트의 파일 메커니즘을 통해 전달되어야 하며 sandbox: URL이나 로컬 경로가 아니어야 합니다. 상대 경로는 페이지 및 이미지 링크를 보존합니다. 모든 페이지 종속성을 포함하여 완전한 파일 세트를 제공하세요.
  5. 정확히 동일한 버전의 재시도를 위해 안정적인 idempotency_key를 사용하세요. 새로운 의도된 버전은 새 키가 필요합니다. 서버는 파일 바이트를 검증하고 전체 패키지가 준비된 후에만 커밋합니다.
  6. 실제 서비스 URL과 work_id/버전을 반환하여 후속 업데이트에 사용하세요. 테스트 없이 모바일 브라우저 또는 상호 작용 수락을 주장하지 마세요.

한 번 호출하는 publish_website는 아이콘/커버를 포함하여 최대 8개의 파일을 수락하며, 각각 25MiB, 총합 32MiB입니다. HTML은 2MiB로 제한됩니다. 완전한 MCP 요청 JSON은 3MiB로 제한되므로, 큰 인라인 텍스트도 단계적 게시가 필요합니다. 대규모 웹사이트의 경우 최대 8개 배치로 inspect_files를 사용하여 정확한 바이트 수와 SHA256 해시를 얻고, 매니페스트를 병합한 후 prepare_upload를 호출한 다음 파일당 한 번씩 upload_file을 호출하고 마지막으로 commit_upload를 호출하세요. 단계적 게시는 기존 250개 파일/100MiB 패키지 제한을 지원하며 모든 파일이 준비될 때까지 초안을 비공개로 유지합니다. 동일한 upload_id를 재시도 시 사용하세요. 서버 측 압축 해제가 필요한 ZIP 또는 컴파일이 필요한 프레임워크 소스 프로젝트가 아닌 추출된 정적 파일을 수락합니다. 사용 가능한 실행 환경에서 먼저 해당 프로젝트를 빌드/내보내세요. 참조된 파일을 플러그인에 전달할 수 없는 경우 작업을 보존하고 특정 파일 전달 문제를 설명하세요. 게시 성공을 주장하지 마세요.

플랫폼은 자체 제목/홈 바와 파비콘을 추가합니다. 작업은 자체 읽기 UI를 제어합니다. 중복 플랫폼 바를 추가하거나 플랫폼 헤더 오프셋을 예약하지 마세요.

기존 웹사이트 업데이트

list_my_works와 get_work를 사용하여 의도된 작업과 현재 버전을 찾으세요. 원래 slug, work_id, 현재 버전을 expected_version으로 전달하세요. 업데이트는 공개 URL을 유지합니다. publish_website의 경우에만 이전 작업별 아이콘은 icon_svg와 icon을 생략하여 재사용할 수 있습니다. 재사용된 아이콘은 여전히 8개 파일 제한에 포함됩니다. submit_website는 업데이트를 포함하여 항상 icon_svg가 필요합니다. prepare_upload는 아이콘 파일과 패키지 경로가 포함된 명시적 전체 매니페스트가 필요합니다. 버전 충돌 시 진행 전에 현재 상태를 검색하세요. 중복을 만들거나 변경 사항을 자동으로 덮어쓰지 마세요.

업데이트는 패치가 아닌 완전한 새 버전을 제출합니다. 유지된 모든 페이지/종속성 및 메타데이터를 포함하세요. 생략된 listing 및 ai_partners는 이전 값을 유지합니다. ai_partners: []는 크레딧을 지웁니다. 생략된 다른 필드가 보존된다고 가정하지 마세요: 요약/태그/형식은 기본값으로 돌아갈 수 있으며, 생략된 cover는 타이포그래피 대체를 사용합니다. 원래 커버 이미지와 경로를 다시 포함시켜 유지하세요. 도구는 CLI/REST에서 사용 가능한 모든 필드를 수락하지 않습니다. 예를 들어 submit_website에는 태그/라이선스 매개변수가 없습니다. 매개변수를 임의로 만들거나 지원되지 않는 필드가 유지되었다고 주장하지 마세요.

독립 파일

승인된 대화 파일과 함께 upload_asset을 사용하세요. 비공개 저장소의 경우 visibility를 생략하세요. 사용자가 공개 접근을 승인한 경우에만 visibility: public을 설정하세요. 비공개 자산 URL은 소유자 인증이 필요하며 익명 이미지 또는 다운로드 URL이 아닙니다. 공개 웹페이지에서 필요한 이미지는 해당 웹페이지의 파일 패키지에 포함되어야 합니다. 대체 버전을 업로드할 때는 의도된 visibility를 명시적으로 보내세요. 생략하면 이전 권한을 보장하지 않고 비공개를 사용합니다. 권한만 변경하려면 재업로드 없이 set_asset_visibility를 사용하세요.

계정 및 제거

get_my_space는 연결된 공간을 식별합니다. list_my_materials는 해당 파일을 나열합니다. archive_work는 접근을 닫고 기록 저장 공간 사용량을 유지합니다. 사용자의 제거 요청 시에만 사용하며, 현재 버전을 읽은 후에 사용하세요. 다른 게시자의 작업은 제거할 수 없습니다.

연결이 필요한 경우 호스트가 OAuth를 시작하고 사용자가 texopub.com에 로그인하도록 하세요. 사용자에게 비밀번호, 확인 코드, 게시 키 또는 쿠키를 대화에 붙여넣도록 요청하지 마세요. 연결은 https://texopub.com/api/oauth/connections 에서 해지할 수 있습니다.

크리에이터 아이덴티티 및 AI 파트너 (v0.3.0)

TexoPub은 인간과 AI의 공동 창작 커뮤니티입니다. 웹사이트는 콘텐츠를 표시하며, 편집은 AI가 수행합니다. 인간 로그인, 홈페이지 옵트인, API 키 발급 및 OAuth 승인은 웹사이트에서 유지됩니다.

update_my_profile 전에 get_my_profile을 사용하세요. 현재 expected_revision을 제공하고, 사용자가 요청한 필드만 변경하며, 충돌 시 다시 읽으세요. name: null은 안정적인 생성된 이름을 복원합니다. avatar_url: ""은 생성된 아바타를 복원합니다. bio: ""은 소개를 지웁니다. 사용자가 제공하거나 확인한 경우에만 소개를 추가하세요. 사용자 정의 아바타는 비공개 인증 파일 URL이 아닌 공개 HTTPS 이미지여야 합니다. 프로필 도구는 홈페이지를 활성화할 수 없습니다.

먼저 get_my_profile을 읽고 일치하는 클라이언트의 기존 파트너 키를 재사용하세요. upsert_ai_partner를 사용하여 소유한 파트너를 등록하거나 업데이트하세요: 안정적인 key, 확인된 application 이름, 해당 파트너의 현재 expected_revision(새 파트너는 0), 인간 프로필 개정판이 아닙니다. 생략된 이름은 애플리케이션 이름을 기본값으로 합니다. 사용자 요청에 포함된 경우에만 닉네임, 소개, 사용자 정의 아바타 또는 show_on_profile을 설정하세요. 이는 자체 보고된 아이덴티티이지 검증된 모델 귀속이 아닙니다.

실제 작업 참여자를 위해 ai_partners를 publish_website / prepare_upload에 전달하세요: [{"key":"codex","application":"Codex","contribution":"Implemented layout and interaction"}]. 현재 클라이언트에서 알려진 경우에만 model을 보고하세요. 알 수 없는 모델과 소개는 생략하세요. 단순 업로드는 저자가 아닙니다. 과거 작업 크레딧을 추론하지 마세요. 사용자가 확인한 과거 참여는 사용할 수 있지만, 파트너를 등록한다고 해서 이전 작업에 크레딧이 추가되지는 않으며 별도의 메타데이터 전용 크레딧 도구는 없습니다. 완전한 소스 패키지를 사용할 수 있는 경우 완전한 승인된 작업 업데이트를 사용하세요. 그렇지 않으면 작업을 보존하고 누락된 기능/소스를 설명하세요. 업데이트 시 생략된 배열은 기존 크레딧을 유지합니다. 빈 배열은 명시적으로 크레딧을 지웁니다. model 및 contribution은 각 작업 선언에 속하며 upsert_ai_partner에 속하지 않습니다. 파트너 도구를 통해 기존 파트너 표시 이름/아바타를 업데이트하세요. 게시 선언은 등록된 카드의 이름을 바꾸지 않습니다. 파트너는 프로필/공개 작업 크레딧 또는 명시적 show_on_profile: true 요청을 통해 활성화된 홈페이지에 나타납니다. false로 설정하면 독립 표시만 취소됩니다. 보이는 작업의 크레딧을 숨기지 않습니다. 파트너 아이덴티티 삭제 도구는 없습니다.

커버 생성은 선택 사항입니다. 패키지된 이미지 경로를 cover로 전달하거나 플랫폼의 제목/카테고리/아이콘 레이아웃 대체를 허용하세요. 사용자가 게시하기 위해 이미지를 생성하도록 요구하지 마세요.

기존 웹사이트 및 자산 권한

기존 공개 HTTPS 웹사이트에는 submit_website를 사용하세요. URL, 카테고리 및 전용 아이콘을 제공하세요. 원본 사이트의 파일을 복사하거나 호스팅을 변경하지 마세요. 업데이트는 원본 작업 아이덴티티와 현재 버전을 사용합니다.

set_asset_visibility는 get_work 후 소유한 독립 자산에만 사용하세요. 현재 버전/개정판을 전달하세요. 공개 접근은 사용자의 명시적 요청이 필요합니다. 이는 바이트를 교체하지 않고 권한을 변경합니다. 웹페이지의 종속성에는 적용되지 않습니다.

현재 기능 경계 및 검증

완전한 새 버전을 제출하지 않고 기존 작업의 제목/요약/커버/AI 크레딧만 변경하는 공개 도구는 없습니다. 플랫폼 소유자의 데이터베이스 유지 관리는 일반 플러그인 기능이 아닙니다. 메타데이터를 변경하기 위해 빈 HTML 대체를 만들거나 종속성을 잃지 마세요. 인간 프로필/파트너 카드, 목록 및 독립 자산 가시성은 직접 업데이트 도구가 있습니다.

만료된 업로드 초안은 24시간 후에 커밋할 수 없으며 저장 공간을 계속 차지합니다. 버전이 null인 사용되지 않은 새 작업은 영구 삭제할 수 있습니다. 게시된 작업에서 버려진 초안 버전 하나만 삭제하는 공개 작업은 없습니다. 초안을 정리하기 위해 게시된 전체 작업을 삭제하지 마세요.

쓰기 후 실제 프로필/작업을 다시 읽고 요청된 변경 사항, 버전, URL, 범위 및 크레딧만 확인하세요. 목록이 해제된 것은 자신의 콘텐츠에서, 프로필은 활성화된 홈페이지에서, 공개는 검색에서 확인하세요. 자산 접근 및 메타데이터도 확인하세요. 성공적인 도구 응답 또는 HTTP 200은 모바일 또는 상호 작용 수락의 증거가 아닙니다. 409 발생 시 현재 상태를 다시 읽으세요. 401/403 발생 시 의도된 연결/권한을 복원하세요. 일시적 오류는 동일한 멱등성 키/작업 매개변수로 재시도하세요. 반복된 실패는 무한 루프가 아닌 구체적인 보고서가 필요합니다.

관련 스킬