Architecture Overview 架構總覽
Seven-layer architecture mapping OGSM direction to executable skills, 7 agents, and enforced policies. 七層架構:從 OGSM 方向對應到可執行的 skills、7 個 agents 和強制執行的 policies。
Claude Opus
Script + Gemini Pro
Claude Opus
Claude Opus
Gemini Pro + Scripts
Claude Sonnet
Sonnet + Haiku + Gemini
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(系統維護)。
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 — 完全可重現。
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。
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。
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 必要項目。
Detect unverified trend claims ("growing demand", "increasingly popular") without data citation. Script exits non-zero on violation. 偵測未經驗證的趨勢聲明(「需求增長」、「越來越流行」)但無數據引用。腳本違規時非零退出。
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 + 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 字。
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 + 段落敘述。聲明與英文版一致。
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。
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/。
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 規則。
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 契約。
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。
Phase Gates (BLOCKING — no exceptions) Phase Gates(強制阻塞 — 無例外)
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。
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]。 |
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 → 改為正面、以讀者為先的框架。
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%。使用中位數(非平均值)防止異常值偏移。禁止單一模型自評。
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/ = 流程違規。
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 — 需重新審核才能發布」。
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。
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 |