X · P1 · active

网申填写扩展逆向架构

OpenJobAutofill Reverse Architecture Analysis
P1进阶verified案例X · 跨域/其他质量属性GC-CASE · 案例层

§1摘要与结论

TL;DR · 一句话结论

对 Chrome MV3 网申自动填写扩展的逆向架构分析:梳理 popup、content、background、options 四模块职责,解剖 12 个站点适配器、双通道消息协议与隐私脱敏机制,并评估其零依赖零构建选型。

别名:OpenJobAutofill 逆向、Chrome MV3 扩展架构分析、适配器驱动表单填写 | 英文:OpenJobAutofill Reverse Architecture Analysis | 类型:案例 / case-study

§2局部关系图

网申填写扩展逆向架构 的 1-2 跳邻域关系图前置依赖(prerequisite):内聚耦合度量指导边界划分前置依赖(prerequisite):组织沟通结构约束可行边界前置依赖(prerequisite):先划定边界,才能约束依赖方向前置依赖(prerequisite):边界划分是对多重质量属性的权衡依据推导(derives_from):风格选型本质是以约束换取期望属性依据推导(derives_from):属性冲突治理依据架构即权衡的本质细化(refines):复杂度阶梯是选型够用原则的时序细化依赖关联(dependency):成本与质量冲突约束技术选型前置依赖(prerequisite):成本量化是选型匹配的前置输入张力冲突(conflicts):能力与质量提升同成本约束存在张力对照(contrasts):静态选型与动态进阶是同一成本观的两面前置依赖(prerequisite):视图与视角概念是理解架构描述构成与对应关系的前提组合(combination):架构描述记录边界与接口的外部可见属性组合(combination):架构描述按干系人关注点组织局部表达案例印证(case_instance):印证:以适配器与事件驱动组合出可扩展的架构风格案例印证(case_instance):印证:零依赖零构建按约束选择刚好够用的技术案例印证(case_instance):印证:以双通道与密钥隔离划清信任与能力边界案例印证(case_instance):印证:动态导入切断循环依赖,容器依赖抽象接口案例印证(case_instance):印证:以内聚与耦合维度逐点评估通道结构案例印证(case_instance):印证:特化标识由提供者构造期绑定,通用契约零扩展案例印证(case_instance):张力:服务定位的隐式依赖与静默短路削弱依赖倒置案例印证(case_instance):印证:双半边架构以同源接口维持清晰边界案例印证(case_instance):违背:依赖声明不实(声明一项却消费多项)削弱依赖倒置案例印证(case_instance):印证:分层架构风格的工业级实例案例印证(case_instance):印证:以够用原则选择最小接入组合案例印证(case_instance):印证:能力成本速度三角下的分级接入案例印证(case_instance):印证:选型即权衡,无全能工具实现(implements):技术雷达采用环支撑技术选型够用原则实现(implements):可修改性战术实现质量属性战术映射方法案例印证(case_instance):印证:适配器外置站点差异,隔离变化点缩小影响半径案例印证(case_instance):印证:schema 单一数据源加严格单向依赖,局部化变更案例印证(case_instance):印证:单一契约源与能力注册中心防止涟漪效应案例印证(case_instance):印证:四维耦合分析定位变更影响半径与缝隙案例印证(case_instance):印证:带观点的分级接入推荐,与雷达四环同构前置依赖(prerequisite):关注点分离是理解与选择架构风格的认知基础组合(combination):风格选择是架构权衡的典型对象前置依赖(prerequisite):关注点分离是视图与视角划分的基础组合(combination):视图记录边界与接口的外部可见属性依据推导(derives_from):限界上下文依边界与接口隔离原理依据推导(derives_from):DDD 边界与组织结构相互塑造(康威)网申填写扩展逆向架构网申填写扩展逆向架构(CAS-X-02)边界与接口隔离边界与接口隔离(ESS-G-03)架构风格架构风格(ESS-G-05)技术选型的够用原则技术选型的够用原则(MTH-O-03)可修改性战术实现可修改性战术实现(TEC-M-03)架构即权衡架构即权衡(ESS-O-02)内聚与耦合内聚与耦合(ESS-H-02)关注点分离关注点分离(ESS-G-01)质量属性战术映射方法质量属性战术映射方法(MTH-M-01)质量属性冲突治理质量属性冲突治理(MTH-O-05)preset 通道耦合分…preset 通道耦合分析(CAS-X-05)依赖倒置与依赖规则依赖倒置与依赖规则(ESS-G-02)视图与视角视图与视角(ESS-G-06)架构描述与对应关系架构描述与对应关系(ESS-G-07)网申 v3 多模块解耦网申 v3 多模块解耦(CAS-X-03)网申 v2 深度重构网申 v2 深度重构(CAS-X-04)MCP 四件套选型对比MCP 四件套选型对比(CAS-X-12)领域驱动战略设计领域驱动战略设计(MTH-G-04)能力-成本-速度三角能力-成本-速度三角(MTH-O-04)dsh-manager …dsh-manager 插件深度分析(CAS-X-08)Hermes 七层架构总…Hermes 七层架构总览(CAS-X-11)康威定律康威定律(ESS-N-01)复杂度阶梯与演进时机复杂度阶梯与演进时机(MTH-O-08)ThoughtWorks…ThoughtWorks 技术雷达(TEC-G-04)
前置依赖实现依据推导案例印证对比冲突
以本节点为中心,静态内联 1–2 跳邻域:内环 4 个直接邻接、外环 19 个二跳节点,共 24 个节点;连线按边类型着色(六类配色见下)。构建期计算,无运行期脚本。

§3原理 · 为什么

逆向一个成品扩展的价值在于还原「为什么这样分层」。该案例的显著主张有三条:其一,把「如何适配不同招聘网站」从核心逻辑中分离为可注册的站点适配器,用域名正则、置信度、探测选择器与容器选择器描述站点差异,运行时评分选择最佳适配器,使新增站点只加数据不改引擎;其二,把「处理页面的能力」与「持有密钥、调用 AI 的能力」拆到不同进程,content 永不接触 API 密钥、background 永不操作 DOM,二者经明确的消息命名空间与统一响应信封通信;其三,隐私优先以脱敏函数在发送前拦截真实简历值,模型只接收字段名与结构。这种「显式外置」也解释了为何一个功能看似简单的扩展会有近万行代码:复杂度并未消失,而是被搬到边界与适配层集中管理;反过来说,若把适配逻辑写进引擎、把密钥放进页面脚本、把真值直接发给模型,短期代码更少,长期每一次站点改版、每一次隐私审计都会放大成本。

§4机制 · 如何运作

四模块职责清晰:popup 是用户操作入口,经 tabs 通道下发页面级指令;content 是注入页面的引擎,承担表单扫描、字段标签提取、语义桶匹配、候选评分、控件填写与绿橙标记;background 是 Service Worker 中枢,持有配置、代理 AI 调用、巡检更新并经 runtime 通道路由十余种消息;options 管理结构化简历、AI 接口配置与导入导出。核心机制包括适配器模式(站点探测与统一注入扫描管线)、评分链模式(硬过滤后经文本分、语义桶加分、重复项序号匹配加权,达阈值才自动填写)、双通道协议(页面操作走 tabs、服务调用走 runtime,消息以命名空间隔离)、以及为兼容 React/Vue 受控组件的原生 setter 加事件派发写入法。值得注意的取舍是「谁来做决策」:站点探测在页面进程做,AI 调用与密钥在后台进程做,二者以消息解耦,使替换 AI 后端或新增站点互不影响;标记系统用颜色把「已自动填写」与「待人工确认」分开,本质上把模型置信度外化为可见信号,而非静默替用户决定。

§5工程 · 怎么落地

工程上以零 package、零 node_modules、零打包器实现,Load unpacked 直接加载,把部署复杂度压到最低,代价是全部逻辑靠手写原生 JS 承载,核心文件达数千行。隐私以「发送前脱敏、提示词只含字段结构」落实,避免简历真值出域;更新检查用定时闹钟加发行接口并配徽标提示;面板状态以会话存储加 LRU 控制上限;填写入口用运行标识双重检查防重入;面板持久化加防抖。文档化方面配套模块依赖与数据流图、核心流程时序图与适配器机制图,把逆向结论沉淀为可复用资料。整个扩展的可审计性正来自「无构建」:源码即产物,任何人拿到压缩包即可逐行检查其网络请求与数据处理,这对处理敏感简历的工具有现实意义;代价是没有依赖管理,跨文件复用只能靠约定与全局常量,演进到更大规模时需要重构而非简单加包。

§6权衡卡

代价 · 风险

零构建选型以可维护性换来了交付简单与审计透明:省去工具链却失去类型检查与模块打包,数千行单文件与全局常量使大型化后风险陡增;适配器驱动降低新增站点成本,但适配器质量参差会直接决定填写准确率,且站点改版时适配器需持续维护。

AI 调用无缓存,每次填写独立请求,准确率提升以用户 API 成本为代价。

更深的张力在自动化程度:自动填写越激进,用户越省事,误填风险也越大,本案例用阈值加颜色标记把不确定交还用户,是保守但有据的选择;另一个被低估的成本是站点维护,适配器增长后每个都是一条需持续回归的测试路径,缺少自动化站点测试时维护负担会随覆盖站点数上升。

反例 · 误区

双通道协议边界清晰,却需要人工维护十余种消息与两端契约,缺少自动化交叉校验时易出现漏接与静默失败。

原文要点
  • 隐私脱敏是强承诺,却依赖单点函数正确,漏一个字段即失效。

权衡原文仅按显式标记词归栏引用(收益 / 代价 / 反例),其余句子按原序列为「原文要点」;内容逐字引用未改写。

§7案例带

CAS-X-01 · 2 跳派生:当前节点 → ESS-G-05 → ESS-G-01

去中心化聊天架构逆向

对一个仅有 58 份设计文档、尚未实现的开源去中心化聊天项目做架构逆向:从设计文本提炼 18 个模块及其依赖关系,重建模块依赖 DAG 与三条核心数据流 DAG,并输出全景理解与深度需求分析。

CAS-X-03 · 2 跳派生:当前节点 → ESS-G-03 → ESS-G-02

网申 v3 多模块解耦

一套面向高可扩展性的网申信息速查扩展架构:以 schema.js 为唯一数据驱动源,把数据模型、存储、纯函数与渲染组织为严格单向依赖的共享层,供 popup 与页面浮层双容器复用,并先立跨模块接口契约。

CAS-X-04 · 经 TEC-M-03

网申 v2 深度重构

一次由「改一处漏多处」症状触发的深度重构:定位到接口定义散落 12 个文件、存在 7 种接口形态的根因后,以单一契约源、dispatch 消息表与能力注册中心重建三层契约系统,恢复可审计与可校验性。

CAS-X-05 · 2 跳派生:当前节点 → ESS-G-03 → ESS-H-02

preset 通道耦合分析

对 harness「委派工具层→续用管理器→preset 服务→MCP 服务器」这条通道做耦合分析:识别契约、服务定位、数据契约、组合语义、路径与装配一致性六类耦合点,定位「静默丢弃特化」与「装配漂移」两处实质缝隙。

CAS-X-08 · 经 ESS-G-03

dsh-manager 插件深度分析

以「编译依赖、运行时注入、组合装配」三硬依据加源码行号,对第三方插件做依赖、功能、需求溯源与设计问题裁决,并复用上游 DAG 知识库节点标识,使分析结果可与主图互查。

CAS-X-09 · 2 跳派生:当前节点 → ESS-G-03 → ESS-G-06

harness 源码架构解析

对 deepseek-harness 官方源码做分层解析:镜像官方架构文档,按九个层与九十余模块建立文档集群,产出跨层联动矩阵与七条关键路径,并钉住「模型可见即已记录」、能力缝三角等设计不变量。

CAS-X-10 · 2 跳派生:当前节点 → ESS-G-03 → ESS-G-02

dsh 插件依赖增量定位

以官方插件 DAG 为蓝本,对一个官方清单之外的全新社区插件做功能定位与依赖位置增量分析,产出可下钻交互依赖图与多形态文档的源码级架构逆向案例。

CAS-X-11 · 经 ESS-G-05

Hermes 七层架构总览

对八千余文件的工业级 AI Agent 项目做七层架构总览逆向,揭示其「越用越聪明」的自进化闭环如何在层间传导的控制型架构案例。

CAS-X-12 · 经 MTH-O-03

MCP 四件套选型对比

对四个同类 MCP 服务器做源码级能力与成本对比,并以常驻 token 预算为轴给出分级接入策略的技术选型实战案例。

CAS-X-13 · 2 跳派生:当前节点 → ESS-G-05 → ESS-G-01

Claude Code 架构逆向

以社区逆向源码、系统提示词与官方文档三源交叉验证,还原一个商业 Agent 的查询引擎、子Agent、工具与权限体系的逆向分析案例。

CAS-X-16 · 2 跳派生:当前节点 → MTH-O-03 → MTH-O-05

控制理论⊗Agent 设计

将控制理论五维(负反馈 / 状态估计 / PID / 鲁棒 / 分层)系统映射到 Agent 工程环节,并以真实产品案例验证的跨学科方法论案例。

§8信源与核验

核验状态True(verified)
置信度high
复核日期2026-09-11
生命周期active
规范信源LOC-021、BK-007、OFF-002
书证核验BK-007 Ch17(partial),Ch17.5(partial),Ch18.1(inferred),Ch22.1(inferred),Ch24(inferred),Ch24.1(inferred),Ch24.2(partial),Ch34.5(inferred)
勘误
常见误解:零依赖零构建必然意味着架构简单、无需设计
核验结论:该扩展虽无构建与依赖,仍以适配器、评分链、双通道与脱敏等结构承载复杂变化点,架构设计量并未因零构建而减少 [LOC-021]

§9原始关系清单

展开:本节点的全部原始关系边(4 条,含边 ID 与方向)
关系方向对端节点说明
案例印证→ ESS-G-03边界与接口隔离
E-943
印证:以双通道与密钥隔离划清信任与能力边界
案例印证→ ESS-G-05架构风格
E-941
印证:以适配器与事件驱动组合出可扩展的架构风格
案例印证→ MTH-O-03技术选型的够用原则
E-942
印证:零依赖零构建按约束选择刚好够用的技术
案例印证→ TEC-M-03可修改性战术实现
E-13
印证:适配器外置站点差异,隔离变化点缩小影响半径