印度民主深度研究,一个七十八岁的「不可能」还在运行
中文网络上流传着一个说法,流传得相当广。每到印度大选季,总有人言之凿凿地说,那边光是因为选举暴力死的人,就有两万之数。 这个数字要是真的,就意味着在一个十四亿人口的国度,一次选举会在六个星期里、几百个选区中抬出两万具尸首。那已经不是什么「民主失灵」,是一场半内战。这种规模的死亡,但凡是真的,便不该是中文互联网角落里的谈资,而该是路透、BBC、半岛每一天头版的血色头条。 但把 V-Dem、Freedom House、ACLED、印度选举委员会(ECI)、印度内政部、ADR 这几家机构自 1984 年以来历次大选的数据一家一家对齐着看一遍,在任何一份一手来源里都找不到「两万」这个数字的出处。 这个说法有意思的地方,就在它错得并不彻底。它把数量级夸大了五十倍到一千倍,错得离谱;可它想指的那件事本身,却并非空穴来风。印度民主确确实实生着病,而且病灶触目惊心——只是病不长在「大选死人」这桩看得见的伤口上,病长在更深的地方,长在骨头缝里,长在肌理中间,寻常人一眼看不见,掀开皮来才知道疼得厉害。 下面这篇长文先从头到尾把印度民主这套东西梳一遍,看它是怎么在一片文盲率极高、种姓四裂、十几种语言、...
Agent Skills 半年演变:从开放格式到可评测开发循环
事实核验截止日期:2026-07-17。本文保留 Agent Skills 与 skill-creator 的历史脉络;Claude Code 当前的 listing 预算、重复调用和 compact 恢复规则,以当日官方文档为准。 为什么需要 Skills 通用模型一旦面对团队内部流程,通常缺少 commit 规范、周报模板或报销字段等局部知识。能力缺口不在通用推理,而在可执行的本地流程和材料。 Anthropic 在 2025 年 10 月发布 Agent Skills。 时间线 2025 年 10 月 16 日:Skills 诞生 Anthropic 工程博客发了《Equipping agents for the real world with Agent Skills》,署名 Barry Zhang、Keith Lazuka、Mahesh Murag,文末缀了一句 “who all really like folders”。 文章对 Skill 的定义很朴素:一个 Skill 就是一个文件夹,里面有一个 SKILL.md,外加可选的脚本、参考文档和资源文件。SKILL...
Karpathy 视角下的 LLM 编码缺陷:四条行为准则的深度解析
LLM 编码的自作主张 长期用 Claude Code、Cursor、Copilot 写代码的人大概都熟悉一种感觉:模型并不是不会写,而是写得太多、太聪明、太自作主张。让它修一个 bug,它顺手把无关代码风格也改了;让它加一个简单功能,它给你抽象出三层接口和一套配置系统;让它重构 X,它没问清楚 X 的边界就开始动手。 Andrej Karpathy 在 X 上发过一段对这类问题的精炼归纳,forrestchang 把它整理成了一个 GitHub 仓库 andrej-karpathy-skills,提供一份 60 多行的 CLAUDE.md,外加 Claude Code Plugin 的安装方式。这个仓库的内容可以同时用于 Claude Code、Cursor 以及任何支持 CLAUDE.md 形态的 LLM 编码工具。 这篇文章想讨论三件事:Karpathy 到底诊断出了哪四个偏差、对应的四条行为准则怎么用、以及一个更实际的问题——这套准则到底应该装成 skill 还是直接写进 CLAUDE.md。 Karpathy 观察到的四个系统性偏差 仓库 README 引用了 Karp...
共和党还剩几个派系?——MAGA、Freedom Caucus 与特朗普的党内权力
一个流行的说法是:共和党已经不是原来那个共和党了,它是"MAGA 党"。 这个说法一半对、一半不对。从 2016 年到 2025 年,共和党在党纲、人事、候选人提名、外交立场上都被特朗普翻了个底朝天,2024 年党代会通过的新党纲整篇读下来像是他本人的竞选演讲。但共和党并没有"合并"成一个 MAGA 整体,它内部的派系其实比民主党还多、还乱。特朗普不是消灭了派系,而是压过了派系,所有派系都必须围绕他重新定义自己的位置。 几个绕不开的问题:共和党现在到底有哪些派系?"MAGA 党"这个说法成立到哪一步?特朗普对党的控制力深到什么程度?那个动不动就上新闻的 Freedom Caucus(自由连线/自由党团)到底是干什么的? 一、先搞清一个常识:美国国会的"党"不是铁板一块 和很多东亚国家的政党不同,美国两党都没有党中央、没有党纪处分,也没有"开除党籍"这回事。国会山上真正在运作的不是"党",而是一堆自愿组成的党团(caucus)。一个议员同时加入三四个 caucu...
美国警察暴力与大规模监禁深度调查
每当 George Floyd、Tyre Nichols 这样的名字登上头条,一个老问题就会被重新提起:美国警察每年到底打死多少人?其中多少死于枪杀? 这个问题听起来应该有标准答案。美国是世界上数据最透明的国家之一,但联邦政府长期拿不出一份准确的官方数字。真正可靠的数据来自《华盛顿邮报》、《卫报》和一群志愿者搭起来的民间数据库,它们与 CDC 官方统计之间的鸿沟,是这个国家在公共安全治理上最尴尬的一道伤口。 本文用多个独立来源交叉核对,回答两个核心问题:一年死多少?多少死于枪?顺带解释,为什么这个看似简单的数字,在美国是一道几十年没解决的统计难题。 讨论警察暴力绕不开它的另一头——监狱。前端是警察在街头打死公民,后端是国家把公民关到老,两件事共享同一套刑事司法系统、同一套政治激励。所以本文分成两部分:前七节谈警察致死,后九节谈大规模监禁。只写一半,就永远只看到了半张脸。 第一部分 · 警察暴力 一、每年约 1,300 人死于警察之手 根据 Mapping Police Violence(MPV,由 Campaign Zero 维护)的 《2024 Police Violence...
沉默的杀手:美军在东南亚留下的未爆弹药深度调查
半个多世纪前,美军在东南亚投下了人类历史上最密集的炸弹雨。战争早已结束,但炸弹从未停止杀人。 本文基于 Landmine & Cluster Munition Monitor、美国国务院、联合国开发计划署(UNDP)、国际红十字委员会(ICRC)、老挝国家监管局(NRA)等权威机构的公开数据,系统梳理美军在老挝、越南、柬埔寨三国留下的未爆弹药(Unexploded Ordnance, UXO)规模、持续伤亡,以及国际社会的回应。 一、历史背景:人类史上最猛烈的轰炸 1.1 老挝——“地球上被轰炸最多的国家” 1964 年至 1973 年间,美国在老挝发动了一场未经国会授权的秘密战争(Secret War)。根据美国国会记录(Congressional Record, 1975 年 5 月 14 日)和 Legacies of War 的数据: 投弹总量:超过 200 万吨弹药 轰炸任务:580,000 次——相当于每 8 分钟投下一架飞机的炸弹载荷,持续 9 年不间断 集束弹药:投下超过 2.7 亿枚集束子弹药(submunitions),当地人称之为"bo...
苹果印度产能转移深度调查:一场价值千亿美元的制造业大迁徙
2025 年 3 月的一个深夜,一架满载 iPhone 的货运包机从印度金奈起飞,直奔美国。这批价值 20 亿美元的手机,是苹果有史以来最大规模的一次印度空运。在特朗普关税大棒即将落下的前夜,库克用一种近乎"抢跑"的方式,向全世界宣告了一个事实:iPhone 的制造版图,正在发生不可逆转的重构。 这不是一个简单的"搬工厂"故事。这是一场涉及地缘政治博弈、供应链重塑、劳动力素质鸿沟、基础设施短板的复杂系统工程。苹果的原计划是什么?印度扩产进度顺利吗?遇到了哪些始料未及的问题?本文试图用数据和事实,还原这场价值千亿美元的制造业大迁徙的全貌。 为什么要离开中国? 要理解苹果的印度战略,首先要理解它为什么要离开中国——或者更准确地说,为什么要降低对中国的依赖。 一场疫情暴露的致命弱点 2022 年底,郑州富士康因疫情封控导致大规模生产中断。这座被称为"iPhone 城"的超级工厂,巅峰期拥有超过 35 万名工人和约 38 条产线,承担着全球 iPhone 产量的半壁江山。当它停摆时,苹果在圣诞旺季遭遇了严重的供货危机。 这一事件...
Java栈帧省略机制详解:为什么异常堆栈会消失?
引言:诡异的异常堆栈消失现象 线上服务报错时,你打开日志准备排查问题,却发现异常堆栈信息神秘消失了: 1java.lang.NullPointerException 只有短短一行异常类名,没有完整的堆栈跟踪。你可能会怀疑:是日志框架出问题了?还是被什么拦截器截断了? 其实,这是 JVM 的一个性能优化机制,叫做 OmitStackTraceInFastThrow(快速抛出时省略堆栈跟踪)。从 JDK 5 开始引入,默认启用。 本文将深入剖析这个机制的设计动机、工作原理、触发条件,以及如何正确应对。 一、问题场景:异常堆栈去哪了? 1.1 复现现象 用一段简单的代码就能复现: 123456789101112public class ExceptionOmitDemo { public static void main(String[] args) { String msg = null; for (int i = 0; i < 500000; i++) { try { ...
Coding Agent 代码检索技术全景:从 GREP 到知识图谱
Coding Agent 的核心能力之一是在陌生代码库中快速定位相关代码。无论是修复一个 bug、实现一个新功能,还是回答一个架构问题,Agent 的第一步几乎总是:找到相关的代码在哪里。 这个看似简单的问题,实际上是整个 Agentic Coding 领域最基础也最棘手的挑战。不同的 Coding Agent 给出了截然不同的答案——Claude Code 坚持用 grep,Cursor 构建了基于 Merkle 树的向量索引,Aider 用 PageRank 算法生成 RepoMap,Graphify 则把代码库变成了一张知识图谱。 这些方案之间是什么关系?是同一层次的竞争方案,还是不同层次的互补技术?各家的取舍逻辑是什么?未来的发展方向又在哪里? 本文从技术原理出发,逐层拆解当前主流的代码检索方案,分析它们的设计哲学与工程取舍,最终给出一个统一的分层理解框架。 全景导图 模式总览 # 模式名称 一句话口诀 覆盖场景 1 精确匹配 知道名字就直接找 GREP / ripgrep 文本搜索 2 语义召回 不知道名字但知道意图 RAG / 向量检索 3 ...
Agentic Coding 深度解析:从架构原理到多 Agent 协作
归档说明:原文是一篇 2,519 行的产品与方法论综合文,混合了 Agent Loop、Messages、OpenCode、OMO 命令、Ralph Loop、Subagent、Harness 与多工具配置。稳定知识已经拆入专题文章;产品命令和内部角色等版本事实交由带版本日期的案例文维护。本页保留原 URL。 Agentic Coding 的稳定定义没有变化:模型围绕目标反复选择动作,Harness 执行工具并把观察结果写回工作集,验证器决定任务是否满足完成条件。具体命令、工具数量、内置角色和默认模型会随版本变化,不再放在一篇永久综合文中。 内容迁移表 原文主题 当前专题 Agentic Coding 的组件、边界和总阅读路线 AI Coding Agent 的上下文操作系统 一次 Agent Loop、Hook、权限与 Trace 一次 AI Coding Agent Turn 的上下文生命周期 Messages 注入、裁剪、compact、缓存与重放 Messages 数组的六种操纵策略 Skill、Rules、Commands、Tool Sea...

