{"_id":"@dogfood-lab/interface-audits","_rev":"3-25d6fb85ed6ea0da0ceab48fc07c05e5","name":"@dogfood-lab/interface-audits","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.0":{"name":"@dogfood-lab/interface-audits","version":"0.0.0","license":"MIT","_id":"@dogfood-lab/interface-audits@0.0.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://dogfood-lab.github.io/interface-audits/","bugs":{"url":"https://github.com/dogfood-lab/interface-audits/issues"},"dist":{"shasum":"5c9452f292e25b4a4d1acaaf46357697a979fbe3","tarball":"https://registry.npmjs.org/@dogfood-lab/interface-audits/-/interface-audits-0.0.0.tgz","fileCount":2,"integrity":"sha512-W51mGC6jw36xAr72LOxtn/LGdw2HHO9XozG/t3RHbrvdz9MC4wO1kr1ZZ7nhyb6W/Y1qNnPhnWp2VgO8tVypzQ==","signatures":[{"sig":"MEUCIQCYN1+rqdn/dGI7uVw7PuGS7rdToISsTMw6JbJa7CJ7IQIgDzNA1JvfyzO9/hUThKTXcWjFAmP9g7em23Zy9UtmUCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":893},"_npmUser":{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"},"repository":{"url":"git+https://github.com/dogfood-lab/interface-audits.git","type":"git"},"_npmVersion":"10.9.8","description":"Placeholder — real release v0.2.0+ coming soon. See https://github.com/dogfood-lab/interface-audits","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/interface-audits_0.0.0_1780389613359_0.2282634323978674","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dogfood-lab/interface-audits","version":"0.2.0","keywords":["audit","cognitive-load","accessibility","ux","interface-design","load-displacement","dogfood-lab"],"license":"MIT","_id":"@dogfood-lab/interface-audits@0.2.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://dogfood-lab.github.io/interface-audits/","bugs":{"url":"https://github.com/dogfood-lab/interface-audits/issues"},"dist":{"shasum":"383ab8cada8de803e19ed7e52f7bd717d0aa2ae6","tarball":"https://registry.npmjs.org/@dogfood-lab/interface-audits/-/interface-audits-0.2.0.tgz","fileCount":76,"integrity":"sha512-UmN24RXHZcV6TuVJxNN3js7CMHRQfQVraQK07G4KvSV7+BrlRkmA7WZirnt2femgvhCc94ZiiDKHW0DFoFWsSA==","signatures":[{"sig":"MEUCIFQikDNsrNqWiPqOZVu/ml9TwveMICBAjsCPSpyh3xMyAiEA4Dq8VmFJau+LWpWmHvSeCKZF46BTQqmoAxYf28KrGpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2finterface-audits@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2076075},"engines":{"node":">=20"},"gitHead":"44516579ae912ba78ec270a7d92ca3bebd4fa4fb","scripts":{"verify":"bash verify.sh","shipcheck":"npx -y @mcptoolshop/shipcheck audit","verify:links":"node scripts/verify-links.mjs","verify:schemas":"node scripts/verify-schemas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:564c5309-5414-4493-9dde-2297aaaf62c7"}},"repository":{"url":"git+https://github.com/dogfood-lab/interface-audits.git","type":"git"},"_npmVersion":"11.16.0","description":"Proof-backed audits for human-facing product surfaces. Catches load displacement, hidden complexity, AI trust burden, and state-shift failure — failures that pass generic accessibility scanners.","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","glob":"^11.0.0","ajv-formats":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/interface-audits_0.2.0_1780390475009_0.05254055968413662","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dogfood-lab/interface-audits","version":"0.3.0","description":"Proof-backed audits for human-facing product surfaces. Catches load displacement, hidden complexity, AI trust burden, and state-shift failure — failures that pass generic accessibility scanners.","homepage":"https://dogfood-lab.github.io/interface-audits/","repository":{"type":"git","url":"git+https://github.com/dogfood-lab/interface-audits.git"},"bugs":{"url":"https://github.com/dogfood-lab/interface-audits/issues"},"license":"MIT","engines":{"node":">=20"},"scripts":{"verify":"bash verify.sh","verify:schemas":"node scripts/verify-schemas.mjs","verify:links":"node scripts/verify-links.mjs","shipcheck":"npx -y @mcptoolshop/shipcheck audit"},"devDependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1","glob":"^11.0.0"},"keywords":["audit","cognitive-load","accessibility","ux","interface-design","load-displacement","dogfood-lab"],"gitHead":"ebd9c762d6723d53854c979cdf0583ddc64eb1f6","_id":"@dogfood-lab/interface-audits@0.3.0","_nodeVersion":"22.22.3","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Zg6EgkstJUL0Ihy5+IrtD/QE8ilAynelrbfSl6EXJCaSTWvWnlM4bCHPzNLhrDghnxnZNoTEmSbyP6Ip0lCdng==","shasum":"0f4e5fbf9eae6311559d9472c17f9d2f0adeadf6","tarball":"https://registry.npmjs.org/@dogfood-lab/interface-audits/-/interface-audits-0.3.0.tgz","fileCount":97,"unpackedSize":2498176,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2finterface-audits@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDvpWKvGka/ZoERnmW6nCC4ZQYB6HGmyK8sL/qlPn6HiAIhAMvul/EXPhGm06hJzukX9O+tltwJOKh8UphzZDV5RtYJ"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:564c5309-5414-4493-9dde-2297aaaf62c7"}},"directories":{},"maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/interface-audits_0.3.0_1781411353380_0.24958805413453278"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-02T08:40:12.955Z","modified":"2026-06-14T04:29:13.866Z","0.0.0":"2026-06-02T08:40:13.528Z","0.2.0":"2026-06-02T08:54:35.205Z","0.3.0":"2026-06-14T04:29:13.584Z"},"bugs":{"url":"https://github.com/dogfood-lab/interface-audits/issues"},"license":"MIT","homepage":"https://dogfood-lab.github.io/interface-audits/","keywords":["audit","cognitive-load","accessibility","ux","interface-design","load-displacement","dogfood-lab"],"repository":{"type":"git","url":"git+https://github.com/dogfood-lab/interface-audits.git"},"description":"Proof-backed audits for human-facing product surfaces. Catches load displacement, hidden complexity, AI trust burden, and state-shift failure — failures that pass generic accessibility scanners.","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"README.ja.md\">日本語</a> | <a href=\"README.md\">English</a> | <a href=\"README.es.md\">Español</a> | <a href=\"README.fr.md\">Français</a> | <a href=\"README.hi.md\">हिन्दी</a> | <a href=\"README.it.md\">Italiano</a> | <a href=\"README.pt-BR.md\">Português (BR)</a>\n</p>\n\n<p align=\"center\">\n  <img src=\"./.brand/readme.png\" alt=\"interface-audits — Reduce the Burden. Improve the Experience.\" width=\"400\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/dogfood-lab/interface-audits/actions/workflows/verify.yml\"><img src=\"https://github.com/dogfood-lab/interface-audits/actions/workflows/verify.yml/badge.svg\" alt=\"verify\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT License\"></a>\n  <a href=\"https://dogfood-lab.github.io/interface-audits/\"><img src=\"https://img.shields.io/badge/handbook-live-2da44e?logo=github\" alt=\"Handbook\"></a>\n  <a href=\"./SHIP_GATE.md\"><img src=\"https://img.shields.io/badge/shipcheck-passed-2da44e\" alt=\"Shipcheck passed\"></a>\n</p>\n\n<p align=\"center\"><em>Proof-backed audits for human-facing product surfaces.</em></p>\n\n---\n\n## 这是什么\n\n`interface-audits` 是一个审计规则库，其中包含用于执行这些规则的可执行脚本。每个审计都会检测到一类特定的用户体验问题，而通用的可访问性扫描工具可能会忽略这些问题。扫描工具会检测 WCAG 违规行为；这些审计会检测到那些**通过扫描工具检查，但仍然会给用户带来困扰的界面**。\n\n这个库中的第一个审计是“认知负荷”，它会检测负荷转移：即那些将负担转移到记忆、搜索、信任、验证、导航、配置、源恢复、视觉解码、时间、恢复/撤销或功能损失上的界面。\n\n每个审计都会提供以下四项内容：\n\n1. **规则**——原则、章节、严重程度规则（[`audits/cognitive-load/RUBRIC.md`](audits/cognitive-load/RUBRIC.md)）\n2. **脚本**——调用约定和程序（[`audits/cognitive-load/skill/SKILL.md`](audits/cognitive-load/skill/SKILL.md)）\n3. **模式**——用于发现结果和评分卡的 JSON 模式（[`shared/schemas/`](shared/schemas/)）\n4. **证据**——至少一次完成的压力测试或实际使用测试（[`audits/cognitive-load/evidence/`](audits/cognitive-load/evidence/)）\n\n如果没有证据，则不会进行正式审计。请参阅 [`shared/audit-lifecycle.md`](shared/audit-lifecycle.md) 以了解状态机，并参阅 [`ROADMAP.md`](ROADMAP.md) 以了解下一步计划。\n\n## 安装\n\n大多数用户不会“安装”这个仓库——他们只是阅读它。这些审计是 Markdown 格式的规则和脚本，由 [Claude](https://claude.ai) 或其他兼容的 AI 运行器使用适当的 MCP 工具（浏览器导航、截图、DOM 读取）进行解释。\n\n对于想要运行本地验证工具（模式验证、链接检查、发布前检查审计）的维护者：\n\n```bash\ngit clone https://github.com/dogfood-lab/interface-audits.git\ncd interface-audits\nnpm install        # installs ajv, ajv-formats, glob (dev-only)\nnpm run verify     # runs schema + link + shipcheck checks\n```\n\n**要求：**验证工具需要 Node 20+。审计本身是与平台无关的 Markdown 格式。\n\n## 使用方法\n\n### 运行审计\n\n通过 Claude（或兼容的运行器）调用：\n\n> 在 `<target-url-or-surface>` 上运行认知负荷审计\n\n请参阅 [`audits/cognitive-load/skill/SKILL.md`](audits/cognitive-load/skill/SKILL.md) 以获取完整的触发器列表、输入、输出和程序。\n\n### 阅读现有的审计\n\n过去的审计运行记录位于 `audits/<name>/evidence/<run-id>/` 下，包含三个文件：\n\n- `<audit>-findings.md`——以规则格式呈现的完整发现结果\n- `<audit>-scorecard.json`——每个部分的通过/警告/失败状态 + 摘要\n- `remediation-priority-list.md`——按严重程度 × 影响程度排序的发现结果\n\n当前的审计及其证据记录位于下方的 [当前审计](#current-audits) 表中。\n\n### 编写新的审计\n\n新的审计将经历五个生命周期状态：草稿 → 压力测试 → 冻结 → 实际使用测试 → 修改。请参阅 [`shared/audit-lifecycle.md`](shared/audit-lifecycle.md) 以了解状态机，参阅 [`shared/pressure-test-protocol.md`](shared/pressure-test-protocol.md) 以了解程序，并以 `audits/cognitive-load/` 中的认知负荷审计作为参考实现。\n\n## 威胁范围\n\n当调用审计脚本时，运行器（具有适当 MCP 工具的 Claude）会对用户提供的目标执行操作：\n\n- **网络出口**——仅针对用户指定的目标 URL。脚本不会调用其他服务。\n- **DOM 和截图捕获**——脚本可以读取页面 DOM、拍摄截图并检查响应式 CSS 类。捕获的内容可能包括用户在目标 URL 处的已身份验证会话中可见的任何内容，包括姓名、消息正文和帐户状态。\n- **本地文件写入**——证据文件将写入仓库工作树下的 `audits/<name>/evidence/<run-id>/`。脚本不会写入此范围之外。\n- **不将证据向外传输**——除非用户明确提交并推送，否则证据文件将保留在本地磁盘上。\n- **不收集遥测数据，不处理敏感信息**——此仓库不收集任何分析数据，也不读取任何凭据。\n\n在将证据文件提交到公共仓库之前，用户有责任查看已捕获的内容。请参阅 [`SECURITY.md`](SECURITY.md) 以了解完整的威胁模型、漏洞报告策略和范围。\n\n## 当前审计\n\n| 审计 | 状态 | 检测内容 | 证据 |\n|---|---|---|---|\n| [cognitive-load](audits/cognitive-load/) | 冻结 v0.2 + 进行了 1 次实际使用测试 | 负荷转移、隐藏的复杂性、AI 信任负担、状态转移失败 | PT0 (claude.ai)、PT1 (GitHub)、PT2-doc-fallback (Outlook)、Dogfood-1 (research-os 手册) |\n| [low-vision](audits/low-vision/) | 已进行压力测试 v0.1.0 | 在实际密度下（缩放/重排、照片和图表上的对比度、自定义主题下的焦点、空间方向）的视觉访问 | PT0 (MDN ARIA 文档)——10 个发现结果，2C/4H，命中 4/4 个严重故障模式 |\n| [screen-reader-task](audits/screen-reader-task/) | 已进行压力测试 v0.1.0 | 通过屏幕阅读器实现的任务连续性和完成——不仅仅是 ARIA 有效性 | PT0 (react.dev/learn)——13 个发现结果，2C/5H，命中 3/4 个严重故障模式 |\n| [color-dependence](audits/color-dependence/) | 已进行压力测试 v0.1.0 | 仅通过颜色传达的含义，包括对比度通过/色调失败的边界 | PT0 (microsoft/vscode GitHub Actions)——10 个发现结果，1C/4H，命中 3/5 个严重故障模式 |\n| [motor-access](audits/motor-access/) | 已进行压力测试 v0.1.0 | 对于运动障碍用户的交互成本（键盘路径、目标大小、拖动依赖、超时、撤销） | PT0 (GOV.UK 设计系统多步骤模式)——8 个发现结果 + 12 个积极的观察结果，0C/2H |\n| [ai-trust-surface](audits/ai-trust-surface/) | 已进行压力测试 v0.1.0 | 强制信任、不透明的人工智能行为、无法从人工智能错误中恢复、缺乏溯源信息。 | PT0（Bing SSR + 第一方人工智能信任文档）——9项发现（5个高优先级/4个中等优先级），4项已观察，第7部分通过了可重复的故障测试。 |\n| [motion-sensitivity](audits/motion-sensitivity/) | 已进行压力测试 v0.1.0 | 前庭触发因素、动画效果优化、偏好减少动态效果、闪烁/癫痫阈值。 | PT0（linear.app）——3项发现（1个高优先级/2个低优先级）+ 4项积极观察结果，0个严重问题。 |\n\n## 审计系列\n\n每个审计都必须声明*此审计检测到的、通用扫描工具忽略的负担是什么？* 对于认知负荷，答案是负荷转移。\n\n### 未来的审计（尚未编写）\n\n目前已确定的所有七次审计都已添加到代码库中，并且进行了**压力测试或更高级别的测试**（参见上文的《当前审计》），没有未完成的草稿审计。最近添加的两项，即**人工智能信任范围** (`AT`) 和**动态敏感性** (`MO`)，由一个研究团队撰写（研究 → 外部引用验证 → 作者），并以与前四次相同的方式进行了压力测试。后续审计是根据需求进行，而不是基于推测——每次只添加一项，并且在有实际目标和基于研究的评估标准的情况下，才开始进行相关工作。 [路线图](ROADMAP.md) 跟踪候选对象以及已在此处进行的审计的生命周期推进工作（PT1 → 冻结）。\n\n## 仓库结构\n\n```\ninterface-audits/\n├── README.md\n├── CHANGELOG.md                       # monorepo events\n├── ROADMAP.md                         # forward plan: audits, tooling, process rules\n├── SECURITY.md                        # threat surface + reporting\n├── SHIP_GATE.md                       # shipcheck quality gate\n├── SCORECARD.md                       # pre/post-treatment scores\n├── LICENSE                            # MIT\n├── package.json                       # verify tooling + Node engines\n├── verify.sh                          # one-command verification\n├── scripts/\n│   ├── verify-schemas.mjs             # JSON Schema validation\n│   └── verify-links.mjs               # markdown relative-link check\n├── shared/                            # cross-audit norms\n│   ├── audit-lifecycle.md\n│   ├── evidence-states.md\n│   ├── severity-model.md\n│   ├── finding-format.md\n│   ├── pressure-test-protocol.md\n│   └── schemas/\n│       ├── finding.base.schema.json\n│       └── scorecard.base.schema.json\n└── audits/                            # one directory per audit; each has the same shape:\n    │                                  #   README.md · RUBRIC.md · CHANGELOG.md ·\n    │                                  #   skill/SKILL.md · schemas/finding.extensions.json · evidence/\n    ├── cognitive-load/                # Frozen v0.2 + Dogfooded\n    ├── low-vision/                    # Pressure-tested v0.1.0  (LV)\n    ├── screen-reader-task/            # Pressure-tested v0.1.0  (SR)\n    ├── color-dependence/              # Pressure-tested v0.1.0  (CD)\n    ├── motor-access/                  # Pressure-tested v0.1.0  (MA)\n    ├── ai-trust-surface/              # Pressure-tested v0.1.0  (AT)\n    └── motion-sensitivity/            # Pressure-tested v0.1.0  (MO)\n```\n\n## 这不是\n\n- 不是 WCAG 合规性扫描器（请使用 [axe](https://www.deque.com/axe/)、[Lighthouse](https://developer.chrome.com/docs/lighthouse/)、[Pa11y](https://pa11y.org/)）\n- 不是视觉设计审查\n- 不是通用的可访问性检查清单\n- 尚未发布为 npm 包（`package.json` 声明 `private: true`，直到将运行器包拆分出来）\n\n此仓库中的审计旨在针对那些**通过扫描器但仍然让用户感到困惑**的界面。\n\n## 贡献\n\n目前，此仓库由 [dogfood-lab](https://github.com/dogfood-lab) 维护。欢迎外部贡献——首先创建一个 issue，讨论任何新的审计或评分标准更改。根据生命周期：没有证据，就没有正式审计。\n\n## 许可\n\n[MIT](LICENSE) — 版权所有 (c) 2026 dogfood-lab。\n\n---\n\n<p align=\"center\">\n  <em>Part of <a href=\"https://github.com/dogfood-lab\">dogfood-lab</a> — sister to <a href=\"https://github.com/mcp-tool-shop-org\">mcp-tool-shop-org</a>.</em>\n</p>\n","readmeFilename":"README.zh.md"}