21 Commits

Author SHA1 Message Date
xfy
ca676a6146 feat(docker): 新增 yggdrasil-runner-bun 沙箱镜像
bun 在 Alpine 3.18 官方仓库不可用,用 bun.sh 安装脚本(多架构、自动检测
/etc/alpine-release 选 musl 变体)。踩坑三处:

1. BUN_INSTALL 必须对管道两侧生效——「VAR=x cmd | bash」只给左侧设变量,
   bash 侧读不到会 fallback 到 $HOME/.bun。改用 export。
2. bun 的 musl 二进制是 C++ 写的,依赖 libstdc++ + libgcc(musl libc 不带
   C++ 运行时),缺失时报 _ZNSt18condition_variable... symbol not found。
   这两个是运行时依赖,apk del 不得删除。
3. 安装路径固定到 /opt/bun + symlink /usr/local/bin/bun,避免依赖 $HOME
   (runner 用户 $HOME 可能不可写)。

本地验证通过:
- bun --version → 1.3.14
- runner 用户(1000:1000) + 只读根 + tmpfs(/code mode=1777, /tmp exec) 下
  成功执行含 interface/类型注解/循环的 TypeScript 代码。

build-runners.sh 加 bun 构建步骤;deploy-to-linux SKILL.md 的 build 循环、
docker save 列表、docker tag 列表、verify 循环全部补 bun(5→6 个镜像)。
2026-07-21 15:44:38 +08:00
xfy
460088fa43 docs(skill): deploy-to-linux 添加手动部署模式
Some checks failed
CI / check (push) Has been cancelled
CI / build (push) Has been cancelled
用户指定服务器后,agent 只做第 0 步只读探测,然后按探测结果
输出填实占位符的完整部署命令清单(分本地/服务器两块),
用户自行复制执行。同步更新 description 触发关键词。
2026-07-21 14:13:49 +08:00
xfy
9e9c6be5ce docs(skill): deploy-to-linux 删除已修复的 Code Runner 限制、fish 兼容性改写为正向清单
Some checks failed
CI / check (push) Has been cancelled
CI / build (push) Has been cancelled
- 删掉 'Code Runner 限制(已知)' 整节,Podman tmpfs 表只留客观差异不再
  '→ 影响 Code Runner,见末尾',因为 tmpfs uid/gid 问题已修复。
- 第 0 步决策表 $SHELL 一行措辞调整:fish 从 '陷阱' 改为 '兼容性提醒'。
- 'fish shell 陷阱' 章节重写为 'fish shell 兼容性':
  * 逐条核对所有 ssh <host> '...' 命令(; && || | 2>&1 docker {{}} fish 都
    原生支持, VAR= for...do...done $? 全部已规避)。
  * 给出 9 条语法的 bash/fish 对照表,标注哪些本文已用、哪些已避免。
  * 明确原则:需要 $()/VAR=/for...done 的逻辑放本地 zsh/bash。
2026-07-21 13:33:40 +08:00
xfy
8c907e4c67 chore(skill): 移除未使用的 writing-great-skills 技能及其 lock 注册
Some checks failed
CI / check (push) Has been cancelled
CI / build (push) Has been cancelled
2026-07-16 10:29:06 +08:00
xfy
dc24de0dbb chore: 更新 skills 配置与术语;新增 rust-advanced-performance 技能;清理 Makefile
Some checks failed
CI / check (push) Has been cancelled
CI / build (push) Has been cancelled
2026-07-16 10:27:51 +08:00
xfy
62d06fb35d chore(skill): 清理已卸载的第三方 skills 及其 lock 注册 2026-07-15 14:32:04 +08:00
xfy
875dc39b61 chore(skill): 补全 skills-lock.json 注册并格式化 SKILL.md 表格 2026-07-15 14:21:20 +08:00
xfy
0b40105341 feat(skill): 新增 optimizing-rust-performance 性能优化 skill
TDD-for-skills 流程提炼:先跑 baseline(两个 Rust 子代理无 skill 时
一致地「提及但未应用」Cow/SmallVec,且不量化收益、不提 profiling),
再写最小 skill 堵住这些缺口,GREEN 测试确认子代理带上 skill 后实际
应用所有模式并量化收益。

核心内容:
- 固定优先级心智模型(算法→内存→布局→并发)
- 5 个触发→动作模式:swap_remove / retain / take / SmallVec / Cow
- 热点路径额外模式(切片取词素、借用切片匹配、ASCII 谓词)
- 量化收益表 + profiling 提醒规范
- 过度优化防护:新增依赖代价、Cow 返回类型的 API 传染、决策速查表
2026-07-15 10:24:20 +08:00
xfy
c3ae0aa975 refactor(skills): deploy-to-xun → deploy-to-linux 通用化
将部署 skill 从 xun 专属改为适用于任意 Linux 服务器:
- 新增「第 0 步:探测目标服务器」:一条 ssh 命令拿全 OS/运行时/shell/
  socket/磁盘/端口/容器列表,配套决策表
- 新增「Docker vs Podman 关键差异」表(socket 路径/镜像短名/tmpfs 兼容)
- 前置反代从「复用 nginx-proxy」单一选项扩展为三方案决策:
  A 复用现有 nginx-proxy / B 自建 nginx-proxy / C 自建 nginx + 手动证书
- compose 模板参数化:<host>/<域名>,socket 挂载按 Docker/Podman 二选一
- 保留项目专属部分(LANGUAGES 注册表硬编码、runner 沙箱、镜像名约定)
- fish shell 陷阱、Rosetta 要求、buildx 命名 bug、scratch 健康检查等
  实战经验全部保留
2026-07-13 19:47:56 +08:00
xfy
7584e0ca1c docs(skills): 新增 deploy-to-xun 部署流程 skill
将本次实战验证的部署流程提取为可复用 skill,涵盖:
- 本地 arm64 用 Docker Rosetta 构建 x86 镜像(绕过 QEMU 跑 rustc 的 SIGSEGV)
- runner 镜像 localhost/ 前缀与 LANGUAGES 注册表硬编码名的 tag 映射
- xun 服务器 fish shell 陷阱(变量赋值/循环/退出码语法差异)
- 复用 nginx-proxy + acme-companion 自动签证的 compose 配置
- podman socket 路径映射与 scratch 镜像健康检查方式
- Code Runner 在 podman 上的 tmpfs 兼容性已知限制

每一步均在本次会话中实战验证通过(14 迁移成功、HTTPS 200、证书签发)。
2026-07-13 19:40:41 +08:00
xfy
f6042d23f6 chore(skill): add matt-pocock engineering skills
Add 20 engineering/productivity skills from mattpocock/skills:
ask-matt, code-review, codebase-design, diagnosing-bugs,
domain-modeling, grill-me, grill-with-docs, grilling, handoff,
implement, improve-codebase-architecture, prototype, research,
setup-matt-pocock-skills, tdd, teach, to-issues, to-prd, triage,
writing-great-skills.

Update skills-lock.json with corresponding source/hash entries.
2026-07-03 18:00:16 +08:00
xfy
c85a898fbd docs(skill): add yggdrasil-ui-design-taste skill 2026-07-03 17:43:19 +08:00
xfy
31bd59ba25 chore(skills): 移除 frontend-design skill 2026-06-26 09:58:47 +08:00
xfy
225bb2406f docs(skill)+fix: 新增 dioxus-render-purity skill 并修复 post_detail 渲染期 set signal
依据 Dioxus 0.7 antipatterns 官方指南,做两件事:

1. 新增 skill .agents/skills/dioxus-render-purity/
   把「render 函数必须纯净」做成可复用 skill,列出三类反模式(render 期
   副作用 / 用 use_signal 存派生值 / 用 use_effect 算派生值)及自检清单,
   防止后续编辑(人或 AI)再次在组件里写 signal.set 等副作用。触发关键词
   覆盖 dioxus/component/rsx/signal/use_effect 及对 src/pages、src/components
   的编辑。

2. 修复 post_detail.rs 的真实违规(被该 skill 捕获的典型反例):
   原代码用 use_signal 镜像 slug prop,再在 render 期 if slug_signal()!=slug
   { slug_signal.set(...) } 触发 server future 重跑——这是文档明确点名的
   「don't mutate state during render」。改为直接读 prop:
   use_server_future(move || get_post_by_slug(slug.clone())),路由 slug 变化
   时 Dioxus 自动重跑 future,无需镜像信号。key 改用 post.slug(post 已在
   match 分支内可用,避免 slug 被 move 后再读)。同步更新模块文档注释。

验证:dx check 通过、cargo test 405 passed。
2026-06-25 18:24:57 +08:00
xfy
fcb5a127d4 feat(skills): add multi-style design skills from taste-skill repo 2026-06-11 09:53:15 +08:00
xfy
2f433e8f11 feat: add 404 Not Found page
- Add NotFound component with elegant design
- Register catch-all route in router
- Add skeleton placeholder for NotFound route
- Remove unused design-taste-frontend skill
2026-06-10 15:43:05 +08:00
xfy
a59a58b41d Add frontend-design skill, remove design-taste-frontend 2026-06-10 15:24:33 +08:00
xfy
7df69be5e8 feat(skills): replace frontend-design with design-taste-frontend 2026-06-10 14:36:30 +08:00
xfy
1c492545c3 chore: add release skill for version publishing workflow 2026-06-09 11:24:39 +08:00
xfy
5b481e801c feat: add custom .sublime-syntax loading for Swift and Kotlin, improve alias table
- Enable yaml-load feature in syntect to support loading .sublime-syntax files
- Load custom syntax definitions from syntaxes/ directory via SyntaxSet::into_builder
- Add Swift and Kotlin syntax definitions as .sublime-syntax files
- Fix alias table to properly resolve full language names (javascript,
  typescript, python, swift, kotlin, golang) via file extension lookup
- Redirect ts/typescript to JavaScript highlighting (syntect v5.3.0 does not
  support TypeScript's Sublime Text v2 syntax format)
- Add documentation comments to generate_highlight_css.rs binary
2026-06-05 09:27:21 +08:00
xfy
1950646bef feat: add shared components, new pages, and pagination 2026-06-02 17:33:28 +08:00