就像 git branch — 從當前對話分出一條新路線。新 session 帶著之前所有的 context,但原本的對話完全不受影響。
在 Claude Code 對話中直接輸入:
/fork
你的環境已安裝 Playwright,可以直接對 kunhang.com.tw 跑自動化測試。
| 測試項目 | 說明 |
|---|---|
| 首頁載入 | 確認 HTTP 200、頁面有內容 |
| 導覽列連結 | 自動點擊所有連結,檢查沒有 404 |
| 手機版 RWD | 模擬 iPhone 12 截圖,檢查排版 |
| 師資頁面 | 自動截圖,確認內容正確 |
| 漢堡選單 | 手機版選單展開測試 |
以下腳本可直接執行,會自動檢查 kunhang.com.tw 並存截圖到 screenshots/ 資料夾:
"""
kunhang.com.tw 自動化 QA 測試
執行:python3 test_kunhang.py
截圖存在 screenshots/ 資料夾
"""
import os
from playwright.sync_api import sync_playwright
SITE = "https://kunhang.com.tw"
SCREENSHOT_DIR = "screenshots"
def setup():
os.makedirs(SCREENSHOT_DIR, exist_ok=True)
def test_homepage_loads(page):
"""測試 1:首頁能正常載入"""
resp = page.goto(SITE, wait_until="networkidle", timeout=30000)
assert resp.status == 200, f"首頁回應碼異常:{resp.status}"
assert page.title(), "首頁標題為空"
page.screenshot(path=f"{SCREENSHOT_DIR}/01_homepage_desktop.png", full_page=True)
print(f"[PASS] 首頁載入成功,標題:{page.title()}")
def test_nav_links(page):
"""測試 2:導覽列所有連結都能點且不是 404"""
page.goto(SITE, wait_until="networkidle", timeout=30000)
nav_links = page.locator("nav a, .elementor-nav-menu a, header a").all()
results = []
for link in nav_links:
href = link.get_attribute("href")
text = link.inner_text().strip()
if not href or href.startswith("#") or href.startswith("tel:") or href.startswith("mailto:"):
continue
results.append({"text": text, "href": href})
print(f" 找到 {len(results)} 個導覽連結,逐一檢查...")
for item in results:
resp = page.goto(item["href"], wait_until="domcontentloaded", timeout=20000)
status = resp.status if resp else "無回應"
passed = resp and resp.status < 400
mark = "PASS" if passed else "FAIL"
print(f" [{mark}] {item['text']} → {item['href']} (HTTP {status})")
page.goto(SITE, wait_until="networkidle")
def test_mobile_rwd(page, browser, pw):
"""測試 3:手機版 RWD 截圖"""
iphone = pw.devices["iPhone 12"]
context = browser.new_context(**iphone)
mobile_page = context.new_page()
mobile_page.goto(SITE, wait_until="networkidle", timeout=30000)
mobile_page.screenshot(path=f"{SCREENSHOT_DIR}/02_homepage_mobile.png", full_page=True)
print("[PASS] 手機版首頁截圖完成")
hamburger = mobile_page.locator(
".elementor-menu-toggle, .eicon-menu-bar, [aria-label='Menu'], .fa-bars"
).first
if hamburger.is_visible():
hamburger.click()
mobile_page.wait_for_timeout(1000)
mobile_page.screenshot(path=f"{SCREENSHOT_DIR}/03_mobile_menu_open.png", full_page=True)
print("[PASS] 手機版選單展開截圖完成")
else:
print("[INFO] 未找到漢堡選單按鈕")
context.close()
def test_teacher_page(page):
"""測試 4:師資頁面截圖"""
page.goto(SITE, wait_until="networkidle", timeout=30000)
teacher_link = page.locator("a:has-text('師資')").first
if teacher_link.is_visible():
teacher_link.click()
page.wait_for_load_state("networkidle")
page.screenshot(path=f"{SCREENSHOT_DIR}/04_teacher_page.png", full_page=True)
print(f"[PASS] 師資頁面截圖完成,URL:{page.url}")
return
print("[WARN] 找不到師資頁面")
if __name__ == "__main__":
setup()
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={"width": 1920, "height": 1080})
print("=" * 50)
print("kunhang.com.tw 自動化 QA 測試")
print("=" * 50)
test_homepage_loads(page)
test_nav_links(page)
test_mobile_rwd(page, browser, p)
test_teacher_page(page)
browser.close()
print("=" * 50)
print(f"測試完成!截圖存放於 {SCREENSHOT_DIR}/")
cd /Users/wt/PyCharmMiscProject/鯤航網站優化 python3 test_kunhang.py
Y Combinator 總裁 Garry Tan 開源的 Claude Code 工作流套件,GitHub 兩天破萬星。
把一個 Claude Code 拆成多個「角色」,每個角色用一個自訂 slash command 啟動:
| 指令 | 角色 | 用途 |
|---|---|---|
| /ceo | 產品經理 | 評估功能優先級、產品方向 |
| /eng | 工程師 | 寫程式碼 |
| /review | Code Reviewer | 找 bug 和安全問題 |
| /qa | QA 測試 | 自動化測試和品質保證 |
| /ship | 部署管理 | 發布和部署 |
| /docs | 文件撰寫 | 寫文件 |
# 克隆 gstack git clone https://github.com/garrytan/gstack.git # 進入目錄,執行安裝 cd gstack ./install.sh
安裝後在任何專案中都能用 /ceo、/qa 等指令。本質上是一組精心設計的 system prompt + slash commands,不是獨立軟體。
你的 App 目前提供的是「管理工具」(增加努力),而不是「夢想結果」。業務員的夢想結果是「續保率提高 → 賺更多佣金」,不是「有一個地方輸入保單資料」。
不要賣「車險管理工具」,要賣「車險續保率提升系統」。
| 維度 | 目前 | 改成 |
|---|---|---|
| 夢想結果 | 管理保單資料 | 每月自動抓到即將到期客戶,續保率提升 30% |
| 降低努力 | 手動填表 | 拍一張行照就全部搞定,不用手動填欄位 |
| 降低時間延遲 | 要從零建檔 | 第一天就能用,支援匯入 Excel / 通訊錄 |
| 提高成功可能性 | 只有工具 | 附送到期前 LINE 通知範本、話術腳本、跟進 SOP |
| 層級 | 內容 | 目的 |
|---|---|---|
| 免費層 | 車險到期日計算器(LINE Bot 或網頁) | 吸引業務員進入 |
| 入門層 | 免費版 App,限 50 筆客戶 | 體驗核心功能 |
| 核心層 | 付費版:無限客戶 + 自動 LINE 提醒 + 報表 | 主要營收 |
| 高價層 | 團隊版 + 客製化 + 一對一輔導 | 高價值客戶 |
| 功能 | 用途 | 優先度 |
|---|---|---|
| Playwright QA 測試 | 師資頁面改完後,自動截圖確認桌面版和手機版排版正確、連結沒壞 | 高 — 改完就跑 |
| gstack /qa | 讓 Claude 用 QA 角色系統性地測試網站,找出遺漏 | 中 — 裝好就能用 |
| /fork | 師資頁面做到一半想試不同排版方案,fork 出去試,不怕搞壞 | 中 — 隨時可用 |
| HTTP header Agent 偵測 | 判斷是不是 AI Agent 在看網站,給 Agent 專用的 markdown 格式加速讀取 | 低 — SEO 加分但不急 |
| caffeinate 自動防睡眠 | Claude Code 已內建,你電腦 24/7 不關機,跑長時間任務不會中斷 | 已有 — 不用額外設定 |