vicwest-roofing · V3 handoff
14 files · 14-file handoff schema · source: clients/vicwest-roofing/v2/handoff/
README.md · 1.5KB
# Handoff Package · Vicwest Roofing
> Generated by `pl:build-handoff` · 2026-05-16T12:01:16.485Z
> Entity: `place_chijkrzfmm9p0worrpl40dpbb7c` · Phase: `archived`
## 商家概览
- **名字**: Vicwest Roofing
- **行业**: roofer
- **城市**: Ballarat (VIC)
- **网站**: https://vicwestroofing.com.au/
- **电话**: 0403 554 592
- **ABN**: _(待 ABR_GUID 注册后补)_
- **域名年龄**: 4 年 (wayback_first_snapshot)
- **第一次上线**: 2022-04-07
- **Google**: 4.1★ · 18 reviews
## Handoff 14 文件结构
- **core-facts.json** · 硬数据 · 27 字段 · LOCKED
- **design/brand-tokens.json** · brand color/font tokens
- **design/design-style.md** · visual style 描述
- **content/services.json** · 5 服务条目
- **content/about.md** · 公司故事 (niche typical + 硬数据综合)
- **content/faq.json** · 6 问 (niche typical)
- **structure/page-map.json** · 14 页 · 5 服务 + 4 area 长尾
- **structure/seo-strategy.md** · long-tail target list
- **audit/findings.json** · 10 issue
- **audit/issue-fix-matrix.json** · issue → page+section 映射
- **boundaries.md** · LOCKED 字段清单
- **final-prompt.md** · build prompt aggregator
- **README.md** (本文)
## 待 Phase B 升级 (LLM 调用 · Cascade A)
- Logo skill 真调 (现在是 brand-tokens niche default · 没真 logo)
- about-narrative LLM 综合 (现在是模板综合 · 没用 review 语气 / 原网内容)
- services 描述 LLM 抽 (从现网 markdown / GBP types)
- FAQ LLM 生成 (现在是 niche typical · 没 customize)
- Photos AI 分析 + selection
- Reviews 真聚合 + AI fallback
- Page-map LLM 决策 (现在 area pages 是 city+方位 hardcode · 没 sitemap analysis)
详见 [docs/v3/HANDOFF-STRUCTURE.md](../../../docs/v3/HANDOFF-STRUCTURE.md)
download raw
audit/findings.json · 3.4KB
{
"audit_score": 53,
"decision": "moderate_candidate",
"findings": [
{
"id": "homepage_title_clear",
"severity": "major",
"weight": null,
"what_observed": "title='##### GET IN TOUCH' contains-name=false contains-niche=false",
"why_it_costs": "你网站的浏览器标签 title 没把业务名字 + 服务关键词写清楚(比如该写「Vicwest Roofing - roofer Ballarat」,但目前是泛泛一句)。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "h1_unique",
"severity": "major",
"weight": null,
"what_observed": "0 <h1> tags",
"why_it_costs": "页面要么没有 H1 标题(搜索引擎无法理解页面主旨),要么有多个 H1(搜索引擎不知道哪个是主题)。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "local_schema_markup",
"severity": "major",
"weight": null,
"what_observed": "no LocalBusiness JSON-LD",
"why_it_costs": "网站没有 LocalBusiness JSON-LD 结构化数据(让 Google / AI 知道你是本地企业、地址、电话、营业时间的标准格式)。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "has_hours",
"severity": "minor",
"weight": null,
"what_observed": "no hours",
"why_it_costs": "GBP 上没有完整的营业时间。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "image_count",
"severity": "minor",
"weight": null,
"what_observed": "0 images",
"why_it_costs": "GBP 上图片数量低于行业建议(一般 ≥ 10 张完工图 + 团队照 + 设备照)。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "has_business_description",
"severity": "minor",
"weight": null,
"what_observed": "no description",
"why_it_costs": null,
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "has_service_area",
"severity": "minor",
"weight": null,
"what_observed": "no service area",
"why_it_costs": null,
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "quote_or_booking_form",
"severity": "minor",
"weight": null,
"what_observed": "no form",
"why_it_costs": "你的网站没有 quote / booking 表单 — 客户只能打电话或发邮件。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "evidence_of_recent_update",
"severity": "minor",
"weight": null,
"what_observed": "no recent year (≤ 1 year ago)",
"why_it_costs": null,
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
},
{
"id": "image_alt_present",
"severity": "minor",
"weight": null,
"what_observed": "29 images, 0% with alt",
"why_it_costs": "图片没有 alt 文字描述。",
"fix_prescription": null,
"fix_target": null,
"verification": null,
"source": "[审计 · detailed-audit]"
}
],
"_meta": {
"generator": "pl:build-handoff MVP",
"derived_from": "data/v2/fixtures/detailed-audit/place_chijkrzfmm9p0worrpl40dpbb7c.json",
"total_findings": 10
}
}
download raw
audit/issue-fix-matrix.json · 2.1KB
{
"matrix": [
{
"issue_id": "homepage_title_clear",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "h1_unique",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "local_schema_markup",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "has_hours",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "image_count",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "has_business_description",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "has_service_area",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "quote_or_booking_form",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "evidence_of_recent_update",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
},
{
"issue_id": "image_alt_present",
"resolved_in_pages": [
"all"
],
"resolved_in_sections": [
"(待 LLM 推断)"
],
"verification_check": null
}
],
"_meta": {
"generator": "pl:build-handoff MVP · LLM 升级见 V3-HANDOFF-STRUCTURE Phase B"
}
}
download raw
boundaries.md · 0.6KB
# OD 不能改的 (LOCKED · 严格)
## 商家硬数据 (verbatim · 一字不改 · Vicwest Roofing)
- **business_name**: `Vicwest Roofing`
- **phone**: `0403 554 592`
- **phone_tel_link**: `tel:0403554592`
- **address**: `Shed 3/31 Icon Dr, Delacombe VIC 3356, Australia`
- **abn**: `(待 ABR 补)` (?)
- **rating**: 4.1★ (18 reviews)
- **google_maps_url**: `https://maps.google.com/?cid=13188751736585097798`
## 不许做的
- 编造 license 号 / award / 价格 / 团队规模
- 改 Reference template 的 data-od-locked 区
- 删 data-od-sample 标记 (M5 客户要改占位)
- 用 "Welcome to" / "Your trusted" / "X years of excellence" 这种模板套话
- 修改商家名拼写 / 改电话格式 / 简化地址
详见 docs/v4/DATA-PRESERVATION-CONTRACT.md
download raw
content/about.md · 0.3KB
---
generator: "pl:build-handoff MVP"
last_updated: "2026-05-16T12:01:16.483Z"
sources:
- "[GBP]"
- "[Wayback]"
---
# About Vicwest Roofing
Vicwest Roofing 自 2022 在 Ballarat 经营 · 至今 4 年。
Google 评分: 4.1★ · 18 条评论。
## 备注
MVP 阶段 · 这段为 niche typical + 硬数据综合 · LLM 综合升级见 V3-HANDOFF-STRUCTURE Phase B (Cascade A 调用)。
download raw
content/faq.json · 1.2KB
{
"faqs": [
{
"q": "How much does roof restoration cost in Ballarat?",
"a": "Free quote · pricing depends on damage extent · we provide written estimates within 24 hours.",
"source": "[niche typical · MVP]"
},
{
"q": "Are you QBCC licensed?",
"a": "Yes · we hold a current Queensland Building and Construction Commission license · public record at ABR.",
"source": "[niche typical · MVP]"
},
{
"q": "Do you offer free quotes?",
"a": "Yes · no obligation site visit · written quote within 24 hours.",
"source": "[niche typical · MVP]"
},
{
"q": "How long does a roof replacement take?",
"a": "Typically 2-5 days depending on roof size and weather · we keep you updated throughout.",
"source": "[niche typical · MVP]"
},
{
"q": "What's your warranty?",
"a": "All workmanship guaranteed · Colorbond materials carry manufacturer warranties up to 36 years.",
"source": "[niche typical · MVP]"
},
{
"q": "Do you handle insurance claims?",
"a": "Yes · we work directly with insurance companies for storm/hail damage claims.",
"source": "[niche typical · MVP]"
}
],
"_meta": {
"generator": "pl:build-handoff MVP"
}
}
download raw
content/services.json · 1.3KB
{
"services": [
{
"id": "roof-restoration",
"name": "Roof Restoration",
"desc": "全面屋顶翻新 · 高压清洁 + 修补 + 重涂 + 防水",
"icon": "sparkles",
"page_slug": "/roof-restoration",
"source": [
"[niche typical]"
]
},
{
"id": "roof-repair",
"name": "Roof Repair",
"desc": "漏水修复 · 屋瓦更换 · 紧急维修",
"icon": "wrench",
"page_slug": "/roof-repair",
"source": [
"[niche typical]"
]
},
{
"id": "gutter-replacement",
"name": "Gutter Replacement",
"desc": "排水沟更换 · Colorbond / Zincalume",
"icon": "water",
"page_slug": "/gutter-replacement",
"source": [
"[niche typical]"
]
},
{
"id": "gutter-guard",
"name": "Gutter Guard",
"desc": "防堵排水沟方案 · 长期维护",
"icon": "shield",
"page_slug": "/gutter-guard",
"source": [
"[niche typical]"
]
},
{
"id": "metal-roofing",
"name": "Metal Roofing",
"desc": "金属屋顶安装 · 商业 + 住宅",
"icon": "rectangle",
"page_slug": "/metal-roofing",
"source": [
"[niche typical]"
]
}
],
"_meta": {
"generator": "pl:build-handoff (MVP · niche typical · LLM 升级待 V3-HANDOFF-STRUCTURE Phase B)",
"derived_from": "niche typical · GBP categories fallback"
}
}
download raw
core-facts.json · 1.4KB
{
"business_name": "Vicwest Roofing",
"phone": "0403 554 592",
"phone_tel_link": "tel:0403554592",
"email": "info@vicwestroofing.com.au",
"address": "Shed 3/31 Icon Dr, Delacombe VIC 3356, Australia",
"city": "Ballarat",
"state": "VIC",
"niche": "roofer",
"gbp_categories": [
"establishment",
"point_of_interest",
"roofing_contractor"
],
"rating": 4.1,
"review_count": 18,
"google_maps_url": "https://maps.google.com/?cid=13188751736585097798",
"domain": "vicwestroofing.com.au",
"website": "https://vicwestroofing.com.au/",
"website_status": "has_website",
"social_links": {
"facebook": "https://facebook.com/profile.php",
"instagram": "https://instagram.com/vicwest_roofing"
},
"hours": null,
"abn": null,
"abn_status": null,
"abn_registered_at": null,
"entity_type": null,
"trading_names": [],
"domain_registered_at": null,
"domain_age_years": 4,
"domain_age_source": "wayback_first_snapshot",
"first_online": "2022-04-07",
"wayback_first_snapshot_url": "http://web.archive.org/web/20220407032516/https://vicwestroofing.com.au/",
"_meta": {
"generated_at": "2026-05-16T12:01:16.483Z",
"entity_key": "place_chijkrzfmm9p0worrpl40dpbb7c",
"entity_phase": "archived",
"sources": {
"business_name": "[GBP]",
"phone": "[GBP]",
"address": "[GBP]",
"abn": null,
"domain_registered_at": null,
"first_online": "[Wayback]"
}
}
}
download raw
design/brand-tokens.json · 0.3KB
{
"primary": "#1a3d5c",
"accent": "#d97706",
"font_heading": "Inter",
"font_body": "Inter",
"dominant_palette": "navy + warm orange (industrial trades typical)",
"_meta": {
"generator": "pl:build-handoff MVP · niche typical · logo skill 待接"
}
}
download raw
design/design-style.md · 0.2KB
# Design Style · Vicwest Roofing
Modern Industrial · Trust-heavy · Editorial layout · Navy anchor with warm orange accent · Professional roofer aesthetic
_(niche typical · LLM 升级待 V3-HANDOFF-STRUCTURE Phase B)_
download raw
design/logo-mode.json · 0.1KB
{
"mode": "placeholder",
"note": "Logo skill 未接 · 用 reference template 内置 logo · 客户提交 logo 后 M5 替换",
"skill_to_invoke": "existing-logo-brand"
}
download raw
final-prompt.md · 1.5KB
# Build Prompt · Vicwest Roofing
You are adapting a reference website to a real customer. This is the build prompt aggregator
for Open Design (Codex retex). Read all referenced handoff files before generating.
## Target Customer
- **Business**: Vicwest Roofing
- **Phone**: 0403 554 592
- **Address**: Shed 3/31 Icon Dr, Delacombe VIC 3356, Australia
- **Niche**: roofer
- **City**: Ballarat, VIC
- **Website**: https://vicwestroofing.com.au/
- **Route**: REDESIGN
## Read these handoff files (in order)
1. `core-facts.json` — LOCKED data · use verbatim, do not paraphrase
2. `design/brand-tokens.json` + `design/design-style.md`
3. `content/services.json` — features to highlight
4. `content/about.md` — about narrative (may tighten copy · keep facts)
5. `content/faq.json` — 6 FAQs to embed
6. `structure/page-map.json` — build these N pages
7. `structure/seo-strategy.md` — long-tail target
8. `audit/findings.json` — 10 audit issues (REDESIGN only)
9. `audit/issue-fix-matrix.json` — which page solves which issue
10. `boundaries.md` — what you CANNOT do
## Build Requirements
- Every LOCKED field from `core-facts.json` must appear verbatim
- Each `audit/findings.json` issue must be addressed per `fix_prescription`
- Output must pass verification checks in `audit/issue-fix-matrix.json`
- Follow `boundaries.md` strictly
## Reference Template Family
Default: `classic-premium-roftix` (roofer/trades family · adaptable to other niches via LLM retex)
---
_Generated by pl:build-handoff · 2026-05-16T12:01:16.485Z_
download raw
structure/page-map.json · 2.0KB
{
"pages": [
{
"slug": "/",
"name": "Home",
"type": "home",
"purpose": "hero + 3 services + reviews + trust + map + CTA",
"priority": 1
},
{
"slug": "/roof-restoration",
"name": "Roof Restoration",
"type": "service",
"priority": 2
},
{
"slug": "/roof-repair",
"name": "Roof Repair",
"type": "service",
"priority": 2
},
{
"slug": "/gutter-replacement",
"name": "Gutter Replacement",
"type": "service",
"priority": 2
},
{
"slug": "/gutter-guard",
"name": "Gutter Guard",
"type": "service",
"priority": 2
},
{
"slug": "/metal-roofing",
"name": "Metal Roofing",
"type": "service",
"priority": 2
},
{
"slug": "/roofer-ballarat",
"name": "roofer Ballarat",
"type": "area",
"primary": true,
"priority": 3
},
{
"slug": "/roofer-ballarat-cbd",
"name": "roofer Ballarat CBD",
"type": "area",
"priority": 3
},
{
"slug": "/roofer-ballarat-northside",
"name": "roofer Ballarat Northside",
"type": "area",
"priority": 3
},
{
"slug": "/roofer-ballarat-southside",
"name": "roofer Ballarat Southside",
"type": "area",
"priority": 3
},
{
"slug": "/about",
"name": "About",
"type": "about",
"purpose": "company story + ABN + license · trust 集中",
"priority": 2
},
{
"slug": "/reviews",
"name": "Reviews",
"type": "reviews",
"purpose": "18 reviews aggregator",
"priority": 3
},
{
"slug": "/contact",
"name": "Contact",
"type": "contact",
"purpose": "form + tel + map",
"priority": 1
}
],
"total_pages": 14,
"service_pages": 5,
"area_pages": 4,
"_meta": {
"generator": "pl:build-handoff MVP",
"rationale": "Ballarat roofer · 标准结构: home + 5 services + 4 area 长尾 + about + reviews + contact"
}
}
download raw
structure/seo-strategy.md · 0.6KB
---
generator: "pl:build-handoff MVP"
source: "niche typical · city + niche combo"
---
# SEO Strategy · Vicwest Roofing
## Primary Keywords
- "roofer Ballarat"
- "best roofer Ballarat"
- "roofer near me Ballarat"
## Long-tail (Service × Area)
- "roof repair Ballarat CBD"
- "roof restoration Ballarat Northside"
- "gutter replacement Inner Ballarat"
## Schema (per page)
- LocalBusiness (whole-site · ABN + phone + address)
- Service (per service page)
- AggregateRating (18 reviews · 4.1★)
- FAQ (per page · FAQPage)
## 备注
MVP 阶段 long-tail target 为 niche typical · LLM 升级时综合 audit sitemap classify 真实长尾页 + 竞品分析。
download raw