【GitHub每日速递 20260424】Karpathy亲授!4个原则根治Claude编码的“瞎猜、臃肿、乱改”三大顽疾

0 阅读7分钟

Karpathy亲授!4个原则根治Claude编码的“瞎猜、臃肿、乱改”三大顽疾

andrej-karpathy-skills 是一个 帮助用户学习和掌握AI领域核心技能 的 学习指南项目。简单讲,它是一套系统化的课程路径,教你如何像AI专家Andrej Karpathy一样思考和实践人工智能技术,涵盖编程、机器学习、神经网络等内容。适用人群:想深入AI领域的开发者、学生和研究人员。

项目地址:github.com/forrestchan…

主要语言:

stars: 41.8k

项目简介

该项目提供了一份 CLAUDE.md 文件,其灵感源自 Andrej Karpathy 对大语言模型(LLM)编码陷阱的观察,旨在改善 Claude Code 的编码行为。

项目核心问题

  • 模型会在未检查的情况下做出错误假设,不处理困惑、不寻求澄清、不指出不一致性、不展示权衡,该反驳时不反驳。
  • 倾向于过度复杂化代码和 API,使抽象臃肿,不清理死代码,能用 100 行实现的却写了 1000 多行。
  • 有时会在不充分理解的情况下更改或删除与任务无关的注释和代码。

解决方案

文件提出了四个原则来直接解决上述问题:

  • Think Before Coding:避免错误假设、隐藏困惑和缺失权衡。要求明确陈述假设,存在歧义时给出多种解释,有更简单方法时提出,困惑时停止并请求澄清。
  • Simplicity First:以最少的代码解决问题,避免过度工程化。不添加额外功能,不使用单用途代码的抽象,不添加未要求的“灵活性”或“可配置性”,不处理不可能出现的错误场景,若代码可简化则进行重写。
  • Surgical Changes:只修改必要的部分,清理自己产生的冗余。编辑现有代码时,不“改进”相邻代码、注释或格式,不重构未损坏的部分,匹配现有风格,发现无关死代码时仅提及不删除;若更改产生了孤立元素,删除因自己的更改而变得无用的导入、变量或函数,除非被要求,否则不删除原有的死代码。
  • Goal-Driven Execution:定义成功标准并循环验证。将命令式任务转化为可验证的目标,如“添加验证”转化为“编写无效输入的测试,然后使测试通过”等。对于多步骤任务,制定简要计划并明确验证步骤。

安装方式

  • Claude Code 插件(推荐) :在 Claude Code 中,先添加市场 plugin marketplace add forrestchang/andrej-karpathy-skills,再安装插件 plugin install andrej-karpathy-skills@karpathy-skills,这样技能可在所有项目中使用。
  • CLAUDE.md(按项目) :新项目可使用 curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md;现有项目可使用 echo "" >> CLAUDE.md 和 curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md 追加内容。

项目优势

  • 减少代码差异中的不必要更改,只呈现请求的更改。
  • 避免因过度复杂化导致的重写,使代码一开始就简洁。
  • 在实现前提出澄清问题,避免犯错后再解决。
  • 生成干净、最小化的拉取请求,无随意的重构或“改进”。

应用场景

适用于使用 Claude Code 进行编码的项目,特别是非琐碎的工作,可帮助减少编码过程中的错误和不必要的复杂性。同时,这些准则可与特定项目的说明合并,实现定制化使用。

注意事项

这些准则更倾向于谨慎而非速度,对于简单的任务(如简单的拼写错误修复、明显的单行代码),可根据情况灵活处理,并非每个更改都需要严格遵循所有准则。

开源了!教科书级前端架构的3D建筑编辑器,React Three Fiber+WebGPU打造,抄作业走起

[pascalorg/editor] 是一个 基于 TypeScript 开发的代码编辑器 的 工具。简单讲,它是一个功能强大的在线代码编辑器,支持语法高亮、智能提示等特性,类似轻量版 VS Code。适用人群:前端开发者、需要嵌入代码编辑功能的产品团队。

项目地址:github.com/pascalorg/e…

主要语言:TypeScript

stars: 12.5k

1

仓库概述

Pascal Editor 是一个基于 React Three Fiber 和 WebGPU 构建的 3D 建筑编辑器。它采用 Turborepo 管理的单仓库多包架构,包含三个主要包,这种架构使得代码结构清晰,职责分离明确。

主要优势

  • 多包架构:将功能拆分为 @pascal-app/core@pascal-app/viewer 和 apps/editor 三个包,每个包专注于特定的功能,提高了代码的可维护性和可扩展性。
  • 状态管理:使用 Zustand 进行状态管理,每个包都有自己独立的状态存储,便于管理不同层面的状态,并且集成了 Zundo 实现了撤销和重做功能。
  • 性能优化:通过脏节点机制,仅对有变化的节点重新计算几何信息,提高了渲染性能。
  • 事件总线:使用 mitt 实现的事件总线,方便组件之间的通信,增强了代码的解耦性。
  • 丰富的工具和系统:提供了多种编辑工具和系统,可满足不同的建筑编辑需求。
  • 技术栈先进:采用了 React 19、Next.js 16、Three.js 等一系列先进的前端技术,保证了项目的性能和兼容性。

核心功能

  • 节点管理:使用节点来描述 3D 场景,节点具有层次结构,存储在扁平字典中,方便管理和查询。
  • 场景渲染:通过 React Three Fiber 进行 3D 渲染,支持默认的相机和控件,以及后期处理效果。
  • 几何生成:核心系统负责生成各种建筑元素的几何形状,如墙壁、地板、天花板和屋顶等。
  • 编辑功能:编辑器提供了多种工具,如选择、绘制墙壁、创建区域、放置家具等,支持交互式编辑和选择管理。
  • 碰撞检测和放置验证:使用空间网格管理器进行碰撞检测和放置验证,确保元素的合理放置。

应用场景

  • 建筑设计:设计师可以使用该编辑器创建和编辑 3D 建筑模型,进行方案设计和展示。
  • 室内设计:用于设计室内空间,包括家具布置、墙面处理等。
  • 游戏开发:可以创建游戏中的场景和建筑元素。

代码架构

  • 多包结构

    • apps/editor:是一个 Next.js 应用,包含 UI 组件、工具、自定义行为和编辑器特定的系统。
    • packages/core:负责节点模式定义、场景状态管理、系统(几何生成)、空间查询和事件总线。
    • packages/viewer:主要进行 3D 渲染,提供默认的相机/控件和后期处理。
  • 状态存储

    • useScene:存储场景数据,包括节点、根节点 ID、脏节点和 CRUD 操作,支持持久化到 IndexedDB 和撤销/重做。
    • useViewer:管理查看器状态,如当前选择、级别显示模式和相机模式。
    • useEditor:管理编辑器状态,如活动工具、结构层可见性、面板状态和编辑器特定的偏好设置。
  • 主要模块

    • 节点:是描述 3D 场景的基本数据单元,具有层次结构。
    • 场景注册表:将节点 ID 映射到 Three.js 对象,方便快速查找。
    • 节点渲染器:为每种节点类型创建 Three.js 对象,并通过 useRegistry 进行注册。
    • 系统:在渲染循环中运行,处理脏节点并更新几何信息和变换。
    • 事件总线:用于组件之间的通信,支持多种类型的事件。
    • 空间网格管理器:处理碰撞检测和放置验证。

技术栈

  • 前端框架:React 19 和 Next.js 16
  • 3D 渲染:Three.js(WebGPU 渲染器)和 React Three Fiber + Drei
  • 状态管理:Zustand 和 Zundo
  • 模式验证:Zod
  • 布尔几何运算:three - bvh - csg
  • 单仓库管理:Turborepo
  • 包管理:Bun

开发与部署

  • 开发

    • 安装依赖:bun install
    • 启动开发服务器:bun dev
  • 生产构建

    • 构建所有包:turbo build
    • 构建特定包:turbo build --filter=@pascal-app/core
  • 发布包

    • 构建包:turbo build --filter=@pascal-app/core --filter=@pascal-app/viewer

    • 发布到 npm:

      • npm publish --workspace=@pascal-app/core --access public
      • npm publish --workspace=@pascal-app/viewer --access public

关键文件

  • packages/core/src/schema/:节点类型定义(Zod 模式)
  • packages/core/src/store/use-scene.ts:场景状态存储
  • packages/core/src/hooks/scene-registry/:3D 对象注册表
  • packages/core/src/systems/:几何生成系统
  • packages/viewer/src/components/renderers/:节点渲染器
  • packages/viewer/src/components/viewer/:主查看器组件
  • apps/editor/components/tools/:编辑器工具
  • apps/editor/store/:编辑器特定的状态

原文:mp.weixin.qq.com/s/F2-0TywG8…

欢迎关注g*h:AI Tech研习社

关注g*h,后台回复【OpenClaw完全使用手册】,领取OpenClaw完全使用手册.pdf学习资料,更多学习资源敬请期待。