nenufm.com

留声

写 AI、编程笔记和日常折腾的工具,记录遇到的问题、踩过的坑和解决过程,也聊互联网见闻,以及工作之外的生活。

编程笔记
当 RESTful 路径设计遇到不可控的第三方统计
资源 ID 放进 URL 路径通常符合 RESTful 习惯,但某些第三方平台会把每个真实 pathname 当成独立接口,导致访问量、错误率和耗时无法聚合。本文讨论在无法取得路由模板时,如何用固定低基数路径与查询参数重新平衡 API 语义和可观测性。
AI Playground
使用 ModelScope 管理本地模型缓存
使用 uv tool 安装 ModelScope,配置 MODELSCOPE_CACHE,扫描、校验和清理本地模型缓存,并按需下载 Qwen GGUF 权重与视觉投影文件。说明新版目录、旧缓存重复、容量统计不一致及完整重建缓存的安全处理方法。
AI Playground
使用 llama.cpp、Claude Code 和 Codex 搭建本地 Agent 编码环境
在 Debian 和 RTX 4090 上编译 llama.cpp,使用 ModelScope 下载 Qwen3.6-27B,并接入 Claude Code 与 Codex。包含新版缓存路径、服务参数、接口与真实工具调用验证,以及已经确认的兼容边界与排错方法。
编程笔记
Hono、Zod、RPC 与 OpenAPI 如何保持同一份契约
在 Hono 项目中同时使用 Zod 校验、RPC 类型客户端和 OpenAPI 时,最容易出现路由能运行、客户端能编译、文档却已经漂移。本文用普通 Hono 路由配合 hono-openapi,说明请求 Schema、响应类型、错误契约和接口说明各自应该放在哪里。
编程笔记
开发环境保留 API 文档,生产包彻底移除
API 文档只在开发环境注册,并不代表 Scalar、OpenAPI 生成器和文档路由已经从生产 Bundle 消失。本文以 Bun 构建为例,说明如何用动态导入、编译期常量与产物扫描真正移除文档代码,同时避免把运行时配置和密钥错误地一并内联。
开发工具
用 Oxfmt 统一 TypeScript 项目的代码格式
记录 Oxfmt 接入 TypeScript 项目时容易遇到的问题:如何确定配置范围,避免意外改写既有风格,排除生成文件,处理 JSX 单引号与 Windows 换行冲突,并把格式化接入日常检查和 CI;也说明首次全量格式化为什么应该单独审查,避免掩盖真实代码改动。
OxfmtTypeScript代码格式化工程化查看正文 →
AI Playground
在 Codex 中接入 OpenAI Developer Docs MCP
记录在 Codex 中添加 OpenAI 官方文档 MCP、检查连接并查询 Codex 与 OpenAI API 当前资料的过程。文章说明该服务只提供只读搜索和页面内容,不代替 API 调用,也不应覆盖仓库事实;同时给出用户级配置、CLI 命令、使用范围和结果核对方法。
AI Playground
在 Codex 中接入 Context7 MCP
记录在 Codex 中配置 Context7 MCP、检查连接并按库名和版本查询当前技术文档的用法,同时区分远程 MCP、Context7 CLI 与 documentation-lookup Skill。文章重点说明调用范围、API Key、上下文成本和自动触发规则,避免简单任务也被强制查询外部文档。
AI Playground
我如何使用 Agent Skill:查找、安装与实践
记录我在 Codex 等代码 Agent 中查找、审阅、安装和管理 Skill 的方法,并整理 Superpowers、documentation-lookup、React 实践、frontend-design 与 humanizer-zh 的实际用途、触发边界,以及 Skill、MCP、项目规则和验证结果之间的关系。