PR-05 · coding-agent 适配层:矩阵文档与防漂移断言 - #168
Open
titanwings wants to merge 6 commits into
Open
titanwings wants to merge 6 commits into
titanwings wants to merge 6 commits into
Conversation
重建说明:本提交由会话转录重建,提交信息取自原分支(ds/05-agents)。 文件内容为集成分支上的最终态,不是当时那一刻的中间态——原分支的 per-commit 文件树随 /tmp 清空丢失,转录只保留了提交信息与 git add 的路径清单。 原提交信息:feat(v2): add the coding-agent support matrix as shared host data
重建说明:本提交由会话转录重建,提交信息取自原分支(ds/05-agents)。 文件内容为集成分支上的最终态,不是当时那一刻的中间态——原分支的 per-commit 文件树随 /tmp 清空丢失,转录只保留了提交信息与 git add 的路径清单。 原提交信息:(未记录)
重建说明:本提交由会话转录重建,提交信息取自原分支(ds/05-agents)。 文件内容为集成分支上的最终态,不是当时那一刻的中间态——原分支的 per-commit 文件树随 /tmp 清空丢失,转录只保留了提交信息与 git add 的路径清单。 原提交信息:(未记录)
重建说明:本提交由会话转录重建,提交信息取自原分支(ds/05-agents)。 文件内容为集成分支上的最终态,不是当时那一刻的中间态——原分支的 per-commit 文件树随 /tmp 清空丢失,转录只保留了提交信息与 git add 的路径清单。 原提交信息:(未记录)
重建说明:本提交由会话转录重建,提交信息取自原分支(ds/05-agents)。 文件内容为集成分支上的最终态,不是当时那一刻的中间态——原分支的 per-commit 文件树随 /tmp 清空丢失,转录只保留了提交信息与 git add 的路径清单。 原提交信息:(未记录)
titanwings
force-pushed
the
ds/02-parse-zero-cred
branch
from
September 15, 2026 09:35
b46f950 to
cc0ead2
Compare
titanwings
force-pushed
the
ds/05-agents
branch
from
September 15, 2026 09:35
3a50671 to
fd3db7d
Compare
这 19 个 PR 是堆叠的,base 是上一条 ds/* 分支,而 CI 的触发名单只有 [dot-skill-test, dot-skill, main],所以本分支的 push / PR 都不会触发工作流, PR 页面永远显示 no checks reported。这里只改触发条件,不动任何产品代码。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
本 PR:
ds/05-agents→ds/02-parse-zero-cred,5 个提交,752 insertions(+), 16 deletions(-)。本 PR 的提交清单
PR-05 · coding-agent 适配层:矩阵文档与防漂移断言
ds/05-agents(基于dot-skill-test)docs/v2/HOSTS.md、tests/agents.test.mjs、scripts/check-agent-ids.mjs、INSTALL/INSTALL_EN/README 的宿主章节dst-evidence/未入库(.gitignore已含)1. 变更
test(v2): assert the host matrix and the installer's host table cannot drifttests/agents.test.mjs:解析bin/distilly.mjs的hosts/aliases/--help三处,与src/hosts/agents.mjs逐宿主比对;钉住 8 宿主、双语 note、CLI/clone 路线能力集合、cloneCommand的项目级行为、命令串里不得回流旧仓库名chore(scripts): add an optional upstream cliId checkscripts/check-agent-ids.mjs:本机拿得到上游 CLI 时逐个实测--agent目标合法性;拿不到就skipped: upstream skills CLI unavailable且 exit 0(不进 CI、不联网安装)docs: point the per-host install sections at docs/v2/HOSTS.mdINSTALL.md/INSTALL_EN.md新增 "v2 入口与宿主适配" 节并给出bin/distilly.mjs用法;旧「选择你的平台 / Install Distilly」整节保留但标注 Deprecated;README.md安装段改为指向 HOSTS.md,旧 clone 说明折叠进<details>并标注 deprecateddocs(v2): add the bilingual host adaptation matrixdocs/v2/HOSTS.md:中文段 →---→## English,8 宿主逐行给 id / 显示名 / 全局目录 / 项目级目录 / 能力 / 逐字命令 / 中英注意事项 / 怎么验证;另加"换宿主要改什么"与"未验证与已知缺口"矩阵本身的修正不在本分支:它由维护者在
dot-skill-test的52d4050落地(见 §4),本分支只按修正后的事实用它。src/hosts/agents.mjs未被本分支改动。2. 测试命令与结果
2.1 主断言
node --test(不指定文件)同样 5/5:本分支上tests/里目前只有这一个.mjs,Python 测试由 ds/01 迁移。逐条对应任务要求:
AGENTS.length === 8、id 唯一、每个有globalPath与非空双语notebin/distilly.mjs的 hosts 表与矩阵一一对应(含$DSH_HOME/~/.dsh等价)skillsCliSupported('pi')、严格模式抛错与"其余 7 个通过"cloneCommand('deepseek-harness', 'global'))cloneCommand(id,'project'):无项目级目录的宿主抛错,其余指向该目录52d4050后有了.pi/skills/distilly)titanwings/distilly、--skill distilly、无旧仓库名dot-skill、colleague-skill、python3)与任务原始写法的偏差(事实变了,不是放宽):原要求写"
pi不支持、openclaw和pi没有项目级目录"。维护者52d4050用上游注册表复核后,pi是合法目标并补了项目级目录,deepseek-harness才是唯一没有上游目标的宿主;测试按新事实写,能力集合大小仍是 7 + 1。2.2 反向对照(证明断言真的会红)
把
bin/distilly.mjs复制到/tmp/agents-mutation/做变异,测试文件与矩阵不动:~/.codex/skills/distillynot ok 2,bin/distilly.mjs installs codex to ~/.codex/skills/distilly, the matrix says ~/.agents/skills/distilly;4 pass / 1 failopenclaw条目not ok 2,bin/distilly.mjs and src/hosts/agents.mjs must list the same hosts;4 pass / 1 fail2.3 可选的 cliId 复核脚本
把矩阵里的
grok改回grok-build再跑:FAIL grok-build --agent grok-build、6 valid, 1 invalid、exit 1 —— 失败路径有效。2.4 上游复现命令
本机实际执行的是同一份
skills@1.5.26包离线解包后的node dist/cli.mjs ls -a <id>(HOME指向临时目录、DISABLE_TELEMETRY=1),输出与上表逐字一致;合法 id 全表在包内注册表(
dist/cli.mjs的grok:定义、hermes-agent:定义、package.json的 keywords),非法 id 会打印Invalid agents: …并列出Valid agents:全表(78 项,其中没有grok-build/hermes/deepseek*/dsh)。3. 宿主表 before → after
3.1 文档里的宿主数量
README.md宿主墙INSTALL.md「兼容宿主」INSTALL_EN.md宿主表src/hosts/agents.mjs52d4050只改 cliId 并给 Pi 补projectPath,不增删宿主)docs/v2/HOSTS.mdINSTALL.md:292-296),并在 HOSTS.md 里显式说明路径纠正:0 处。 8 个宿主的
globalPath与bin/distilly.mjs(第 32–45 行)以及INSTALL.md/INSTALL_EN.md的原表本来就一致,本次没有发现路径级事实错误。旧文档里"或~/.agents/skills/distilly"这类备选写法(Pi、Grok Build)没有删除,只是在矩阵里收敛为一个 canonical 目标:Pi=~/.pi/agent/skills/distilly、Grok Build=~/.grok/skills/distilly。3.2 真正被纠正的是 cliId(维护者
52d4050)矩阵注释自称
cliId是"--agenttarget, only when confirmed",但四个值对上游注册表不成立:skills@1.5.26)cliId: 'hermes'❌'hermes-agent'✅ls -a hermes→Invalid agents: hermes;ls -a hermes-agent→ exit 0cliId: 'grok-build'❌'grok'✅ls -a grok-build→Invalid agents: grok-build;ls -a grok→ exit 0(该条目 displayName 就是 "Grok Build",全局目录~/.grok/skills,与矩阵globalPath一致)--agent目标未确认" ❌cliId: 'pi'✅,并补projectPath: '.pi/skills/distilly'ls -a pi→ exit 0;注册表里项目级.pi/skills、全局~/.pi/agent/skillscliId: 'deepseek-harness'❌ls -a deepseek-harness→Invalid agents:影响:修正前
skillsCliCommand('grok-build' | 'hermes' | 'deepseek-harness', …)会输出上游直接拒绝的--agent,即文档承诺的命令跑不起来。修正后 7 个宿主严格模式通过、DSH 抛错并指向cloneCommand。能力集合大小仍是 7 + 1,只是成员换了。4. 已知缺口与未验证项
PATH无 claude / opencode / openclaw / hermes / pi / grok;只有/opt/homebrew/bin/codex(codex-cli 0.146.0),实测codex --help没有skills子命令,所以 Codex 只能进会话看/skills。HOSTS.md 的验证列全部来自本仓库文档并逐条标注行号~/.agents/skills还是~/.codex/skillsINSTALL.md:213、bin/distilly.mjs:38一致写~/.agents/skills;上游skills@1.5.26把.agents/skills当共享发现目录(出现 38 次),但它自己的codex条目globalSkillsDir = $CODEX_HOME/skills(默认~/.codex/skills,dist/cli.mjs:1352、1530)。要改必须同时动bin/distilly.mjs(牵动 ds/01 安装器与 CI)→ follow-up 建议:由一个能开真 codex 会话的分支实测"装到~/.agents/skills能否被 Codex 发现",有结论后再决定是否统一三个目标hermes-agent全局目录是~/.hermes/skills,本矩阵globalPath是~/.hermes/skills/openclaw-imports/distilly(INSTALL_EN.md:66、tools/install_hermes_skill.py:48)。两条路线可能落在同一 skills 根的不同子目录,没在真机hermes skills list里比对过npx skills add真机安装后宿主是否真的发现--agent值"claude plugin listclaude可执行文件;且 clone 安装的 Skill 不是 Claude Code 插件,这条命令能否列出它没有依据,HOSTS.md 里明确标"未验证"npm test汇总入口package.json目前只有prepack,npm test由 ds/01 落地;本 PR 的验收命令是node --test tests/agents.test.mjs--agent改名风险scripts/check-agent-ids.mjs可本地复核;按约定不进 CI、不联网安装,因此不会在上游改名时自动报警5. 回滚
按提交逆序 revert 即可,互不依赖:
src/hosts/agents.mjs、bin/distilly.mjs或任何运行时路径,宿主安装行为不变。e7700d9一处即可:INSTALL/INSTALL_EN/README 会回到旧的按平台说明。52d4050在集成分支上,回滚它需要单独 revert;本分支不依赖它的提交历史,只依赖它的字段值。