Communitygithub.com

Olexan-art/page-text-to-prompts

웹 페이지의 카피를 블록(히어로, 혜택, 작동 방식, 사용 후기, 가격, FAQ, CTA 등)으로 분할하고 블록당 재사용 가능한 프롬프트 1개를 작성합니다. 각 프롬프트는 다른 제품에 대해 동일한 유형의 텍스트를 작성하며, 이에 대해 검증된 예시를 포함합니다. 디자인은 무시하고 카피만 처리합니다. 사용자가 URL을 제공하고 랜딩 페이지의 카피를 분석하거나, 섹션별 프롬프트를 만들거나, 자신의 사이트에 유사한 블록을 작성하거나, 경쟁사 페이지의 작성 방식을 확인하려 할 때 사용합니다.

page-text-to-prompts란 무엇인가요?

이 스킬은 웹 페이지의 텍스트 카피를 구조화된 블록(히어로, 혜택, 작동 방식, 사용 후기, 가격, FAQ, CTA 등)으로 분할하고, 각 블록에 대해 재사용 가능한 프롬프트 1개와 검증된 예시를 생성합니다. AI 에이전트(Claude Code, Cursor, Codex 등)가 URL만 제공받아 랜딩 페이지의 카피를 역설계하거나, 경쟁사 페이지를 분석하거나, 자체 사이트에 유사한 텍스트 블록을 생성할 때 유용합니다. 디자인은 완전히 무시하며, 오직 텍스트 카피만 처리합니다. Node 22 이상이 필요하고 설치나 API 키가 필요 없으며, 공개된 웹 페이지에서만 작동합니다. 고유한 단어 사용 규칙(R2: 페이지의 6개 연속 단어 반복 금지)과 브랜드명 미사용 규칙(R3)을 엄격히 준수하여 표절을 방지합니다. 분석 결과는 'analysis.md'에 수동 입력하고, 빌드 스크립트가 자동으로 프롬프트와 예시를 생성합니다. 이 스킬은 마케팅, UX 라이터, 제품 관리자, 개발자 등이 경쟁사 벤치마킹이나 콘텐츠 템플릿을 만들 때 이상적입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Olexan-art/page-text-to-prompts/tree/HEAD/skills/page-text-to-prompts

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

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

문서

버전 1.008.

페이지 텍스트를 프롬프트로

목적

스크립트는 1개의 웹 페이지를 읽고 그 카피를 후보 블록으로 자릅니다. 사용자가 짧은 판단 파일을 작성하면, 빌드가 블록당 프롬프트와 측정된 예시로 변환합니다. 텍스트 전용: 1개의 공개 페이지, 데스크톱, 로그인 불필요, 캡차 우회 금지, 이미지 내 텍스트 미지원.

요구 사항

  • Node 22 이상. 설치 불필요, API 키 불필요. 이 스킬의 폴더에서 dist/ 디렉토리의 스크립트를 실행합니다.
  • 셸에서 네트워크 접근 가능.

규칙

  • R1. 사용자에게 먼저 아무것도 묻지 마십시오. URL만으로 충분합니다.
  • R2. 고유한 표현. 작성하는 어떤 줄도 페이지의 6개 연속 단어를 반복해서는 안 됩니다(대소문자 및 구두점 무시, overlap). 이는 모든 필드와 모든 예시에 적용됩니다.
  • R3. 사이트의 브랜드를 명명하지 마십시오: 도메인 이름, og:site_name (brand). 페이지의 어떤 이름도 사용하지 마십시오.
  • R4. analysis.md 및 모든 입력 파일은 셸 heredoc 대신 파일 쓰기 도구로 작성하십시오. 도구가 거부하는 경우(일부 환경에서는 서브에이전트가 .md 파일을 거부함), 다른 이름으로 파일을 작성하고 cp로 복사하십시오.
  • R5. 스크립트의 작업을 수동으로 다시 생성하지 마십시오. 단어나 문자 수를 세지 마십시오. 프롬프트를 작성하지 마십시오.
  • R6. 사실을 발명하지 마십시오. 러시아어 텍스트를 작성하지 마십시오. 스크립트는 어떤 모델도 호출하지 않습니다.

절차

아래의 모든 경로는 쓰기 가능한 곳이면 어디든 지정할 수 있습니다. work/는 기본값이지 규칙이 아닙니다.

  1. 읽기 (스크립트). node dist/read.mjs <url> --out work/page.json
    • 옵션: --no-render (소스 HTML만), --lang <코드> (초안 언어).
    • 결과: work/ 디렉토리에 brief.md (이것을 읽으십시오), analysis.md (초안, 후보당 1개의 헤더와 추정 유형 포함) 및 page.json (빌드용, 열지 마십시오). analysis.md가 이미 존재하면 초안은 analysis.draft.md에 기록됩니다.
    • brief.md는 요소당 1줄: 유형, 단어 수, 상태 (js_only, collapsed, not_in_a11y, 또는 ok인 경우 없음), 텍스트, 후보 bNN별로 그룹화됨. [g3#2]는 그룹 g3의 카드 2입니다.
    • 시간: 5~30초. 렌더링은 45초 후에 중단되고 HTML에서 읽기를 계속합니다.
    • 실패 시: REFUSED <코드> (종료 코드 2): 중단하고 사용자에게 알립니다(거부 코드 참조). 스크립트를 실행할 수 없는 경우(Node 22 없음, 셸 없음, 네트워크 없음), 1줄로 사용자에게 알리고 저장된 페이지 경로를 제안합니다.
  2. work/analysis.md 작성 (판단). 다음 섹션을 참조하십시오. 영어로 작성하거나 사용자가 요청한 언어로 작성하고 language:에 해당 코드를 입력합니다.
  3. 빌드 (스크립트). node dist/build.mjs work/page.json work/analysis.md --html work/report.html --md work/page-prompts.md --json work/page-prompts.json
    • 결과: 3개의 파일 및 checks: 5 of 5 passed. 범위를 벗어난 예시는 경고로만 처리됩니다.
    • 실패 시: REFUSED는 각 문제와 해당 검사를 나열합니다: overlap (R2), brand (R3), volume (단어 범위 없음), variables (선언되지 않은 {name}), blocks (후보 누락, 알 수 없음 또는 두 번 사용됨), schema (필드 누락 또는 허용되지 않은 값), 또는 읽을 수 없는 줄. 나열된 줄만 수정하고 빌드를 다시 실행하십시오.

analysis.md

brief.md에서 단어 수를 가져와 그 주변에 범위를 작성하십시오. 문자 범위는 생략하십시오.

language: en
example_product: a fictional booking app for small pilates studios
page_type: SaaS landing
audience: owners of small studios who take bookings by chat
awareness: comparing_solutions
tone: businesslike, warm; formality 2; you
promise: {product} gives {audience} {main_benefit} without {pain}.
logic: result and first step first, proof next, the steps before the prices
threads:
- the promise of no more calls returns in the hero, the steps and the closing call

## p01 hero | Hero | b01
role: say within five seconds what changes for the reader, and offer the first step
- eyebrow | 3-5 | the main change for the reader | No more booking calls
- h1 "Headline" | 7-11 | the result for {audience}, without the product's name | Clients reserve a reformer, and you stay with the class
- button | 2-4 | verb + object, the action {cta_action} | Set up bookings
- risk_line | 5-8 | {risk_remover} | Free to start, cancel at any time
techniques:
- Keep {product}'s name out of the headline; it first appears in the subheadline.
tone: businesslike, warm; you
avoid: "innovative"; a question as the headline

## p07 pricing | Pricing | b07
role: help the reader pick a plan and see the price fits the studio's size
- h2 | 4-8 | the price tied to the reader's size | Pay for the size you are
- 3 x plan "Plan":
  - h3 | 1-3 | the studio's size | Single room
  - price | 1-3 | {plan_n} | [price] / mo
  - items 3 | 2-6 | what is included, most important first | Self-service reservations / Client reminders / Card checkout
techniques:
- Name the plans after the studio's size, not after levels such as basic or pro.

허용되는 값 (빌드가 다른 값은 거부합니다):

  • awareness: unaware, problem_aware, comparing_solutions, product_aware, ready_to_buy.
  • 블록 유형: hero, social_proof_logos, problem, solution, features, benefits, how_it_works, use_cases, testimonials, case_study, stats, comparison, pricing, faq, guarantee, about, team, cta, lead_form, newsletter, other. other는 reason: 줄이 필요합니다.
  • formality: 1자리 숫자, 1~5 (보고서에는 "N of 5"로 표시되며 거부되지 않음).
  • language: ISO 코드; uk는 우크라이나어 프롬프트, 다른 코드는 영어 프롬프트를 제공합니다.
  • page_type: 자유 텍스트.
  • 변수: product, category, audience, language, pain, pain_n, main_benefit, benefit_n, feature_n, step_n, use_case_n, alternative, objection_n, cta_action; 사실 risk_remover, outcome_number, customer_count, customer_n, testimonial_n, plan_n, guarantee, deadline. 새 변수는 vars: 아래에 - name: what goes in 형식으로 선언하고, 사실인 경우 [fact]를 추가합니다.

필수: language, example_product, page_type, audience, awareness, promise, logic; 블록당 유형, 이름, role, 1개 이상의 요소, 1개 이상의 기법.

줄 형식:

  • 요소: 코드 "레이블" | 단어 수 | 필수 설명 | 예시. 필수 설명은 해당 프롬프트 줄이 됩니다.
  • 그룹: N x 코드 "레이블": 형식으로 들여쓰기된 자식 포함; 예시는 1개의 카드입니다. 그룹은 중첩되지 않습니다.
  • 목록: items N; 예시 항목은 /로 구분합니다.
  • 후보 결합: 헤더에 | b03 b04. 후보 삭제: 상단 근처에 drop: b10 <이유>.

가장 자주 위반되는 규칙:

  • 1개 블록, 1개 작업. 장식 텍스트(위젯 레이블, 카운터)는 생략하십시오.
  • 각 후보는 정확히 1개의 블록에 속하거나 삭제되어야 합니다. 후보를 분할할 수 없습니다.
  • 매우 큰 후보(예: 여러 하위 섹션이 있는 1,400단어 기사)는 1개의 블록으로 유지합니다: 반복되는 하위 섹션을 1개의 그룹으로 작성합니다(예: 5 x section "Section": 및 h3, text). 가장 가까운 유형 또는 other를 사용하십시오.
  • 기법은 지침이지 레이블이 아닙니다: "PAS 사용"이 아니라 "1문장으로 문제 명명, 두 번째 문장으로 비용, 세 번째 문장으로 {product}"와 같이 텍스트가 수행하는 작업만 설명합니다.
  • 예시는 1개의 가상 제품에 대한 블록입니다. 범위에 가까우면 충분합니다.

검증

  • 모든 후보가 1개의 블록에 속하거나 삭제되었습니다.
  • 최종 빌드에서 REFUSED가 출력되지 않았습니다.
  • work/report.html이 존재합니다.

보고서 표시

  • 사용자나 호출자가 게시 또는 열기를 금지한 경우, report.html이 존재할 때 중단하고 해당 경로를 제공합니다.
  • 그렇지 않으면, 이 세션이 HTML을 게시할 수 있으면 report.html을 게시합니다. 그렇지 않으면 절대 경로를 제공합니다.
  • 보고서는 EN / UK 전환 기능이 있는 영어로 열립니다. #lang=uk는 우크라이나어로 엽니다.

채팅 요약

  • 블록 수, 구조, 1~2개의 유용한 기법.
  • 중요한 가시성 참고 사항: JavaScript 이후의 텍스트, 접힌 FAQ 답변 등.
  • 모든 프롬프트를 붙여넣지 마십시오. 사용자가 1개의 블록에 대해 물은 경우, 해당 프롬프트와 예시를 표시합니다.
  • 한 번 말합니다: 블록과 표현은 사용자의 판단입니다. 레이어, 개수 및 검사는 스크립트의 결과입니다.

거부 코드

저장된 페이지 경로: node dist/read.mjs --file saved.html --url <주소> --out work/page.json

코드사용자에게 알림
invalid_url, blocked_scheme, blocked_host, blocked_address공개 웹 주소가 아닙니다.
unreachable, http_error, blocked사이트가 응답하지 않거나 자동화된 리더를 거부했습니다(blocked: HTTP 401, 403 또는 429). 저장된 페이지 경로를 제안합니다.
challenge캡차 또는 봇 검사입니다. 이를 우회하지 말고 저장된 페이지 경로를 제안합니다.
not_html, too_large, empty읽을 수 있는 웹 페이지가 아니거나 텍스트가 없습니다(아마 이미지).
refused_ru_domain, refused_ru_hosting, refused_ru_audience, refused_language_ru분석하지 않음: 러시아어 페이지, 또는 러시아의 도메인 영역에 있는 사이트, 러시아에서 호스팅되거나 러시아어 버전이 있는 사이트. 게시자의 결정.

참조

파일다음 경우에 읽기
references/block-types.md블록 유형이 확실하지 않을 때.
references/variables.md{variable}이 필요하거나 추가할 때.
references/analysis-schema.md전체 형식이나 JSON 형식이 필요할 때.

관련 스킬