JSONC - 带注释的 JSON
JSONC 是什么? JSONC(JSON with Comments)是 JSON 的一个扩展格式,允许在 JSON 数据中添加注释。这个规范由 jsonc.org 定义,旨在形式化一种在实践中广泛使用但缺乏正式标准的格式。 起源与背景 JSONC 格式最初由微软非正式地引入,用于 VS Code 的配置文件,包括: settings.json - 编辑器设置 launch.json - 调试配置 tasks.json - 任务配置 伴随着这种非正式格式,微软发布了一个公开可用的解析器 jsonc-parser。JSONC 规范的目标是将 JSONC 格式形式化,定义 jsonc-parser 在默认配置下认为有效的内容。 语法规则 JSONC 遵循与 JSON 相同的语法规则,并额外支持 JavaScript 风格的注释。 单行注释 单行注释以 // 开始,延伸到行尾: 12345{ // 这是单行注释 "name": "John Doe", "age": 30} 多行注释 多行注释以 ...
AI 项目配置文件全景图:md 文件的作用与边界
归档说明:原文按文件名划分 AGENTS.md、CLAUDE.md、rules/ 与 OpenSpec,部分工具归因和优先级已经过时。稳定的时态分类、载体边界和组合方法已迁入新文章;本页保留原 URL 作为迁移索引。 配置文件不宜只按扩展名分类。更可靠的坐标系包含五类组件:内容源、选择器、上下文装配器、执行器和生命周期管理器。AGENTS.md 与 CLAUDE.md 是项目指令载体,Rules 负责作用域选择,Skill 是可调用能力包,OpenSpec 管理需求与变更状态;各工具对目录、优先级和动态加载的支持需要分别核验。 内容迁移表 原文主题 当前专题 文件、组件、作用域、装配顺序与时态分类 AI Coding Agent 的上下文栈:组件边界与装配顺序 Rules、Commands、Skills、Hooks、Plugins 的演变 从 Rules 到 Agent Skills:能力加载机制的演变 AGENTS.md 的内容边界、骨架与维护 如何写好 AGENTS.md Skill 的目录、路由、正文和恢复 AI Coding Agent 的 ...
QMD:本地智能文档搜索引擎完全指南
QMD:本地智能文档搜索引擎完全指南 引言:你的知识库需要一把钥匙 作为程序员、写作者或知识工作者,我们每天都在产生大量的 Markdown 文档——技术笔记、会议记录、项目文档、博客草稿……这些文档散落在不同的文件夹中,随着时间推移,它们变成了"数字废墟":你知道某篇笔记一定存在,却怎么也找不到。 传统的文件搜索工具(如 Spotlight、grep)只能基于文件名或关键词匹配,无法理解语义。而云端笔记工具(如 Notion、Obsidian)虽然提供了搜索功能,却存在数据隐私和访问限制的问题。 QMD(Query Markup Documents) 正是为了解决这个痛点而生的——一个完全本地运行的智能文档搜索引擎,它结合了 BM25 全文检索、向量语义搜索和 LLM 重排序,让你能够用自然语言快速找到任何文档中的任何内容。 一、QMD 是什么 QMD 是一个开源的 CLI 工具 + 库,由 @tobi 开发,专为 Markdown 文档设计。它的核心特性包括: 特性 说明 完全本地 所有数据和模型都在本地运行,无需联网 混合搜索 BM2...
LSP:语言服务协议与AI编程助手的代码理解能力
LSP:语言服务协议与AI编程助手的代码理解能力 早期的 AI 编程工具,本质上是在做文本替换:把代码当作字符串,在字符串层面做补全、修改、搜索。这种方式有一个根本缺陷——它不理解代码的结构。 一段 Java 代码里,UserService 是一个类,findById 是它的方法,返回类型是 Optional<User>。文本替换工具看到的只是这些字符;而一个真正理解代码的工具,能够知道: findById 的参数类型是 Long,不是 String 调用这个方法的地方有 12 处,分布在 5 个文件里 如果修改了方法签名,哪些调用点会编译失败 这种理解能力,来自 LSP(Language Server Protocol)。 LSP 是什么 LSP 是微软在 2016 年提出的协议(Language Server Protocol 官方规范),目的是把"语言智能"从编辑器中解耦出来。 在 LSP 出现之前,每个编辑器都要为每种语言单独实现代码补全、跳转定义、查找引用等功能。VS Code 要实现一套,Vim 要实现一套,Emacs 要实现一套—...
SDD 与超级个体:AI 时代的人机协作范式
AI 编程工具的真正价值是什么?不是"让机器替代人",而是让人工作在更高的抽象层次上。这个认知转变,带出了一系列关于人机协作、Agent 架构设计的思考——也带出了一些值得正视的批判与反思。 一、从 Vibe Coding 到 SDD:一个被误解的问题 2024-2025 年,AI 编程助手的爆发带来了一个新词汇——Vibe Coding(基于感觉的编程)。开发者与 AI 对话,AI 即时生成代码,表面上效率提升显著。 但这里有一个被普遍忽视的根本矛盾: Vibe Coding 优化的是"个人编码效率",但工程的真正瓶颈是"团队协作效率"。 一个人写代码快 10 倍,但团队沟通成本不变,整体效率提升极为有限。更糟的是,Vibe Coding 在协作层面制造了新的麻烦: PM ↔ 研发:对话历史无法作为契约,验收时各执一词,“这不是我要的” 前端 ↔ 后端:各自 vibe,联调时才发现接口格式对不上,浪费 1-2 天 后端 ↔ 后端:订单服务调用 POST /inventory/deduct,库存服务只有 PUT ...
AI 读书笔记
AI 编程助手 Quest 1.0:把执行交给 AI,把选择留给人类 核心理念:人类“品味”是人机协作的终极壁垒 “品味” ≠ 审美,而是决策力:在众多可行方案中判断“哪个是对的选择”,尤其体现为“选择不做”(如舍弃文件树导航,拒绝向下兼容)。 AI 擅长执行与优化,但缺乏责任意识与经验直觉;人类凭借踩坑记忆、业务理解与后果承担能力,守住质量、边界与必要性底线。 “品味”是未来人类区别于 AI 的核心差异,也是 AI Coding 中 human-in-the-loop 不可替代的价值。 Quest 1.0 的关键升级:为 SOTA 而生,专注"自主编程" 架构定位:专为当前最优(SOTA)大模型(如 Claude Opus/Codex/Gemini)深度优化,不兼容旧模型、不提供模型切换选项,追求 Token 效率与产物质量极致。 交互范式革新: ✅ 舍弃代码导航 → 转向“阅读意图”(Spec/测试/结果),代码降级为“中间产物”; ✅ 对话窗口为主视图 → 降低非专业开发者门槛,同时打破研发者技术栈认知边界(如后端工程师无需懂前端即可驱动前端开发...
git 难点知识汇总
Git基础.xmind 初始化命令 配置用户、remote 和 branch 123456789101112131415161718192021222324252627282930313233343536git config --global user.name "magicliang" # 请换成你自己的名字git config --global user.email "magicliang@qq.com" # 请换成你自己的邮箱git config --global push.default simple # 我们要求 Git 版本 1.9.5 以上git config --global core.autocrlf false # 让Git不要管 Windows/Unix 换行符转换的事git config --global --listssh git@gitlab.abcgit initgit add .git commit -m "First commit&qu...
Gradle 完全指南
Gradle 完全指南 全景导图 什么是 Gradle Gradle 是新一代的自动化构建工具,基于 Apache Ant 和 Apache Maven 的概念发展而来。与 Maven 使用 XML 配置不同,Gradle 采用基于 Groovy 或 Kotlin 的领域特定语言(DSL)来声明项目配置,大幅简化了构建脚本的复杂度。 核心特点(参考 Gradle 官方文档): 灵活性:Gradle 的设计理念是"语言优先"而非"框架优先",提供了高度的可扩展性 性能:支持增量构建、构建缓存、并行执行等优化手段 生态:Android 官方构建工具,拥有丰富的插件生态 兼容性:可以导入 Maven 和 Ivy 仓库,支持迁移现有项目 gradle.xmind 这里的 AIDL 是 Android Interface Definition Language 的意思。Dex 是 Dalvik executable format 的意思。 核心概念 Gradle 是一个自动化构建工具(build automation),通过组织一系...
当智能体变成一份 Markdown 文档
归档说明:原文是一篇 2,895 行的早期综合文,把 Markdown 载体、Agent Loop、Skill、Memory、Subagent 和 Harness 放在同一条叙事中。相关内容已在 2026-07-17 拆入带事实核验日期的专题文章;本页保留原 URL,作为迁移索引。 原文提出的核心问题仍然成立:一份 Markdown 可以向 Agent 提供指令、知识和工作流,但不能独立构成完整 Agent。文件需要由 Harness 发现和装配,动作需要工具、权限与 sandbox 执行,长会话还需要 compact、外部状态和恢复合同。 内容迁移表 原文主题 当前专题 Markdown、Rules、Skills、Tools、Memory 的组件边界 AI Coding Agent 的上下文栈:组件边界与装配顺序 Agent Loop、Hook、权限、工具结果与停止条件 一次 AI Coding Agent Turn 的上下文生命周期 Skill 的发现、目录、正文加载与 compact 恢复 AI Coding Agent 的 Skill 加载机制深...
JVM 的内存模型与线程
JVM 的内存模型与线程 Java 内存模型(Java Memory Model, JMM)定义了多线程环境下共享变量的访问规则,是理解并发编程的基石。本文从硬件架构出发,逐步深入到 JMM 的核心机制与实践模式。 模式总览 # 模式名称 一句话口诀 适用场景 1 写刷读清 写入即刷盘,读取先清空 volatile / unlock 后的可见性 2 顺序锁 同把锁内,串行执行 synchronized 临界区保护 3 偏序传递 A先于B,B先于C,则A先于C happens-before 链式推理 4 不可变安全 构造完成前不逃逸,完成后不修改 final 字段的安全发布 一、从硬件到抽象:为什么需要 JMM 1.1 CPU 架构的性能鸿沟 现代 CPU 的处理速度远超主内存(DRAM)的响应能力。以 Intel Skylake 架构为例: 层级 典型延迟 容量范围 L1 Cache ~4 cycles 32KB L2 Cache ~12 cycles 256KB L3 Cache ~40 cycles 8-32MB ...







