yinji/docs/AI_RUNBOOK.md

145 lines
3.6 KiB
Markdown
Raw Permalink 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.

# 印迹 AI 任务手册
## 启动
1. 在仓库根目录启动静态服务:
```bash
python3 -m http.server 8123
```
2. 需要浏览器自动化时,准备带远程调试端口的 Chrome默认端口 `9222`。
3. 常用命令:
```bash
node tools/ai/yinji-cli.mjs smoke --pdf ./test-fixture.pdf
node tools/ai/yinji-cli.mjs state --pdf ./test-fixture.pdf --seal demo --add-seal
node tools/ai/yinji-cli.mjs state --pdf ./test-fixture.pdf --add-signature-demo
node tools/ai/yinji-cli.mjs state --tab export --batch-pdf ./test-fixture.pdf --batch-pdf ./test-multi.pdf
node tools/ai/yinji-cli.mjs state --seal demo --tab export --batch-pdf ./test-fixture.pdf --process-batch
node tools/ai/yinji-cli.mjs capture --pdf ./test-fixture.pdf --seal demo --add-seal --output ./ui-check.png
```
## 先读哪些文件
- 页面和 DOM`index.html`
- 总入口:`src/main.js`
- PDF 与画布:`src/modules/pdf-loader.js`、`src/modules/canvas-manager.js`
- 印章逻辑:`src/modules/stamp-manager.js`
- 导出:`src/modules/exporter.js`
- 设置、印章库、批量:`src/core/settings.js`、`src/core/seal-library.js`、`src/core/batch-processing.js`
- 样式入口:`src/style.css`
- 分拆样式:`src/styles/*.css`
## 常见任务
### 查上传
先看:
- `#pdfInput`
- `#upload-pdf-btn-main`
- `src/main.js`
- `src/modules/pdf-loader.js`
浏览器里确认:
- `#app` 是否去掉 `no-pdf-loaded`
- 左侧是否出现缩略图
- `window.AppState.getState().currentPdfFile` 是否有值
通过标准:
- PDF 或 PNG/JPG 成功载入
- 页数正确
- 右侧状态卡显示文件名和页码
### 查加章
先看:
- `#sealInput`
- `#addSeal`
- `src/modules/stamp-manager.js`
- `src/features/seal-tools.js`
浏览器里确认:
- `window.AppState.getState().sealImageElement.src` 有值
- 当前画布出现可选中的对象
- 右侧状态从“未选中对象”变成对象坐标或锁定状态
通过标准:
- 能上传印章
- 能添加普通章
- 印章可选中、移动、锁定
### 查签名
先看:
- `#quick-signature-btn`
- `#signature-modal`
- `src/ui/signature-modal.js`
浏览器里确认:
- 弹窗能打开
- 画布能书写
- 点击确认后当前页出现签名对象
- CLI 快照里的 `objectCount` 会增加
通过标准:
- 打开正常
- 保存后对象出现在当前页
### 查导出
先看:
- `#exportPDF`
- `#export-selected-btn`
- `#export-all-btn`
- `src/modules/exporter.js`
- `src/modules/batch-operations.js`
浏览器里确认:
- 导出页状态卡显示文件和页数
- `#export-hint` 有内容
- 当前文件导出按钮在 PDF 载入后可用
通过标准:
- 当前文件可导出
- 选页与全页导出文案正确
### 查批量处理
先看:
- `#batchInput`
- `#processBatch`
- `src/core/batch-processing.js`
浏览器里确认:
- 队列数量更新
- 空队列提示和按钮禁用态正确
- 处理中状态文本变化正确
- CLI 快照里的 `batchQueueCount`、`batchQueueLabel` 和 `batchItems` 正确
通过标准:
- 能加入文件
- 队列数量和状态正确
### 查本地存储
先看:
- `src/core/settings.js`
- `src/core/seal-library.js`
浏览器里确认:
- `localStorage.getItem('pdf-stamper-settings')`
- `localStorage.getItem('pdf-stamper-seal-library')`
通过标准:
- 设置保存后刷新仍在
- 印章库刷新后仍在
## 改完后怎么验
1. `node --check` 跑改动过的 JS 文件
2. `node tools/ai/yinji-cli.mjs smoke --pdf ./test-fixture.pdf`
- 单页图片也可以直接传给 `--pdf`,例如 `./ui-main-flow-cleanup.png`
3. 改了 UI 再补一张 `capture`
4. 涉及设置、印章库、批量处理时,再用 `state` 命令看关键状态