Go Public
목표: 사용자가 당신과 함께 실행한 워크플로우가 누구나 사용할 수 있는 링크가 됩니다. 방문자가 링크를 열고, 입력값을 채우고, 실행 버튼을 누르면 동일한 종류의 결과를 얻습니다. 방문자는 계정이 필요 없습니다. 페이지는 페이지 자체에 포함된 작은 무료 일일 AI 할당량으로 작동합니다.
모든 작업은 이 스킬 폴더에 있는 share.py(Python 3, 표준 라이브러리)를 통해 이루어집니다. 아래에서 <skill>은 이 스킬의 폴더를 의미합니다.
1. 워크플로우 확정 (추측하지 말고 질문)
대화 내용을 바탕으로 3~6줄로 정리하여 사용자에게 보여주세요:
- 방문자가 제공하는 것: 각 입력(텍스트 박스, 한 줄 입력, 또는 목록 선택).
- 단계: 각 AI 호출을 순서대로, 그리고 그것이 무엇을 하는지 설명. 대부분의 워크플로우는 1~3단계입니다. 이 대화에서 실제로 작동했던 프롬프트를 사용하며, 대화 내용 없이도 이해할 수 있도록 작성합니다.
- 방문자가 얻는 것: 어떤 단계의 결과가 표시되는지.
- 제목과 낯선 사람이 이해할 수 있는 한 문장 설명.
사용자에게 확인 또는 수정을 요청하세요. 또한 페이지의 언어가 명확하지 않은 경우 어떤 언어로 할지 물어보세요.
비밀번호, 결제 또는 카드 정보, 일회용 코드를 요청하거나 다른 회사나 사람인 척하는 페이지를 만들지 마세요. 대화의 개인 데이터(이름, 이메일, 내부 번호)를 프롬프트나 예시에 넣지 말고, 가상의 예시를 사용하세요.
2. workflow.json 작성
사용자의 현재 폴더에. 형식:
{
"title": "회의록 → 후속 이메일",
"description": "회의에서 나온 대충 적은 메모를 붙여넣으세요. 결정 사항, 담당자, 짧은 후속 이메일을 얻습니다.",
"inputs": [
{"id": "notes", "label": "회의 메모", "type": "textarea", "placeholder": "지저분해도 괜찮습니다…"},
{"id": "tone", "label": "톤", "type": "select", "options": ["친근하게", "격식 있게"]}
],
"steps": [
{"id": "facts", "prompt": "결정 사항, 액션 아이템(담당자 — 작업 — 마감일) 및 미해결 질문을 나열하세요. 메모에 있는 내용만 사용하세요. 일반 텍스트, 마크다운 사용 금지.", "input": "{{notes}}", "show": true, "label": "결정된 사항"},
{"id": "email", "prompt": "{{tone}} 톤으로 150단어 미만의 후속 이메일을 작성하세요. 일반 텍스트, 마크다운 사용 금지.", "input": "{{facts}}", "show": true, "label": "후속 이메일"}
],
"examples": [{"label": "제품 싱크", "values": {"notes": "출시가 12월 2일로 연기됨, 결제 버그 때문. Raj가 금요일까지 버그 수정…", "tone": "친근하게"}}]
}
규칙:
type:textarea(기본값),text또는select(options필요). 입력은 필수이며,"required": false인 경우 선택 사항입니다.prompt,system또는input에서{{id}}는 입력값이나 이전 단계의 답변으로 대체됩니다. 방문자의 텍스트는input에, 지침은prompt에 넣습니다. 선택적system은 역할과 규칙을 설정합니다.show: true는 해당 단계를 출력합니다. 숨겨진 단계는 중간 작업에 적합합니다. 마지막으로 표시된 단계는 스트리밍됩니다.- 단계당
maxTokens, 기본값 800(페이지의 제한도 동일). - 항상 하나 이상의 예시를 제공하세요. 방문자는 클릭하여 입력 없이 페이지가 작동하는지 확인합니다.
- 답변은 일반 텍스트로 표시되므로
**굵게**는 별표로 표시됩니다. 표시되는 모든 단계의 프롬프트는 "일반 텍스트, 마크다운 사용 금지."로 끝나고, 목록에는 간단한 대시(-)를 사용하세요.
3. 확인하고 실제로 테스트
python3 <skill>/share.py check workflow.json
python3 <skill>/share.py try workflow.json # 예시 1을 실제 AI로 실행, 모든 단계 출력
낯선 사람의 입장에서 출력을 읽어보세요. 단계가 모호하거나, 틀렸거나, 너무 길면 프롬프트를 수정하고 try를 다시 실행하세요. 게시하기 전에 사용자에게 예시의 최종 출력을 보여주세요.
4. 빌드 및 게시
python3 <skill>/share.py build workflow.json page.html
python3 <skill>/share.py publish page.html
publish는 공개 링크를 출력합니다. 페이지 ID와 비공개 편집 토큰을 .go-public.json에 저장합니다(git 저장소인 경우 .gitignore에 추가). 사용자에게 알려주세요:
- 누구에게나 보낼 수 있는 링크;
.go-public.json은 나중에 페이지를 변경하거나 제거할 수 있는 파일이므로 보관하고 공유하지 말아야 한다는 점.
page.html을 직접 편집하지 마세요. workflow.json을 변경하고 다시 빌드하세요.
5. 나중에 변경 또는 제거
workflow.json을 편집한 후 같은 폴더에서 build와 publish를 다시 실행하세요: 동일한 링크, 새로운 내용. python3 <skill>/share.py delete는 페이지를 내립니다.
발생 시 솔직히 말해야 하는 제한 사항
- 각 페이지는 무료 일일 AI 할당량과 방문자당 속도 제한이 있습니다(
publish가 출력). 사용량이 많은 페이지가 할당량을 소진하면 그렇게 표시되고 다음 날 다시 작동합니다. - 사용자가 한도 증가 또는 사용량 확인 방법을 묻는 경우:
.go-public.json의claim_url을 통해 페이지를 클레임할 수 있습니다. 이메일을 입력하고 수신함에서 확인하면 페이지가 해당 계정의 할당량으로 실행됩니다. 사용자가 물어보거나 할당량이 소진된 경우에만 언급하세요. 모든 페이지에는 작은 "Made with OneTag · Report" 마크가 남아 있습니다. - 방문자는 페이지를 신고할 수 있습니다. 여러 사람이 신고한 페이지는 검토를 위해 오프라인으로 전환됩니다.
- 페이지는 외부 이미지, 글꼴 또는 라이브러리를 로드할 수 없으며 저장소나 로그인이 없습니다. 즉, 양식, AI 단계 및 결과만 있습니다.