May 27, 2026, 9:48 AM

This commit is contained in:
Paweł Domański
2026-05-27 07:48:02 +00:00
parent 2d40028939
commit 405d42209c
28 changed files with 0 additions and 0 deletions
+164
View File
@@ -0,0 +1,164 @@
**Checklistę treści SEO dla każdego etapu**
z Twojego modelu (Inicjacja → Badania → Porównywanie → Transakcja → Doświadczenie). Jest to *content checklist* (co tworzyć + jak to ułożyć na stronie), z domieszką kluczowych elementów onpage/technicznych, które wg wewnętrznych materiałów obejmują m.in. **title, meta description, indeksację, duplikację/canonical, paginację, structured data, architekturę informacji, mobilefirst i performance**.
W praktyce bazuje to na dopasowaniu treści do intencji (informacyjna / nawigacyjna / komercyjna / transakcyjna). [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/)
***
## 0) Wspólna „checklista bazowa” (dla KAŻDEJ treści, niezależnie od etapu)
* [ ] Zdefiniuj **intencję** strony (informacyjna / komercyjna / transakcyjna / nawigacyjna). [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/)
* [ ] Ustal **1 temat główny + klaster pytań** (PAA/FAQ) i zrób mapę H2/H3.
* [ ] Napisz unikalny **Page Title** i **Meta description** (Google może użyć opisu jako snippetu; opis ma streszczać i zachęcać) [\[developers...google.com\]](https://developers.google.com/search/docs/appearance/snippet)
* [ ] Zaplanuj **internal linking** (do treści z poprzedniego etapu + następnego etapu).
* [ ] Dodaj **structured data** tam, gdzie ma sens (FAQ/HowTo/Product/Review itp.) i przetestuj walidacją. [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
* [ ] Dopilnuj podstaw: **duplicate content / canonicalizacja / paginacja** (jeśli dotyczy).
* [ ] UX/SEO: linki z **opisowym tekstem** i crawlable (to typowy błąd w audytach).
* [ ] Mobilefirst i performance jako warunek „publish” (wewnętrznie opisywane jako wymóg/standard).
***
# 1) INICJACJA (Awareness / Informacyjne)
**Cel SEO:** złapać szeroki popyt, „problemaware” i edukację (dużo długiego ogona).
**Dominujące zapytania:** „co to jest…”, „jak działa…”, „dlaczego…”, „jak wybrać…”.
### Checklist: co publikować
* [ ] **Poradniki „co to jest / jak działa”** (definicje + przykłady zastosowań).
* [ ] **Artykuły problemowe** („Jak rozwiązać \[problem]?”) + sekcja „najczęstsze błędy”.
* [ ] **Glossary / słownik pojęć** (krótkie definicje → linki do poradników).
* [ ] **Checklisty startowe** („Jak zacząć z \[kategoria] w 30 min”).
* [ ] **FAQ/kompendium** (pod PAA i szybkie odpowiedzi).
* [ ] **Infografika/wideo** wspierające (łatwe do udostępniania). (Praktyka „awareness content” jako przewodniki/edukacja pojawia się w opisach lejka). [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[searchengi...ournal.com\]](https://www.searchenginejournal.com/write-content-sales-funnel-stage/258359/)
### Checklist: jak ułożyć stronę (onpage)
* [ ] Pierwsze 23 akapity odpowiadają wprost na pytanie („TL;DR”).
* [ ] H2 = pytania użytkownika („Jak…”, „Czy…”, „Ile…”, „Kiedy…”).
* [ ] Sekcja „Co dalej?” → link do **Badania** (rankingi / przewodnik zakupowy).
* [ ] Dodaj **FAQ schema** (jeśli masz wyraźne Q/A). [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
### KPI (orientacyjnie)
* [ ] Impressions + CTR na frazach informacyjnych
* [ ] Udział w ruchu nonbrand (widoczność)
***
# 2) BADANIA (Consideration / „komercyjna analiza”)
**Cel SEO:** pomóc w wyborze opcji, zbudować zaufanie, „shortlist”.
**Dominujące zapytania:** „najlepszy…”, „ranking…”, „opinie…”, „polecane…”.
### Checklist: co publikować
* [ ] **Rankingi / listy TOP** („Najlepsze \[kategoria] 2026”).
* [ ] **Przewodniki zakupowe** („na co zwrócić uwagę przy wyborze…”).
* [ ] **Recenzje ogólne kategorii** („które typy / warianty są dla kogo”).
* [ ] **Porównania segmentów** („budżetowe vs premium”, „dla X vs dla Y”).
* [ ] **Checklisty kryteriów** (do pobrania / do skopiowania).
* [ ] **Case studies / zastosowania** (gdy to B2B/SaaS) typowe dla etapu consideration. [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[searchengi...ournal.com\]](https://www.searchenginejournal.com/write-content-sales-funnel-stage/258359/)
### Checklist: jak ułożyć stronę (onpage)
* [ ] Wyraźne kryteria oceny (sekcja „Metodologia rankingu”).
* [ ] Tabela porównawcza + „dla kogo” przy każdym wariancie.
* [ ] Linki do **Porównywanie** (porównania 1:1) oraz do stron produktowych (Transakcja).
* [ ] Jeśli są elementy recenzji/ocen → rozważ właściwe structured data (np. Review/Rating tam, gdzie zgodne z zasadami i masz realne dane). [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
### KPI
* [ ] Ruch na frazach „best/ranking/opinie”
* [ ] Przejścia do porównań i stron produktowych
***
# 3) PORÓWNYWANIE (Commercial Investigation / „X vs Y”)
**Cel SEO:** domknąć decyzję poprzez konkret: funkcje, koszty, ograniczenia, ryzyka.
**Dominujące zapytania:** „X vs Y”, „różnice”, „który lepszy”, „alternatywy”.
### Checklist: co publikować
* [ ] **Porównania 1:1** (X vs Y) + werdykt dla różnych profili użytkowników.
* [ ] **„Alternatywy dla X”** (z powodami migracji/wyboru).
* [ ] **„Najczęstsze pytania przed zakupem”** (koszty, gwarancje, kompatybilność).
* [ ] **Kalkulatory / konfiguratory** („ile to kosztuje przy moim scenariuszu”).
* [ ] **Dema / walkthrough** (wideo + transkrypcja na stronie).
* [ ] „Mid-funnel” treści typu porównania / case studies są wskazywane jako typowe w tej fazie lejka. [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[searchengi...ournal.com\]](https://www.searchenginejournal.com/write-content-sales-funnel-stage/258359/)
### Checklist: jak ułożyć stronę (onpage)
* [ ] Stała sekcja: „Różnice w skrócie” + potem szczegóły.
* [ ] Tabela: funkcje / koszty / ograniczenia / dla kogo.
* [ ] Widoczne CTA „Sprawdź cenę / dostępność” → **Transakcja**.
* [ ] FAQ z obiekcjami („Czy X działa z…”, „Czy Y ma…”) + schema. [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
### KPI
* [ ] CTR na frazach „vs / alternatywy”
* [ ] Kliknięcia w CTA do transakcji, scroll depth
***
# 4) TRANSAKCJA (Decision / Transactional)
**Cel SEO:** maksymalizować konwersję, widoczność na „kup teraz”, „cena”, „dostępność”.
**Dominujące zapytania:** „kup”, „cena”, „promocja”, „gdzie kupić”, „dostępność”, „lokalnie”.
### Checklist: co publikować
* [ ] **Strony produktowe/landing pages** (jednoznaczny value prop + spec).
* [ ] **Strony „cennik / pakiety”** + porównanie planów.
* [ ] **„Gdzie kupić / dostępność / lokalizator”** (jeśli retail).
* [ ] **Promocje** (jeśli uzasadnione) najlepiej jako evergreen „jak działają rabaty” + aktualizacje.
* [ ] **Strony kategorii** z filtrami (ale dopilnuj paginacji/canonical).
### Checklist: jak ułożyć stronę (onpage + techniczne minimum)
* [ ] Title i opis „transakcyjny” (jasno: co, dla kogo, korzyść) snippety mogą być generowane z treści i/lub meta description. [\[developers...google.com\]](https://developers.google.com/search/docs/appearance/snippet)
* [ ] **Structured data** (Product/Offer/Breadcrumb zależnie od typu strony) i test walidacją. [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
* [ ] Linki „dodaj do koszyka / kontakt / demo” są crawlable i mają opisowy tekst (typowy problem w audytach).
* [ ] Mobilefirst i performance jako warunek publikacji (wymóg w ujęciu „SEO templates + performance budgets”).
### KPI
* [ ] CR (conversion rate), revenue/leads z organic
* [ ] Widoczność na frazy „cena/kup/dostępność”
***
# 5) DOŚWIADCZENIE (Retention / Postpurchase)
**Cel SEO:** wsparcie po zakupie + redukcja ticketów + upsell/crosssell + lojalność.
**Dominujące zapytania:** „jak używać”, „problem z…”, „instrukcja”, „serwis”, „akcesoria”.
### Checklist: co publikować
* [ ] **Centrum pomocy / Knowledge Base** (artykuły 1 problem = 1 strona).
* [ ] **Instrukcje / Howto** (krok po kroku) + grafiki + wideo + transkrypcja.
* [ ] **Troubleshooting** („błąd X”, „nie działa Y”) z jasnymi krokami.
* [ ] **FAQ posprzedażowe** (gwarancja, zwroty, serwis).
* [ ] **Akcesoria / rozszerzenia / „co jeszcze warto”** (crosssell).
* [ ] Ten etap w lejku bywa opisywany jako retention/loyalty: treści wsparciowe + pogłębiające relację. [\[searchengi...ournal.com\]](https://www.searchenginejournal.com/write-content-sales-funnel-stage/258359/), [\[blog.hubspot.com\]](https://blog.hubspot.com/marketing/content-for-every-funnel-stage)
### Checklist: jak ułożyć stronę (onpage)
* [ ] „Szybka odpowiedź” na górze + kroki poniżej (najpierw rozwiązanie, potem tło).
* [ ] Sekcja „Powiązane artykuły” (silne linkowanie wewnętrzne).
* [ ] HowTo/FAQ schema tam, gdzie pasuje + walidacja. [\[umarcomm.umn.edu\]](https://umarcomm.umn.edu/blog/2025/10/03/how-use-structured-data-stand-out-google)
* [ ] Meta description opisuje konkretny problem i efekt („Napraw… w 5 krokach”). [\[developers...google.com\]](https://developers.google.com/search/docs/appearance/snippet)
### KPI
* [ ] Ruch na frazy problemowe + spadek zgłoszeń (jeśli mierzysz)
* [ ] Powroty użytkowników / repeat visits
***
## Bonus: szybka mapa „rodzaj wyszukiwania → format treści”
* **Styczne/problemowe** → poradniki, definicje, howto, FAQ (Inicjacja). [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/)
* **Kategoria** → przewodniki zakupowe, rankingi (Badania). [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/)
* **Konkurencja/porównania** → X vs Y, alternatywy, kalkulatory (Porównywanie). [\[hashmeta.com\]](https://hashmeta.com/blog/how-to-create-content-for-each-stage-of-the-search-funnel/), [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/)
* **Transakcyjne** → product/offer/pricing, gdzie kupić (Transakcja). [\[semrush.com\]](https://www.semrush.com/blog/types-of-keywords-commercial-informational-navigational-transactional/), [\[developers...google.com\]](https://developers.google.com/search/docs/appearance/snippet)
* **Posprzedażowe** → KB, troubleshooting, instrukcje (Doświadczenie). [\[searchengi...ournal.com\]](https://www.searchenginejournal.com/write-content-sales-funnel-stage/258359/), [\[blog.hubspot.com\]](https://blog.hubspot.com/marketing/content-for-every-funnel-stage)
+311
View File
@@ -0,0 +1,311 @@
### Diagram: Customer Journey + checklisty SEO (highlevel)
```mermaid
flowchart LR
A[Inicjacja<br/>Awareness] --> B[Badania<br/>Consideration]
B --> C[Porównywanie<br/>Evaluation]
C --> D[Transakcja<br/>Decision]
D --> E[Doświadczenie<br/>Retention]
subgraph S1["Inicjacja SEO"]
A1["Poradniki: co to jest / jak działa"]
A2["Treści problemowe"]
A3["FAQ / Glossary"]
A4["Checklisty startowe"]
end
subgraph S2["Badania SEO"]
B1["Rankingi TOP"]
B2["Przewodniki zakupowe"]
B3["Opinie / Recenzje"]
B4["Case studies"]
end
subgraph S3["Porównywanie SEO"]
C1["X vs Y"]
C2["Alternatywy"]
C3["Tabele porównawcze"]
C4["Kalkulatory"]
end
subgraph S4["Transakcja SEO"]
D1["Strony produktowe"]
D2["Cenniki / Pakiety"]
D3["Gdzie kupić"]
D4["Landing pages"]
end
subgraph S5["Doświadczenie SEO"]
E1["Instrukcje How-To"]
E2["Troubleshooting"]
E3["Knowledge Base"]
E4["Cross-sell / Up-sell"]
end
A --> A1
A --> A2
A --> A3
A --> A4
B --> B1
B --> B2
B --> B3
B --> B4
C --> C1
C --> C2
C --> C3
C --> C4
D --> D1
D --> D2
D --> D3
D --> D4
E --> E1
E --> E2
E --> E3
E --> E4
```
***
### Wariant alternatywny (jeśli chcesz **czystszy diagram pod README / GitHub**)
Bez `<br/>`, tylko ASCII — **najmniej awaryjna wersja**:
```mermaid
flowchart LR
Inicjacja --> Badania --> Porownywanie --> Transakcja --> Doswiadczenie
Inicjacja --> I1["Poradniki"]
Inicjacja --> I2["FAQ"]
Inicjacja --> I3["Problemy"]
Badania --> B1["Rankingi"]
Badania --> B2["Przewodniki"]
Badania --> B3["Opinie"]
Porownywanie --> P1["X vs Y"]
Porownywanie --> P2["Alternatywy"]
Transakcja --> T1["Produkt"]
Transakcja --> T2["Cena"]
Transakcja --> T3["Kup teraz"]
Doswiadczenie --> D1["Instrukcje"]
Doswiadczenie --> D2["Pomoc"]
```
## Diagram Mermaid: AI Content Ops dla SEO (per etap)
```mermaid
flowchart TB
%% =========================
%% AI SEO CONTENT OPS PIPELINE
%% =========================
subgraph G["Globalne bramki QA (AI) - obowiazkowe dla kazdej strony"]
G1["Meta: Title + Description (unikalne, zgodne z intencja)"]
G2["On-page: H1/H2, odpowiedz na intencje, linkowanie wewn."]
G3["Tech: indexing, duplicate content, canonical, pagination"]
G4["Structured Data: FAQ/HowTo/Product/Review (gdy pasuje)"]
G5["UX: link text opisowy + crawlable"]
G6["Mobile-first + performance budzet"]
end
subgraph P["AI Pipeline (jedna iteracja)"]
P0["Brief: etap + persona + intencja + KPI"]
P1["Research: SERP intents + PAA/FAQ + konkurencja"]
P2["Plan: outline H2/H3 + mapa linkow (prev/next etap)"]
P3["Draft: wersja 1 (z sekcja TLDR)"]
P4["On-page pass: meta + naglowki + internal links"]
P5["Schema pass: dobierz i wygeneruj JSON-LD"]
P6["QA pass: zgodnosc z bramkami G1-G6"]
P7["Publish: URL + breadcrumbs + monitoring"]
P8["Measure: GSC/GA sygnaly + refresh plan"]
P0 --> P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7 --> P8
end
%% =========================
%% CUSTOMER JOURNEY STAGES
%% =========================
subgraph J["Customer Journey - etapy i AI deliverables"]
A["Inicjacja (Awareness)"]
B["Badania (Consideration)"]
C["Porownywanie (Evaluation)"]
D["Transakcja (Decision)"]
E["Doswiadczenie (Retention)"]
A --> B --> C --> D --> E
end
%% =========================
%% PER-STAGE CONTENT OUTPUTS
%% =========================
subgraph OA["AI Output: Inicjacja"]
A1["Content types: definicje, poradniki, problem->rozwiazanie, FAQ/glossary"]
A2["Prompt focus: wyjasnij prosto, nie sprzedawaj, edukuj"]
A3["Schema: FAQ / HowTo (jesli krok po kroku)"]
end
subgraph OB["AI Output: Badania"]
B1["Content types: rankingi, przewodniki zakupowe, recenzje, case studies"]
B2["Prompt focus: kryteria wyboru, metodologia, rekomendacje dla person"]
B3["Schema: FAQ; (opcjonalnie) Review gdy masz realne dane"]
end
subgraph OC["AI Output: Porownywanie"]
C1["Content types: X vs Y, alternatywy, tabele, kalkulatory, demo/walkthrough"]
C2["Prompt focus: roznice, trade-offs, dla kogo co, obiekcje"]
C3["Schema: FAQ; (opcjonalnie) HowTo dla konfiguracji"]
end
subgraph OD["AI Output: Transakcja"]
D1["Content types: product/landing, pricing, gdzie kupic, kategorie z filtrami"]
D2["Prompt focus: jasne value prop, CTA, dostepnosc, warunki"]
D3["Schema: Product/Offer/Breadcrumb (gdy dotyczy)"]
end
subgraph OE["AI Output: Doswiadczenie"]
E1["Content types: KB, instrukcje, troubleshooting, akcesoria/upsell"]
E2["Prompt focus: szybka diagnoza, kroki naprawy, linki do powiazanych"]
E3["Schema: HowTo / FAQ"]
end
%% =========================
%% WIRING PIPELINE TO STAGES
%% =========================
A -. "AI iteracja P0-P8" .-> P0
B -. "AI iteracja P0-P8" .-> P0
C -. "AI iteracja P0-P8" .-> P0
D -. "AI iteracja P0-P8" .-> P0
E -. "AI iteracja P0-P8" .-> P0
A --> OA
B --> OB
C --> OC
D --> OD
E --> OE
%% QA gates referenced by pipeline
P6 --> G1
P6 --> G2
P6 --> G3
P6 --> G4
P6 --> G5
P6 --> G6
```
***
## Co dokładnie jest “AIready” w tym diagramie (krótko i konkretnie)
1. **Jednolity pipeline P0P8** (agent robi zawsze te same kroki), a etap (AE) jedynie **zmienia brief i outputy**.
2. Masz wprost wpisane bramki jakości, które w materiałach wewnętrznych przewijają się jako SEO musthave (duplicate/canonical/pagination/structured data/IA/perf/mobile).
Diagram jest:
* ✅ parsowalny
* ✅ bez znaków problematycznych
* ✅ nadaje się do README / dokumentacji systemowej
* ✅ logicznie spójny z poprzednim diagramem (pipeline + QA gates)
***
## Diagram 2: AI Agent Router (Sequence Diagram)
```mermaid
sequenceDiagram
autonumber
participant HQ as HQ / Orchestrator
participant R as ResearchAgent
participant O as OutlineAgent
participant W as WriterAgent
participant S as SEOAgent
participant C as SchemaAgent
participant Q as QAAgent
participant P as PublisherAgent
participant A as AnalystAgent
%% ===== BRIEF =====
HQ->>R: Brief JSON (stage, persona, intent, keywords, KPI)
%% ===== RESEARCH =====
R->>R: SERP analysis + PAA + competitors
R-->>HQ: Research JSON (intents, gaps, angles)
%% ===== OUTLINE =====
HQ->>O: Research JSON
O->>O: Build outline (H1-H3, sections, FAQs)
O-->>HQ: Outline JSON
%% ===== WRITING =====
HQ->>W: Outline JSON + tone rules
W->>W: Draft content (TLDR, sections, internal links)
W-->>HQ: Draft MD/HTML
%% ===== ON-PAGE SEO =====
HQ->>S: Draft + keyword map
S->>S: Optimize titles, meta, headings, links
S-->>HQ: SEO-ready content
%% ===== STRUCTURED DATA =====
HQ->>C: SEO-ready content
C->>C: Generate JSON-LD (FAQ, HowTo, Product)
C-->>HQ: Content + Schema
%% ===== QUALITY GATES =====
HQ->>Q: Content + Schema
Q->>Q: QA checks (intent, dup, canonical, mobile, perf)
Q-->>HQ: QA report (pass / fix list)
%% ===== PUBLISH =====
HQ->>P: Approved content
P->>P: Publish + index + breadcrumbs
P-->>HQ: URL + publish metadata
%% ===== MEASURE & FEEDBACK =====
HQ->>A: URL + KPI
A->>A: Analyze GSC/GA signals
A-->>HQ: Insights + refresh recommendations
```
***
## Jak to czytać (krótko, systemowo)
### 1. HQ / Orchestrator
* jedyny „świadomy” agent
* zna **etap customer journey**
* decyduje **kiedy iterować, a kiedy publikować**
### 2. Agenci są **wąsko wyspecjalizowani**
* Research ≠ Outline ≠ Writing ≠ SEO ≠ Schema ≠ QA
* zero mieszania odpowiedzialności
### 3. Artefakty są jawne
* **JSON** → decyzje
* **MD / HTML** → treść
* **JSONLD** → struktura
* **QA report** → bramka decyzyjna
To dokładnie pasuje do Twojego podejścia:
> *deterministyczne, audytowalne, reproducible workflows*
***
## Bonus: mapowanie agentów na etapy (mental model)
| Etap | Najważniejszy agent |
| ------------- | ------------------- |
| Inicjacja | Research + Writer |
| Badania | Outline + Writer |
| Porównywanie | Writer + SEO |
| Transakcja | SEO + Schema |
| Doświadczenie | QA + Analyst |
+174
View File
@@ -0,0 +1,174 @@
Poniżej masz **konkretny, READMEready opis HOOKa typu `commandlogger`**, dopasowany do Twojego stylu operacyjnego (OpenClaw / orgmode / „plaintext productivity”). To **opis projektowy + kontrakt**, nie marketing.
***
# HOOK: `command-logger`
## Cel
`command-logger` to **globalny hook obserwacyjny**, który **rejestruje każde polecenie / wywołanie SKILLa** wraz z kontekstem wykonania, **bez wpływu na logikę biznesową**.
Jego jedyną odpowiedzialnością jest **audit trail** i **rekonstrukcja przebiegu pracy**.
> To jest odpowiednik `bash history + strace + journalctl`, ale na poziomie **AI / SKILL routera**.
***
## Miejsce w architekturze
* typ: **HOOK (sideeffect only)**
* moment: **BEFORE + AFTER execution**
* zasięg: **router + wszystkie subskills**
* brak modyfikacji danych wejściowych/wyjściowych
<!---->
User → Router
↳ HOOK: command-logger (BEFORE)
→ Skill / Sub-skill
↳ HOOK: command-logger (AFTER)
***
## Co jest logowane (kontrakt)
### 1. Metadane techniczne
* `timestamp_start`
* `timestamp_end`
* `duration_ms`
* `session_id`
* `trace_id`
* `parent_trace_id`
* `host` / `agent_id`
### 2. Kontekst wykonania
* `actor` (user / system / agent)
* `skill_name`
* `skill_version`
* `hook_phase` (`before` | `after`)
* `stage` (np. Inicjacja / Badania / Transakcja)
* `intent` (jeśli wykryty przez router)
### 3. Dane operacyjne (bezpieczne)
* `command` **skrót/identyfikator**, nie pełny prompt
* `input_fingerprint` (hash / checksum)
* `output_fingerprint`
* `status` (`ok` | `error`)
* `error_type` (jeśli wystąpił)
> **Zasada**: logujemy **fakty o operacji**, nie jej treść semantyczną.
***
## Format zapisu (orgmode friendly)
### Jeden plik = jeden strumień pracy
`command-log.org`
```org
* 2026-03-16 09:12:04 | router
:PROPERTIES:
:session: 9f3a…
:trace: r-001
:phase: before
:actor: user
:stage: Badania
:intent: seo-research
:END:
Command: route → seo-research
Input: sha256:8ac7…
```
```org
* 2026-03-16 09:12:18 | seo-research
:PROPERTIES:
:session: 9f3a…
:trace: r-001
:parent: r-000
:phase: after
:status: ok
:duration_ms: 14231
:END:
Output: sha256:91bd…
```
✅ spełnia:
* plaintext
* difffriendly
* audytowalne
* nadaje się do grep / ripgrep / orgagenda
***
## Zasady projektowe (ważne)
### ✅ Co `command-logger` MOŻE
* rejestrować
* tagować
* agregować
* eksportować (np. do Splunk / JSONL)
### ❌ Czego NIE MOŻE
* zmieniać inputu
* zmieniać outputu
* blokować wykonania
* podejmować decyzji
> Jeśli HOOK zaczyna „myśleć” → to **nie jest już hook**, tylko policyengine.
***
## Przykładowa definicja (konceptualna)
```yaml
hook:
name: command-logger
type: observer
phases: [before, after]
scope: global
output:
format: org
file: command-log.org
privacy:
log_payload: false
use_fingerprints: true
```
***
## Typowe usecasey
***rekonstrukcja dnia pracy** („co robiłem i dlaczego”)
***debug AI** (gdzie poszło nie tak)
***time audit** pod książkę o produktywności
***compliance / audit trail**
***trening systemu** (analiza sekwencji, nie treści)
***
## Antywzorce
❌ logowanie pełnych promptów
❌ logowanie danych wrażliwych
❌ zależność innych SKILLi od loggera
❌ brak identyfikatorów sesji / trace
***
## TL;DR (jednym zdaniem)
> **`command-logger` to czarny skrzynkowy rejestr zdarzeń**, który zapisuje *że coś się stało, kiedy, gdzie i z jakim skutkiem* — **bez ingerencji w to, co i dlaczego**.
***
Jeśli chcesz, w kolejnym kroku mogę:
* dodać **diagram Mermaid tylko dla HOOK‑ów**
* rozpisać **drugiego hooka**: `decision-logger` (tylko dla routera)
* albo przygotować **OpenClaw SKILL: hooks/command-logger** (router + middleware)
+244
View File
@@ -0,0 +1,244 @@
Poniżej masz **opracowanie merytoryczne** tego materiału tak, żeby dało się go użyć **do prezentacji, strategii marketingowej, opisu customer journey albo jako rozdział w dokumencie/README**. Trzymam się sensu grafiki, ale rozwijam ją o kontekst i praktyczne wnioski.
***
## 1. Czym jest ten model?
Materiał przedstawia **ścieżkę decyzyjną klienta (Customer Journey)** w procesie zakupowym od pierwszego kontaktu z potrzebą aż po doświadczenie po zakupie oraz **rodzaje wyszukiwań**, które użytkownik wykonuje na różnych etapach.
To połączenie:
* **etapów decyzyjnych użytkownika**
* **intencji wyszukiwania (search intent)**
Kluczowa idea:
👉 *użytkownik w różnych momentach zadaje różne pytania i oczekuje innego typu odpowiedzi / treści*.
***
## 2. Etapy ścieżki klienta (górna część diagramu)
### 2.1 Inicjacja
**Cel użytkownika:**
Uzyskanie podstawowych informacji i zrozumienie problemu lub potrzeby zakupowej.
**Charakterystyka:**
* użytkownik dopiero uświadamia sobie potrzebę
* nie zna jeszcze marek ani konkretnych produktów
* szuka ogólnej wiedzy
**Typowe pytania:**
* „co to jest…”
* „jak działa…”
* „czy warto…”
* „jak wybrać…”
**Przykładowe treści:**
* artykuły edukacyjne
* poradniki „dla początkujących”
* wpisy blogowe
* wideo wyjaśniające
👉 **To etap budowania świadomości, nie sprzedaży.**
***
### 2.2 Badania
**Cel użytkownika:**
Poznanie dostępnych opcji, rekomendacji i wstępna selekcja produktów.
**Charakterystyka:**
* użytkownik zna już kategorię produktu
* zaczyna rozpoznawać marki
* sprawdza opinie i rankingi
**Typowe pytania:**
* „najlepszy …”
* „ranking …”
* „opinie …”
* „polecane …”
**Przykładowe treści:**
* rankingi i zestawienia
* recenzje
* poradniki zakupowe
* artykuły „top 10”
👉 **To etap wpływu i zaufania.**
***
### 2.3 Porównywanie
**Cel użytkownika:**
Dogłębne porównanie konkretnych opcji przed podjęciem decyzji.
**Charakterystyka:**
* użytkownik ma shortlistę produktów
* porównuje parametry, funkcje i cenę
* analizuje „za i przeciw”
**Typowe pytania:**
* „X vs Y”
* „różnice między…”
* „czy X ma funkcję…”
* „który lepszy…”
**Przykładowe treści:**
* porównania 1:1
* tabele porównawcze
* szczegółowe recenzje
* case studies
👉 **To etap racjonalizacji decyzji.**
***
### 2.4 Transakcja
**Cel użytkownika:**
Zakup produktu w najlepszych możliwych warunkach.
**Charakterystyka:**
* decyzja jest prawie podjęta
* liczy się dostępność, cena, szybkość
* użytkownik porównuje sklepy, nie produkt
**Typowe pytania:**
* „gdzie kupić…”
* „cena …”
* „promocja …”
* „dostępność …”
**Przykładowe treści:**
* strony produktowe
* oferty cenowe
* landing pages
* lokalizatory sklepów
👉 **To etap konwersji.**
***
### 2.5 Doświadczenie
**Cel użytkownika:**
Korzystanie z produktu i kontakt z marką po zakupie.
**Charakterystyka:**
* użytkownik jest już klientem
* potrzebuje wsparcia lub inspiracji
* może wrócić po kolejne zakupy
**Typowe pytania:**
* „jak używać…”
* „problem z…”
* „akcesoria do…”
* „serwis / gwarancja”
**Przykładowe treści:**
* FAQ
* instrukcje
* helpdesk / support
* crosssell i upsell
👉 **To etap lojalności i retencji.**
***
## 3. Rodzaje wyszukiwań (dolna część diagramu)
Te paski pokazują, **jakie typy zapytań dominują na różnych etapach**.
### 3.1 Wyszukiwanie marki
* zapytania zawierające nazwę marki
* występują na wielu etapach, ale nasilają się od badań do transakcji
* świadczą o **rozpoznawalności i zaufaniu**
👉 Przykład: „Dell laptop”, „Samsung opinie”
***
### 3.2 Wyszukiwanie kategorii
* ogólne zapytania produktowe
* dominują na etapie inicjacji i badań
* użytkownik jeszcze nie wybrał marki
👉 Przykład: „laptop do pracy”, „monitor 27 cali”
***
### 3.3 Wyszukiwanie styczne (problemowe / tematyczne)
* zapytania związane z potrzebą lub problemem
* często bardzo szerokie
* kluczowe na początku ścieżki
👉 Przykład: „jak przyspieszyć pracę”, „sprzęt do home office”
***
### 3.4 Wyszukiwanie konkurencyjnych marek
* zapytania porównawcze między markami
* dominują na etapie porównywania
* użytkownik jest blisko decyzji
👉 Przykład: „Dell vs Lenovo”, „iPhone czy Samsung”
***
## 4. Najważniejsze wnioski praktyczne
### 1️⃣ Jedna treść ≠ jeden użytkownik
Każdy etap wymaga **innego typu treści i innego języka**.
### 2️⃣ Sprzedaż za wcześnie nie działa
Treści transakcyjne na etapie inicjacji są ignorowane.
### 3️⃣ SEO = intencja, nie słowa kluczowe
To **intencja użytkownika** decyduje, czy treść zadziała.
### 4️⃣ Doświadczenie po zakupie to część lejka
Obsługa, wiedza i wsparcie generują:
* powroty
* rekomendacje
* kolejne zakupy
***
## 5. Jak możesz to dalej wykorzystać?
Jeśli chcesz, mogę:
* ✅ przerobić to na **tekst do prezentacji (slajdy)**
* ✅ rozpisać **checklistę treści SEO dla każdego etapu**
* ✅ przygotować **wersję techniczną (np. pod AI / Copilota / agentów)**
* ✅ zamienić to w **orgmode / markdown / README**
* ✅ narysować **diagram w Mermaid (bez błędów parsera)**
Powiedz tylko **do czego dokładnie** ma to służyć (marketing, SEO, strategia produktu, dokumentacja, AI-agent).
+625
View File
@@ -0,0 +1,625 @@
# **Kompletny pakiet OpenClaw SKILL** w układzie **router + subskills**, gotowy do skopiowania jako katalogi z `SKILL.md`.
Oparłem format o to, że **OpenClaw skill to katalog zawierający `SKILL.md` z YAML frontmatter + instrukcje**, a skills są ładowane m.in. z `<workspace>/skills` oraz `~/.openclaw/skills` (z priorytetem workspace > local > bundled).
W samym pliku frontmatter typowo występują pola jak `name`, `description`, opcjonalnie `version`, `trigger`, `tools` itd. [\[docs.openclaw.ai\]](https://docs.openclaw.ai/tools/skills), [\[openclaws.io\]](https://openclaws.io/docs/tools/skills/), [\[deepwiki.com\]](https://deepwiki.com/lekt9/openclaw-foundry/5.1-skill-format-and-structure) [\[clawdocs.org\]](https://clawdocs.org/guides/skill-development/), [\[deepwiki.com\]](https://deepwiki.com/lekt9/openclaw-foundry/5.1-skill-format-and-structure)
Dodatkowo w QA uwzględniłem bramki SEO, które przewijają się w materiałach typu “SEO recommendations / requirements”: m.in. **duplicate content, canonicalization, pagination, structured data, IA, onpage, performance, mobile-first**.
***
## 1) Struktura katalogów (wklej do `<workspace>/skills/`)
skills/
seo-ai-router/
SKILL.md
artifacts/
brief.schema.json
research.schema.json
outline.schema.json
draft.schema.json
qa.schema.json
seo-research/
SKILL.md
seo-outline/
SKILL.md
seo-writer/
SKILL.md
seo-onpage/
SKILL.md
seo-schema/
SKILL.md
seo-qa-gates/
SKILL.md
seo-publish/
SKILL.md
seo-measure-refresh/
SKILL.md
***
## 2) Router SKILL — `skills/seo-ai-router/SKILL.md`
```markdown
---
name: seo-ai-router
version: 1.0.0
description: Router i orkiestrator procesu tworzenia tresci SEO per etap customer journey (Inicjacja->Badania->Porownywanie->Transakcja->Doswiadczenie) z artefaktami JSON i bramkami QA.
trigger: "seo pipeline|seo workflow|customer journey|inicjacja|badania|porownywanie|transakcja|doswiadczenie|checklista seo|seo machine"
tools: [filesystem, browser, http, shell]
---
# SEO AI Router (Customer Journey)
## Cel
Gdy uzytkownik prosi o tresc SEO, strategie, checklisty, artykul, landing, porownanie lub material pod dowolny etap sciezki zakupowej,
ten skill ma:
1) wykryc etap i intencje,
2) wygenerowac artefakty (Brief -> Research -> Outline -> Draft -> OnPage -> Schema -> QA -> Publish -> Measure),
3) wywolac (konceptualnie) sub-skills w odpowiedniej kolejnosci.
## Kiedy uzywac
Aktywuj, gdy prosba dotyczy:
- tworzenia/planowania tresci SEO,
- dopasowania do intencji/funnel/journey,
- przygotowania materialu “pod AI/agentow”,
- wdrozenia procesu content ops (research->publish->refresh).
## Detekcja etapu (reguly)
- Inicjacja: definicje, "co to jest", edukacja, problem
- Badania: rankingi, opinie, przewodniki zakupowe
- Porownywanie: "X vs Y", alternatywy, tabele, kalkulatory
- Transakcja: "kup", "cena", "gdzie kupic", landing/product/pricing
- Doswiadczenie: instrukcje, KB, troubleshooting, posprzedaz
Jesli niejasne: przyjmij Badania jako domysl i w brief oznacz `stage_confidence: low`.
## Kontrakt artefaktow (pliki lub bloki w odpowiedzi)
W kazdym kroku generuj JSON zgodny z prostym schematem:
- `brief.json`
- `research.json`
- `outline.json`
- `draft.md` (lub html)
- `onpage.json`
- `schema.jsonld`
- `qa.json`
- `publish.json`
- `measure.json`
## Orkiestracja (kolejnosc sub-skills)
1) Uruchom **seo-research**
2) Uruchom **seo-outline**
3) Uruchom **seo-writer**
4) Uruchom **seo-onpage**
5) Uruchom **seo-schema**
6) Uruchom **seo-qa-gates**
7) Uruchom **seo-publish**
8) Uruchom **seo-measure-refresh**
## Wyjscie finalne dla uzytkownika
Zawsze zwroc:
- gotowy artefakt docelowy (np. artykul/landing/KB),
- oraz komplet JSON-ow (albo “bundle” w jednej odpowiedzi),
- oraz liste decyzji: etap, intencja, target, CTA, linkowanie wewn.
## Notatka o snippetach (meta)
Pamietaj: snippet w wynikach wyszukiwania jest zwykle generowany z tresci strony, ale meta description moze zostac uzyte, gdy lepiej opisuje strone.
Uwzglednij to w kroku seo-onpage.
```
***
## 3) Sub-skill: Research — `skills/seo-research/SKILL.md`
```markdown
---
name: seo-research
version: 1.0.0
description: Research SEO: intencja, pytania, katy, konkurencja, mapa slow kluczowych pod etap customer journey.
trigger: "seo research|intencja|paa|faq|konkurencja|serp"
tools: [browser, http]
---
# SEO Research Agent
## Wejscie
Oczekuj `brief.json`:
- stage, persona, intent, topic, geo/lang, KPI
## Kroki
1) Okresl primary intent: informational / commercial / transactional / navigational.
2) Zbierz liste pytan (FAQ/PAA style) + obiekcje + synonimy.
3) Zaproponuj 3-5 katow (angles) dopasowanych do etapu:
- Inicjacja: edukacja, definicja, problem->rozwiazanie
- Badania: metodologia, kryteria, ranking
- Porownywanie: roznice, trade-offs, "dla kogo"
- Transakcja: wartosc, oferta, dowody, CTA
- Doswiadczenie: diagnoza, kroki naprawy, KB
4) Zbuduj mapowanie: query cluster -> sekcje strony (H2/H3).
5) Zapisz `research.json`.
## Output: research.json (minimal)
{
"stage": "...",
"intent": "...",
"topic": "...",
"keyword_clusters": [
{"cluster":"...", "queries":["..."], "notes":"..."}
],
"questions": ["..."],
"objections": ["..."],
"angles": ["..."],
"internal_links_suggested": {
"prev_stage": ["..."],
"next_stage": ["..."]
}
}
```
***
## 4) Sub-skill: Outline — `skills/seo-outline/SKILL.md`
```markdown
---
name: seo-outline
version: 1.0.0
description: Buduje outline H1-H3 + FAQ + plan linkowania wewnetrznego na podstawie research.
trigger: "outline|struktura|h2|h3|plan tresci"
tools: [filesystem]
---
# SEO Outline Agent
## Wejscie
`research.json`
## Kroki
1) Stworz H1 zgodny z intencja.
2) Zaprojektuj H2/H3 tak, by:
- w pierwszych sekcjach odpowiadac “wprost” na potrzebe,
- pokrywac klastry slow kluczowych,
- dodac FAQ (Q/A).
3) Dodaj sekcje “dla kogo”, “kiedy wybrac”, “alternatywy” jesli etap >= Badania.
4) Ustal CTA i linki do poprzedniego/nastepnego etapu.
## Output: outline.json
{
"h1": "...",
"sections": [
{"h2":"...", "h3":["..."], "intent_note":"..."}
],
"faq": [{"q":"...", "a_hint":"..."}],
"cta": {"primary":"...", "secondary":"..."},
"internal_links": [{"anchor":"...", "target":"..."}]
}
```
***
## 5) Sub-skill: Writer — `skills/seo-writer/SKILL.md`
```markdown
---
name: seo-writer
version: 1.0.0
description: Pisze draft na podstawie outline; dodaje TLDR, przyklady, sekcje dopasowane do etapu.
trigger: "napisz|draft|artykul|landing|kb"
tools: [filesystem]
---
# SEO Writer Agent
## Wejscie
`outline.json`
## Kroki
1) Napisz wersje 1 w Markdown:
- TLDR na gorze (2-5 zdan)
- H2/H3 zgodnie z outline
2) Styl:
- Inicjacja: edukacyjnie, bez sprzedazy
- Badania: kryteria + metodologia + rekomendacje
- Porownywanie: trade-offs, tabela roznic (tekstowo)
- Transakcja: wartosc, dowody, CTA
- Doswiadczenie: szybka diagnoza + kroki
3) Dodaj sekcje FAQ.
4) Dodaj placeholdery do linkow wewnetrznych.
## Output
- `draft.md`
- `draft.json` (opcjonalnie): streszczenie + kluczowe tezy
```
***
## 6) Sub-skill: On-page — `skills/seo-onpage/SKILL.md`
```markdown
---
name: seo-onpage
version: 1.0.0
description: On-page SEO: title, meta description, naglowki, link text, IA, canonical/pagination checklist.
trigger: "meta title|meta description|onpage|optymalizacja"
tools: [filesystem]
---
# SEO On-page Agent
## Wejscie
`draft.md` + `research.json`
## Kroki
1) Uloz Title i Meta Description:
- unikalne,
- zgodne z intencja,
- streszczaja i zachecaja (meta moze byc uzyte jako snippet, gdy lepiej opisuje strone niz fragment tresci).
2) Sprawdz zgodnosc H1/H2/H3 z klastrami.
3) Popraw linki wewnetrzne:
- anchor text opisowy,
- logiczny flow prev/next stage.
4) Zapisz `onpage.json`:
- title, description,
- link plan,
- uwagi do IA.
5) Dodaj tech-checklist:
- duplicate content / canonical / pagination / indexing.
## Output: onpage.json
{
"title": "...",
"meta_description": "...",
"internal_links": [{"anchor":"...", "target":"..."}],
"tech_notes": ["duplicate content", "canonical", "pagination", "indexing"]
}
```
***
## 7) Sub-skill: Structured Data — `skills/seo-schema/SKILL.md`
```markdown
---
name: seo-schema
version: 1.0.0
description: Dobiera i generuje JSON-LD (FAQ/HowTo/Product/Offer/Breadcrumb) na podstawie typu strony.
trigger: "schema|json-ld|structured data|faq schema|howto schema"
tools: [filesystem]
---
# SEO Schema Agent
## Wejscie
`draft.md` + `onpage.json` + stage
## Kroki
1) Dobierz typ:
- FAQPage: gdy masz realne Q/A
- HowTo: gdy masz kroki
- Product/Offer: gdy to strona produktu/oferty
- BreadcrumbList: gdy to strona w hierarchii
2) Wygeneruj `schema.jsonld` jako JSON-LD.
3) Dodaj notatke: structured data wspiera rich results i “zrozumienie” tresci przez wyszukiwarki.
## Output
- `schema.jsonld`
```
***
## 8) Sub-skill: QA Gates — `skills/seo-qa-gates/SKILL.md`
```markdown
---
name: seo-qa-gates
version: 1.0.0
description: Bramki jakosci SEO: intencja, duplikacja/canonical/pagination, structured data, linki, mobile-first, performance.
trigger: "qa seo|bramki|quality gates|audit"
tools: [filesystem]
---
# SEO QA Gates Agent
## Wejscie
`draft.md` + `onpage.json` + `schema.jsonld`
## Bramki (PASS/FAIL + fixlist)
1) Intent match: czy tresc odpowiada na intencje etapu?
2) Meta: Title/Description unikalne i zgodne z trescia.
3) Tech: duplicate content, canonicalization, pagination, indexing.
4) Structured data: czy pasuje do strony i jest sensowne.
5) Linki: opisowy anchor text + crawlable (typowy problem w audytach).
6) Mobile-first + performance (traktuj jako release gate).
## Output: qa.json
{
"status": "pass|fail",
"checks": [
{"name":"intent", "status":"pass|fail", "notes":"..."},
{"name":"meta", "status":"pass|fail", "notes":"..."},
{"name":"tech", "status":"pass|fail", "notes":"..."},
{"name":"schema", "status":"pass|fail", "notes":"..."},
{"name":"links", "status":"pass|fail", "notes":"..."},
{"name":"mobile_perf", "status":"pass|fail", "notes":"..."}
],
"fixlist": ["..."]
}
```
***
## 9) Sub-skill: Publish — `skills/seo-publish/SKILL.md`
```markdown
---
name: seo-publish
version: 1.0.0
description: Przygotowanie do publikacji: URL, breadcrumbs, mapowanie do kategorii, plan indeksacji, checklist pre-publish.
trigger: "publish|publikuj|wdroz|deploy content"
tools: [filesystem]
---
# SEO Publish Agent
## Wejscie
`qa.json` + `draft.md` + `onpage.json` + `schema.jsonld`
## Reguly
- Jesli QA fail: nie publikuj, zwroc fixlist.
- Jesli QA pass:
1) Zaproponuj slug URL (ASCII, krotki).
2) Zapisz paczke: content + schema + meta.
3) Zapisz `publish.json` z polami:
- url_slug
- breadcrumbs
- next_refresh_hint
## Output: publish.json
{
"url_slug": "...",
"breadcrumbs": ["...","..."],
"publish_notes": ["..."],
"next_refresh_hint": "..."
}
```
***
## 10) Sub-skill: Measure & Refresh — `skills/seo-measure-refresh/SKILL.md`
```markdown
---
name: seo-measure-refresh
version: 1.0.0
description: Pomiar i refresh: sygnaly z ruchu, CTR, nowe pytania, plan aktualizacji, retarget do kolejnego etapu.
trigger: "measure|refresh|aktualizacja|performance review seo"
tools: [filesystem]
---
# SEO Measure & Refresh Agent
## Wejscie
`publish.json` + KPI z brief
## Kroki
1) Zdefiniuj “refresh triggers”:
- spadek CTR,
- zmiana intencji,
- nowe pytania,
- nowy konkurent/format SERP.
2) Zaproponuj plan refresh:
- update meta,
- rozbudowa FAQ,
- dodanie sekcji porownawczej lub CTA do kolejnego etapu.
3) Output `measure.json`.
## Output: measure.json
{
"signals": ["..."],
"hypotheses": ["..."],
"refresh_actions": ["..."],
"next_review_window": "..."
}
```
***
# 11) (Opcjonalnie) Minimalne schematy JSON (router artifacts)
Jeśli chcesz walidować artefakty, wrzuć te pliki do `skills/seo-ai-router/artifacts/`. To są ultra-proste schematy (bez zależności).
### `brief.schema.json`
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["stage", "topic", "intent"],
"properties": {
"stage": {"type": "string"},
"topic": {"type": "string"},
"intent": {"type": "string"},
"persona": {"type": "string"},
"kpi": {"type": "array", "items": {"type": "string"}},
"stage_confidence": {"type": "string"}
}
}
```
(Pozostałe schematy mogę Ci dopisać analogicznie, ale już teraz masz “działający” pakiet — OpenClaw nie wymaga schematów, to tylko Twoje QA/porządek.)
***
## Jak tego używać (praktycznie, bez filozofii)
1. Skopiuj katalogi do `<workspace>/skills/` (to ma najwyższy priorytet ładowania skills). [\[docs.openclaw.ai\]](https://docs.openclaw.ai/tools/skills), [\[openclaws.io\]](https://openclaws.io/docs/tools/skills/)
2. W rozmowie piszesz np.:
* „Zrob mi content pod etap Porownywanie dla \[temat]”
* „Przygotuj landing pod Transakcja dla \[produkt]”
* „Zrob KB pod Doswiadczenie: jak naprawic \[problem]”
Router ma wtedy poprowadzić agentową sekwencję i zwrócić paczkę artefaktów.
***
> Mała uwaga techniczna: w Mermaid **nie używaj słowa `end` jako tekstu w węźle flowchart** (potrafi „wywalić” parser) — lepiej `END` albo `[END]`.\
> Dla sequenceDiagram `alt/else/loop` są wspierane wprost. [\[mermaid.ai\]](https://mermaid.ai/open-source/syntax/flowchart.html), [\[emersonbot....github.io\]](https://emersonbottero.github.io/mermaid-docs/syntax/flowchart.html) [\[docs.merma...viewer.com\]](https://docs.mermaidviewer.com/diagrams/sequence.html), [\[mermaid.ai\]](https://mermaid.ai/open-source/syntax/examples.html), [\[emersonbot....github.io\]](https://emersonbottero.github.io/mermaid-docs/syntax/sequenceDiagram.html)
***
## 1) Diagram (Flowchart): Router + artefakty + QA gates + retry loop
```mermaid
flowchart TD
%% =========================
%% ENTRY
%% =========================
U[User request: temat + cel] --> R0[Router: detect stage + intent]
R0 --> D1{Stage detected?}
D1 -->|yes| BR[brief.json]
D1 -->|no| BR_LOW[brief.json + stage_confidence=low]
%% =========================
%% STAGE MAP (customer journey)
%% =========================
subgraph ST["Stage map"]
S1[Inicjacja]
S2[Badania]
S3[Porownywanie]
S4[Transakcja]
S5[Doswiadczenie]
S1 --> S2 --> S3 --> S4 --> S5
end
BR --> ST
BR_LOW --> ST
%% =========================
%% PIPELINE
%% =========================
subgraph PL["AI Pipeline (artefakty)"]
direction TB
P1[seo-research] --> A1[research.json]
A1 --> P2[seo-outline] --> A2[outline.json]
A2 --> P3[seo-writer] --> A3[draft.md]
A3 --> P4[seo-onpage] --> A4[onpage.json]
A4 --> P5[seo-schema] --> A5[schema.jsonld]
A5 --> P6[seo-qa-gates] --> A6[qa.json]
A6 --> DEC_QA{QA status?}
end
BR --> P1
BR_LOW --> P1
%% =========================
%% QA BRANCHING + FIX LOOP
%% =========================
DEC_QA -->|pass| P7[seo-publish] --> A7[publish.json]
DEC_QA -->|fail| FIX[Fixlist: what to change]
FIX --> P3
%% =========================
%% PUBLISH + MEASURE
%% =========================
A7 --> P8[seo-measure-refresh] --> A8[measure.json]
A8 --> DEC_REFRESH{Refresh needed?}
DEC_REFRESH -->|yes| P1
DEC_REFRESH -->|no| OUT[Output bundle: content + JSON artifacts]
%% =========================
%% QA GATES DETAILS (what QA checks)
%% =========================
subgraph QA["QA Gates (co sprawdzamy)"]
direction TB
Q1[Intent match: etap vs tresc]
Q2[Meta: title + description unique]
Q3[Tech: duplicate/canonical/pagination/indexing]
Q4[Structured data: FAQ/HowTo/Product when fits]
Q5[Links: opisowe + crawlable]
Q6[Mobile-first + performance]
end
P6 --> QA
```
Dlaczego to jest „bardziej szczegółowe”:
* Masz **artefakty jako węzły** (`brief.json`, `research.json`, `outline.json`, `draft.md`, `onpage.json`, `schema.jsonld`, `qa.json`, `publish.json`, `measure.json`)
* Jest **gałąź QA pass/fail** oraz **pętla naprawcza** (wracasz do `seo-writer` i przechodzisz dalej)
* Jest **pętla refresh** po pomiarach (wraca do research, jeśli trzeba)
* Jest osobny subgraph „QA Gates” opisujący *co* sprawdzasz (zgodne z tym, co przewija się w checklistach SEO: duplicate/canonical/pagination/structured data/perf/mobile etc.).
## 2) Diagram (Sequence): Router + subskills + alt/loop/opt + artefakty
Ten wariant jest „bardziej operacyjny” — pokazuje kto (który agent) co produkuje i kiedy następuje retry.
``` mermaid
sequenceDiagram
autonumber
participant U as User
participant HQ as Orchestrator
participant R as seo-research
participant O as seo-outline
participant W as seo-writer
participant S as seo-onpage
participant SC as seo-schema
participant Q as seo-qa-gates
participant PB as seo-publish
participant M as seo-measure-refresh
U->>HQ: Request (topic, goal, stage optional)
HQ->>HQ: Detect stage + intent
HQ-->>U: Plan preview (stage, intent, artifacts list)
HQ->>R: brief.json
R-->>HQ: research.json
HQ->>O: research.json
O-->>HQ: outline.json
HQ->>W: outline.json
W-->>HQ: draft.md
HQ->>S: draft.md + research.json
S-->>HQ: onpage.json (title, meta, links)
HQ->>SC: draft.md + onpage.json
SC-->>HQ: schema.jsonld
loop QA until pass
HQ->>Q: draft.md + onpage.json + schema.jsonld
Q-->>HQ: qa.json (pass/fail + fixlist)
alt QA fail
HQ->>W: fixlist + outline.json
W-->>HQ: draft.md (revised)
HQ->>S: draft.md update
S-->>HQ: onpage.json update
HQ->>SC: schema update if needed
SC-->>HQ: schema.jsonld
else QA pass
HQ->>PB: content bundle
PB-->>HQ: publish.json (slug, notes)
end
end
opt Measure and refresh
HQ->>M: publish.json + KPI
M-->>HQ: measure.json (signals + refresh plan)
end
HQ-->>U: Final bundle (content + JSON artifacts)
```
`loop`, `alt/else`, `opt` są natywnie wspierane w Mermaid sequenceDiagram (to standardowy sposób na pokazanie retry i warunków). [\[docs.merma...viewer.com\]](https://docs.mermaidviewer.com/diagrams/sequence.html), [\[mermaid.ai\]](https://mermaid.ai/open-source/syntax/examples.html), [\[emersonbot....github.io\]](https://emersonbottero.github.io/mermaid-docs/syntax/sequenceDiagram.html)
***