Claude Code 源码泄漏事件:Clone与重写版本完整整理
事件时间:2026年3月31日 Anthropic 在 npm 发布时意外将 source map 一同打包上传,导致 51万行源码被公开还原。
事件背景
泄漏来源:npm 包的 source map
还原版本:v2.1.88
还原文件数:4756 个 TypeScript 文件(~512K 行代码)
一、重写版(Clean-room 实现)🔥 instructkr/claw-code ⭐ 76.3K历史最快破 50K stars 记录(仅 2 小时)
语言:Python → Rust(正在迁移)
特点:Clean-room 重写,不复制原始代码,仅模仿架构
作者:Sigrid Jin
Kuberwastaken/claude-code ⭐ 4.2KClaude Code in Rust
语言:Rust
特点:Rust 实现并附带架构解析文档
二、可运行的 TS 修复版NanmiCoder/claude-code-haha ⭐ 848本地可运行版本
完整 Ink TUI 交互界面
支持任意 Anthropic 兼容 API
支持 MCP、插件、Skills
三、源码 ...
Gallifrey Code 设计文档
Go 语言实现的 AI 编程助手
一、项目背景基于对 AI 编程助手架构的学习和研究,使用 Go 语言实现一个类似的 CLI 工具。项目名称 Gallifrey Code,灵感来源于《神秘博士》中时间领主的母星。
设计目标
单二进制部署 - 纯 Go 实现,无需运行时环境
双模式输出 - TUI 交互 + —print 无头模式
多 API 支持 - Anthropic API + OpenAI 兼容 API
可扩展工具系统 - 模块化的工具接口设计
二、架构设计2.1 分层架构12345678910111213141516┌─────────────────────────────────────────────────────────────┐│ CLI Layer ││ (cobra CLI, TUI with bubbletea, --print mode) │├───────────────────────────────────────── ...
Go-Claw-Code 设计说明
Go 语言实现 Claude Code 风格 AI 编程助手
GitHub 仓库:https://github.com/gallifreyCar/go-claw-code-gallifrey-self-use
一、项目背景基于 2026年3月31日泄漏的 Claude Code v2.1.88 源码架构分析,用 Go 语言实现一个类似的 AI 编程助手 CLI 工具。
为什么用 Go?
特性
TypeScript (原版)
Go
运行时
Node.js/Bun
单二进制
部署
需要 Node 环境
直接运行
性能
解释执行
编译优化
内存
V8 内存模型
GC + 值类型
依赖
node_modules
无外部依赖
二、架构设计2.1 分层架构参考泄漏代码的分层设计,采用清晰的分层架构:
12345678910111213141516┌─────────────────────────────────────────────────────────────┐│ CLI Layer ...
TDD开发模式:AI友好的工程实践
核心观点: TDD(测试驱动开发)是目前最适配AI编程的开发模式。先写测试、再写实现,让AI的每次输出都有明确的验证标准。
一、为什么TDD对AI友好传统开发 vs TDD传统开发流程
1234561. 理解需求2. 写代码3. AI生成/修改代码4. 手动测试5. 发现bug,回头改6. 循环3-5...
问题:AI修改后,不知道改对了没有,需要人工反复验证。
TDD开发流程
1234561. 写测试用例(明确预期)2. 运行测试 → 红色(失败)3. AI写实现代码4. 运行测试 → 绿色(通过)5. AI重构优化6. 运行测试 → 仍然绿色
优势:每一步都有自动化验证,AI输出质量可量化。
二、TDD的AI适配优势1. 测试即需求文档
传统文档
问题
测试用例
PRD/技术文档
AI理解歧义,实现可能偏离
精确的输入输出定义
口头沟通
信息丢失,AI无从得知
可执行的规格说明
注释/README
可能过时,与代码不同步
始终与代码行为一致
示例:
123456789101112131415// 传统文档:"查询用户订单,返回订单列表&q ...
从 Figma 到前端部署上线的闭环尝试
这不是一个”完美的 Figma 转代码工具”,而是一次尽量跑通真实业务闭环的尝试。
先说结果:我们做出了什么这次我们实际搭了一条可以跑起来的链路:产品修改figma,ai自动完成前端app对应修改并部署到线上(无感知)。
这条链路里,已经跑通的部分包括:
能从 Figma 版本里检测出真实变更
默认只比较相邻两次 Completed
能把变更限制在指定开发区间内
能让 Claude 读取本地 Flutter 仓库
能结合 Figma 文本层级推断代码落点
能把改动真实写进页面文件
能复用已有自动部署链路
一、我真正想解决的问题真实痛点是:
产品或设计同学改了 Figma,开发往往不能第一时间知道改了什么
即使知道改了,也要自己去 Figma 里定位节点、理解设计意图
改完还不算结束,还要提交、部署,最后才能去真实环境看效果
二、这次踩过的坑1. “生成成功”不等于”业务成功”模型很容易生成一个独立组件,看起来没问题,但没有真正挂到页面里。
2. 最大难点其实是”找到宿主页”比如一个节点叫 Frame 2087327689,你单看名字几乎得不到任何有用信息。
真正起作用的是: ...
后端工程师转Agent开发工程师转型指南
写给团队里的后端程序员:怎么从写 API 转成写 Agent,系统怎么设计,学什么,怎么上手。
一、为什么后端程序员适合做 Agent 开发后端工程师写 Agent 有天然优势——Agent 系统 本质上就是一个后端系统,只是「业务逻辑」由模型来决策。
1.1 先建立心智模型
你熟悉的后端概念
Agent 世界里的对应
HTTP Handler
Tool(工具)
Middleware
Context Manager(上下文管理)
事件循环 / Worker
Agent Loop(执行循环)
服务编排 / 微服务
Multi-Agent 协作
配置中心 / Feature Flag
System Prompt
日志 / 监控
Agent Observability
单测 / 集成测试
Agent Evals(评测)
一句话:你写的是 Harness(运行框架),模型是「业务逻辑层」。
1.2 Harness vs Agent:分清职责你的代码职责:
给模型提供工具:定义 Tool 的接口和实现
管理上下文:拼接 Prompt、维护对话历 ...
后端工程师 → Agent 开发工程师转型指南
写给团队里的后端程序员:怎么从写 API 转成写 Agent,系统怎么设计,学什么,怎么上手。
一、为什么后端程序员适合做 Agent 开发后端工程师写 Agent 有天然优势——Agent 系统 本质上就是一个后端系统,只是「业务逻辑」由模型来决策。
1.1 先建立心智模型
你熟悉的后端概念
Agent 世界里的对应
HTTP Handler
Tool(工具)
Middleware
Context Manager(上下文管理)
事件循环 / Worker
Agent Loop(执行循环)
服务编排 / 微服务
Multi-Agent 协作
配置中心 / Feature Flag
System Prompt
日志 / 监控
Agent Observability
单测 / 集成测试
Agent Evals(评测)
一句话:你写的是 Harness(运行框架),模型是「业务逻辑层」。
1.2 Harness vs Agent:分清职责你的代码职责:
给模型提供工具:定义 Tool 的接口和实现
管理上下文:拼接 Prompt、维护对话历 ...
开发工具实用技巧速查
临时代理设置、VS Code 扩展管理、Git 技巧等开发常用命令速查
Linux磁盘分区
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。
概念Linux的磁盘分区机制
Linux的磁盘分区机制是指将物理硬盘划分为多个逻辑部分的过程。每个分区都被视为独立的逻辑驱动器,并有自己的文件系统进行格式化和挂载。以下是Linux磁盘分区机制的核心概念:
主分区(Primary Partition):主分区是硬盘上最基本的分区类型,最多可以划分为4个主分区。每个主分区都可以被视为一个独立的逻辑驱动器。
扩展分区(Extended Partition):扩展分区是一种特殊类型的主分区,它可以容纳多个逻辑分区。只能有一个扩展分区存在,并且必须在4个主分区之中。
逻辑分区(Logical Partition):逻辑分区是在扩展分区内创建的分区。通过扩展分区,可以划分出多个逻辑分区来扩展硬盘上的分区数量。
文件系统(File System):每个分区都需要格式化为特定的文件系统以用于存储数据。常见的Linux文件系统包括ext4、XFS、Btrfs等。
挂载(Mounting):挂载是将一个分区与Linux文件系统中的目录进行关联的过程。挂载点是一 ...
Kubeadm安装K8s集群指南
需求最近给公司的一批测试环境的服务器升级k8s集群,下面是一些要求:
k8s从v1.16.x版本升级到v1.27.4版本
运行时使用containerd:v1.6.20版本
网络插件停止以前的flannel,使用calico: v3.24.6版本
这批服务器机器不能连接外国网络
下面记录了主要的操作步骤,以备不时之需
[所有节点]关停旧版本节点的kubelet及其相关服务
关停服务
12345678910111213# 关停kubeletsystemctl stop kubeletsystemctl stop kube-proxy && systemctl disable kube-proxy# 关闭swapswapoff -a# 编辑注释掉swap开机启动vim /etc/fstab# 关停相关服务,下面的只有master节点需要关停systemctl stop etcd && systemctl disable etcdsystemctl stop kube-apiserver && systemctl disable kube ...
