Files
html-transform/AGENTS.md
T
skytek_xinliang 65b72b82cb feat: renew mvp
2026-05-04 17:36:36 +08:00

126 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md
## 專案概念
HTML Transform 是 prototype evidence 工具。目標是把 HTML prototype 轉成可 review、可驗證、可追溯的前端實作依據。
目前只保留新 MVP 有價值的功能:
```text
doctor -> scan
```
## 目前 MVP 狀態
已完成:
- `ht doctor`
- `ht scan`
- `ht.config.js/json/ts/mjs` 設定載入
- Vite static server
- Playwright full-page screenshot
- DOM summary artifact
- accessibility tree artifact
- browser resource failure metadata
- `.ht/cache/prototype`
- `.ht/spec/*.spec.json`
- `.ht/spec/*.validation.json`
- `.ht/spec/*.ui-contract.md`
- 頁面級 `pageContract`
- 基本 E2E 測試
刻意不保留:
- `ht plan`
- `ht run`
- `ht diff`
- `ht verify`
- `ht go`
- `ht status`
- Stage 2 decomposition
- TaskList
- output renderer
- visual similarity scoring
- coding agent invocation
不要重新加入未完成的 pipeline 骨架。只有在使用者明確要求某個能力,且需求足夠具體時才新增。
## 套件管理
使用 pnpm,不使用 npm 或 yarn。
```bash
pnpm install
pnpm test
pnpm typecheck
```
不要新增 `package-lock.json``yarn.lock`。lockfile 應該是 `pnpm-lock.yaml`
## Playwright CLI 決策
這個專案使用 `@playwright/cli`,透過 shell command 操作 `playwright-cli`,不使用 MCP。
解析順序在 `src/lib/playwright-cli.js`
1. `node_modules/.bin/playwright-cli`
2. package-local `node_modules/.bin/playwright-cli`
3. 全域 `playwright-cli`
4. `npx --no-install playwright-cli`
`doctor` 必須能顯示 `playwright-cli (local)``playwright-cli (package-local)``playwright-cli (global)``playwright-cli (npx-local)` 或 missing。
安裝瀏覽器:
```bash
pnpm playwright-cli:install-browser
```
## 預設資料夾
預設 config
```text
packages/prototype # HTML prototype
.ht # tool artifacts
```
本 repo 根目錄可用 `ht.config.mjs` 把 prototype 指到 `./prototype`
## 開發原則
- 保持 MVP 邊界,只保留 `doctor``scan` 的實際價值。
- 不要把 placeholder 包裝成完整實作。
- 不要新增未完成 command。
- Stage 2 decomposition 目前不做。
- 每個輸出 artifact 都要能重跑與人工 review。
- 不修改 `prototype/` 原始輸入資料夾。
- 產物只寫入 `.ht/`
## 驗證
完成任何改動後至少執行:
```bash
pnpm --filter html-transform typecheck
pnpm --filter html-transform test
node packages/html-transform/src/cli.js doctor
node packages/html-transform/src/cli.js scan
```
## 重要檔案
- `PRD.md`:產品需求來源。
- `README.md`:使用方式與 MVP 限制。
- `src/cli.js`CLI command router。
- `src/lib/config.js`config loading。
- `src/lib/html.js`deterministic HTML evidence extraction。
- `src/lib/playwright-cli.js`Playwright CLI resolution。
- `src/stages/doctor.js`:前置檢查。
- `src/stages/scan.js`capture、page contract、validation。
- `test/cli-e2e.test.js`doctor/scan E2E 測試。
## 下一個方向
下一個有價值的方向是改善 `pageContract` 品質,例如更準確的 form label、table header、action 分類與 evidence warning。不要先做 TaskList 或自動寫 code。