Published on

2026-第七周

Authors

该周报主要为各个地方内容的汇总整理

技术

为智能代理未来构建 Next.js | Next.js

Next.js 团队在过去一年中致力于提升框架的 AI 代理体验,通过实验和集成,最终认识到关键在于从代理的视角出发,使其能直接访问框架的内部状态和上下文,从而更有效地协助开发和调试。

  • 🧠 认识到 AI 代理无法直接访问浏览器中的运行时错误和组件状态,促使团队从代理的视角重新设计 Next.js 的可视性
  • 🛠️ 实验性开发了内置浏览器代理 Vector,虽因与通用编码工具重叠而停止,但其结构化可见性和框架特定知识的理念被保留
  • 🔗 通过集成模型上下文协议(MCP),使代理能访问 Next.js 的内部状态(如错误、路由和渲染片段),并开发了 next-devtools-mcp 以促进代理与开发服务器的通信
  • 📚 为代理提供压缩文档索引(agents.md)和结构化工作流(Next.js 技能),以弥补其在框架知识上的训练数据不足
  • 🔄 将代理视为一等用户,推动实际改进:如记录服务器操作调用、转发浏览器错误日志,以创建代码、运行时和 AI 间的紧密调试反馈循环
  • 🚀 未来计划包括通过 npx @next/codemod 简化文档索引生成,扩展评估套件以覆盖更多 API,并最终将代理上下文支持内置到 next dev 中,实现零配置自动适配

现代 CSS 代码片段 | modern.css

现代 CSS 已提供众多原生解决方案,替代了以往依赖 JavaScript 或复杂 hack 的旧方法,使开发更简洁高效。

  • 🎯 居中元素:使用 display: grid; place-items: center; 替代 transform: translate(-50%, -50%) 的绝对定位 hack
  • 🌈 颜色处理:采用 oklch() 实现感知均匀的颜色,并支持 color-mix() 混合颜色,无需预处理器
  • 🛠️ 功能检测:通过 @supports 进行 CSS 功能检测,无需 JavaScript
  • 🧊 毛玻璃效果:使用 backdrop-filter: blur() 替代复杂的 filter 和伪元素 hack
  • 📏 布局控制:利用 scrollbar-gutter: stable 防止布局偏移,aspect-ratio 设置宽高比,无需 padding hack
  • 🎚️ 响应式设计:使用 clamp() 实现流体排版,@container 查询替代媒体查询,实现组件级响应式
  • 🖱️ 交互效果:通过 popoveranchor-name 实现工具提示和模态框,无需 JavaScript 事件监听
  • 📜 滚动行为:使用 scroll-snap-type 实现滚动吸附,overscroll-behavior: contain 防止滚动链
  • 动画与过渡:采用 view-transition-name 实现页面过渡,animation-timeline: view() 创建滚动链接动画,无需 JavaScript 库
  • 🏗️ 工作流优化:通过 @layer 控制样式优先级,:where() 降低选择器特异性,CSS 嵌套无需预处理器

完美代码审查:如何在提升质量的同时减轻认知负担——丹尼尔·巴斯特里奇

本文概述了构建高效代码审查流程的 PERFECT 原则,旨在降低认知负荷并提升代码质量。通过明确审查目的、处理边界情况、确保可靠性、遵循设计形式、验证测试证据、提升代码清晰度及管理主观偏好,使审查过程结构化、清晰且一致。

  • 🎯 目的:代码必须解决既定任务,这是首要且不可妥协的要求。审查者需先理解任务目标,再验证代码实现是否符合预期。
  • 🚧 边界情况:识别并处理业务与技术上的边界情况,如异常输入、边界值、空值等,能显著减少生产环境中的错误。
  • 🔒 可靠性:确保代码无性能与安全问题,避免引入明显瓶颈或安全漏洞,这对商业或关键项目尤为重要。
  • 🏗️ 形式:代码应符合设计原则(如高内聚低耦合),提升可读性与可维护性,减少长期维护成本。
  • 证据:测试与持续集成流程必须通过,确保代码处于可部署状态,测试覆盖应遵循约定且避免仅为测试而写的特殊逻辑。
  • 📖 清晰度:代码应清晰传达意图,通过命名、结构等约定提升可读性,便于他人理解与维护。
  • 👅 品味:个人偏好不应阻碍变更,缺乏依据的主观意见可被忽略,但有价值的建议可转化为团队共识。

在 DevTools 中查找 JavaScript 中特定对象的分配位置

本文介绍了一种在 Chrome DevTools 内存分析器中追踪特定对象创建位置的方法,适用于调试时因对象被回收或难以筛选而无法定位来源的情况。

  • 🐛 调试痛点:在调试网络请求或大型代码库时,常因调用栈被隐藏或对象被回收而难以定位特定对象的创建位置。
  • 📊 内存分析器限制:Chrome DevTools 的“时间轴上的分配”功能可显示对象分配位置,但对象可能已被清理,且筛选条件(如分配时间、构造函数名)往往不够精确。
  • 💡 核心技巧:通过故意泄露对象使其在内存分析中可见。具体步骤包括:开启分配堆栈跟踪、在调试器中暂停并将对象保存为全局变量、在控制台创建具有独特类名的新对象来引用目标值。
  • 🔍 筛选定位:停止分析后,在内存分析器中按类名(如 AAAAAAAA)筛选,即可找到目标对象及其完整的创建堆栈跟踪。

工具

Dembrandt - 从网站提取设计令牌 | CSS 到设计系统转换器

Dembrandt 是一款开源 CLI 工具,能够一键从任何网站提取设计系统与设计令牌,并支持导出为 W3C 设计令牌格式。

  • 🛠️ 工具功能:通过命令行快速提取网站的设计系统,将 CSS 转换为设计令牌
  • 📦 安装方式:可通过 npm 全局安装,使用命令npm i -g dembrandt
  • 使用示例:运行dembrandt stripe.com即可提取目标网站的设计元素
  • 🎨 提取内容:包括颜色(如#635BFF)、字体样式、间距、阴影、圆角等设计属性
  • 📁 输出格式:自动生成design-system.json文件保存提取结果
  • 🌐 标准支持:符合 W3C 设计令牌社区组(DTCG)规范
  • 📈 项目状态:开源项目,提供 GitHub 仓库和实际演示

GitHub - hyparam/hightable: 一个用于 React 的动态窗口化滚动表格组件

HighTable 是一个用于 React 的虚拟化表格组件,旨在高效显示大型数据集,通过仅渲染当前视口所需行数实现流畅滚动,支持异步数据加载、列排序和行选择等功能。

  • 🚀 高性能虚拟滚动:仅渲染可见行,优化大型数据集的显示性能。
  • 🔄 异步数据加载:支持按需获取数据,可处理任意规模的数据集。
  • 📊 列排序与调整:提供可选的列排序功能,并支持列宽调整和自动适应。
  • 行选择与事件处理:支持通过 Shift+ 点击进行多行选择,并提供单元格双击等事件处理。
  • 🛠️ 灵活的数据模型:使用 DataFrame 结构定义数据获取与组织方式,支持自定义数据获取逻辑。
  • ⚙️ 丰富的配置选项:提供多种属性配置,如列可见性控制、错误处理、自定义单元格渲染等。
  • 📦 便捷的安装与使用:可通过 npm 安装,并提供数组转 DataFrame 等辅助工具,简化集成过程。
  • 🎨 基础样式与自定义:包含基础 CSS 样式,同时允许通过 CSS 进行外观定制。

react-doctor

React Doctor 是一个用于诊断和修复 React 代码的自动化工具,它通过扫描代码库来检测安全、性能、正确性和架构方面的问题,并生成可操作的诊断报告与评分。该工具支持 CLI 使用、Node.js API 集成,并可配置为 AI 编程助手的技能插件。

  • 🩺 核心功能:通过一条命令扫描 React 代码库,输出 0-100 分的评分及具体问题诊断。
  • ⚙️ 安装使用:可通过 npx -y react-doctor@latest 快速运行,支持 --verbose 查看详细文件与行号。
  • 🤖 AI 集成:可作为技能安装到 Cursor、Claude Code 等 AI 编程助手,提供 47+ 条 React 最佳实践规则。
  • 配置灵活:支持通过配置文件或 package.json 自定义忽略规则、文件路径和扫描选项。
  • 📊 开源评分:已为多个知名开源项目(如 tldraw、excalidraw 等)提供代码质量评分展示。
  • 🔧 高级功能:支持差分扫描、自动修复问题、Node.js API 调用,并可导出诊断结果到剪贴板。

cc-wf-studio

CC Workflow Studio 是一款可视化 AI 工作流编辑器,支持通过拖拽或自然语言对话设计复杂的 AI 代理工作流。它可一键导出至多种 AI 代码工具(如 Claude Code、GitHub Copilot 等),并直接运行工作流,无需编写代码。

  • 🎨 可视化编辑 – 通过直观的拖放画布设计 AI 工作流,无需编码
  • 💬 AI 对话编辑 – 用自然语言与 AI 交互,迭代改进工作流逻辑与功能
  • 一键导出与运行 – 支持将工作流导出为 .claude、.github/prompts/ 等格式,并直接从编辑器运行
  • 🤖 多平台集成 – 兼容 GitHub Copilot、OpenAI Codex、Roo Code 等 AI 开发工具(部分为实验性功能)
  • 🔄 MCP 服务器支持 – 通过内置 MCP 服务器实现与 AI 代理的无缝通信,自动同步工作流更新

playwright-cli

本文介绍了 Playwright CLI 工具,它是一个专为现代编码智能体(如 Claude Code、GitHub Copilot 等)设计的命令行界面。该工具通过提供一系列简洁、高效的命令来实现浏览器自动化,其核心优势在于令牌使用效率高,避免了向大语言模型上下文加载大量工具架构和页面可访问性树,从而更适合处理大型代码库、测试和复杂推理任务。文章详细说明了其安装、核心功能、会话管理、监控以及丰富的配置选项。

  • 🚀 核心定位:Playwright CLI 是一个为编码智能体优化的命令行工具,通过 SKILLs 提供令牌高效的浏览器自动化,相比 MCP 更适合高吞吐量的编码工作流。
  • ⚙️ 安装与启动:通过 npm 全局安装,使用 playwright-cli --help 查看命令,并可选择为智能体安装 SKILLs 或让其直接读取 CLI 帮助信息进行操作。
  • 🖥️ 核心操作:提供打开页面、导航、点击、输入、截图等丰富的浏览器控制命令,支持有头和无头模式,并默认在内存中保持会话状态。
  • 🔧 会话管理:支持创建和管理多个独立的浏览器会话,可通过 -s= 参数指定会话,并支持将会话数据持久化到磁盘。
  • 📊 监控与调试:提供 playwright-cli show 命令打开可视化仪表板,实时查看和控制所有运行中的浏览器会话,便于观察和干预自动化过程。
  • 高效特性:设计上注重令牌效率,不强制将页面数据推入 LLM 上下文,通过简洁的命令和快照机制为智能体提供必要的页面状态信息。
  • 📁 配置灵活:支持通过 JSON 配置文件或大量环境变量对浏览器类型、超时、网络拦截、控制台输出、视频录制等进行深度定制。
  • 🛠️ 功能全面:涵盖网络请求模拟、存储状态管理(Cookie、LocalStorage)、标签页操作、DevTools 集成、代码片段执行以及测试生成和追踪录制等高级功能。

prek

prek 是一个用 Rust 重写的 pre-commit 替代工具,旨在提供更快的速度、零依赖的单二进制体验,并完全兼容原有的 pre-commit 配置。它通过并行化处理、共享工具链和集成 uv 等优化,显著提升了钩子运行效率,并支持单仓库多项目配置。目前已被 CPython、Apache Airflow 等知名项目采用。

  • 🚀 性能优化 – 比 pre-commit 更快,占用磁盘空间更少,支持并行克隆仓库和运行钩子。
  • 📦 零依赖便携 – 仅需单个二进制文件,无需安装 Python 或其他运行时环境。
  • 🔧 完全兼容 – 支持原有 pre-commit 的配置文件与钩子,可无缝迁移。
  • 🏗️ 内置增强功能 – 支持单仓库多项目工作区、自动管理 Python 版本与虚拟环境,并提供 Rust 原生内置钩子。
  • ⚙️ 智能工具链 – 使用 uv 管理 Python 依赖,共享 Node.js、Go 等语言工具链,减少重复安装。
  • 🌍 广泛采用 – 已被 FastAPI、Ruff、Home Assistant 等众多开源项目使用或推荐。

AI

LobsterAI

LobsterAI 是由网易有道开发的一款全场景个人助理智能体,能够 24/7 处理数据分析、文档生成、视频制作、网页搜索、邮件发送等日常任务。它支持本地与沙箱双模式执行,具备持久化记忆、计划任务、移动端 IM 远程控制等功能,并通过严格的权限控制保障安全。该工具基于 Electron 构建,跨平台支持 macOS、Windows、Linux 及主流即时通讯平台。

  • 🦞 全能个人助理 – 支持数据分析、PPT 制作、视频生成、文档写作、网页搜索、邮件处理等日常办公全场景任务。
  • 🛡️ 本地与沙箱双模式 – 可在本地直接运行任务,或在隔离的 Alpine Linux 沙箱中安全执行。
  • 🧠 持久化记忆系统 – 自动从对话中提取用户偏好与个人信息,实现跨会话的个性化服务。
  • 📅 计划任务功能 – 支持通过对话或 GUI 创建定时任务(如每日新闻摘要、定期报告生成)。
  • 📱 移动端远程控制 – 可通过 Telegram、Discord、钉钉、飞书等 IM 平台远程触发桌面端 Agent 执行任务。
  • ⚙️ 模块化技能系统 – 内置 16 项技能(如网页搜索、文档生成、自动化脚本),支持自定义技能热加载。
  • 🔐 多层安全控制 – 所有工具调用需用户明确授权,支持进程隔离、沙箱执行与工作目录边界限制。
  • 🗃️ 本地化数据存储 – 使用 SQLite 数据库存储聊天记录、配置与任务信息,保障数据隐私。
  • 🌐 跨平台支持 – 兼容 macOS(Intel/Apple Silicon)、Windows、Linux 桌面端,并通过 IM 扩展至移动端。

其他

理念重于实施

不要执着于已构建的方案,而应专注于追求的目标。将重心放在目标而非具体实施方式上,才能在现实变化时灵活调整方向。早期决策往往信息不足,若将其视为不可更改,只会增加修正成本。沉没成本不可避免,但固执己见是可以避免的。

  • 🎯 锚定目标而非方法:关注核心目的,为调整留出空间
  • 🔄 保持灵活修正能力:早期决策不必神圣化,应随认知更新而优化
  • 💡 轻握方案重持目标:避免对工具或架构过度执着,聚焦问题本质
  • 🧠 在行动中深化理解:通过实践迭代完善方案,拒绝前期完美主义

三位糟糕的管理者

本文作者通过描述三位性格与管理风格迥异的前任上司——"艺术家型"、"独裁者型"和"刀子型"领导,反思了领导力与管理能力的区别。文章指出,即使这些领导在战略层面表现出色、能为公司创造价值,他们仍可能因忽视团队沟通、缺乏同理心或行为怪异而成为"糟糕的管理者"。作者分享了如何针对不同管理者调整应对策略,并强调职场中适应不同领导风格、主动调整工作方式的重要性。

  • 🎨 "艺术家型"领导重视创作而忽视团队管理
    他们专注于艺术创作与愿景,却被安排管理团队。虽然聪明且有创造力,但缺乏对下属的关心与管理技巧,常以机械化的方式履行管理职责。

  • 👑 "独裁者型"领导以强势主导讨论,忽视团队意见
    他们深陷问题细节且固执己见,习惯用职权压制对话,导致会议效率低下甚至做出错误决策。但他们对问题抱有强烈热情,可通过深度准备与其建立有效沟通。

  • 🔪 "刀子型"领导行为古怪且难以捉摸
    他们具备领导能力,却完全不适合管理工作。沟通经常偏离主题,应对方式令人困惑,最佳策略是保持距离,让其以自身方式工作而不强行干预。

  • 🧠 领导与管理的核心区别在于战略与运营的侧重
    领导者指明方向(战略),管理者关注执行(运营)。现实中许多高层领导者擅长战略却疏于管理,员工需学会区分并适应这种差异。

  • 🔄 应对糟糕管理者的关键是调整自身而非改变对方
    面对不同管理者,需灵活调整沟通方式(如书面准备、深度调研、保持距离),通过改变自身习惯来应对挑战,并从中学习关键职场技能。

  • 💡 每个人都是独特的,职场需要持续适应与角色调整
    与上司、团队及同事互动时,需根据对方特点调整行为模式。这种适应不仅是技巧,更是培养新视角与习惯的过程,有助于个人职业成长。