给 VPS 配一套 push tag 自动部署:self-hosted runner 踩坑实录
在自己的 VPS 上用 GitHub self-hosted runner 做 push tag 自动部署。记录三个真正卡住的点:构建到底在哪台机器跑、跑 runner 的用户必须等于跑 app 的用户、pnpm 新版本把未声明的 build 脚本变成硬错误。
在自己的 VPS 上用 GitHub self-hosted runner 做 push tag 自动部署。记录三个真正卡住的点:构建到底在哪台机器跑、跑 runner 的用户必须等于跑 app 的用户、pnpm 新版本把未声明的 build 脚本变成硬错误。
用 claude --worktree 开会话后,.claude/skills 里的项目 skill 全失效了。根因:它们是指回 .agents/skills 的 symlink,而 worktree 的 .worktreeinclude 拷贝跳过了 symlink。记录排查到用 --copy 物化成真实文件的根治。
在 GitHub issue 里 @claude 就让它自动建分支、改代码、开 PR。记录用 anthropics/claude-code-action 搭这套流程踩的两个权限坑:workflow 默认只读、GitHub 默认禁止 GITHUB_TOKEN 开 PR,以及解法和跑通条件 checklist。
给这个 Astro 博客的标签页、分类页做 SEO 收尾:35 篇文章却有 69 个标签,将近一半只挂着一篇,是典型的薄内容。本来第一反应是 robots.txt 里 Disallow 掉,结果发现这是个常见误区——Disallow 只挡爬取不挡收录,真正想让薄页面退出索引,得用 meta robots 的 noindex, follow,并且 robots.txt 还得保持全开。附 Astro 里的具体改法。
给这个 Astro 博客接入 llms.txt 和 llms-full.txt 的完整过程:用 content collection 在构建时生成索引文件,以及中文站在 Cloudflare 上一定会踩的 charset 乱码坑。
上一篇我把博客那套加工具的规矩做成了一个 Skill。这回换个角度:当我装的 skill 从「自己写的一个」变成「从别人仓库拉来的一堆」,怎么保证队友、CI、还有未来的我,装到的是同一批、同一个版本?答案是 skills-lock.json——Agent Skills 版的 package-lock.json。这篇按 WHW 捋一遍:它是什么、怎么工作怎么用、以及为什么一旦 skill 成了依赖,就该有把锁。老规矩,官方说的和我自己机器上看到的分开讲。
LET'S KEEP IN TOUCH
通过 RSS 订阅,在你喜欢的阅读器里接收更新。