Version 1.008.
Seitentext in Prompts umwandeln
Zweck
Die Skripte lesen eine Webseite und zerlegen ihren Text in Kandidatenblöcke. Sie schreiben eine kurze Bewertungsdatei; das Build-Tool wandelt diese in einen Prompt und ein gemessenes Beispiel pro Block um. Nur Text: eine öffentliche Seite, Desktop, kein Login, kein Captcha-Bypass, kein Text in Bildern.
Voraussetzungen
- Node 22 oder neuer. Keine Installation, kein API-Key. Führen Sie die Skripte in
dist/aus dem Ordner dieser Fähigkeit aus. - Netzwerkzugriff von der Shell aus.
Regeln
- R1. Fragen Sie den Benutzer zuerst nichts. Eine URL reicht aus.
- R2. Eigene Worte. Keine Zeile, die Sie schreiben, darf 6 aufeinanderfolgende Wörter der Seite wiederholen, Groß-/Kleinschreibung und Interpunktion ignoriert (
overlap). Dies gilt für jedes Feld und jedes Beispiel. - R3. Nennen Sie nicht die Marke der Seite: Domainname,
og:site_name(brand). Verwenden Sie keinen Namen von der Seite. - R4. Schreiben Sie
analysis.mdund jede Eingabedatei mit dem Dateischreibwerkzeug, niemals mit einem Shell-Heredoc. Wenn das Werkzeug sich weigert (einige Umgebungen verweigern.md-Dateien von einem Unteragenten), schreiben Sie die Datei unter einem anderen Namen und kopieren Sie sie mitcp. - R5. Erstellen Sie die Arbeit der Skripte niemals von Hand nach. Zählen Sie keine Wörter oder Zeichen. Schreiben Sie keine Prompts.
- R6. Erfinden Sie keine Fakten. Schreiben Sie keinen russischen Text. Die Skripte rufen kein Modell auf.
Vorgehen
Jeder Pfad unten kann auf ein beliebiges beschreibbares Verzeichnis zeigen; work/ ist der Standard, keine Regel.
- Lesen (Skript).
node dist/read.mjs <url> --out work/page.json- Optionen:
--no-render(nur Quell-HTML),--lang <code>(Entwurfssprache). - Ergebnis: in
work/,brief.md(dies lesen),analysis.md(der Entwurf, 1 Überschrift pro Kandidat mit einem geschätzten Typ) undpage.json(für den Build; nicht öffnen). Wennanalysis.mdexistiert, geht der Entwurf nachanalysis.draft.md. brief.mdhat 1 Zeile pro Element: Typ, Wortanzahl, Status (js_only,collapsed,not_in_a11y, oder keiner fürok), Text, gruppiert nach KandidatbNN.[g3#2]ist Karte 2 der Gruppeg3.- Zeit: 5 bis 30 Sekunden. Der Render-Vorgang stoppt nach 45 Sekunden und das Lesen wird mit dem HTML fortgesetzt.
- Bei Fehler:
REFUSED <code>(Exit 2): Stoppen und Benutzer informieren (siehe Verweigerungscodes). Wenn die Skripte nicht ausgeführt werden können (kein Node 22, keine Shell, kein Netzwerk), den Benutzer in 1 Zeile informieren und die Route für gespeicherte Seiten anbieten.
- Optionen:
work/analysis.mdausfüllen (Bewertung). Siehe nächsten Abschnitt. Schreiben Sie auf Englisch oder in der vom Benutzer gewünschten Sprache, mit deren Code inlanguage:.- Build (Skript).
node dist/build.mjs work/page.json work/analysis.md --html work/report.html --md work/page-prompts.md --json work/page-prompts.json- Ergebnis: die 3 Dateien und
checks: 5 of 5 passed. Beispiele außerhalb ihres Bereichs sind nur Warnungen. - Bei Fehler:
REFUSEDlistet jedes Problem mit seiner Prüfung auf:overlap(R2),brand(R3),volume(kein Wortbereich),variables(nicht deklarierte{name}),blocks(fehlender, unbekannter oder doppelt verwendeter Kandidat),schema(fehlendes Feld oder unzulässiger Wert) oder eine Zeile, die nicht gelesen werden kann. Korrigieren Sie nur die aufgeführten Zeilen und führen Sie den Build erneut aus.
- Ergebnis: die 3 Dateien und
analysis.md
Übernehmen Sie die Wortanzahlen aus brief.md und schreiben Sie Bereiche darum. Lassen Sie Zeichenbereiche weg.
language: de
example_product: eine fiktive Buchungs-App für kleine Pilates-Studios
page_type: SaaS-Landingpage
audience: Inhaber kleiner Studios, die Buchungen per Chat entgegennehmen
awareness: comparing_solutions
tone: geschäftlich, warm; Formalität 2; Sie
promise: {product} gibt {audience} {main_benefit} ohne {pain}.
logic: Ergebnis und erster Schritt zuerst, dann Beweise, die Schritte vor den Preisen
threads:
- Das Versprechen, keine Anrufe mehr zu erhalten, taucht im Hero, in den Schritten und im abschließenden Call-to-Action wieder auf
## p01 hero | Hero | b01
role: Innerhalb von fünf Sekunden zeigen, was sich für den Leser ändert, und den ersten Schritt anbieten
- eyebrow | 3-5 | die wichtigste Änderung für den Leser | Keine Buchungsanrufe mehr
- h1 "Überschrift" | 7-11 | das Ergebnis für {audience}, ohne den Produktnamen | Kunden buchen einen Reformer, Sie bleiben bei der Klasse
- button | 2-4 | Verb + Objekt, die Aktion {cta_action} | Buchungen einrichten
- risk_line | 5-8 | {risk_remover} | Kostenlos starten, jederzeit kündbar
techniques:
- Lassen Sie den Namen von {product} aus der Überschrift; er taucht erst im Untertitel auf.
tone: geschäftlich, warm; Sie
avoid: "innovativ"; eine Frage als Überschrift
## p07 pricing | Preise | b07
role: Dem Leser helfen, einen Plan auszuwählen, und zeigen, dass der Preis zur Studiogröße passt
- h2 | 4-8 | der Preis, gebunden an die Größe des Lesers | Bezahlen Sie nach Ihrer Größe
- 3 x plan "Plan":
- h3 | 1-3 | die Studiogröße | Einzelraum
- price | 1-3 | {plan_n} | [Preis] / Mo.
- items 3 | 2-6 | was enthalten ist, das Wichtigste zuerst | Selbstbedienungs-Reservierungen / Kunden-Erinnerungen / Karten-Checkout
techniken:
- Nennen Sie die Pläne nach der Studiogröße, nicht nach Stufen wie Basic oder Pro.
Zulässige Werte (der Build lehnt andere ab):
awareness:unaware,problem_aware,comparing_solutions,product_aware,ready_to_buy.- Blocktyp:
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. Fürotherist eine Zeilereason:erforderlich. formality: 1 Ziffer, 1 bis 5 (der Bericht zeigt „N von 5“; wird nicht abgelehnt).language: ein ISO-Code;ukgibt ukrainische Prompts, jeder andere Code englische Prompts.page_type: Freitext.- Variablen:
product,category,audience,language,pain,pain_n,main_benefit,benefit_n,feature_n,step_n,use_case_n,alternative,objection_n,cta_action; Faktenrisk_remover,outcome_number,customer_count,customer_n,testimonial_n,plan_n,guarantee,deadline. Deklarieren Sie eine neue untervars:als- name: was hineinkommt, mit[fact]für eine Tatsache.
Erforderlich: language, example_product, page_type, audience, awareness, promise, logic; pro Block ein Typ, ein Name, role, 1 oder mehr Elemente, 1 oder mehr Techniken.
Zeilenformate:
- Element:
code "Beschriftung" | Wörter | muss | Beispiel.musswird zu dieser Zeile des Prompts. - Gruppe:
N x code "Beschriftung":mit eingerückten Kindern; das Beispiel ist 1 Karte. Gruppen verschachteln sich nicht. - Liste:
items N; trennen Sie Beispiel-Elemente mit/. - Kandidaten zusammenführen:
| b03 b04in der Kopfzeile. Einen entfernen:drop: b10 <Grund>in der Nähe des Anfangs.
Am häufigsten gebrochene Regeln:
- 1 Block, 1 Aufgabe. Lassen Sie dekorativen Text weg (Widget-Beschriftungen, Zähler).
- Jeder Kandidat gehört in genau 1 Block oder wird entfernt. Ein Kandidat kann nicht aufgeteilt werden.
- Ein sehr großer Kandidat (z. B. ein 1.400-Wörter-Artikel mit vielen Unterabschnitten) bleibt 1 Block: Schreiben Sie seine wiederholten Unterabschnitte als 1 Gruppe, z. B.
5 x section "Abschnitt":mith3undtext. Verwenden Sie den nächstgelegenen Typ oderother. - Techniken sind Anweisungen, keine Beschriftungen: nicht „verwendet PAS“, sondern „nennen Sie das Problem in 1 Satz, seine Kosten im zweiten, {product} im dritten“. Nur was der Text tut.
- Das Beispiel ist der Block für 1 fiktives Produkt. In der Nähe des Bereichs ist ausreichend.
Überprüfung
- Jeder Kandidat ist in 1 Block oder entfernt.
- Der finale Build hat kein
REFUSEDausgegeben. -
work/report.htmlexistiert.
Bericht anzeigen
- Wenn der Benutzer oder Aufrufer gesagt hat, nichts zu veröffentlichen oder zu öffnen, stoppen Sie, wenn
report.htmlexistiert, und geben Sie den Pfad an. - Andernfalls veröffentlichen Sie
report.html, wenn diese Sitzung HTML veröffentlichen kann; wenn nicht, geben Sie den absoluten Pfad an. - Der Bericht öffnet sich auf Englisch mit einem EN / UK-Schalter;
#lang=uköffnet ihn auf Ukrainisch.
Chat-Zusammenfassung
- Die Anzahl der Blöcke, das Grundgerüst, 1 oder 2 nützliche Techniken.
- Wichtige Sichtbarkeitshinweise: Nur Text nach JavaScript, eingeklappte FAQ-Antworten.
- Fügen Sie nicht jeden Prompt ein. Wenn der Benutzer nach 1 Block gefragt hat, zeigen Sie dessen Prompt und Beispiel.
- Sagen Sie einmal: Die Blöcke und der Wortlaut sind Ihre Lesart; die Ebenen, Zählungen und Prüfungen stammen von den Skripten.
Verweigerungscodes
Route für gespeicherte Seiten: node dist/read.mjs --file saved.html --url <Adresse> --out work/page.json.
| Code | Benutzer informieren |
|---|---|
invalid_url, blocked_scheme, blocked_host, blocked_address | Keine öffentliche Webadresse. |
unreachable, http_error, blocked | Die Seite hat nicht geantwortet oder automatisierte Lesegeräte abgelehnt (blocked: HTTP 401, 403 oder 429). Bieten Sie die Route für gespeicherte Seiten an. |
challenge | Ein Captcha oder Bot-Check. Nicht umgehen; bieten Sie die Route für gespeicherte Seiten an. |
not_html, too_large, empty | Keine lesbare Webseite oder kein Text (wahrscheinlich Bilder). |
refused_ru_domain, refused_ru_hosting, refused_ru_audience, refused_language_ru | Nicht analysiert: eine Seite auf Russisch oder eine Seite in der Domainzone Russlands, gehostet in Russland oder mit einer russischsprachigen Version. Entscheidung des Herausgebers. |
Referenzen
| Datei | Lesen, wenn |
|---|---|
references/block-types.md | Sie sich bei einem Blocktyp unsicher sind. |
references/variables.md | Sie eine {variable} benötigen oder eine hinzufügen. |
references/analysis-schema.md | Sie das vollständige Format oder die JSON-Form benötigen. |