# ageno.cn｜输入框高 50，没有圆角

> 引用时请附链接和证据编号：链接 https://ageno.cn/d/td_z9qbksj4bwbqtz7679hr，证据编号写完整（ev_、ms_ 或 fs_ 开头）。
> 本文是网页版 https://ageno.cn/d/td_z9qbksj4bwbqtz7679hr 的 Markdown 版本，结论、可信度和证据编号与网页版一致。

- 目标：ageno.cn（网页）
- 地址：https://ageno.cn/
- 公开者：用户8588
- 公开时间：2026-10-22
- 分析时间：2026-10-22
- 统计：25 条结论 · 引用 23 条证据 · 1 个未知项
- 引擎：Chrome 155.0.8059.39、REA 6.4.0、ageno 报告规则 6、ageno glm-5.3 · 配置 v2
- 代码政策：自有软件（未验证）。声明为自己的软件，但没有命中有效的所有权验证记录。验证所有权后可导出反编译全文

## 一页看懂

ageno.cn：站内页面 5个，接口调用 8种

| 事实 | 值 | 可信度 | 说明 | 出自 |
| --- | --- | --- | --- | --- |
| 站内页面 | 5 个 | 推导 | 站内访问了 5 个页面，3 个没有访问 | 结论 17 |
| 接口调用 | 8 种 | 推导 | 8 种接口调用：fetch 8 | 结论 25 |

- 推断：技术栈线索：React、React、Next.js、Next.js、Next.js（依据：依据是 REA 在脚本里找到的特征（厂商指纹、路由框架、打包运行时），没有运行验证；见结论 22）
- 推断：推断的技术：React、Next.js（依据：依据是技术指纹目录 2026-10-15.1 的特有标记和模式匹配，没有运行验证；见结论 24）

主图在结论 17，是这条结论的第 1 张图。

| 分类 | 结论 | 未知 |
| --- | ---: | ---: |
| 设计 | 5 | 0 |
| 布局 | 6 | 0 |
| 交互 | 5 | 0 |
| 页面 | 3 | 1 |
| 技术 | 6 | 0 |

## 结论

### 1. 10 种颜色，强调色有 2 个：#1f3d8f、#d9342b

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_edb64f565b3f379c7790755e10c73ef8bebd201369db2b524db0467fcc4a07b9`、`ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`
- 来源工具：`measure.design_tokens`

强调色用在按钮「google.com」的文字、按钮「vite.dev」的文字和文字。其他颜色有 #4a4d52（文字）、#1c1d1f（文字）、#f4f5f6（背景和描边）、#dcdee2（描边）等，见色板。

- `#4a4d52` 文字（出现 19 次）
- `#1c1d1f` 文字（出现 6 次）
- `#f4f5f6` 背景、描边（出现 5 次）
- `#dcdee2` 描边（出现 4 次）
- `#ffffff` 背景（出现 4 次）
- `#1f3d8f` 文字（出现 2 次）
- `#7b7f86` 文字（出现 2 次）
- `#d9342b` 文字、描边（出现 2 次）
- `#1c1d1f1a` 阴影（出现 1 次）
- `#eceef0` 背景（出现 1 次）

### 2. 字号 6 档：14、16、13、11、21、92

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_edb64f565b3f379c7790755e10c73ef8bebd201369db2b524db0467fcc4a07b9`
- 来源工具：`measure.design_tokens`

按出现次数：14px 14 处、16px 7 处、13px 6 处、11px 1 处、21px 1 处、92px 1 处。字体："Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif；"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace；Gabarito, "Avenir Next", "Helvetica Neue", Arial, sans-serif。字重：400、700、600。

### 3. 输入框高 50，没有圆角

- 可信度：已观察（工具直接读到的事实）
- 证据：`ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`
- 来源工具：`measure.computed_style`

输入文字 16px，左内边距 2px。

### 4. 按钮高 40，圆角 20，底色 #00000000

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`
- 来源工具：`measure.computed_style`

「网页」、「安装包」、「原生程序」、「JS 库」用同一种样式：文字 #4a4d52，字号 16px，左右内边距 16px。另有不同样式的按钮：按钮「开始拆解」 90 × 36，圆角 8，底色 #f4f5f6，文字 #4a4d52；按钮「google.com」 71 × 21，没有圆角，底色 #00000000，文字 #1f3d8f；按钮「用量」 58 × 52，没有圆角，底色 #00000000，文字 #4a4d52；按钮「我的仓库」 52 × 21，没有圆角，底色 #00000000，文字 #4a4d52；按钮「登录」 52 × 30，圆角 15，底色 #ffffff，文字 #1c1d1f；按钮 40 × 40，圆角 50%，底色 #00000000，文字 #4a4d52；按钮「推荐」 64 × 40，圆角 20，底色 #eceef0，文字 #1c1d1f。

### 5. 重复的区块 13 种

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_d44464ad2e126dddb8e729fd511f0431ee5b47e77f4f66a2c98cf8c754252630`、`ms_8a2419566f4dd68f0e63fa8636b31602d42553c81a2031120b4a7c0147c9bde9`、`ms_e2470742da8d78fe4c4c2a935d46c64a56b2a7b95688e8cecde5e44902313aa2`、`ms_d8ea478403c56a4fc7437887b4020e095fcdc622ff07080a315d4c37ed356e3c`、`ms_f877474efc99f87dfbaefd7cd25569c1e81a2df75540ba7933936adfc8dd97b6`
- 来源工具：`measure.page_structure`

出现最多的是 div.cap-faq(h3,p)，一页里 11 次。列表和卡片一类的组件可以照骨架复用。

| 骨架 | 次数 | 页面 |
| --- | ---: | --- |
| div.cap-faq(h3,p) | 11 | https://ageno.cn/capabilities |
| article.cap-item(h3,dl.cap-kv.kv(dt,dd,dt,dd,dt,dd)) | 8 | https://ageno.cn/capabilities |
| dl.cap-kv.kv(dt,dd,dt,dd,dt,dd) | 8 | https://ageno.cn/capabilities |
| ul.cap-list(li(b),li(b),li(b)) | 2 | https://ageno.cn/capabilities |
| li(span,b) | 4 | https://ageno.cn/pricing |
| div(b,span.note) | 2 | https://ageno.cn/pricing |
| tr(td,td(mark.NaLOZq_placeholder)) | 5 | https://ageno.cn/legal/terms |
| section.NaLOZq_section(h2,ul(li,li,li,li,li,li)) | 3 | https://ageno.cn/legal/terms |
| section.NaLOZq_section(h2,ul(li,li,li)) | 2 | https://ageno.cn/legal/terms |
| li(strong,a.NaLOZq_link) | 2 | https://ageno.cn/legal/terms |
| section.NaLOZq_section(h2,ul(li,li,li,li)) | 2 | https://ageno.cn/legal/terms |
| li(h2(a),p,p.NaLOZq_version(span.mono,time)) | 4 | https://ageno.cn/legal |
| p.NaLOZq_version(span.mono,time) | 4 | https://ageno.cn/legal |

### 6. 输入框 476 × 50，左边 x = 477，顶边 y = 336

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`、`ms_9c50e585f0f083fa15d8d7ab77b7756f55dcca4c3956d79ae3188ca6fb0dda80`
- 来源工具：`measure.computed_style`

按钮「登录」 52 × 30，顶边 y = 10；按钮「我的仓库」 52 × 21，顶边 y = 15；标题「ageno」 234 × 92，顶边 y = 175，水平居中。其余元素见线框图。

线框（视口 1,440 × 900，单位 CSS 像素）：

| 元素 | x | y | 宽 | 高 | 圆角 | 实测标注 |
| --- | ---: | ---: | ---: | ---: | ---: | --- |
| 按钮「登录」 | 1371.984375 | 10 | 52.015625 | 30 | 15 | 52 × 30 · 圆角 15 |
| 按钮「我的仓库」 | 1231.953125 | 14.59375 | 52.015625 | 20.796875 |  | 52 × 21 |
| 标题「ageno」 | 602.875 | 175 | 234.234375 | 92 |  | 234 × 92 |
| 输入框 | 477 | 335.59375 | 476 | 50 |  | 476 × 50 |
| 按钮 | 965 | 340.59375 | 40 | 40 |  | 40 × 40 · 圆角 50% |
| 按钮「开始拆解」 | 624 | 415.59375 | 90 | 36 | 8 | 90 × 36 · 圆角 8 |
| 按钮「看个例子」 | 726 | 415.59375 | 90 | 36 | 8 | 90 × 36 · 圆角 8 |
| 按钮「google.com」 | 680.3125 | 498.390625 | 70.6875 | 20.796875 |  | 71 × 21 |
| 按钮「vite.dev」 | 767 | 498.390625 | 47.703125 | 20.796875 |  | 48 × 21 |
| 按钮「推荐」 | 68 | 611.1875 | 64.015625 | 40 | 20 | 64 × 40 · 圆角 20 |
| 按钮「网页」 | 138.015625 | 611.1875 | 64.015625 | 40 | 20 | 64 × 40 · 圆角 20 |
| 标题「大家公开的拆解」 | 68 | 628.609375 | 1 | 1 |  | 1 × 1 |

- 输入框 到 按钮「开始拆解」（纵向）：30px
- 输入框 到 按钮（横向）：12px
- 按钮「开始拆解」 到 按钮「看个例子」（横向）：12px
- 按钮「看个例子」 到 按钮「google.com」（纵向）：46.8px
- 按钮「google.com」 到 按钮「vite.dev」（横向）：16px
- 标题「大家公开的拆解」 到 按钮「网页」（横向）：69.02px
- 按钮「推荐」 到 按钮「网页」（横向）：6px

### 7. 垂直间距 23 处，水平间距 22 处

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_9c50e585f0f083fa15d8d7ab77b7756f55dcca4c3956d79ae3188ca6fb0dda80`、`ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`
- 来源工具：`measure.layout_gaps`

按钮「我的仓库」到导航 576；按钮「我的仓库」到链接「能拆什么」 18；链接「能拆什么」到导航 576；链接「能拆什么」到按钮「登录」 18；其余见线框图。间距由测量到的盒子算出：上一个元素的下边到下一个元素的上边（左右同理）。

### 8. 整页截图 1440 × 909

- 可信度：已观察（工具直接读到的事实）
- 证据：`ms_3908f30cf44bdfb7cf18cc8af09d1b15af4b2b935a0da0dcba4cfe676132318c`、`ev_a3c07714ee43265b597564c8eed3668a1b54189271ae7d270e724144f7e7480b`
- 来源工具：`measure.full_page_screenshot`

页面文档高 909。REA 另外截了一张 1440 × 900 的视口截图（61,937 字节）。截图只用来对照，报告里的尺寸都来自计算样式。

### 9. 1440、768、390 宽度下有 1 个元素变化

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_08a411359f6ff83379ee6d8598a0d84c5139c8228cab0f8712ee6abc00dd8b6c`、`ms_3908f30cf44bdfb7cf18cc8af09d1b15af4b2b935a0da0dcba4cfe676132318c`
- 来源工具：`measure.responsive`

跟踪了 37 个元素。各宽度都没有横向溢出。

【图】多宽度并排：跟踪 标题「ageno」；文档高度从左到右 909 / 1,024 / 1,008 px。

宽度：

| 宽度 | 视口高 | 文档高度 |
| --- | ---: | ---: |
| 1,440 px | 900 px | 909 px [1] |
| 768 px | 1,024 px | 1,024 px [1] |
| 390 px | 844 px | 1,008 px [1] |

跟踪的元素（x, y · 宽 × 高）：

| 元素 | 1,440 宽 | 768 宽 | 390 宽 |
| --- | ---: | ---: | ---: |
| 1. 标题「ageno」 | 602.875, 175 · 234.234375 × 92 [1] | 286.234375, 188.625 · 195.53125 × 76.796875 [1] | 113.515625, 168.828125 · 162.953125 × 64 [1] |

差异：

| 项 | 1,440 宽 | 768 宽 | 390 宽 | 可信度 |
| --- | ---: | ---: | ---: | --- |
| 标题「ageno」 字号 | 92px [1] | 76.8px [1] | 64px [1] | 已观察 |

表里的出处：

- [1] 证据 `ms_08a411359f6ff83379ee6d8598a0d84c5139c8228cab0f8712ee6abc00dd8b6c`

### 10. 宽度之间没有找到翻转

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_08a411359f6ff83379ee6d8598a0d84c5139c8228cab0f8712ee6abc00dd8b6c`
- 来源工具：`measure.responsive`

CSS 写了 3 条宽度条件，测量的元素在宽度之间没有翻转。

【图】断点标尺：测量范围 390–1,440 px；范围内没有翻转。

测量范围：

| 项 | 宽度 |
| --- | ---: |
| 最窄 | 390 px [1] |
| 最宽 | 1,440 px [1] |
| 测量宽度 1 | 1,440 px [1] |
| 测量宽度 2 | 768 px [1] |
| 测量宽度 3 | 390 px [1] |

CSS 声明的宽度条件：

| 宽度 | 规则数 |
| ---: | ---: |
| 600 px [1] | 1 [1] |
| 1,200 px [1] | 1 [1] |
| 900 px [1] | 1 [1] |

表里的出处：

- [1] 证据 `ms_08a411359f6ff83379ee6d8598a0d84c5139c8228cab0f8712ee6abc00dd8b6c`

### 11. 1440、768、390 宽度的图层树

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_a43495cb14ac06c7fadfa27df7044f3a96b9ba74a151e8722038a73471619f87`、`ms_bb45b64272e41faeb66311fa71cad7842c41d598485c6dc0ed37e1eb23e82867`、`ms_48e0abe9f03c60b649fea9c7eddb087cf8e042aeaf3ef8eb36ce3b4f1626b74d`
- 来源工具：`measure.layer_tree`

1440 宽 71 个图层，768 宽 71 个，390 宽 71 个。各宽度都没有折叠。每个宽度截图前和快照前读到的视口、文档高一致。规则版本 layers/3。

| 宽度 | 图层 | 折叠 | 截图和图层 | 无障碍树 |
| ---: | ---: | ---: | --- | --- |
| 1,440 | 71 | 0 | 视口和文档高一致 | 已采集 |
| 768 | 71 | 0 | 视口和文档高一致 | 已采集 |
| 390 | 71 | 0 | 视口和文档高一致 | 已采集 |

### 12. 页面上有 14 个按钮、7 个链接、1 个输入框

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ev_88f96a7794d66ca3f9b9318baabf96c3372f22838ac86080114dabcda9e0ba98`
- 来源工具：`inspect_web_page`

按钮：「我的仓库」、「登录」、「google.com」、「vite.dev」、「选择文件」、「开始拆解」、「看个例子」、「推荐」 等。链接：「能拆什么」、「能拆什么」、「价格」、「用户协议」、「隐私政策」、「授权说明」、「闽ICP备2021012629号-15」。输入框：「网址或安装包」。数的是可访问性树里没被忽略的节点。

| 角色 | 名称 |
| --- | --- |
| 按钮 | 我的仓库 |
| 链接 | 能拆什么 |
| 按钮 | 登录 |
| 按钮 | google.com |
| 按钮 | vite.dev |
| 输入框 | 网址或安装包 |
| 按钮 | 选择文件 |
| 按钮 | 开始拆解 |
| 按钮 | 看个例子 |
| 按钮 | 推荐 |
| 按钮 | 网页 |
| 按钮 | 安装包 |
| 按钮 | 原生程序 |
| 按钮 | JS 库 |
| 链接 | 能拆什么 |
| 链接 | 价格 |
| 链接 | 用户协议 |
| 链接 | 隐私政策 |
| 链接 | 授权说明 |
| 按钮 | 用量 |
| 按钮 | 设置 |
| 链接 | 闽ICP备2021012629号-15 |

### 13. 按钮「我的仓库」悬停时文字颜色变#1c1d1f

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_7204c3d853a5c3c47e61a1d7d6f363e5bedb6845a54539131d939cc01978cf9a`
- 来源工具：`measure.interaction_states`

测了 22 个控件，22 个有变化。按钮「我的仓库」等 1 个、链接「能拆什么」等 1 个、按钮「登录」等 1 个、button.icon-btn等 5 个：悬停、键盘聚焦时有变化。规则 .linkish:hover。

【图】状态对比：按钮「我的仓库」、链接「能拆什么」、按钮「登录」等在悬停、可见聚焦时有变化。

变化：

| 元素 | 状态 | 属性 | 从 | 到 |
| --- | --- | --- | --- | --- |
| 按钮「我的仓库」 | 悬停 | color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | border-top-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | border-right-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | border-bottom-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | border-left-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | text-decoration-line | none | underline [1] |
| 按钮「我的仓库」 | 悬停 | text-decoration-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 悬停 | outline-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「我的仓库」 | 可见聚焦 | outline-style | none | solid [1] |
| 按钮「我的仓库」 | 可见聚焦 | outline-color | rgb(74, 77, 82) | rgb(217, 52, 43) [1] |
| 按钮「我的仓库」 | 可见聚焦 | outline-width | 3px | 2px [1] |
| 按钮「我的仓库」 | 可见聚焦 | outline-offset | 0px | 2px [1] |
| 链接「能拆什么」 | 悬停 | color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | border-top-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | border-right-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | border-bottom-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | border-left-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | text-decoration-line | none | underline [1] |
| 链接「能拆什么」 | 悬停 | text-decoration-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 悬停 | outline-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 链接「能拆什么」 | 可见聚焦 | outline-style | none | solid [1] |
| 链接「能拆什么」 | 可见聚焦 | outline-color | rgb(74, 77, 82) | rgb(217, 52, 43) [1] |
| 链接「能拆什么」 | 可见聚焦 | outline-width | 3px | 2px [1] |
| 链接「能拆什么」 | 可见聚焦 | outline-offset | 0px | 2px [1] |
| 按钮「登录」 | 悬停 | background-color | rgb(255, 255, 255) | rgb(244, 245, 246) [1] |
| 按钮「登录」 | 可见聚焦 | outline-style | none | solid [1] |
| 按钮「登录」 | 可见聚焦 | outline-color | rgb(28, 29, 31) | rgb(217, 52, 43) [1] |
| 按钮「登录」 | 可见聚焦 | outline-width | 3px | 2px [1] |
| 按钮「登录」 | 可见聚焦 | outline-offset | 0px | 2px [1] |
| button.icon-btn | 悬停 | color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | background-color | rgba(0, 0, 0, 0) | rgb(244, 245, 246) [1] |
| button.icon-btn | 悬停 | border-top-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | border-right-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | border-bottom-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | border-left-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | text-decoration-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 悬停 | outline-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| button.icon-btn | 可见聚焦 | outline-style | none | solid [1] |
| button.icon-btn | 可见聚焦 | outline-color | rgb(74, 77, 82) | rgb(217, 52, 43) [1] |
| button.icon-btn | 可见聚焦 | outline-width | 3px | 2px [1] |
| button.icon-btn | 可见聚焦 | outline-offset | 0px | 2px [1] |
| 按钮「开始拆解」 | 悬停 | color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「开始拆解」 | 悬停 | border-top-color | rgb(244, 245, 246) | rgb(220, 222, 226) [1] |
| 按钮「开始拆解」 | 悬停 | border-right-color | rgb(244, 245, 246) | rgb(220, 222, 226) [1] |
| 按钮「开始拆解」 | 悬停 | border-bottom-color | rgb(244, 245, 246) | rgb(220, 222, 226) [1] |
| 按钮「开始拆解」 | 悬停 | border-left-color | rgb(244, 245, 246) | rgb(220, 222, 226) [1] |
| 按钮「开始拆解」 | 悬停 | box-shadow | none | rgba(28, 29, 31, 0.1) 0px 1px 1px 0px [1] |
| 按钮「开始拆解」 | 悬停 | text-decoration-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「开始拆解」 | 悬停 | outline-color | rgb(74, 77, 82) | rgb(28, 29, 31) [1] |
| 按钮「开始拆解」 | 可见聚焦 | outline-style | none | solid [1] |
| 按钮「开始拆解」 | 可见聚焦 | outline-color | rgb(74, 77, 82) | rgb(217, 52, 43) [1] |
| 按钮「开始拆解」 | 可见聚焦 | outline-width | 3px | 2px [1] |
| 按钮「开始拆解」 | 可见聚焦 | outline-offset | 0px | 2px [1] |
| 按钮「google.com」 | 悬停 | text-decoration-line | none | underline [1] |
| 按钮「google.com」 | 可见聚焦 | outline-style | none | solid [1] |
| 按钮「google.com」 | 可见聚焦 | outline-color | rgb(31, 61, 143) | rgb(217, 52, 43) [1] |
| 按钮「google.com」 | 可见聚焦 | outline-width | 3px | 2px [1] |
| 按钮「google.com」 | 可见聚焦 | outline-offset | 0px | 2px [1] |

表里的出处：

- [1] 证据 `ms_7204c3d853a5c3c47e61a1d7d6f363e5bedb6845a54539131d939cc01978cf9a`

### 14. 22 个控件聚焦时显示焦点环

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_7204c3d853a5c3c47e61a1d7d6f363e5bedb6845a54539131d939cc01978cf9a`
- 来源工具：`measure.interaction_states`

焦点环只在键盘聚焦（focus-visible）时出现。按钮「我的仓库」：solid 2px #d9342b。

| 控件 | 状态 | 样式 | 颜色 | 宽度 | 偏移 |
| --- | --- | --- | --- | --- | --- |
| 按钮「我的仓库」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「能拆什么」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「登录」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| input#target | 键盘聚焦 |  |  |  | 2px |
| button.icon-btn | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「开始拆解」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「看个例子」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「google.com」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「vite.dev」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「推荐」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「网页」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「安装包」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「原生程序」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「JS 库」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「能拆什么」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「价格」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「用户协议」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「隐私政策」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 链接「授权说明」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |
| 按钮「用量」 | 键盘聚焦 | solid | #d9342b | 2px | 2px |

表里只列出前面一部分。

### 15. 滚动 1 步到底，没有钉住的元素

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_72c74d42d76ae5efb4c9017aa7565623ff051de852a648f1323e6e9a42e2039a`
- 来源工具：`measure.scroll_behavior`

滚动时没有钉住的元素、懒加载图片和滚动动画。

【图】滚动轨道：文档高 909 px；视口高 900 px。

尺寸：

| 项 | 高度 |
| --- | ---: |
| 文档高度 | 909 px [1] |
| 视口高度 | 900 px [1] |

表里的出处：

- [1] 证据 `ms_72c74d42d76ae5efb4c9017aa7565623ff051de852a648f1323e6e9a42e2039a`

### 16. 4 种动画和过渡

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_a200890f0ae26baf621e8b4b20492c0400e1d5e2ec69ebd54f80c8cee90065c2`
- 来源工具：`measure.motion`

过渡时长 150 ms。缓动 ease。

【图】动效时间线：分组 悬停和聚焦；最长的是 过渡 div.box 150 毫秒。

动效：

| 组 | 名称 | 实例 | 延迟 | 时长 | 次数 | 缓动 | 属性 |
| --- | --- | ---: | ---: | ---: | ---: | --- | --- |
| 悬停和聚焦 | 过渡 div.box（border-top-color） | 4 [1] | 0 毫秒 [1] | 150 毫秒 [1] | 1 [1] | ease | border-top-color |
| 悬停和聚焦 | 过渡 div.box（border-bottom-color） | 4 [1] | 0 毫秒 [1] | 150 毫秒 [1] | 1 [1] | ease | border-bottom-color |
| 悬停和聚焦 | 过渡 div.box（border-left-color） | 4 [1] | 0 毫秒 [1] | 150 毫秒 [1] | 1 [1] | ease | border-left-color |
| 悬停和聚焦 | 过渡 div.box（border-right-color） | 4 [1] | 0 毫秒 [1] | 150 毫秒 [1] | 1 [1] | ease | border-right-color |

表里的出处：

- [1] 证据 `ms_a200890f0ae26baf621e8b4b20492c0400e1d5e2ec69ebd54f80c8cee90065c2`

### 17. 站内访问了 5 个页面，3 个没有访问

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_d44464ad2e126dddb8e729fd511f0431ee5b47e77f4f66a2c98cf8c754252630`、`ms_8a2419566f4dd68f0e63fa8636b31602d42553c81a2031120b4a7c0147c9bde9`、`ms_e2470742da8d78fe4c4c2a935d46c64a56b2a7b95688e8cecde5e44902313aa2`、`ms_d8ea478403c56a4fc7437887b4020e095fcdc622ff07080a315d4c37ed356e3c`、`ms_f877474efc99f87dfbaefd7cd25569c1e81a2df75540ba7933936adfc8dd97b6`、`ms_f39c1fb8d172d07cb43303a3630230a1dcb01321b97e255e8c8335b330060399`、`ev_cd68f3d093583292e811257f3cef06351d56d73fc56e602a54134174e70981f3`
- 来源工具：`measure.site_map`

robots.txt 按规则生效。站点地图列了 8 个地址。同一模板只取一页，跳过 3 页。外部链接指向 1 个源，没有访问。标「代码」的路由只出现在脚本里，没有访问。

【图】页面关系：包括 /、/capabilities、/pricing等。

节点：

| 名称 | 角色 | 泳道 / 分组 | 权重 | 可信度 |
| --- | --- | --- | ---: | --- |
| /（看懂任何软件是怎么做出来的｜ageno） | 页面 | — | — | 已观察 |
| /capabilities（能拆什么｜ageno） | 页面 | — | — | 已观察 |
| /pricing（价格｜ageno） | 页面 | — | — | 已观察 |
| /legal/terms（用户协议｜ageno） | 页面 | — | — | 已观察 |
| /legal（法律条款｜ageno） | 页面 | — | — | 已观察 |
| /legal/privacy [1] | 页面 | — | — | 已观察 |
| /legal/authorization [1] | 页面 | — | — | 已观察 |
| /legal/auto-renewal [1] | 页面 | — | — | 已观察 |

关系：

| 从 | 到 | 关系 | 权重 | 可信度 |
| --- | --- | --- | ---: | --- |
| / | /capabilities | 跳转 | — | 已观察 |
| / | /pricing | 跳转 | — | 已观察 |
| / | /legal/terms | 跳转 | — | 已观察 |
| / | /legal/privacy | 跳转 | — | 已观察 |
| / | /legal/authorization | 跳转 | — | 已观察 |
| /capabilities | / | 跳转 | — | 已观察 |
| /capabilities | /pricing | 跳转 | — | 已观察 |
| /capabilities | /legal/terms | 跳转 | — | 已观察 |
| /capabilities | /legal/privacy | 跳转 | — | 已观察 |
| /capabilities | /legal/authorization | 跳转 | — | 已观察 |
| /pricing | / | 跳转 | — | 已观察 |
| /pricing | /legal/auto-renewal | 跳转 | — | 已观察 |
| /legal/terms | / | 跳转 | — | 已观察 |
| /legal/terms | /legal/privacy | 跳转 | — | 已观察 |
| /legal/terms | /legal/authorization | 跳转 | — | 已观察 |
| /legal/terms | /legal/auto-renewal | 跳转 | — | 已观察 |
| /legal/terms | /capabilities | 跳转 | — | 已观察 |
| /legal/terms | /pricing | 跳转 | — | 已观察 |
| /legal/terms | /legal | 跳转 | — | 已观察 |
| /legal | / | 跳转 | — | 已观察 |
| /legal | /legal/terms | 跳转 | — | 已观察 |
| /legal | /legal/privacy | 跳转 | — | 已观察 |
| /legal | /legal/authorization | 跳转 | — | 已观察 |
| /legal | /legal/auto-renewal | 跳转 | — | 已观察 |
| /legal | /capabilities | 跳转 | — | 已观察 |
| /legal | /pricing | 跳转 | — | 已观察 |

表里的出处：

- [1] 证据 `ms_f39c1fb8d172d07cb43303a3630230a1dcb01321b97e255e8c8335b330060399`

【图】路由树：根是 /。

层级：

| 名称 | 类型 | 大小 | 标记 |
| --- | --- | ---: | --- |
| / [1] | 路由 | — | 链接、已访问、sitemap |
| › /api | 目录 | — | — |
| ›› /api/abuse-reports [2] | 路由 | — | 代码里出现 |
| ›› /api/account | 目录 | — | — |
| ››› /api/account/delete [2] | 路由 | — | 代码里出现 |
| ››› /api/account/export [2] | 路由 | — | 代码里出现 |
| ›› /api/admin | 目录 | — | — |
| ››› /api/admin/examples [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/examples/:teardownId [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/examples/candidates [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/invites [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/invites/:code [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/llm-config [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/llm-config/test [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/moderation [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/moderation/:moderationId [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/orders [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/orders/:orderId | 目录 | — | — |
| ››››› /api/admin/orders/:orderId/refund [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/plans [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/plans/:planId [2] | 路由 | — | 代码里出现 |
| ››› /api/admin/users [2] | 路由 | — | 代码里出现 |
| ›››› /api/admin/users/:userId [2] | 路由 | — | 代码里出现 |
| ››››› /api/admin/users/:userId/invites [2] | 路由 | — | 代码里出现 |
| ›› /api/auth | 目录 | — | — |
| ››› /api/auth/logout [2] | 路由 | — | 代码里出现 |
| ››› /api/auth/options [2] | 路由 | — | 代码里出现 |
| ››› /api/auth/sms | 目录 | — | — |
| ›››› /api/auth/sms/send [2] | 路由 | — | 代码里出现 |
| ›››› /api/auth/sms/verify [2] | 路由 | — | 代码里出现 |
| ››› /api/auth/wechat | 目录 | — | — |
| ›››› /api/auth/wechat/callback [2] | 路由 | — | 代码里出现 |
| ›››› /api/auth/wechat/poll [2] | 路由 | — | 代码里出现 |
| ›››› /api/auth/wechat/start [2] | 路由 | — | 代码里出现 |
| ›› /api/billing | 目录 | — | — |
| ››› /api/billing/checkout [2] | 路由 | — | 代码里出现 |
| ››› /api/billing/entitlement [2] | 路由 | — | 代码里出现 |
| ››› /api/billing/orders [2] | 路由 | — | 代码里出现 |
| ›››› /api/billing/orders/:orderId [2] | 路由 | — | 代码里出现 |
| ››› /api/billing/plans [2] | 路由 | — | 代码里出现 |
| ››› /api/billing/subscription | 目录 | — | — |
| ›››› /api/billing/subscription/cancel [2] | 路由 | — | 代码里出现 |
| ›››› /api/billing/subscription/resume [2] | 路由 | — | 代码里出现 |
| ›› /api/comments | 目录 | — | — |
| ››› /api/comments/:commentId [2] | 路由 | — | 代码里出现 |
| ›› /api/discover [2] | 路由 | — | 代码里出现 |
| ››› /api/discover/:teardownId [2] | 路由 | — | 代码里出现 |
| ›››› /api/discover/:teardownId/comments [2] | 路由 | — | 代码里出现 |
| ›››› /api/discover/:teardownId/cover [2] | 路由 | — | 代码里出现 |
| ›››› /api/discover/:teardownId/favorite [2] | 路由 | — | 代码里出现 |
| ›››› /api/discover/:teardownId/handoff [2] | 路由 | — | 代码里出现 |
| ›››› /api/discover/:teardownId/report [2] | 路由 | — | 代码里出现 |
| ›› /api/intake | 目录 | — | — |
| ››› /api/intake/check-url [2] | 路由 | — | 代码里出现 |
| ›› /api/internal | 目录 | — | — |
| ››› /api/internal/llm-config [2] | 路由 | — | 代码里出现 |
| ›› /api/invites [2] | 路由 | — | 代码里出现 |
| ››› /api/invites/check [2] | 路由 | — | 代码里出现 |
| ›› /api/legal | 目录 | — | — |
| ››› /api/legal/authorization [2] | 路由 | — | 代码里出现 |
| ›› /api/me [2] | 路由 | — | 代码里出现 |
| ››› /api/me/consent [2] | 路由 | — | 代码里出现 |
| ››› /api/me/devices [2] | 路由 | — | 代码里出现 |
| ›››› /api/me/devices/:sessionId [2] | 路由 | — | 代码里出现 |
| ››› /api/me/email [2] | 路由 | — | 代码里出现 |
| ›››› /api/me/email/verify [2] | 路由 | — | 代码里出现 |
| ›› /api/notifications [2] | 路由 | — | 代码里出现 |
| ››› /api/notifications/read [2] | 路由 | — | 代码里出现 |
| ›› /api/ownership [2] | 路由 | — | 代码里出现 |
| ››› /api/ownership/:id [2] | 路由 | — | 代码里出现 |
| ››› /api/ownership/challenges [2] | 路由 | — | 代码里出现 |
| ›››› /api/ownership/challenges/:id | 目录 | — | — |
| ››››› /api/ownership/challenges/:id/verify [2] | 路由 | — | 代码里出现 |
| ›› /api/projects [2] | 路由 | — | 代码里出现 |
| ››› /api/projects/:projectId [2] | 路由 | — | 代码里出现 |
| ›› /api/reports | 目录 | — | — |
| ››› /api/reports/:reportId [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/artifacts | 目录 | — | — |
| ››››› /api/reports/:reportId/artifacts/:sha256 [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/handoff [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/package [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/publish [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/share [2] | 路由 | — | 代码里出现 |
| ›››› /api/reports/:reportId/star [2] | 路由 | — | 代码里出现 |
| ›› /api/runs [2] | 路由 | — | 代码里出现 |
| ››› /api/runs/:runId [2] | 路由 | — | 代码里出现 |
| ›››› /api/runs/:runId/cancel [2] | 路由 | — | 代码里出现 |
| ›››› /api/runs/:runId/events [2] | 路由 | — | 代码里出现 |
| ›››› /api/runs/:runId/retry [2] | 路由 | — | 代码里出现 |
| ›› /api/settings [2] | 路由 | — | 代码里出现 |
| ›› /api/shared | 目录 | — | — |
| ››› /api/shared/:shareToken [2] | 路由 | — | 代码里出现 |
| ›› /api/tokens [2] | 路由 | — | 代码里出现 |
| ››› /api/tokens/:tokenId [2] | 路由 | — | 代码里出现 |
| ›› /api/uploads [2] | 路由 | — | 代码里出现 |
| ››› /api/uploads/:uploadId [2] | 路由 | — | 代码里出现 |
| ›››› /api/uploads/:uploadId/complete [2] | 路由 | — | 代码里出现 |
| ›› /api/usage [2] | 路由 | — | 代码里出现 |
| ››› /api/usage/ledger [2] | 路由 | — | 代码里出现 |
| ›› /api/workspace | 目录 | — | — |
| ››› /api/workspace/reports [2] | 路由 | — | 代码里出现 |
| › /capabilities [1] | 路由 | — | 链接、已访问、sitemap |
| › /legal [1] | 路由 | — | 链接、已访问、sitemap |
| ›› /legal/authorization [1] | 路由 | — | 链接、跳过、sitemap |
| ›› /legal/auto-renewal [1] | 路由 | — | 链接、跳过、sitemap |
| ›› /legal/privacy [1] | 路由 | — | 链接、跳过、sitemap |
| ›› /legal/terms [1] | 路由 | — | 链接、已访问、sitemap |
| › /pricing [1] | 路由 | — | 链接、已访问、sitemap |

表里的出处：

- [1] 证据 `ms_f39c1fb8d172d07cb43303a3630230a1dcb01321b97e255e8c8335b330060399`
- [2] 证据 `ev_cd68f3d093583292e811257f3cef06351d56d73fc56e602a54134174e70981f3`

### 18. 5 个页面共用导航、顶栏、页脚

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_d44464ad2e126dddb8e729fd511f0431ee5b47e77f4f66a2c98cf8c754252630`、`ms_8a2419566f4dd68f0e63fa8636b31602d42553c81a2031120b4a7c0147c9bde9`、`ms_e2470742da8d78fe4c4c2a935d46c64a56b2a7b95688e8cecde5e44902313aa2`、`ms_d8ea478403c56a4fc7437887b4020e095fcdc622ff07080a315d4c37ed356e3c`、`ms_f877474efc99f87dfbaefd7cd25569c1e81a2df75540ba7933936adfc8dd97b6`
- 来源工具：`measure.page_structure`

签名相同说明结构相同，可以做成共用布局。导航 nav(span,a.linkish)（4 页）；顶栏 header.NaLOZq_top(a.logo-s,nav.NaLOZq_tabs(a,a,a,a))（2 页）。

- 几页共用的区块：导航 nav(span,a.linkish)（4 页）、顶栏 header.NaLOZq_top(a.logo-s,nav.NaLOZq_tabs(a,a,a,a))（2 页）、导航 nav.NaLOZq_tabs(a,a,a,a)（2 页）、页脚 footer.footbar.site-foot(nav(a.linkish,a.linkish,a.linkish,a.linkish,a.linkish,a.linkish),nav(span,a.linkish))（2 页）、导航 nav(a.linkish,a.linkish,a.linkish,a.linkish,a.linkish,a.linkish)（2 页）
- 各页的地标：https://ageno.cn/：顶栏、正文、导航、页脚、导航、导航、https://ageno.cn/capabilities：正文、页脚、导航、导航、https://ageno.cn/pricing：顶栏、正文、顶栏、https://ageno.cn/legal/terms：顶栏、导航、正文、导航、页脚、导航、导航、https://ageno.cn/legal：顶栏、导航、正文、页脚、导航、导航

### 19. 未知：其他页面的脚本

- 可信度：未知（这次没有覆盖到；报告不替它编答案）
- 证据：`ms_f39c1fb8d172d07cb43303a3630230a1dcb01321b97e255e8c8335b330060399`
- 来源工具：`analyze_web_bundle`

其他页面按需加载的脚本分包没有静态分析，接口和路由可能不全。

没覆盖的原因：REA 的静态分析只附着在提交的页面，只分析首页加载的脚本

### 20. 页面有 162 个 DOM 节点、20 个脚本

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ev_88f96a7794d66ca3f9b9318baabf96c3372f22838ac86080114dabcda9e0ba98`
- 来源工具：`inspect_web_page`

已加载的资源：Font 20 个、Script 16 个、Stylesheet 5 个、Manifest 1 个。REA 附着后观察 500 ms，期间没有网络请求；附着前的请求看不到。脚本源码、控制台文字等按默认策略没有采集。

### 21. 静态分析了 20 个脚本，全部解析成功

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ev_cd68f3d093583292e811257f3cef06351d56d73fc56e602a54134174e70981f3`
- 来源工具：`analyze_web_bundle`

共访问 267,969 个语法节点，找到 83 条路由。路由：路由（property:route）、/api/auth/options（property:path）、/api/auth/sms/send（property:path）、/api/auth/sms/verify（property:path）、/api/auth/wechat/start（property:path）、/api/auth/wechat/callback（property:path）、/api/auth/wechat/poll（property:path）、/api/auth/logout（property:path）、/api/me（property:path）、/api/invites（property:path）。脚本没有执行，静态结果不代表运行时行为。

### 22. 技术栈线索：React、React、Next.js、Next.js、Next.js

- 可信度：推断（从名字、模式等线索判断，还没有直接验证）
- 证据：`ev_cd68f3d093583292e811257f3cef06351d56d73fc56e602a54134174e70981f3`
- 来源工具：`analyze_web_bundle`

React（vendor_fingerprint，REA 置信度 medium）；React（vendor_fingerprint，REA 置信度 medium）；Next.js（vendor_fingerprint，REA 置信度 high）；Next.js（vendor_fingerprint，REA 置信度 high）；Next.js（vendor_fingerprint，REA 置信度 high）。

依据：依据是 REA 在脚本里找到的特征（厂商指纹、路由框架、打包运行时），没有运行验证

### 23. HTTP 200，DOMContentLoaded 586 ms

- 可信度：已观察（工具直接读到的事实）
- 证据：`ms_c2dbaeba2561362541a2d96b55452a99cdbcc94de77ea9503e69aba58fcabf98`
- 来源工具：`measure.navigation`

load 事件在 817 ms。最终地址 https://ageno.cn/，没有跳转。浏览器 Chrome 155.0.8059.39。耗时是这一次加载的实测值，会随网络变化。

### 24. 推断的技术：React、Next.js

- 可信度：推断（从名字、模式等线索判断，还没有直接验证）
- 证据：`ms_e64bdc1c6c4704651c384a7aca88b9d13f20a9499fad441503e01754350ba7af`
- 来源工具：`measure.tech_signals`

React：脚本标记 __REACT_DEVTOOLS_GLOBAL_HOOK__。Next.js：脚本地址 /_next/static/。

依据：依据是技术指纹目录 2026-10-15.1 的特有标记和模式匹配，没有运行验证

- 框架：React、Next.js

### 25. 8 种接口调用：fetch 8

- 可信度：推导（由已观察的事实计算或组合得出）
- 证据：`ms_678d2bfac4c3dbc8eaed204a5777ce354f85f3b2bfc0049c7c32f12871f7caae`
- 来源工具：`measure.network`

共 339 个请求，接口调用按种类和路径去重。查询参数只记名字，请求体和响应体只记形状。

| 种类 | 方法 | 源 | 路径 | 查询参数名 | 次数 | 返回形状 |
| --- | --- | --- | --- | --- | ---: | --- |
| fetch | GET | https://ageno.cn | /api/me |  | 5 | { error: { code: string, message: string } } |
| fetch | GET | https://ageno.cn | /capabilities | _rsc | 4 | 不是 JSON |
| fetch | GET | https://ageno.cn | /pricing | _rsc | 4 | 不是 JSON |
| fetch | GET | https://ageno.cn | /legal/terms | _rsc | 4 | 不是 JSON |
| fetch | GET | https://ageno.cn | /legal/privacy | _rsc | 6 | 不是 JSON |
| fetch | GET | https://ageno.cn | /legal/authorization | _rsc | 6 | 不是 JSON |
| fetch | GET | https://ageno.cn | / | _rsc | 8 | 不是 JSON |
| fetch | GET | https://ageno.cn | /legal/auto-renewal | _rsc | 6 | 不是 JSON |

运行时看到的请求，只记字段名和类型，不记值

## 目标信息

| 项目 | 值 |
| --- | --- |
| 类型 | 网页 |
| 地址 | https://ageno.cn/ |
| 视口 | 1440 × 900 |
| 浏览器 | Chrome 155.0.8059.39 |
| HTTP 状态 | 200 |
| DOM 节点 | 162 |
| 脚本 | 20 个 |
| 抓取时间 | 2026-10-22 02:40 UTC |
| 报告文字 | ageno（glm-5.3 · 配置 v2）改写 |

## 证据（23 条）

### `ms_edb64f565b3f379c7790755e10c73ef8bebd201369db2b524db0467fcc4a07b9`

- 阶段：测量样式
- 工具：`measure.design_tokens`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：推导
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - Derived by counting computed styles of 54 visible elements in the main document; counts are element occurrences, not CSS declarations.
  - Colors are normalised to sRGB hex; opacity inherited from ancestors is not applied.
  - Spacing counts used margin, padding and gap values; auto margins appear as their resolved px size.
  - Values reflect the page at rest at capture time; hover and focus states, scroll positions and animations are not reflected in this record.
  - 1 element(s) with percentage border radii were not counted in radii.

### `ms_474f1db8643200353df37be276d3608420e6e73f99e9647cc62c56f2b2b19f5d`

- 阶段：测量样式
- 工具：`measure.computed_style`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：5 条
- 限制（引擎原文）：
  - Single viewport 1440x900 CSS px at device scale factor 1; other viewports are not reflected in this record (measure.responsive records them when that stage runs).
  - Values reflect the page at rest at capture time; hover and focus states, scroll positions and animations are not reflected in this record.
  - Main document only; iframe contents and ::before/::after pseudo-elements were not measured.
  - Boxes are layout bounds in CSS px relative to the top-left corner of the document.
  - Element roles come from documented deterministic heuristics (tag, ARIA role, name, class and alt hints), not from page semantics.

### `ms_d44464ad2e126dddb8e729fd511f0431ee5b47e77f4f66a2c98cf8c754252630`

- 阶段：站内多页面
- 工具：`measure.page_structure`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - One snapshot at the desktop width after the page loaded; content that appears on interaction or scroll is not reflected.
  - Landmark and repeated-subtree signatures are the first 16 hex characters of the SHA-256 of a tag-and-class skeleton three levels deep (generated class-name hashes removed); equal signatures mean equal skeletons, not equal content.
  - License statements are sentences of the visible text that match a license pattern; they are clues, not license determinations.

### `ms_8a2419566f4dd68f0e63fa8636b31602d42553c81a2031120b4a7c0147c9bde9`

- 阶段：站内多页面
- 工具：`measure.page_structure`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - One snapshot at the desktop width after the page loaded; content that appears on interaction or scroll is not reflected.
  - Landmark and repeated-subtree signatures are the first 16 hex characters of the SHA-256 of a tag-and-class skeleton three levels deep (generated class-name hashes removed); equal signatures mean equal skeletons, not equal content.
  - License statements are sentences of the visible text that match a license pattern; they are clues, not license determinations.

### `ms_e2470742da8d78fe4c4c2a935d46c64a56b2a7b95688e8cecde5e44902313aa2`

- 阶段：站内多页面
- 工具：`measure.page_structure`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - One snapshot at the desktop width after the page loaded; content that appears on interaction or scroll is not reflected.
  - Landmark and repeated-subtree signatures are the first 16 hex characters of the SHA-256 of a tag-and-class skeleton three levels deep (generated class-name hashes removed); equal signatures mean equal skeletons, not equal content.
  - License statements are sentences of the visible text that match a license pattern; they are clues, not license determinations.

### `ms_d8ea478403c56a4fc7437887b4020e095fcdc622ff07080a315d4c37ed356e3c`

- 阶段：站内多页面
- 工具：`measure.page_structure`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - One snapshot at the desktop width after the page loaded; content that appears on interaction or scroll is not reflected.
  - Landmark and repeated-subtree signatures are the first 16 hex characters of the SHA-256 of a tag-and-class skeleton three levels deep (generated class-name hashes removed); equal signatures mean equal skeletons, not equal content.
  - License statements are sentences of the visible text that match a license pattern; they are clues, not license determinations.

### `ms_f877474efc99f87dfbaefd7cd25569c1e81a2df75540ba7933936adfc8dd97b6`

- 阶段：站内多页面
- 工具：`measure.page_structure`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - One snapshot at the desktop width after the page loaded; content that appears on interaction or scroll is not reflected.
  - Landmark and repeated-subtree signatures are the first 16 hex characters of the SHA-256 of a tag-and-class skeleton three levels deep (generated class-name hashes removed); equal signatures mean equal skeletons, not equal content.
  - License statements are sentences of the visible text that match a license pattern; they are clues, not license determinations.

### `ms_9c50e585f0f083fa15d8d7ab77b7756f55dcca4c3956d79ae3188ca6fb0dda80`

- 阶段：测量样式
- 工具：`measure.layout_gaps`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：推导
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - Single viewport 1440x900 CSS px at device scale factor 1; other viewports are not reflected in this record (measure.responsive records them when that stage runs).
  - Derived from the element boxes in the cited measure.computed_style record: for each key element, the nearest other key element entirely below (axis y) or entirely to the right (axis x) with overlapping extent.
  - Only gaps between listed key elements; spacing to unlisted elements and nested (ancestor/descendant) pairs is not included.

### `ms_3908f30cf44bdfb7cf18cc8af09d1b15af4b2b935a0da0dcba4cfe676132318c`

- 阶段：截图
- 工具：`measure.full_page_screenshot`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - Single viewport 1440x900 CSS px at device scale factor 1; other viewports are not reflected in this record (measure.responsive records them when that stage runs).
  - Values reflect the page at rest at capture time; hover and focus states, scroll positions and animations are not reflected in this record.
  - Fixed and sticky elements appear at their initial scroll position; content that loads on scroll was not triggered.

### `ev_a3c07714ee43265b597564c8eed3668a1b54189271ae7d270e724144f7e7480b`

- 阶段：页面检查
- 工具：`capture_web_screenshot`
- 引擎：REA Chrome DevTools Protocol observation provider 2
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Artifact identity is unavailable for this observation.
  - The screenshot contains the visible viewport, including on-screen content.
  - REA does not scroll, evaluate JavaScript, or capture beyond the current viewport.
  - Browser host platform and architecture were not observed.

### `ms_08a411359f6ff83379ee6d8598a0d84c5139c8228cab0f8712ee6abc00dd8b6c`

- 阶段：多宽度排版
- 工具：`measure.responsive`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - The same document was laid out at each width without reloading; element boxes and styles at each width are observed, and an element absent at a width has no box.
  - The narrow frame uses mobile layout (viewport meta) with the desktop user agent and without touch emulation, so it keeps a fine pointer that can hover; (hover: none) and (pointer: coarse) rules are not reflected, and sites that serve different HTML to mobile user agents may look different on phones.
  - Flips were bisected with desktop probes (desktop layout) and record the 1 px boundary where the value changed; matching them to CSS width conditions is left to the report.
  - Bisection covers display, layout box presence, flex-direction, grid track count and font-size of the tracked elements only.
  - Width screenshots are JPEG, at most 8192 CSS px tall, rendered beyond the frame's own viewport without resizing it, so elements sized by viewport height keep the height the boxes describe.
  - 2 bisected difference(s) changed continuously with the width (no single flip point) and are not listed as flips.

### `ms_a43495cb14ac06c7fadfa27df7044f3a96b9ba74a151e8722038a73471619f87`

- 阶段：测量样式
- 工具：`measure.layer_tree`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Boxes, styles and text are read from the browser; layers are merged, classified and named by the rules layers/3 (kinds, merged nodes and names are derived).

### `ms_bb45b64272e41faeb66311fa71cad7842c41d598485c6dc0ed37e1eb23e82867`

- 阶段：多宽度排版
- 工具：`measure.layer_tree`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Boxes, styles and text are read from the browser; layers are merged, classified and named by the rules layers/3 (kinds, merged nodes and names are derived).

### `ms_48e0abe9f03c60b649fea9c7eddb087cf8e042aeaf3ef8eb36ce3b4f1626b74d`

- 阶段：多宽度排版
- 工具：`measure.layer_tree`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Boxes, styles and text are read from the browser; layers are merged, classified and named by the rules layers/3 (kinds, merged nodes and names are derived).

### `ev_88f96a7794d66ca3f9b9318baabf96c3372f22838ac86080114dabcda9e0ba98`

- 阶段：页面检查
- 工具：`inspect_web_page`
- 引擎：REA Chrome DevTools Protocol observation provider 2
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - Artifact identity is unavailable for this observation.
  - Observation starts when REA attaches; prior network and console activity is unavailable.
  - Raw network headers, bodies, cookies, storage values, console objects, and WebSocket payloads are never retained; explicitly requested primitive console text is retained verbatim, while payload captures retain value-free shapes.
  - Source maps are reported only as declarative URLs and are not fetched.
  - URL-less scripts and console events without an allowed source URL are excluded because their origin cannot be proven.
  - Browser host platform and architecture were not observed.

### `ms_7204c3d853a5c3c47e61a1d7d6f363e5bedb6845a54539131d939cc01978cf9a`

- 阶段：悬停与焦点
- 工具：`measure.interaction_states`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - States were forced with CSS.forcePseudoState (hover, focus, focus-visible); no pointer or keyboard events were sent, so states driven by JavaScript (mouseenter menus, focus handlers) are not reflected.
  - Animations ran at 100x playback during the probes and the values were read 50 ms after each change; the playback rate was set back to 1 afterwards.
  - Rules list only matched rules whose selector names the forced pseudo-class; inherited and user-agent rules are not listed.
  - Element crops are taken only for elements fully inside the first screen and only for states that changed a property.

### `ms_72c74d42d76ae5efb4c9017aa7565623ff051de852a648f1323e6e9a42e2039a`

- 阶段：滚动行为
- 工具：`measure.scroll_behavior`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Scrolled with mouse-wheel events at the desktop width; scrolling inside inner containers and touch scrolling were not exercised.
  - Pinned elements are the fixed and sticky elements of one snapshot taken before scrolling; viewportY lists their viewport y after each step where they had a box.
  - domNodes is the browser's live node count (all frames, text nodes included); requests and animations are those that started during each step's settle time.
  - Lazy images are counted from loading=lazy img elements and their src attribute; srcset candidates and CSS backgrounds are not matched.

### `ms_a200890f0ae26baf621e8b4b20492c0400e1d5e2ec69ebd54f80c8cee90065c2`

- 阶段：动效参数
- 工具：`measure.motion`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Animations are those the browser started while the page was loaded, probed for hover and focus, scrolled and laid out at other widths; animations that never started during the visit are not listed.
  - Measured with prefers-reduced-motion: no-preference.
  - A transition is marked interrupted when its duration equals none of the computed transition-duration values seen for that property on its element (at rest, and in each forced hover and focus state for the elements probed) and is shorter than one of them: a reversed transition is shortened. Interrupted durations are not declared values.
  - 4 transition(s) could not be compared with their element's computed transition-duration (the element was gone) and are not marked interrupted.

### `ms_f39c1fb8d172d07cb43303a3630230a1dcb01321b97e255e8c8335b330060399`

- 阶段：站内多页面
- 工具：`measure.site_map`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：2 条
- 限制（引擎原文）：
  - Only pages of the submitted page's origin are crawled; subdomains and other origins are listed as outbound and not visited.
  - robots.txt is applied per RFC 9309 (group ageno, else *); the submitted page is always measured as the user's own single visit.
  - Pages are loaded one after another in one tab with GET; addresses with a query, paths that look like they change state, non-HTML extensions and a second page of an already visited template are not loaded.
  - robots.txt and sitemaps were requested 3 time(s), same-origin only and after the request guard; the request guard and egress proxy apply to page loads as well.

### `ev_cd68f3d093583292e811257f3cef06351d56d73fc56e602a54134174e70981f3`

- 阶段：页面检查
- 工具：`analyze_web_bundle`
- 引擎：REA Chrome DevTools Protocol observation provider 2
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：3 条
- 限制（引擎原文）：
  - Artifact identity is unavailable for this observation.
  - Static bundle findings are observations or bounded inferences; REA does not execute captured JavaScript.
  - String-built routes and endpoints, encrypted configuration, and server-side behavior may remain unknown.
  - Page-declared WebMCP metadata is untrusted and is never registered or invoked as an REA tool.

### `ms_c2dbaeba2561362541a2d96b55452a99cdbcc94de77ea9503e69aba58fcabf98`

- 阶段：打开页面
- 工具：`measure.navigation`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Single viewport 1440x900 CSS px at device scale factor 1; other viewports are not reflected in this record (measure.responsive records them when that stage runs).
  - Headless Chrome with its own user agent plus the ageno token; sites may serve different content to automated browsers.
  - Waited for the load event and at most 3000 ms of network quiet; content loaded later or on interaction is not reflected.

### `ms_e64bdc1c6c4704651c384a7aca88b9d13f20a9499fad441503e01754350ba7af`

- 阶段：技术栈识别
- 工具：`measure.tech_signals`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Matched against the ageno technology catalog (packages/measure techCatalog.ts, version in catalogVersion) using first-party response headers and cookie names, request hosts, script markers and the DOM of 5 page(s); headers and cookies of third-party origins are not attributed to the site.
  - strength declared means the site states it itself (meta generator, server or x-powered-by header); unique_marker and pattern are clues, not confirmations.
  - Script bodies were scanned in memory as they loaded (at most 1 MB each and 8 MB in total) and not kept; inline scripts only in their first 2048 characters.
  - A technology the catalog does not list, or one that leaves none of its signals, is not reported.

### `ms_678d2bfac4c3dbc8eaed204a5777ce354f85f3b2bfc0049c7c32f12871f7caae`

- 阶段：接口与请求
- 工具：`measure.network`
- 引擎：Chrome DevTools Protocol 155.0.8059.39
- 可信度：已观察
- 来源性质：外部服务（external-service）
- 被引用的结论：1 条
- 限制（引擎原文）：
  - Requests the browser made for 5 page(s) from open_page on (load, probes, scrolling, crawl); requests made before the browser attached or by service workers are not included.
  - Only shapes are kept (D-028): query parameter names, JSON field names and types of request and response bodies, header names (values only for server, x-powered-by and via) and cookie names; no values.
  - Response bodies were read for fetch and XHR responses with a JSON media type up to 1 MB as soon as they finished; a body the browser had already dropped is marked evicted.
  - First party means the document's host (without www.) or one of its subdomains; it is a naming rule, not an ownership check.

标签：#网页 #Chrome #REA #ageno 报告规则 #ageno

来源：ageno 公开拆解 https://ageno.cn/d/td_z9qbksj4bwbqtz7679hr
