Archives
All the articles I've archived.
- 0x1B // 后端实践
一个需求从聊天到上线 — AI Agent 驱动 Calendly 预约功能的全过程
从 IM 中的一行需求消息开始:销售团队要在网站上嵌入 Calendly 预约。Agent 发现了旧页面中的语义冲突、提出了几种交互方案、实现了环境驱动的配置方案,并在上线后追踪了外部依赖阻塞。
- 0x1A // 工具设计
为 AI Agent 设计跨运行时会话追踪协议 — track-agent-sessions 的构建过程
构建一个可复用的 Agent Skill,用于追踪会话生命周期:登记、结束、中断恢复,并在 Codex 和 opencode 两个运行环境之间保持状态一致性。记录协议设计、安装验证和边界决策。
- 0x19 // 工具设计
把个人经验编译为 AI Agent 可复用资产 — Praxis 知识库的架构思路
构建一个以 AI Agent 为目标用户的知识库:从真实问题出发,经过调查、决策、验证,最终沉淀为可复用的认知模型和 Agent Skill。记录整个架构的取舍过程。
- 0x18 // 后端实践
mysqladmin ping 骗了我——Unix socket 和 TCP 之间的调试陷阱
MySQL 容器启动了,mysqladmin ping 返回 alive,应用却说 connection refused。排查发现 ping 走的是 Unix socket,TCP 端口根本还没就绪。记录这个误导了我好几个小时的调试经历。
- 0x17 // 后端实践
优惠码批量生成系统的设计 — Stripe Promotion Codes + 自建管理层
在 Stripe Checkout 基础上构建优惠码批量管理系统:批次管理、三档折扣、带前缀的编码规则、一键导出 CSV,以及设计过程中"哪些功能留给 Stripe,哪些自己做"的边界决策。
- 0x16 // 后端实践
库存可用量计算重构 — 把散落的硬编码公式收敛为一句话
记录一次 WMS 系统中库存可用量计算公式的重构:从 22 处散落的硬编码逻辑收敛为可配置的业务规则,让"预留量是否参与可用量计算"成为客户级别的开关。
- 0x15 // 工具设计
为 AI 编码助手设计 Git 工作流规则 — 从混乱到可控
记录为 AI 编码 Agent 设计 Git 行为规则的过程:从分支权限、提交约束、推送禁令到边界场景处理,形成一套让非人类协作者也能安全操作 Git 的工作流规范。
- 0x14 // 后端实践
生产服务器备份审计与体系建设 — 从 5 台零轮转到全线 7 天保留
记录一次对 5 台生产服务器的只读 SSH 巡检与备份体系建设全过程:从发现 2 台完全无备份、5 台均无轮转、3 台密码明文泄露,到分类修复部署、统一 7 天保留策略、释放 52GB 磁盘空间。
- 0x13 // 后端实践
无框架 PHP 项目的渐进式工程化改造
记录如何将一个扁平结构的 PHP 营销站点改造为具有 Composer 自动加载、PSR-4 命名空间、public/ 入口隔离和视图层的工程化项目,而不引入重量级框架。
- 0x12 // 工具设计
RAG + 本地/在线 LLM:一个可离线的 AI 客服架构
记录如何为一个 SaaS 营销站搭建 RAG 驱动的 AI 客服系统:FastAPI 后端、FAISS 向量检索、本地 Ollama + 可选在线 LLM,以及从纯在线到本地优先的架构演进。
- 0x11 // 工具设计
「未实现」还是「不实现」:PPS 脚手架的设计选择
PPS 是一个 PHP 脚手架工具,它不做占位符替换、不创建代码目录、在构造函数里做 I/O。当 AI 把这五个设计点列为 bug 时,我才意识到——这些选择不是没有理由的,但如果不把理由写出来,别人就会用自己的框架来评判。
- 0x10 // 工具设计
全量 Vendor Rebrand:9 个 PHP 包从 hizpark 到 changhorizon 的实践记录
记录一次完整的 PHP 包生态 vendor 切换过程:9 个已发布包、跨包依赖、命名空间变更、CI 适配、版本号策略——以及关于 composer.lock 和脚手架设计哲学的思考。
- 0x0F // 后端实践
mPDF 6.0 动态图片渲染踩坑:当 base64、PNG、绝对路径全都失效
在 PHP 5.6 遗留系统中用 mPDF 6.0 生成含动态签名图片的工单 PDF。本以为 base64 data URI 或绝对路径就能解决,结果 PNG 在 mPDF 中怎么都渲染不出来。本文记录四种方案的完整排查过程和最终解决方案。
- 0x0E // 后端实践
在 PHP 5.6 遗留系统中设计 Shopify 模块:架构取舍
在 PHP 5.6、无框架、无 Composer 的老旧 WMS 中设计一个多层架构的 Shopify 集成模块。本文记录分层设计、GraphQL 集成、多店铺 OAuth 等关键决策背后的取舍逻辑。
- 0x0D // 后端实践
工单系统的重生:从 Demo 到 WMS 集成
一个 5 字段的 stub 表单如何通过完整设计重构为可用的工单系统?记录从 Demo 前端到旧系统后端的架构适配全过程,包括数据库规范化、替换决策和 PHP 5.6 下的技术约束。
- 0x0C // 工具设计
设计经验的容器:AI Skill 的迭代过程
从生成日报到设计完整的工作流规范——记录一个 AI Skill 如何通过对话迭代逐步成型,以及从中总结的 Skill 设计三原则。
- 0x0B // 后端实践
三层防御:设计安全的危险操作
一个删除按钮引发的思考——Controller 校验、Repository SQL 保护、DB 约束兜底,三层防御模式让"手滑"不会变成"灾难"。
- 0x0A // 后端实践
Shopify OAuth 跨账号授权:一个调试中的意外发现
用错误的 App 凭据居然授权成功了?一次 Shopify OAuth 调试中发现的跨账号授权机制。原来 client_id 是应用的全域身份证,绑的不是账号而是应用本身。
- 0x09 // 工具设计
从 Pine 到回测 — 构建本地交易信号系统
记录如何搭建一个本地交易信号系统:SQLite 数据仓库自动同步多周期 K 线、Python DSL 策略框架、回测引擎,以及将 TradingView Pine Script 策略移植到本地回测的完整过程。
- 0x08 // 工具设计
扩展 AI 编码助手的本地能力 — 浏览器自动化与共享终端
记录如何为 AI 编码助手集成浏览器自动化(playwright-cli)和共享终端(tmux)能力,实现从纯文本交互到操作本地 Chrome 浏览器、协作远程服务器的完整工具链。
- 0x07 // 后端实践
从单体到管道:解耦订单同步与发货单创建
一个 PHP 5.6 遗留系统中,如何将一条 600 行的同步脚本拆解为两个独立步骤,以及为什么这次解耦暴露了三个原本被掩盖的 P0 级安全问题。
- 0x06 // 后端实践
WMS 与 Shopify 的数据交响:订单同步全链路解析
从客户在 Shopify 下单到仓库发货再到物流回传,完整解析一个 PHP 5.6 遗留系统中订单同步的全链路数据流 —— 没有产品同步、没有库存推送,为什么系统依然正常运转?
- 0x05 // 工具设计
本地开发 SSL 证书踩坑实录 — 通配符、SAN 与 Chrome 信任链
一个本地开发 HTTPS 证书问题的完整排查记录:Chrome 报 ERR_CERT_COMMON_NAME_INVALID 而 curl 正常,最终定位到通配符 SAN 不匹配裸域名、Chrome 证书存储策略变更、多同名 CA 冲突三重问题。
- 0x04 // 工具设计
图片比例自动归类与裁剪系统设计
从零设计一个稳定、可靠且具备等幂性的图片处理系统,完整记录设计目标、ETL 事务模型和异常处理策略。
- 0x03 // 工具设计
构建自动化的 Build in Public 工作流
记录如何利用 opencode 的 AGENTS.md、Skill 和自定义脚本,构建一套从日常编码到博客发布的自动化管线,实现 build in public 的低成本持续输出。
- 0x02 // 工具设计
基于 git-archive 的项目打包
记录开发 git-pack 工具的过程,通过封装 git-archive 实现多格式扩展、智能版本命名及排除模式注入的原子化打包方案。
- 0x01 // 工具设计
系统观测与 Conky 配置
记录在 Deepin Linux 下使用 Conky 构建系统监控底座的过程,包括多时区显示与出口 IP 实时抓取的实现。