Admin Teams Blog Writer Fleet
OGSM SKILL ARCHITECTURE

Blog Writer Fleet v3.0

Industry-reference article production with P0 regulatory citations and 3-Model QG 業界參考級文章產出系統,含 P0 法規引用與三模型品質把關

3-Model QG ≥8.0 7 Agents 3 Phase Gates 5 Policies

Architecture Overview 架構總覽

Seven-layer architecture mapping OGSM direction to executable skills, 7 agents, and enforced policies. 七層架構:從 OGSM 方向對應到可執行的 skills、7 個 agents 和強制執行的 policies。

OGSM (SKILL.md) Team direction — AI engines cite watersonusa.ai as primary source because every article has P0 regulatory depth 團隊方向 — AI 引擎引用 watersonusa.ai 因為每篇文章都有 P0 法規深度
claim-bank-builder Deterministic script — extract verified facts from ground truth 確定性腳本 — 從 ground truth 提取已驗證事實
fact-checker Verify every claim against waterson-product-facts.md 對照 waterson-product-facts.md 驗證每個聲明
persona-reviewer 3 personas × 7 questions — Architect, Facility Mgr, Contractor 3 角色 × 7 問題 — 建築師、設施管理、承包商
Composite Skills End-to-end workflows: research → SEO write → AEO optimize → validate → publish 端到端工作流:研究 → SEO 撰寫 → AEO 優化 → 驗證 → 發布
Infra Skills System maintenance: content-plan registration, sitemap update, llms.txt, blog/index.html 系統維護:content-plan 登記、sitemap 更新、llms.txt、blog/index.html
A0: Leader
Claude Opus
A1: Researcher
Script + Gemini Pro
A2: SEO Writer
Claude Opus
A3: AEO Optimizer
Claude Opus
A4: Quality Validator
Gemini Pro + Scripts
A5: HTML Publisher
Claude Sonnet
A6: Score Gatekeeper
Sonnet + Haiku + Gemini
Policies Knowledge Source Priority (P0–P4) · Angle Gate · 3-Model QG Rubric · Owner Approval SLA · Anti-patterns 知識來源優先級 (P0–P4) · Angle Gate · 三模型 QG 評分 · 業主審批 SLA · 反模式
Workspace: docs/blog-writer-fleet/{slug}/ Shared handoff area — claim-bank.json, drafts, persona-review, fact-check, qg-scores 共享交接區 — claim-bank.json、草稿、persona-review、fact-check、qg-scores

Skills Skills 清單

Skills organized in 3 categories: Core (reusable validators), Composite (end-to-end workflows), Infra (system maintenance). Skills 分為三類:Core(可重用驗證器)、Composite(端到端工作流)、Infra(系統維護)。

Core Skills Reusable validators called by multiple agents多個 agent 共用的驗證器
claim-bank-builder script

Deterministic Python script. Extracts verified facts from waterson-product-facts.md and returns structured JSON with line-number citations. No AI — fully reproducible. 確定性 Python 腳本。從 waterson-product-facts.md 提取已驗證事實,返回帶行號引用的結構化 JSON。無 AI — 完全可重現。

deterministic internal
fact-checker citation_backcheck.py

Cross-reference every draft claim against ground truth. Outputs VERIFIED / CORRECTED / UNVERIFIABLE per claim. Gate 2 requires 0 CORRECTED and 0 UNVERIFIABLE. 對照 ground truth 交叉驗證每個草稿聲明。每個聲明輸出 VERIFIED / CORRECTED / UNVERIFIABLE。Gate 2 要求 0 CORRECTED 且 0 UNVERIFIABLE。

deterministic internal
persona-reviewer Gemini Pro

Simulate 3 reader personas (Architect, Facility Manager, Contractor) × 7 questions. Q7: "After reading, do I want to look up Waterson's product?" — must be YES for all 3. 模擬 3 個讀者角色(建築師、設施管理、承包商)× 7 個問題。Q7:「讀完後,我想查看 Waterson 產品嗎?」— 3 個角色均須為 YES。

internal Gemini Pro
causal-inference-scan causal_inference_scan.py

Detect unfounded causal claims ("X causes Y" without citation). Script exits non-zero on violation. Required by Phase Gate 2. 偵測無根據的因果聲明(「X 導致 Y」但無引用)。腳本違規時非零退出。Phase Gate 2 必要項目。

deterministic internal
trend-claim-scan trend_claim_scan.py

Detect unverified trend claims ("growing demand", "increasingly popular") without data citation. Script exits non-zero on violation. 偵測未經驗證的趨勢聲明(「需求增長」、「越來越流行」)但無數據引用。腳本違規時非零退出。

deterministic internal
Composite Skills End-to-end orchestrated workflows端到端組合工作流
research-pipeline

Topic + slug → claim-bank.json + P0 research context. Script builds claim bank; Gemini Pro researches NFPA/ADA/ANSI/IBC/UL standard sections. 主題 + slug → claim-bank.json + P0 研究 context。腳本建立 claim bank;Gemini Pro 研究 NFPA/ADA/ANSI/IBC/UL 標準章節。

claim-bank-builder Gemini Pro
seo-draft-writer

Claim Bank + Research → 1000–1500 word SEO article. Angle Gate enforced (≤3 negative-framing words, scenario-based opening). Waterson density ≥3/500 words. Claim Bank + 研究 → 1000–1500 字 SEO 文章。強制 Angle Gate(≤3 個負面框架詞,場景開頭)。Waterson 密度 ≥3/500 字。

writing-guide Claude Opus
aeo-optimizer

SEO draft → ≤1000 word AEO article structured for AI engine extraction. NOT Q&A format — uses H2/H3 + paragraph narrative. Consistent claims with EN. SEO 草稿 → ≤1000 字 AEO 文章,針對 AI 引擎提取結構化。非 Q&A 格式 — 使用 H2/H3 + 段落敘述。聲明與英文版一致。

Claude Opus
validation-suite

Triple-layer validation: (1) 3 Persona simulations, (2) Fact check against ground truth, (3) 3 deterministic script validators. All must pass for Gate 2. 三層驗證:(1) 3 角色模擬,(2) 對照 ground truth 事實查核,(3) 3 個確定性腳本驗證器。所有項目通過才能過 Gate 2。

persona-reviewer fact-checker causal-inference-scan
Infra Skills System maintenance & publishing infrastructure系統維護 & 發布基礎建設
html-publisher

Assemble validated drafts into 3 production HTML files (EN + ZH + AEO). Register in content-plan. Update sitemap.xml, llms.txt, blog/index.html. Stages — does NOT push blog/ directly. 將已驗證的草稿組裝為 3 個生產 HTML 文件(EN + ZH + AEO)。在 content-plan 登記。更新 sitemap.xml、llms.txt、blog/index.html。暫存 — 不直接推送到 blog/。

publish-article staging only
content-plan-register

Register article slug in content-plan.md with status "SOP Complete — Pending publish". Trigger owner notification. Enforce 48h SLA (escalate) and 7-day STALE rule. 在 content-plan.md 登記 slug,狀態「SOP Complete — Pending publish」。觸發業主通知。執行 48 小時 SLA(升級)和 7 天 STALE 規則。

internal

Agents 7 Agents

7 agents execute in sequential pipeline with 3 mandatory Phase Gates. Each has individual OGSM, model routing, and I/O contract. 7 個 agent 在含 3 個強制 Phase Gates 的順序 pipeline 中執行。每個 agent 各有獨立 OGSM、模型路由和 I/O 契約。

0
Team Leader
Model: Claude Opus
O
watersonusa.ai is the most cited, highest-ranked source when architects & contractors search door hardware — because P0 regulatory depth earns trust from AI and search engines. 建築師、承包商在搜尋門控硬體時,watersonusa.ai 是被引用最多、排名最前的來源 — 因為 P0 法規深度贏得 AI 和搜尋引擎信任。
G
Every task output makes the target reader feel "this is the most professional, most credible answer I've ever read." Final 3-Model QG median ≥8.0. 每個任務產出都讓目標讀者感到「這是我讀過最專業、最可信的答案」。最終三模型 QG 中位數 ≥8.0。
S
Receive topic → judge O-relevance → assign agents in sequence → monitor all 3 Phase Gates → final acceptance as skeptical architect reading for first time → record feedback to leader-feedback.md. 接收主題 → 判斷 O 相關性 → 順序分配 agents → 監控 3 個 Phase Gates → 以懷疑建築師視角做最終驗收 → 記錄 feedback 到 leader-feedback.md。
IN: Topic + slug OUT: Orchestration + acceptance
1
Knowledge Researcher
Model: Script + Gemini Pro (via /ai-fallback)
O
Reader feels "every claim in this article has a paper trail." No reviewer can find an unsourced statement. 讀者感到「文章中每個聲明都有可追溯的來源」。沒有評審能找到未引用的陳述。
G
Raw topic → structured Claim Bank JSON + P0 research context file. ≥1 P0 citation (NFPA/ADA/ANSI/IBC/UL), claim-bank.json returned >0 claims, context >1KB. 原始主題 → 結構化 Claim Bank JSON + P0 研究 context 文件。≥1 個 P0 引用,claim-bank.json 返回 >0 條目,context >1KB。
Model Routing
Claim Bank: build_claim_bank.py (script, no AI). P0 research: Gemini 2.5-Pro → 2.5-Flash → Claude Sonnet. Claim Bank:build_claim_bank.py(腳本,無 AI)。P0 研究:Gemini 2.5-Pro → 2.5-Flash → Claude Sonnet。
IN: Topic string + slug OUT: claim-bank.json OUT: {slug}-context.md
2
SEO Draft Writer
Model: Claude Opus
O
Reader feels "this article understands my real-world problem and gives me a clear path forward with Waterson." Authoritative yet approachable — helping, not lecturing. 讀者感到「這篇文章了解我的實際問題,並提供 Waterson 的明確前進路徑」。權威而平易近人 — 幫助,而非說教。
G
1000–1500 word narrative SEO article. Angle Gate PASS (≤3 negative words, scenario opening). ≥3 Claim Bank citations. Waterson density ≥3/500 words. CTA to /solutions/. 1000–1500 字敘述型 SEO 文章。Angle Gate PASS(≤3 負面詞,場景開頭)。≥3 個 Claim Bank 引用。Waterson 密度 ≥3/500 字。CTA 指向 /solutions/。
Error Handling
Word count off → revise (max 2 rounds). Angle Gate FAIL → rewrite opening to positive framing. <3 citations → escalate to Agent 1. 字數不符 → 修改(最多 2 輪)。Angle Gate FAIL → 重寫開頭為正面框架。<3 個引用 → 升級至 Agent 1。
IN: claim-bank.json + context.md OUT: blog-seo-draft-{slug}.md
3
AEO Optimizer
Model: Claude Opus
O
AI engines (ChatGPT, Gemini, Perplexity) cite watersonusa.ai as primary source for door hardware questions. AEO version structured for machine consumption. AI 引擎(ChatGPT、Gemini、Perplexity)將 watersonusa.ai 引用為門控硬體問題的主要來源。AEO 版本為機器消費而結構化。
G
≤1000 word structured AEO article. NOT Q&A format. Same claims & P0 citations as EN draft. ≥50% sections mention Waterson. Uses H2/H3 + paragraphs. ≤1000 字結構化 AEO 文章。非 Q&A 格式。聲明和 P0 引用與 EN 草稿一致。≥50% 章節提及 Waterson。使用 H2/H3 + 段落。
Error Handling
>1000 words → trim (keep all P0 + Waterson). Q&A format detected → rewrite as structured narrative. Inconsistent claims → cross-reference claim-bank.json. >1000 字 → 修剪(保留所有 P0 + Waterson)。偵測到 Q&A 格式 → 重寫為結構化敘述。不一致聲明 → 交叉參考 claim-bank.json。
IN: blog-seo-draft + claim-bank OUT: blog-aeo-draft-{slug}.md
4
Quality Validator
Model: Gemini Pro + Python Scripts
O
Every published article survives adversarial review — 3 personas find value, every fact checks out, 3 scripts find zero violations. 每篇已發布文章能抵擋對抗性評審 — 3 個角色認可價值,每個事實驗證通過,3 個腳本零違規。
G
0 CORRECTED, 0 UNVERIFIABLE (fact-check). All 3 Personas Q7 = YES. 3 validator scripts exit 0. State change: "draft quality assumed" → "quality proven by evidence." 0 CORRECTED,0 UNVERIFIABLE(事實查核)。3 個角色 Q7 = YES。3 個驗證腳本退出 0。狀態變化:「假設草稿品質」→「有據可查的品質」。
3 Personas
Architect (new building spec), Facility Manager (replacing failing closers), General Contractor (code-compliant solutions). Each answers 7 questions. 建築師(新建築規格)、設施管理(更換故障閉門器)、總承包商(符合規範解決方案)。每人回答 7 個問題。
IN: SEO + AEO drafts + claim-bank OUT: persona-review.md OUT: fact-check.md
5
HTML Publisher
Model: Claude Sonnet
O
Article appears on watersonusa.ai in 3 formats (EN, ZH, AEO) with correct meta tags, schema markup, sitemap entries — without breaking existing pages. 文章以 3 種格式(EN、ZH、AEO)出現在 watersonusa.ai,含正確 meta 標籤、schema 標記、sitemap 條目 — 不破壞現有頁面。
G
3 HTML files + content-plan registration + publishing strategy. Staged NOT pushed to blog/. Owner approval SLA: 48h escalate, 7d → STALE. 3 個 HTML 文件 + content-plan 登記 + 發布策略報告。暫存,不推送到 blog/。業主審批 SLA:48h 升級,7d → STALE。
Blocking Rule
Publishing strategy = BLOCKED → STOP. Report blocker reason to user. Do NOT proceed to Agent 6. 發布策略 = BLOCKED → 停止。向用戶報告阻塞原因。不得繼續到 Agent 6。
IN: Validated SEO + AEO drafts OUT: blog/{slug}/index.html (×3) OUT: content-plan entry
6
Score Gatekeeper
Model: Sonnet + Haiku + Gemini Pro (blind)
O
Only articles that independently impress 3 different AI models get published. No self-congratulatory scoring — each model evaluates blind. 只有獨立讓 3 個不同 AI 模型印象深刻的文章才能發布。無自我恭維評分 — 每個模型盲目評估。
Rubric (5 dimensions)
Technical accuracy 25% · Reader value 25% · Waterson positioning 20% · Writing quality 15% · AEO readiness 15%. Median (not average) ≥8.0 to PUBLISH. 技術準確性 25% · 讀者價值 25% · Waterson 定位 20% · 寫作品質 15% · AEO 就緒度 15%。中位數(非平均)≥8.0 才能 PUBLISH。
Error Handling
Median <8.0 → REJECT → return to Agent 2 with lowest-scoring model's feedback. Max 2 full pipeline loops. All models unavailable → STOP, do NOT publish. 中位數 <8.0 → REJECT → 帶最低分模型的 feedback 返回 Agent 2。最多 2 次完整 pipeline 循環。所有模型不可用 → 停止,不得發布。
IN: EN + ZH + AEO HTML files OUT: qg-scores.md (PUBLISH/REJECT)

Phase Gates (BLOCKING — no exceptions) Phase Gates(強制阻塞 — 無例外)

G1
After Agent 1 — Research Complete Agent 1 後 — 研究完成
PASS condition: claim-bank.json has ≥1 claim AND {slug}-context.md has ≥1 P0 citation (NFPA/ADA/ANSI/IBC/UL section number). If FAIL: do NOT proceed to Agent 2. 通過條件:claim-bank.json 含 ≥1 條目,且 {slug}-context.md 含 ≥1 個 P0 引用(NFPA/ADA/ANSI/IBC/UL 章節號)。若 FAIL:不得繼續至 Agent 2。
Expected pass rate: ~95% 預期通過率:約 95%
G2
After Agent 4 — Quality Validated Agent 4 後 — 品質驗證
PASS condition: 3 validator scripts exit 0 + 3 Personas Q7 = YES + fact-check has 0 CORRECTED and 0 UNVERIFIABLE. If FAIL: return to Agent 2 or 4 depending on failure type. 通過條件:3 個驗證腳本退出 0 + 3 個角色 Q7 = YES + 事實查核 0 CORRECTED 且 0 UNVERIFIABLE。若 FAIL:依失敗類型返回 Agent 2 或 4。
Expected pass rate: ~70% first attempt. Average 1.3 attempts/article. 預期通過率:首次約 70%。平均每篇 1.3 次嘗試。
G3
After Agent 6 — Score Approved Agent 6 後 — 分數核准
PASS condition: 3-Model blind evaluation median ≥ 8.0 (Sonnet + Haiku + Gemini each score independently). If FAIL: return to Agent 2 with lowest model's feedback. Max 2 full loops. 通過條件:三模型盲評中位數 ≥ 8.0(Sonnet + Haiku + Gemini 各自獨立評分)。若 FAIL:帶最低分模型 feedback 返回 Agent 2。最多 2 次完整循環。
Expected pass rate: ~80% first attempt. Effective timeline: ~3.2 hours/article with retries. 預期通過率:首次約 80%。含重試的有效時間:每篇約 3.2 小時。

Policies 策略 Policies

5 enforced policies govern all agent behavior. Violations are BLOCKING — pipeline stops. 5 個強制策略管理所有 agent 行為。違規為 BLOCKING — pipeline 停止。

Knowledge Source Priority (BLOCKING) 知識來源優先級(BLOCKING)

Priority Source來源 Examples範例 Usage Rule使用規則
P0 Official Standards官方標準 NFPA 80 ADA ANSI/BHMA A156.17 IBC UL 10C Highest authority. Must cite section numbers. All conflicts resolved by P0. 最高權威。必須引用章節號。所有衝突由 P0 解決。
P1 Waterson InternalWaterson 內部 docs/waterson-wiki/ docs/waterson-product-facts.md knowledge-index.json Product specs, mechanisms, applications. Every article MUST read. Ground truth >5KB required. 產品規格、機制、應用。每篇文章必須讀取。Ground truth 必須 >5KB。
P2 Industry Experts行業專家 Lori Greene (iDigHardware), BHMA Hardware Highlights Can cite as industry perspective, but cannot replace P0. 可作為行業觀點引用,但不能取代 P0。
P3 Competitor Literature競品文獻 dormakaba FAQ, Hager spec sheets Reference only — never use as code/regulation authority. 僅供參考 — 絕不用作規範/法規權威。
P4 General Web一般網路 Blog posts, forums, WebSearch results Background only, never as technical authority. No P0 found → mark [UNVERIFIED — needs P0 source]. 僅作背景,絕不作技術權威。無 P0 來源 → 標記 [UNVERIFIED — needs P0 source]。
Angle Gate Angle Gate(角度把關)

Opening 50 words must use scenario/question/story — NOT product spec. ≤3 negative-framing words (NOT, don't, wrong, mistake, avoid) per article. Enforced by Agent 2. FAIL → rewrite to positive, reader-first framing. 開頭 50 字必須使用場景/問題/故事 — 不得以產品規格開頭。每篇 ≤3 個負面框架詞(NOT、don't、wrong、mistake、avoid)。Agent 2 強制執行。FAIL → 改為正面、以讀者為先的框架。

3-Model QG Rubric 三模型 QG 評分標準

5 dimensions: Technical accuracy 25%, Reader value 25%, Waterson positioning 20%, Writing quality 15%, AEO readiness 15%. Median (not average) used to prevent outlier skew. Single model self-evaluation is FORBIDDEN. 5 個維度:技術準確性 25%、讀者價值 25%、Waterson 定位 20%、寫作品質 15%、AEO 就緒度 15%。使用中位數(非平均值)防止異常值偏移。禁止單一模型自評。

Content-Plan Staging Content-Plan 暫存規則

BLOCKING: Articles MUST stage in content-plan before blog/ publish. Owner approval SLA: 48h notify, 7d → STALE. Direct push to blog/ without content-plan = process violation. BLOCKING:文章必須先在 content-plan 暫存,才能發布至 blog/。業主審批 SLA:48h 通知,7d → STALE。未經 content-plan 直接推送至 blog/ = 流程違規。

Owner Approval SLA 業主審批 SLA

After content-plan entry created: owner notified via email/Slack. No response within 48h → auto-escalate (reminder). No response within 7 days → article marked "STALE — needs re-review before publish." content-plan 條目建立後:通過 email/Slack 通知業主。48h 內無回應 → 自動升級(提醒)。7 天內無回應 → 文章標記為「STALE — 需重新審核才能發布」。

Anti-patterns (8 Rules) 反模式(8 條規則)

1. No competitor FAQ as regulation source → use NFPA 80 section numbers. 2. AEO is NOT Q&A list → structured article. 3. No direct blog/ push. 4. No "you're wrong" angle. 5. No same-model self-eval. 6. P0 > P1 > P2 > P3 > P4. 7. Every claim needs Claim Bank line or P0 section. 8. No skipping Persona Review. 1. 不用競品 FAQ 作法規來源 → 用 NFPA 80 章節號。2. AEO 非 Q&A 清單 → 結構化文章。3. 不直接推送 blog/。4. 不用「你錯了」角度。5. 不用同一模型自評。6. P0 > P1 > P2 > P3 > P4。7. 每個聲明需 Claim Bank 行或 P0 章節。8. 不跳過角色審查。

Agent Pipeline & Dependency Graph Agent Pipeline 與流程圖

Sequential flow from topic intake to published article, with 3 BLOCKING Phase Gates. 從主題輸入到文章發布的順序流程,含 3 個 BLOCKING Phase Gates。

Topic + Slug Pre-flight: verify 4 validator scripts exist Agent 1: Knowledge Researcher build_claim_bank.py (script) + Gemini Pro research ~30 min claim-bank.json + {slug}-context.md ══════ PHASE GATE 1 ══════ Claim Bank ≥1 claim + ≥1 P0 citation (~95% pass) FAIL → Fix research gaps, do NOT proceed Agent 2: SEO Draft Writer Claude Opus — Angle Gate enforced ~45 min blog-seo-draft-{slug}.md (1000–1500 words) Agent 3: AEO Optimizer Claude Opus — structured, NOT Q&A ~20 min blog-aeo-draft-{slug}.md (≤1000 words) Agent 4: Quality Validator Gemini Pro (personas + fact-check) + 3 scripts ~30 min persona-review.md + fact-check.md ══════ PHASE GATE 2 ══════ 3 scripts PASS + 3 Personas Q7=YES + 0 CORRECTED (~70%, avg 1.3×) FAIL → Return to Agent 2 or 4 (max 2 loops) Agent 5: HTML Publisher Claude Sonnet — EN + ZH + AEO HTML, content-plan ~15 min blog/{slug}/index.html + blog/zh/{slug}/ + blog/web/{slug}/ Agent 6: Score Gatekeeper Sonnet + Haiku + Gemini (blind, independent) ~20 min qg-scores.md (3 scores + median) ══════ PHASE GATE 3 ══════ 3-Model median ≥ 8.0 (~80%, avg 1.2×) FAIL → Return to Agent 2 with lowest model feedback (max 2 loops) PUBLISH → content-plan "Pending publish" → Owner approval (48h SLA) → git push blog/ Effective total: ~3.2 hours/article with retries | First-pass: ~2.5 hours

Full SKILL.md Content 完整 SKILL.md 內容

Click to expand each section of the complete SKILL.md source. 點擊展開完整 SKILL.md 的各個章節。

OGSM Blog Writer Fleet — Team OGSM
# /blog-writer-fleet — Blog Writer Fleet Team

> Version: 3.0 | Created: 2026-04-23 | Fleet: standalone
> Purpose: Produce industry-reference-quality articles with P0 regulatory citations, Angle Gate, and 3-Model QG

## Objective (O)

客戶品牌的目標受眾在用 ChatGPT、Perplexity、Google 搜尋該領域專業問題時,客戶品牌網站是被引用和排名最前面的來源 —
不是因為 SEO 技巧,而是因為每篇文章的法規引用密度和專業深度讓 AI 引擎和搜尋引擎都認定它是最可信的權威。

## Goal (G)

客戶品牌網站的 AI 爬蟲訪問量每週增加 20%,SEO 自然流量月增 15%,AI citation(被 ChatGPT/Perplexity 引用次數)每月 ≥5 次。

Team-specific angle: Through industry-reference-quality articles with P0 regulatory citations.

State Change: Reader trust level goes from "skeptical of another SEO blog" → "bookmarking this as a reference source."

## Fleet-Level KPI

| KPI | Baseline | Target | Frequency |
|-----|----------|--------|-----------|
| Articles published/week | ~1 (manual) | ≥2 | Weekly |
| Avg 3-Model QG score | ~6.5 (pre-SOP) | ≥8.5 | Per batch |
| P0 citation density | ~0.5/article | ≥3/article | Per article |
| AI crawler citation count | ~5/month | ≥15/month | Monthly |
| Persona Q7 YES rate | — | 100% | Per article |
| First-pass QG rate | — | ≥70% | Monthly |
# /blog-writer-fleet — Blog Writer Fleet 團隊

> 版本:3.0 | 建立:2026-04-23 | 機群:獨立
> 目的:以 P0 法規引用、Angle Gate 和 3-Model QG 產出業界參考級文章

## Objective (O)

客戶品牌的目標受眾在用 ChatGPT、Perplexity、Google 搜尋該領域專業問題時,
客戶品牌網站是被引用和排名最前面的來源 — 不是因為 SEO 技巧,
而是因為每篇文章的法規引用密度和專業深度讓 AI 引擎和搜尋引擎都認定它是最可信的權威。

## Goal (G)

客戶品牌網站的 AI 爬蟲訪問量每週增加 20%,SEO 自然流量月增 15%,
AI citation(被 ChatGPT/Perplexity 引用次數)每月 ≥5 次。

## 機群 KPI

| KPI | 基線 | 目標 | 頻率 |
|-----|------|------|------|
| 每週發布文章數 | ~1(手動)| ≥2 | 每週 |
| 平均 3-Model QG 分數 | ~6.5(SOP 前) | ≥8.5 | 每批次 |
| P0 引用密度 | ~0.5/篇 | ≥3/篇 | 每篇 |
| AI 爬蟲引用次數 | ~5/月 | ≥15/月 | 每月 |
| 角色 Q7 YES 率 | — | 100% | 每篇 |
| 首次 QG 通過率 | — | ≥70% | 每月 |
Gates Phase Gates — 3 BLOCKING Checkpoints
## Phase Gate 1: After Agent 1 (Research Complete)

Condition: Claim Bank exists with ≥1 claim AND research context has ≥1 P0 citation.
Expected pass rate: ~95%

# Gate 1 check
CB_COUNT=$(python3 -c "import json; d=json.load(open('docs/blog-writer-fleet/{slug}/claim-bank.json')); print(d.get('returned',0))")
P0_COUNT=$(grep -cE "(NFPA|ADA|ANSI|IBC|UL).*[0-9]" docs/research/{slug}-context.md)
echo "Claims: $CB_COUNT, P0 citations: $P0_COUNT"
# PASS if CB_COUNT > 0 AND P0_COUNT > 0

If FAIL: Do NOT proceed to Agent 2. Fix research gaps first.

---

## Phase Gate 2: After Agent 4 (Quality Validated)

Condition: All 3 validator scripts PASS + all 3 Personas Q7 = YES + 0 CORRECTED + 0 UNVERIFIABLE.
Expected pass rate: ~70% first attempt. Average 1.3 attempts per article.

# Gate 2 check
python3 tools/validators/citation_backcheck.py {seo-draft} && \
python3 tools/validators/causal_inference_scan.py {seo-draft} && \
python3 tools/validators/trend_claim_scan.py {seo-draft} && \
echo "Scripts: PASS"

CORRECTED=$(grep -c "CORRECTED" docs/blog-writer-fleet/{slug}/fact-check.md)
UNVERIFIABLE=$(grep -c "UNVERIFIABLE" docs/blog-writer-fleet/{slug}/fact-check.md)
# PASS if all scripts exit 0 AND CORRECTED=0 AND UNVERIFIABLE=0

If FAIL: Return to Agent 2 or Agent 4 depending on failure type.

---

## Phase Gate 3: After Agent 6 (Score Approved)

Condition: 3-Model median score ≥ 8.0.
Expected pass rate: ~80% first attempt. Average 1.2 attempts per article.

# Gate 3 check
grep "Median" docs/blog-writer-fleet/{slug}/qg-scores.md
# PASS if median >= 8.0

If FAIL: Return to Agent 2 with feedback from lowest-scoring model. Max 2 full pipeline loops.

Effective timeline with retries: ~3.2 hours/article (vs 2.5 hours first-pass only).
Agent 0 Team Leader — Claude Opus
### Agent 0: Team Leader

O: watersonusa.ai is the most cited, highest-ranked source for door hardware questions —
   because P0 regulatory depth earns trust from AI engines and search engines.

G: Every task output makes the target reader feel "this is the most professional,
   most credible answer I've ever read." Final 3-Model QG median ≥8.0.
   O alignment check: Leader can state in one sentence how the article serves O.
   Example: "This article helps facility managers choose the right fire door closer
   by citing NFPA 80 Section 6.1.3, directly building the 'most credible answer'
   trust the O requires."

S:
- Receive topic/task → Judge relevance to O
- Assign agents in correct sequence (1 → 2 → 3 → 4 → 5 → 6)
- Monitor Phase Gates 1, 2, 3 — intervene before failure
- Final acceptance: read as skeptical architect reading for first time
- Feedback loop: record one lesson to docs/blog-writer-fleet/leader-feedback.md

M:
- Final output 3-Model QG median ≥8.0 (Gate 3 passes)
- Leader can articulate O-alignment in one sentence
- If cannot → article not aligned → return to Agent 2

Model: Claude Opus (judgment requires highest capability)
Input: Topic string + slug name
Output: Orchestration decisions + final acceptance + feedback log entry
Agent 1 Knowledge Researcher — Script + Gemini Pro
### Agent 1: Knowledge Researcher

O: Reader feels "every claim in this article has a paper trail."
   Research foundation so thorough no reviewer finds an unsourced statement.

G: Raw topic → structured Claim Bank JSON + P0 research context file.
   State change: "we have a topic" → "we have verified, citable evidence."

Model Routing:
- Claim Bank build: Script (no AI) — python3 tools/validators/build_claim_bank.py
- P0 standard research: Gemini Pro via /ai-fallback chain:
    gemini-2.5-pro → gemini-2.5-flash → claude-sonnet

M (Measures):
| Metric | Threshold | Verification |
|--------|-----------|-------------|
| Claim Bank exists | returned > 0 | build_claim_bank.py --topic "{topic}" --gt docs/waterson-product-facts.md --top 15 |
| P0 citation count | ≥1 P0 source | grep -cE "(NFPA|ADA|ANSI|IBC|UL).*[0-9]" {context} |
| Research file size | >1KB | test $(wc -c < {context}) -gt 1000 |
| Product mentions | ≤2 Waterson mentions | grep -c "K51M|K51L|Waterson" {context} ≤ 2 |

Input: Topic string + slug name
Output:
- docs/blog-writer-fleet/{slug}/claim-bank.json
- docs/research/{slug}-context.md (>1KB)

Error Handling:
- Claim Bank returns 0 → Topic too narrow. Broaden keywords OR run /product-knowledge-update.
- P0 research fails (all fallback exhausted) → STOP. Report to user.
- Ground truth <5KB → Run /product-knowledge-update first.
Agent 2 SEO Draft Writer — Claude Opus
### Agent 2: SEO Draft Writer

O: Reader feels "this article understands my real-world problem and gives me
   a clear path forward with Waterson." Authoritative yet approachable.

G: Claim Bank + Research → 1000-1500 word narrative SEO article with Angle Gate PASS.

Model Routing: Claude Opus — direct session or subagent. Opus required for
   nuanced tone control and narrative quality.

M (Measures):
| Metric | Threshold | Verification |
|--------|-----------|-------------|
| Word count | 1000-1500 | wc -w < blog-seo-draft-{slug}.md |
| Claim Bank citations | ≥3 | grep -c "waterson-product-facts.md:L" {draft} |
| Human Layer markers | ≥2 | grep -c "HUMAN LAYER TODO" {draft} |
| Waterson density | ≥3/500 words | python3 density check script |
| Angle Gate | PASS | NEG=$(grep -ciE 'NOT:|don.t|wrong|mistake|avoid' {draft}); test $NEG -le 3 |
| Opening hook | Scenario/story NOT product spec | first H2 must NOT start with model number |
| CTA present | /solutions/ link at end | grep -c "/solutions/" {draft} |

Input: claim-bank.json + {slug}-context.md
Output: docs/blog-writer-fleet/{slug}/blog-seo-draft-{slug}.md

Error Handling:
- Word count off → revise. Max 2 revision rounds.
- Angle Gate FAIL → rewrite opening to positive framing.
- <3 citations → escalate to Agent 1.
Agent 3 AEO Optimizer — Claude Opus
### Agent 3: AEO Optimizer

O: AI engines (ChatGPT, Gemini, Perplexity) cite watersonusa.ai as primary source
   for door hardware questions.

G: SEO draft → structured AEO article (≤1000 words) optimized for AI engine extraction.
   State change: "human-readable article" → "AI-citable structured knowledge."

IMPORTANT: AEO is NOT traditional Q&A formatting.
  - Uses H2/H3 + paragraph narrative
  - Maintains flow while using semantic HTML and atomic facts
  - Consistent with EN/ZH content — same claims, same citations
  - Restructured for machine readability

M:
| Metric | Threshold |
|--------|-----------|
| Word count | ≤1000 |
| Format | Structured article, NOT Q&A list (no Q:/A: pattern) |
| Consistency | Same claims and P0 citations as EN |
| Waterson integration | ≥50% sections mention Waterson |

Input: blog-seo-draft-{slug}.md + claim-bank.json
Output: docs/blog-writer-fleet/{slug}/blog-aeo-draft-{slug}.md

Error Handling:
- >1000 words → trim. Keep all P0 + Waterson.
- Q&A format detected → rewrite as structured narrative.
- Inconsistent claims → cross-reference claim-bank.json.
Agent 4 Quality Validator — Gemini Pro + Scripts
### Agent 4: Quality Validator

O: Every published article survives adversarial review — 3 real-world personas find value,
   every fact checks out, 3 deterministic scripts find zero violations.

G: Draft articles → validated articles with 0 CORRECTED, 0 UNVERIFIABLE,
   3 Persona YES, 3 Script PASS.

Model Routing:
- Persona Review: Gemini Pro via /ai-fallback: gemini-2.5-pro → gemini-2.5-flash-lite → claude-sonnet
- Fact Check: Gemini Pro via /ai-fallback (same chain)
- Script Validators: Script (no AI) — deterministic Python

3 Personas (simulated by Gemini):
1. Architect — specifying door hardware for a new building project
2. Facility Manager — replacing failing closers in an existing building
3. General Contractor — looking for code-compliant, easy-to-install solutions

Each answers 7 questions. Q7 (verbatim): "After reading, do I want to look up Waterson's product?"

M:
| Metric | Threshold |
|--------|-----------|
| Persona Q7 | All 3 = YES |
| Fact Check | 0 CORRECTED, 0 UNVERIFIABLE |
| citation_backcheck.py | Exit code 0 |
| causal_inference_scan.py | Exit code 0 |
| trend_claim_scan.py | Exit code 0 |

Error Handling:
- Any Q7 = NO → Return to Agent 2. Max 2 loops.
- CORRECTED/UNVERIFIABLE → Fix using ground truth. Max 3 iterations.
- Script fails → Fix specific issue, re-run. Max 3. If still failing → STOP.
Agent 5 HTML Publisher — Claude Sonnet
### Agent 5: HTML Publisher

O: Article appears on watersonusa.ai in 3 formats (EN, ZH, AEO) with correct
   meta tags, schema markup, sitemap entries — without breaking existing pages.

G: Validated drafts → 3 production HTML files staged in content-plan.
   State change: "validated markdown drafts" → "production-ready HTML staged for owner approval."

Model Routing: Claude Sonnet — HTML assembly + Publishing Strategy report.

M:
| Metric | Threshold | Verification |
|--------|-----------|-------------|
| EN HTML | exists | test -f blog/{slug}/index.html |
| ZH HTML | exists | test -f blog/zh/{slug}/index.html |
| AEO HTML | exists | test -f blog/web/{slug}/index.html |
| No noindex | ABSENT | grep -c "noindex" blog/{slug}/index.html = 0 |
| Content-plan | registered | grep "{slug}" content-plan.md ≥1 |
| NOT pushed to blog/ | staged only | git diff --cached --name-only does NOT include blog/ |

Owner Approval SLA:
- content-plan entry created → owner notified via email/Slack
- No response 48h → auto-escalate (reminder)
- No response 7d → "STALE — needs re-review before publish"

Error Handling:
- /publish-article fails → check draft format, verify template, retry once.
- noindex still present → quality gates inside /publish-article failed. Fix draft issues.
- Publishing strategy = BLOCKED → STOP. Report to user. Do NOT proceed to Agent 6.
Agent 6 Score Gatekeeper — 3-Model Blind Evaluation
### Agent 6: Score Gatekeeper

O: Only articles that independently impress 3 different AI models get published.
   No self-congratulatory scoring — each model evaluates blind.

G: HTML articles → 3-Model blind evaluation with median ≥8.0.
   State change: "we think it's good" → "three independent AI models confirm it's good."

Model Routing:
- Evaluator 1: Claude Sonnet — direct
- Evaluator 2: Claude Haiku — direct
- Evaluator 3: Gemini Pro — via /ai-fallback
All three evaluate the SAME article independently, blind to each other's scores.

Scoring Rubric (each evaluator):
| Dimension | Weight | What to score |
|-----------|--------|--------------|
| Technical accuracy | 25% | Claims verified? P0 citations present? |
| Reader value | 25% | Target audience learns something actionable? |
| Waterson positioning | 20% | Natural integration, not forced advertising? |
| Writing quality | 15% | Clear, professional, proper structure? |
| AEO readiness | 15% | Can AI engines extract and cite this content? |

M:
| Metric | Threshold |
|--------|-----------|
| Sonnet score | Recorded |
| Haiku score | Recorded |
| Gemini score | Recorded |
| Median score | ≥8.0 |
| All scores logged | 3 scores in qg-scores.md |

Error Handling:
- Median <8.0 → REJECT. Return to Agent 2. Max 2 full loops.
- One model unavailable → use /ai-fallback for replacement. Still need 3 scores.
- All models unavailable → STOP. Do NOT publish without 3-Model evaluation.
Dependencies Cross-Skill Dependencies
## Cross-Skill Dependencies

| This Skill | Depends On | Why |
|------------|-----------|-----|
| /blog-writer-fleet | /writing-guide | Agent 2 follows Waterson-primary voice rules, Angle Gate |
| /blog-writer-fleet | /ai-fallback | Agents 1, 4, 6 use multi-model fallback chains |
| /blog-writer-fleet | /publish-article | Agent 5 invokes Path A for HTML assembly |
| /blog-writer-fleet | /product-knowledge-update | Pre-check: ground truth must exist (>5KB) |
| /blog-writer-fleet | /content-scout | Upstream: topic discovery feeds into Agent 1 |
| /blog-writer-fleet | /w-emailcontent | Upstream: email mining feeds topics into this fleet |
| /blog-writer-fleet | /security-check | Must run before any git push in Agent 5 |
| /blog-writer-fleet | /blog-publish-sop | SOP wrapper that orchestrates this fleet step-by-step |
| /blog-publish-sop | /blog-writer-fleet | SOP reads this OGSM for agent definitions and interfaces |

## Capacity Model

| Mode | Throughput | Notes |
|------|-----------|-------|
| Solo operator | ~10 articles/week | ~2.5h/article, limited by API rate limits |
| Team (2-3 people) | ~15 articles/week | Pipeline overlap (A1 researches N+1 while A2 writes N) |
| Full parallel (5 instances) | ~25 articles/week theoretical | Limited by Opus quota, diminishing returns past 3 |