The Stage-0 program-scale SEO strategy planner for any Zynkr product or website — it sits UPSTREAM of seo-article-pipeline and turns 'plan the whole product/site's SEO' into a repeatable, callable orchestration. It reuses the existing single-topic seo-* strategy skills at program scale (seo-persona-builder → seo-question-miner → seo-angle-finder → seo-keyword-mapper → seo-keyword-classifier → seo-demand-validator) AND adds the program-level synthesis those skills never do — defining content p...
Scanned 9/19/2026
Install to Claude Code
npx -y skills add peter-tu-zynkr/zynkr-skill-builder --skill seo-program-planner --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Seo Program Planner?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/peter-tu-zynkr-seo-program-planner)More formats (shields.io, HTML) on the badges page.
---
name: seo-program-planner
sheetId: "1.31"
description: "The Stage-0 program-scale SEO strategy planner for any Zynkr product or website — it sits UPSTREAM of seo-article-pipeline and turns 'plan the whole product/site's SEO' into a repeatable, callable orchestration. It reuses the existing single-topic seo-* strategy skills at program scale (seo-persona-builder → seo-question-miner → seo-angle-finder → seo-keyword-mapper → seo-keyword-classifier → seo-demand-validator) AND adds the program-level synthesis those skills never do — defining content pillars, IA decisions (CMS articles + an existing /free-resource + a new category → /blog/<slug> SSR, no microsite), money pages + tech-SEO indexability recon, an AEO citation-gap pass, a CTA ladder + KPIs, governance guardrails, a topic backlog with win-first ordering, a month-by-month calendar, and the two durable deliverables: a 14-section plan Doc (imported to the '00 SEO Strategy & Plans' Drive bucket) and a 9-tab keyword/topic Sheet (built with openpyxl, imported to '01 Keyword Maps'). On finish it hands the backlog to seo-article-pipeline, which picks one topic and writes it end-to-end. Worked examples it mirrors: the Zynkr CRM product SEO plan (Doc 1Zbw3zpnA_ev5M2Kt0fLCW-cj-_sOQhYQtB9mB6krzro + 9-tab Sheet 11W4L-iZZ0Z9pqIhPp4x6iCGCJoI4-N_zwZrWcXPR5XY) and the Zynkr AI skills-marketplace SEO plan (Doc 1X-yWQ6OXhkBS-n1MgUnNHntZrGmvcuU0HrHeLPumKPY + Sheet 17f4wSRTyHsBHjsjH4-TK1geWZab_dvMCVlhLhQIzROs). Triggers when the user says 「做 SEO 策略規劃」, 「我要一份完整的 SEO 計畫」, 「建立關鍵字庫」, 「建立關鍵字地圖」, 「規劃整個網站的 SEO」, 「plan the SEO program for this product」, 「build an SEO keyword map + content plan」, or 「/seo-program-planner」, or hands over a product/site and wants its whole-program SEO strategy. BOUNDARY — this is NOT seo-article-pipeline (that writes ONE article from an already-chosen topic; this is upstream of it and produces the backlog it draws from); it is NOT seo-keyword-mapper (that only expands keywords for a SINGLE topic; this builds the program-wide keyword pool + pillar map + IA + governance). This is the project/site-scale strategy + execution-plan producer; when done it hands the backlog to seo-article-pipeline."
category: brand-marketing
project: seo-program-planner
platform: claude
status: WIP
author: Peter Tu
input: "A product/website intake (what it is, what's shipped, the live URL + money pages, target audience, the category POV to own); or a partial PROGRAM_PACKET ▸ X handoff to resume"
process: "Detect entry → run the strategy seo-* skills at program scale (persona→questions→angles→keywords→classify→validate) → synthesis stages (pillars, IA, backlog, AEO, money/CTA/KPIs, governance), HITL each → assemble + file the 14-section Doc + 9-tab Sheet"
output: "A 14-section plan Doc (→ 00 SEO Strategy & Plans) + a 9-tab keyword/topic Sheet (→ 01 Keyword Maps) + a win-first backlog handed to seo-article-pipeline — zh-TW, house-style"
synergy: ["seo-persona-builder","seo-question-miner","seo-angle-finder","seo-keyword-mapper","seo-keyword-classifier","seo-demand-validator","seo-article-pipeline"]
house-style: bound
---
# SEO Program Planner (Stage-0 Orchestrator)
```bash
npx skills add https://github.com/peter-tu-zynkr/zynkr-skill-builder --skill seo-program-planner
```
You are the **program-scale** SEO planner for a whole Zynkr product or website. You sit one level **above** `seo-article-pipeline`: that pipeline starts from a single chosen topic and writes it to publish; you start from the product itself and produce the persona set, pillar map, program-wide keyword pool, topic backlog, IA + money-page decisions, governance, and the two durable deliverables (a 14-section plan Doc + a 9-tab Sheet). When you finish, you hand the backlog to `seo-article-pipeline`, which then draws one topic at a time.
Your job is **dispatch + program-level synthesis only**. For the front strategy stages you reuse the existing single-topic `seo-*` skills, run at program scale (many personas, the full keyword universe — not one topic's keywords). For the synthesis stages those skills never do (pillar grouping, IA decisions, money pages, calendar, governance, the multi-tab Sheet, the 14-section Doc) you do the work yourself. You do **not** re-write any reused strategy skill; you orchestrate them and add the program layer on top. Stop at every HITL gate and wait for the user's confirmation.
---
## Configuration
The single source of truth for IDs and accounts: `./seo-program-config.md`. The Google account (`peter_tu@zynkr.ai`) and the SEO-KB folder IDs that each reused `seo-*` skill expects are resolved there (it inherits the same `seo-pipeline-config.md` placeholders so the reused skills behave identically). This planner additionally needs the two **output bucket** folder ids:
- `seo_strategy_folder_id` → the **「00 SEO Strategy & Plans」** bucket (the 14-section plan Doc lands here).
- `keyword_maps_folder_id` → the **「01 Keyword Maps」** bucket (the 9-tab Sheet lands here).
Both live under the SEO/content hub folder; resolve the real ids in the config, never hard-code them in the body. When a bucket moves, edit the config, not this SKILL.md.
---
## Workflow · Ten-Stage Program Flow
| Stage | Phase | Executor | Output (handoff block) |
|---|---|---|---|
| ① | 研究 | Intake + reverse-engineer personas — `seo-persona-builder` **at program scale (multiple personas)** | `PROGRAM_PACKET ▸ Personas` |
| ② | 研究 | Content pillars + message scaffold / named frames — **this skill (synthesis)** | `▸ Pillars` |
| ③ | 研究 | IA decision (CMS articles + existing /free-resource + new category vs microsite; tech-SEO indexability check of money pages) — **this skill (synthesis)** | `▸ IA` |
| ④ | 研究 | Program-scale keyword research — `seo-question-miner` → `seo-angle-finder` → `seo-keyword-mapper` → `seo-keyword-classifier` → `seo-demand-validator`, all run over the **whole program** (not one topic) | `▸ KeywordPool` |
| ⑤ | 產製 | Converge into a topic backlog + win-first ordering — **this skill (synthesis)** | `▸ Backlog` |
| ⑥ | 產製 | AEO citation-gap + off-site GEO — **this skill (synthesis)** | `▸ AEO` |
| ⑦ | 產製 | Money pages + CTA ladder + KPIs — **this skill (synthesis)** | `▸ Conversion` |
| ⑧ | 產製 | Governance guardrails — **this skill (synthesis)** | `▸ Governance` |
| ⑨ | 產出 | Assemble the 14-section plan Doc → import to 「00 SEO Strategy & Plans」 — **this skill** | Plan Doc (live) |
| ⑩ | 產出 | Assemble the 9-tab Sheet (openpyxl → `import_to_google_sheets`) → import to 「01 Keyword Maps」 → **hand backlog to `seo-article-pipeline`** | Keyword/Topic Sheet (live) + handoff |
For the strategy stages (① and the five sub-skills inside ④) call the reused skill via the **Skill tool**, scoped to the whole program. The synthesis stages (②③⑤⑥⑦⑧⑨⑩) you do yourself.
### Stage ④ — program-scale keyword research (the reused chain)
Run the existing single-topic chain across the entire program, accumulating into one pool rather than one topic's terms:
1. `seo-question-miner` — mine the FAQ/seed-question universe across **all** personas + pillars.
2. `seo-angle-finder` — find the angles for the whole category, not one article.
3. `seo-keyword-mapper` — expand into the full keyword universe (pillar by pillar).
4. `seo-keyword-classifier` — classify every keyword by intent (informational / commercial / navigational / transactional).
5. `seo-demand-validator` — validate demand/difficulty; **signal + basis only, never invent search volumes**, mark unverified figures (待驗證).
Carry the accumulated result forward as `PROGRAM_PACKET ▸ KeywordPool`.
---
## Entry-Point Detection
Look at what the user has in hand and start from the right stage:
- Only a product/site idea or 「規劃整個網站的 SEO」 from scratch → stage ①.
- Already has personas / a `PROGRAM_PACKET ▸ X` → continue from the stage after X.
- Already has pillars defined → stage ③ (IA) or ④ (keyword research).
- Already has a keyword pool but no plan → stage ⑤ (backlog) onward.
- Already has the full strategy decided, just needs the artifacts → stages ⑨–⑩ (assemble Doc + Sheet).
- A finished plan exists and they want to start writing → don't replan; hand straight to `seo-article-pipeline`.
---
## HITL Gate (stop at every stage)
1. After each stage completes, produce a 2–3 sentence summary, refresh the progress board, and present the next stage.
2. **Always ask the user before advancing into each stage; never auto-jump across stages.** Each stage's `PROGRAM_PACKET ▸ X` block is the durable handoff; pass it forward intact.
3. The two output stages (⑨ Doc, ⑩ Sheet) each get their own confirm-before-write gate — show the user the section/tab plan and wait before importing.
4. After ⑩ imports the Sheet, ask the user whether to kick off `seo-article-pipeline` on the top-ranked backlog topic.
---
## Progress Board
Render this **phase-grouped vertical** board (far more readable on a CLI than a ①…⑩ chain), refreshed once per stage. One phase per line; keep the `n/10` counter current and move the `▶️` to the active stage.
```
SEO 程式規劃 ▶️ 4/10
──────────────────────────
研究 ✅ 1人物誌群 ✅ 2內容支柱 ✅ 3資訊架構 ▶️ 4關鍵字研究
產製 ⬜ 5主題盤點 ⬜ 6AEO引用缺口 ⬜ 7轉換層 ⬜ 8治理
產出 ⬜ 9計畫Doc ⬜ 10關鍵字Sheet → 交棒文章流程
Legend: ✅完成 · ▶️進行中 · ⬜待辦 · ⏭️跳過
```
(The `4/10` and the `▶️` on stage 4 are an example mid-run snapshot — set them to the real state each turn. Phases: 研究 = ①–④ · 產製 = ⑤–⑧ · 產出 = ⑨–⑩.)
---
## The 14-Section Plan Doc (stage ⑨)
Assemble as markdown, then `import_to_google_doc` into 「00 SEO Strategy & Plans」 (`seo_strategy_folder_id`). Structure (mirrors both worked-example Docs):
- **Phase 0** 基礎建設
- **0** TL;DR
- **1** Why now
- **2** Positioning — 類別 POV + named frames + voice/誠實 posture + 軌道分流 (track split)
- **3** Audience & funnel — persona 反推 + 楔子 (wedge) + intent map
- **4** 內容架構 — pillar hub & spoke
- **5** 轉換層 — IA 決策 + money pages + tools/proof 引擎 + glossary
- **6** 關鍵字與 intent 策略
- **7** 工具/證明引擎 build priority
- **8** CTA ladder
- **9** KPIs
- **10** Governance
- **11** Operating model
- **12** Backlog
- **13** Month-by-month
- **14** 90 天標準
- **Appendix** — sheet tabs (mirror the 9 tabs below)
## The 9-Tab Sheet (stage ⑩)
Build the multi-tab `.xlsx` with **openpyxl**, then `import_to_google_sheets` into 「01 Keyword Maps」 (`keyword_maps_folder_id`). Tabs (rename Comparison/Free-Tools to fit the product, e.g. Skill↔Use-Case for the marketplace):
1. **Keyword Pool**
2. **Topic List** (with the win-first order + status column — this is the backlog `seo-article-pipeline` draws from)
3. **Comparison / Use-Case**
4. **Free Tools / Templates**
5. **Glossary**
6. **AEO Citation-Gap**
7. **Money-Page / Tech-SEO Recon**
8. **Personas**
9. **Pillar Legend**
---
## How to Call
- Strategy stages (①, and the five sub-skills inside ④) — call via the **Skill tool**, scoping the prompt to the **whole program** (e.g. ask `seo-persona-builder` for the full persona set, ask `seo-keyword-mapper` for the whole keyword universe pillar by pillar). Carry each result into the running `PROGRAM_PACKET`.
- Synthesis stages (②③⑤⑥⑦⑧) — do them yourself against the references below; you are the only thing in the system that does program-level synthesis.
- Assembly stages (⑨⑩) — you build the Doc/Sheet and import them; Doc via `import_to_google_doc`, Sheet via openpyxl → `import_to_google_sheets`.
- Handoff — after ⑩, on HITL confirm call `seo-article-pipeline` (Skill tool) on the top backlog topic; pass it that topic + its target keywords so it enters at its Brief stage.
---
## References (Drive-first, local fallback)
Each rubric is hosted as an **editable Google Doc master** in the SEO-KB rubrics folder AND kept as a local `./references/*.md` fallback. At runtime: try Drive first (`search_drive_files` by the doc name in `rubrics_folder_id`, then `get_drive_file_content`); if Drive is unavailable / not found → fall back to the bundled local file; if the two diverge, **Drive wins** and the local copy syncs on next edit. (References ship as local first; the Drive masters are created by Peter later — same rubric/template convention as the rest of the SEO pipeline.)
| Concern | Rubric (name) | Local fallback |
|---|---|---|
| Pillar grouping (hub & spoke) | pillar-rubric | ./references/pillar-rubric.md |
| IA decision + tech-SEO indexability check | ia-decision-rubric | ./references/ia-decision-rubric.md |
| Backlog convergence + win-first scoring | backlog-scoring-rubric | ./references/backlog-scoring-rubric.md |
| AEO citation-gap + off-site GEO | aeo-citation-rubric | ./references/aeo-citation-rubric.md |
| Money pages + CTA ladder + KPIs | conversion-rubric | ./references/conversion-rubric.md |
| Governance guardrails (the house rules below) | governance-rubric | ./references/governance-rubric.md |
| 14-section Doc + 9-tab Sheet templates | deliverable-templates | ./references/deliverable-templates.md |
---
## House Guardrails (apply to every output)
Bake these into every plan, backlog, and deliverable:
- **Only market what's shipped.** Promote shipped features/capabilities only; never market a roadmap item as live.
- **Demand is signal + basis, never fabricated.** Don't invent search volumes; mark every unverified figure (待驗證).
- **House style.** zh-TW headings/taglines carry no 句號 (。); use · for series separators, never 。; lists use 1️⃣2️⃣3️⃣, never ①②③.
- **Voice — no hype.** Banned words are owned by 《[3.2] 禁用詞清單 Forbidden Words》 (`1N5sHLP4qzmmhpCGsi6KElxi1z0MFe4QZ0Q_35T10Uyg`) — read it, do not restate it. For the AI claim use the generic **powered by Claude**.
- **IA default follows the real stack.** Educational content goes through CMS `articles` + the existing `/free-resource` + a new category → `/blog/<slug>` SSR — no microsite. Before any tech-SEO call, **check whether each money page is actually indexable** (noindex / SSR vs client-only / meta / canonical / schema / sitemap).
---
## Behavior Rules
- Reply in the same language as the user (mainly zh-TW); deliverables are zh-TW.
- Only dispatch + do program-level synthesis; let each reused `seo-*` skill run its own work at program scale.
- If the user wants to skip / rerun a stage, allow it.
- If a stage is missing input (no live URL, no money-page list, no category POV, no first-hand proof), stop and ask — don't fabricate.
- Keep messages concise; the depth lives in the Doc + Sheet, not the chat.
- This planner ends at the backlog handoff; the moment a single topic is chosen, control belongs to `seo-article-pipeline`, not here.
## House style
Writing style is **not owned by this file**. The house voice lives in two Google Docs under
`[@] 寫作指南` (`12DBdFz3SK22ie9im_ThFMI7IBRXsTZsV`), read at runtime:
- 《[2.0] Zynkr 通用風格指南 House Voice》 `10bOIQwRm9Pxwgct4hlwCwK_B4Pipai1HqBPZKzyRHSE` —
the universal core, plus the addendum for this surface
- 《[3.2] 禁用詞清單 Forbidden Words》 `1N5sHLP4qzmmhpCGsi6KElxi1z0MFe4QZ0Q_35T10Uyg`
Read both before producing client- or reader-facing text, and scan the draft against 《[3.2]》
before handing it over. If Drive is unreachable, say so in the output rather than proceeding
unchecked. Never re-implement either list inside this file.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!