近 24 小时热文
近一天浏览数排行。
近一天浏览数排行。
近三天浏览数排行。
从文章库里持续更新,保留摘要和分类,方便判断是否值得点开。
作者开发了chao-rag-wiki,一个基于RAG的个人知识库skill,将775篇文章索引到4MB向量库。采用turbovec实现高效向量检索,支持混合检索模式:稠密向量处理语义相似性,BM25关键词检索确保字面匹配,通过RRF融合结果,并可选LLM重排优化排序。建索引时按chunk文本哈希去重,避免重复内容干扰。与Karpathy的llm-wiki对比,chao-rag-wiki无需AI编译,直接检索原始素材,实现零编译延迟和全量召回,适合长尾查询和专有名词;而llm-wiki将素材编译成结构化wiki文章,提供知识沉淀。文章通过实战查询验证:对于“loop engineering”,llm-wiki输出整合文章;对于“grill skill”,chao-rag-wiki成功召回冷门内容。集成方面,结合Obsidian Web Clipper自动抓取网页内容存入raw目录,定时任务自动运行增量索引,确保新内容快速可搜。该方案互补使用,兼顾全面召回和知识提炼,提升个人知识管理效率。
本文探讨了CSS伪类与JavaScript事件监听器之间的界限逐渐模糊的现象。作者详细介绍了多个CSS伪类,如:hover、:active、:focus、:focus-visible、:focus-within、:checked、:valid、:invalid等,这些伪类能够捕捉用户交互状态,从而减少对JavaScript的依赖。文章分析了表单验证相关的伪类,展示了如何通过CSS实现表单验证而无需JavaScript事件。此外,讨论了媒体元素伪类如:buffering和:paused,以及新特性如:popover-open和:fullscreen。作者还介绍了未来的event-trigger提案,这是一种允许CSS直接响应事件并触发动画的语法,通过event-trigger-name和animation-trigger属性实现。文章通过对比CSS和JavaScript在处理事件时的优缺点,强调了CSS的简化作用和JavaScript的精确控制,认为多一种实现方式总是有益的。整体上,文章提供了前端开发的实用见解,帮助开发者更好地利用CSS的能力。
浏览器现已全面支持原生JSON模块导入,开发者可通过import语法直接引入JSON文件并自动解析为JavaScript对象。新语法在传统import后添加with { type: "json" },支持静态导入(如import config from "./config.json" with { type: "json" };)和动态导入(使用await import)。导入后,JSON数据可作为ES模块直接访问属性,无需手动fetch或JSON.parse,但需确保服务器返回Content-Type: application/json头。导入的对象是冻结的,防止修改以保证数据完整性。对于大型JSON文件,推荐使用fetch动态加载以优化首屏性能,避免打包工具内联导致包体积膨胀。在TypeScript中,需配置tsconfig.json的resolveJsonModule为true以获得类型支持。此特性简化了前端配置管理,提升了代码模块化,但开发者应权衡使用场景,注意服务器要求和性能优化。
作者基于长期使用Claude Code的经验,分享了常用的SKILLS和工具。SKILLS分为个人和工作两类:个人开发方面,agent-notifier实现在Agent任务完成时发送IM通知;kami可生成网页、简历、PPT等多种页面,展示其审美风格;ponytail以懒编程为核心,通过YAGNI原则、复用已有代码、优先使用标准库和原生特性来避免过度设计,支持lite、full、ultra三个强度级别;skilldeck提供可视化管理SKILLS的GUI工具,兼容命令行使用;web-access支持搜索引擎、网页抓取和浏览器CDP连接,实现带登录态的页面操作。工作场景中,generate-wiki适用于Java和gRPC项目一键生成静态wiki;starrocks-upgrade通过源码对比不同版本差异,评估StarRocks升级风险。工具方面,/tui fullscreen命令开启全屏模式,引入鼠标支持、无闪烁渲染和选中复制,增强文本编辑体验;statusLine接口允许通过自然语言描述自定义终端底部状态栏,显示模型、目录、Git分支、上下文使用率等信息,结合claude-hud插件提供更完整的监控。这些内容覆盖了从代码简化、页面生成到联网操作和版本管理的多种实用功能,体现了工具对开发流程的深度优化,旨在提升编码效率和终端交互体验。
Matt Pocock的Skills系统是一个针对AI编码工具的工程化框架,旨在通过定义原子能力单元提升代码质量。系统基于四个设计原则:小而可组合,每个Skill专注单一功能;模型无关,可在不同Agent平台运行;可改造,用户可自由修改;通用性优先于平台绑定。它解决了AI Agent开发中的四个常见失败模式:需求不清、输出冗余、代码不可靠和架构混乱。针对这些问题,Skills提供了具体修复工具,如/grill-me用于结构化需求澄清,避免Agent误解;CONTEXT.md建立项目共享语言,减少冗余并固化领域术语;/tdd和/diagnose技能强化测试驱动开发和调试流程,确保代码可靠性,强调垂直切片而非水平切片;/zoom-out和架构分析工具如/improve-codebase-architecture持续维护设计质量,防止熵增。安装通过npx命令快速完成,将Markdown技能文件复制到Agent配置目录,并配置项目上下文。Pocock的Skills仓库获得近10万GitHub Stars,反映了开发者对AI编码质量控制的迫切需求。它将经典软件工程原则如测试驱动开发、领域驱动设计和调试流程重新编码到AI协作中,强调工程师对流程的控制权,而非依赖黑箱自动化方法,为AI时代的软件开发提供了实用且可扩展的解决方案。
规格驱动开发(SDD)是一种通过明确定义的规格来指导AI编码助手的软件开发方法,强调规格是代码的真理来源。SDD的根源可追溯到测试驱动开发(TDD)、行为驱动开发(BDD)、契约式设计和形式化方法等传统实践,但在AI时代被催化为必需范式。随着AI编码工具如Claude Code、Copilot的普及,2025年“Vibe Coding”虽降低编程门槛,却导致代码质量失控,生成大量不可测试的代码浆糊。SDD通过将规格作为人与AI间的通信协议,显著降低LLM生成代码的错误率。文章分析了OpenSpec、GitHub Spec-Kit和AWS Kiro三个工具,重点介绍OpenSpec的设计哲学:流动而非僵化、迭代而非瀑布、简单而非复杂、适用于存量项目而非仅新项目、以及可伸缩性。OpenSpec采用增量规格(Delta Specs)支持渐进式引入,其核心工作流为propose → apply → archive三阶段,简化开发流程。此外,文章提供了OpenSpec的安装指南、目录结构示例和CLI命令,展示了如何在实际项目中应用SDD。SDD从独立工程线索被AI催化成完整范式,为AI辅助开发提供了结构化框架,提升代码质量和可维护性。
Ralph Loop 是一种自主循环控制结构,旨在让 AI Agent 通过自指涉迭代完成任务。其核心理念源于 Geoffrey Huntley 对 AI 编码 Agent 行为的观察,这些 Agent 缺乏元认知但执着于尝试,类似《辛普森一家》中的 Ralph Wiggum。技术上,它基于 Bash while 循环,将固定 prompt 反复输入 AI,但每次迭代中 AI 读取自己上一轮修改的文件系统,形成自指涉反馈,从而持续改进代码。Anthropic 的 ralph-wiggum 插件实现了优雅的会话内循环,利用 Claude Code 的 Stop Hook 机制在 Agent 试图退出时拦截,并注入相同 prompt 继续迭代。循环状态仅由一个 Markdown 文件管理,包含迭代次数、最大迭代和完成承诺。退出条件分为两类:Completion Promise,通过语义匹配任务完成信号;以及 Max-Iterations,作为安全上限防止无限循环。相比外部进程循环,会话内设计保持了上下文连续性,支持实时人工干预。Ralph Loop 将 AI Agent 从一次性助手转变为循环迭代的初级工程师,提高了开发效率,但需谨慎设置参数以避免资源浪费。