DSH Visual Acceptance
面向 AI 生成 Web 产品和 UI 原型的本地验收与复验工作台。
English: A local-first acceptance and retest workbench for AI-generated Web products and UI prototypes.
Beta 说明: 它检查“页面是否按声明的范围真实打开、有哪些可追溯的浏览器异常、修改后是否可按原条件复验”,不替用户做最终审美判断,也不自动修改或发送项目代码。
Beta note: It verifies whether a page opens within its declared scope, records traceable browser signals, and lets people retest after a change under the original conditions. It does not make the final aesthetic decision, edit code, or send instructions to an Agent.
当前源码已进入 0.1.2-responsive-acceptance 候选:保留 0.1.1 的人工闭环,并新增版本化覆盖计划、CSS 断点发现、响应式证据总览、基础确定性质量信号、原 Matrix 截图 Diff,以及受控状态复现步骤。系统仍只给出 Candidate;只有人工确认才能创建 Issue 或把 Issue 写为 resolved。
它仍不等于完整 V0.1:参考图比较、Provider 实际推理、OCR、自动 Agent 会话注入、Codex Skill 与真实项目 Gate 均未完成。当前 Pixel Diff 只比较同一 Retest Matrix 的基线与当前截图,不是参考设计验收。
功能 / What it does
当 DSH 或 Codex 生成/修改了本地网页后,用户在当前 DSH 会话中:
- 选择本地 HTML 或 localhost 页面,并选择快速、标准、页面断点或自定义覆盖计划;
- 运行真实浏览器检查,得到 Ready、运行异常、响应式质量信号、截图和跨视口总览;
- 把需要跟踪的 Finding Candidate 明确立为 Issue,记录人工 Decision;
- 仅对已批准修改的 Issue 复制本地修改包给 Agent;
- 修改后按同一个不可变 Matrix 复验,查看基线/当前/Diff,并由人确认是否解决、仍存在或回归。
Ready 已满足 和“0 个异常信号”不是“视觉通过”。它们只说明当前声明的浏览器事实没有发现相应异常。
After DSH or Codex generates or changes a local page, a person can:
- select a local HTML or localhost target and choose Quick, Standard, Page-breakpoint, or Custom coverage;
- run real browser checks that produce Ready, runtime failures, responsive quality signals, screenshots, and a cross-viewport overview;
- promote a Finding Candidate to a tracked Issue and record a human Decision;
- copy a local change package only for an approved Issue;
- rerun the immutable original Matrix after a change, inspect Baseline/Current/Diff, then confirm the outcome themselves.
Ready reached and 0 signals do not mean visual approval. They only mean that no corresponding deterministic browser signal was found for the declared scope.
非功能 / What it does not do
不访问公网 URL,不爬取或自动操作第三方网站;
不做参考图比较、OCR、视觉模型推理、真实设备兼容声明或单一质量评分;
不自动创建正式 Issue、修改项目文件、把修改包发送给 Agent,或自动写入
resolved;不替用户声明业务状态;非默认状态必须由用户提供可验证的 Ready 条件;
不宣称已完成真实项目试点或 DSH Desktop 的完整兼容验证。
It does not visit public URLs or crawl or operate third-party websites.
It does not perform reference-image comparison, OCR, VLM inference, real-device compatibility certification, or generate a single quality score.
It does not automatically create a formal Issue, change project files, send a change package to an Agent, or mark an Issue
resolved.It does not infer business states for the user. Non-default states need a verifiable Ready selector or text.
It does not claim that the five-project pilot or full DSH Desktop compatibility is complete.
当前阶段 / Current stage
产品定位:验收与复验工作台
首个入口:DeepSeek Harness 会话级工作台
覆盖范围:快速 2 项、标准 8 项、页面 CSS 断点与 1–8 项自定义 Matrix
架构策略:核心中立,DSH 优先,Codex Skill 后置
当前 GitHub Pre-release:
0.1.2-beta.1Positioning: acceptance and retest workbench
First surface: a DeepSeek Harness session-level workbench
Coverage: two-checkpoint Quick, eight-checkpoint Standard, readable CSS breakpoints, and one-to-eight Custom Matrix
Architecture: core-neutral, DSH-first, Codex Skill deferred
Current GitHub Pre-release:
0.1.2-beta.1
兼容性 / Compatibility
已实测:DeepSeek Harness Web
0.1.1-rc.2、Node.js>=22.19;页面对象:localhost 或当前会话工作区内 HTML;
入口:非空会话中的
conversation.view“视觉验收”Tab;未完成 Gate:DSH Desktop 深浅色/重开、下一个 DSH 版本兼容、5 个真实项目试点。
Verified: DeepSeek Harness Web
0.1.1-rc.2, Node.js>=22.19.Supported targets: localhost or HTML within the current session workspace.
Entry: the Visual Acceptance tab in a non-empty
conversation.viewsession.Remaining gates: DSH Desktop light/dark and restart, the next DSH version, and a five-real-project pilot.
安装 GitHub Beta / Install the GitHub Beta
在 DSH Web Profile 中执行:
dsh plugin --profile web add github:PolinniZhong/dsh-visual-acceptance#v0.1.2-beta.1
dsh --profile web --dump-config
dsh web
dsh plugin add 会安装 Bundle 并将其加入当前 Profile;--dump-config 中应出现 dsh-visual-acceptance 层。重启后,在任一非空会话顶部打开“视觉验收”Tab。
卸载 / Uninstall:
dsh plugin --profile web remove dsh-visual-acceptance
本地开发安装 / Local development install
dsh plugin --profile web add "link:/absolute/path/to/dsh-visual-acceptance"
DSH 空白会话不会挂载 conversation.view,因此需要先发送一条消息,Tab 才会出现。
DSH does not mount conversation.view in an empty session. Send one message first, then open the Visual Acceptance tab.
首个可用切片 / First usable slice
Target:
localhost或当前会话工作区内的 HTML;Coverage:Quick 为
390×844 + 1280×800,Standard 为 6 个布局视口加 2 个主题锚点;Page-breakpoint 和 Custom 最多 8 项;Matrix:自定义检查点包含路径、状态、视口、主题、受控动作和 Ready 条件;路径为
/时保留用户选中的确切 Target 页面;Facts:Ready、状态复现、运行失败、响应式质量、基础无障碍/可达性和横向溢出;信号可展开查看原始值;
Evidence:内容有效性校验后的 PNG;同尺寸 Retest 增加基线/当前/Diff;
Storage:
.dsh-visual-acceptance/runs/<run-id>/;Lifecycle:Run 可取消;插件关闭时中止任务、关闭 Chrome、撤销路由与样式。
Target: localhost or HTML in the current session workspace.
Coverage: Quick uses
390×844 + 1280×800; Standard uses six layout viewports plus two theme anchors; Page-breakpoint and Custom remain capped at eight.Matrix: Custom Checkpoints include path, state, viewport, theme, controlled actions, and Ready.
/preserves the exact selected Target page.Facts: Ready state, controlled state-reproduction evidence, runtime failures, responsive quality, basic accessibility/reachability, and horizontal overflow. Signals can be expanded to inspect raw values.
Evidence: a content-validated PNG for each checkpoint; Retest also records Baseline/Current/Diff when dimensions match.
Storage:
.dsh-visual-acceptance/runs/<run-id>/.Lifecycle: Runs can be cancelled. Closing the plugin aborts work and releases Chrome, routes, and listeners.
闭环 Beta / Closed-loop beta
Candidate:console、请求、HTTP、坏图、字体、横向溢出与
unreached只生成 Finding Candidate,不自动生成正式 Issue;Issue:用户可从 Candidate 明确“立为 Issue”,或从检查点截图创建手工视觉 Issue;
Decision:
approved-fix / accepted-risk / dismissed / deferred以追加历史保存,后续 Run 不覆盖;Change Package:只有最新 Decision 为
approved-fix才能生成本地 Markdown/JSON,并复制给用户;不会自动发送给 Agent;Retest:从基线 Run 复制不可变 Matrix,显示
new-candidate / still-detected / possibly-resolved / regressed / not-verifiable / needs-human-review;Human Gate:系统不自动写
resolved;用户可以确认、否决、合并或拆分关系。Candidate: console, request, HTTP, broken-image, font, overflow, and
unreachedsignals create Finding Candidates only—not formal Issues.Issue: a person can explicitly create one from a Candidate, or create a manual visual Issue from a checkpoint screenshot.
Decision:
approved-fix / accepted-risk / dismissed / deferredis append-only history and is never overwritten by a later Run.Change Package: only an Issue whose latest Decision is
approved-fixcan produce local Markdown/JSON for the user to copy. It is never automatically sent to an Agent.Retest: a baseline Run provides an immutable Matrix; results are shown as
new-candidate / still-detected / possibly-resolved / regressed / not-verifiable / needs-human-review.Human gate: the system never writes
resolvedautomatically. People can confirm, reject, merge, or split relations.
使用方法 / How to use
先启动本地页面,例如
http://127.0.0.1:4173;在 DSH 非空会话中打开“视觉验收”;
在“页面地址或文件”填入本机 URL,或当前工作区内的 HTML,例如
examples/acceptance-demo/index.html;选择快速、标准、页面断点或自定义计划,在“确认验收指令”中核对生成的 Matrix,然后点击“检查 N”;
查看右侧的 Ready、确定性异常信号和截图。运行完成不等于视觉通过;
对需要跟踪的 Candidate 点击“立为 Issue”,补充影响并保存;也可从截图新增手工视觉 Issue;
在“问题与决定”中追加人工 Decision;只有“批准修改”后才可点击“复制修改包”;
修改完成后点击“按原条件复验”,根据候选关系作出人工确认或否决;
需要空、错误、权限等状态时,进入“自定义”,可增加受控状态步骤,并提供专用 Ready Selector、Ready Text 或
assert-ready。Start a local page, for example
http://127.0.0.1:4173.Open Visual Acceptance in a non-empty DSH session.
Enter a local URL or an HTML file in the current workspace, such as
examples/acceptance-demo/index.html.Choose Quick, Standard, Page-breakpoint, or Custom. Review the generated Matrix, then select Check N.
Review Ready, deterministic signals, and screenshots. A completed Run is not visual approval.
Select Create Issue for a Candidate worth tracking, add its impact, and save it. You can also create a manual visual Issue from a screenshot.
Add a human Decision under Issues and decisions. Copy change package is available only after Approve fix.
After the change, select Retest under original conditions and make a human confirmation or rejection based on the candidate relation.
For empty, error, or permission states, use Custom, optionally add controlled state actions, and provide a state-specific Ready selector, text, or
assert-ready.
文档 / Documents
- V0.1 PRD(中文) · V0.1 PRD (English)
- Product brief(中文) · Product brief (English)
- Architecture(中文) · Architecture (English)
- Design(中文) · Design (English)
- Release acceptance(中文) · Release acceptance (English)
- Spike plan · Spike report · Project brief · Adversarial review · Closed-loop plan · Responsive plan
验证边界 / Verification boundary
仓库中的 spike 代码用于验证技术假设。只有实际运行并留下证据的项目才能标记为“已验证”;静态检查、模拟生命周期和浏览器实测必须分别记录。
当前结论是“0.1.2-beta.1 已作为 GitHub Pre-release 提供安装试用,并通过自动测试、本地 Chrome Spike 与 DSH Web 源码链接验收”,不是“稳定版或 DSH 插件市场已完成验收”。Desktop 壳层与后续 DSH 版本兼容、Provider 图片推理、参考图判断和 5 个真实项目试点仍是稳定版 Gate。
0.1.2-beta.1 is available as a GitHub Pre-release for installation and usage feedback. It has passed automated tests, a local Chrome Spike, and linked-source DSH Web acceptance; this is not stable or marketplace-release approval. DSH Desktop/future-version compatibility, Provider inference, reference-design judgement, and the five-project pilot remain stable-release gates.
隐私与安全 / Privacy and safety
Run、Issue、Decision、截图和修改包默认写入目标工作区的
.dsh-visual-acceptance/,不应提交到 Git;插件只检查用户提供的 localhost 或工作区内 HTML,不访问公网 URL;
不读取或上传 Cookie、Authorization Header、网络响应 Body 或页面现有表单值;用户在状态配方中明确填写的值会随 Matrix 保存在本地,但不进入公开动作证据或修改包,因此不得用于密码、Token 等凭据;
仅“复制修改包”,不直接修改项目,也不会发送给 Agent;
发现安全问题时,请勿在公开 Issue 中粘贴项目内容、截图、Token 或本地绝对路径。
Runs, Issues, Decisions, screenshots, and change packages are written to
.dsh-visual-acceptance/in the target workspace and should not be committed to Git.The plugin checks only user-provided localhost targets or workspace HTML; it does not access public URLs.
It does not read or upload cookies, authorization headers, response bodies, or existing form values. A value explicitly declared in a state recipe is stored locally in the Matrix, but omitted from public action evidence and change packages; therefore recipes must not contain passwords or tokens.
It only copies a change package; it does not change the project or send anything to an Agent.
Do not put project content, screenshots, tokens, or local absolute paths in a public security issue.
No comments yet. Be the first to write one.