Centralize skillify command list in SKILL.md via build-step generator
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 64/100
- Issue 类型
- 文档
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- node.js, typescript
调研方向
首先阅读 src/cli/skillify-spec.ts,确认 SKILLIFY_COMMANDS 的来源以及 renderSkillifyCommands() 的输出格式。查看 tests/pi/skillify-spec-drift.test.ts 和 package.json 中的构建脚本,以匹配现有的 drift-test 和 build-step 模式。然后在三个 SKILL.md 文件中添加/验证命令标记,实现 scripts/sync-md-commands.mjs,运行 npm run build,并确保 tests/ 下的测试能够捕获 SKILL.md 的任何手动 drift。
由索引模型根据 Issue 内容生成。
描述
Context
PR #129 introduced SKILLIFY_COMMANDS in src/cli/skillify-spec.ts — the single source of truth for the hivemind skillify ... command list. As part of #129 we centralized all TypeScript-side consumers of that list:
- 4 per-agent SessionStart inject blocks (claude-code, codex, cursor, hermes) via
renderSkillifyCommands() - The pi inline mirror in
pi/extension-source/hivemind.ts(guarded by a drift test intests/pi/skillify-spec-drift.test.ts) hivemind --helptop-level output insrc/cli/index.ts(centralized in #129 as part of the kaghni feedback)hivemind skillify --helpusage()insrc/commands/skillify.ts(centralized in #129)
What remains hand-typed are the 3 shipped SKILL.md files:
claude-code/skills/hivemind-memory/SKILL.md—## Skill Management (skillify)sectioncodex/skills/deeplake-memory/SKILL.md— same blockopenclaw/skills/SKILL.md— same block (pre-dates #129, onmainsince April)
These can't be solved the same way as the TS callers because SKILL.md is shipped Markdown — it can't import TypeScript at runtime. We need a build-step generator.
Proposed approach
-
Markers in each SKILL.md — wrap the command block in HTML-comment markers so the generator can locate it deterministically without ambiguity:
<!-- SKILLIFY_COMMANDS_START --> - `hivemind skillify` — show current scope... ... <!-- SKILLIFY_COMMANDS_END --> -
Generator script — add
scripts/sync-md-commands.mjsthat:- Imports the compiled
SKILLIFY_COMMANDSfrombundle/cli.js(ordist/skillify-spec.js) - Renders the block in the same bullet format the SKILL.md files use today
- Rewrites the content between
<!-- SKILLIFY_COMMANDS_START -->/ENDin all 3 files
- Imports the compiled
-
Wire into
npm run build— appendnode scripts/sync-md-commands.mjsto the build pipeline so the markdown can't drift in CI. -
Drift detection test — under
tests/, mirror the structure oftests/pi/skillify-spec-drift.test.ts: read each SKILL.md, parse the block between markers, assert it matches whatrenderSkillifyCommands()would produce. Fails CI if a developer edits the markdown by hand and skips the build. -
Same pattern for
ORG_COMMANDS(optional, can be a separate sub-task) — the org/auth command list (hivemind login,whoami,org list, …) is hand-typed in the same 3 SKILL.md files plus the per-agent SessionStart hooks. Extracting anORG_COMMANDSconstant and applying the same generator closes the symmetric debt.
Why a separate PR
- Scope: #129 ships the
hivemind skillify mine-localuser-facing feature. Wiring a Markdown generator + drift test would tangle the build pipeline with the feature work and expand the review surface significantly. - Risk surface: A
scripts/sync-md-commands.mjs+npm run buildchange touches CI and can break the release flow. Worth landing on its own branch where it's the focus. - Independence: This change has zero behavior impact on the mine-local feature — it's pure documentation upkeep.
Acceptance criteria
- All 3 SKILL.md files have the skillify command block generated from
SKILLIFY_COMMANDS -
npm run buildregenerates the blocks deterministically - Drift test fails if a SKILL.md block is edited by hand and not regenerated
- Optionally: same applied to org/auth commands via
ORG_COMMANDS
Reference
- Original observation: PR #129 review comment by @kaghni
- 主要语言
- TypeScript
- 星标
- 1.6k
- 派生
- 112
- 平均合并
- 19 小时 9 分钟
- 30 天内合并 PR
- 11
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
activeloopai/hivemind 的其他 Issue
-
Transcript parsing aborts on a non-record JSON line可能已有人在做 @DivyamTalwar 于 14 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
activeloopai/hivemind#411 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 95/100
activeloopai/hivemind#330 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
activeloopai/hivemind#200 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 64/100
activeloopai/hivemind#184 ·
维护者通常 1 天内回复
-
embeddings: alternation patterns (a|b|c) skip the embedding daemon and fall back to lexical-only可能已有人在做 @eastagiletracker 于 8 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 74/100
activeloopai/hivemind#86 ·
维护者通常 1 天内回复
查看 activeloopai/hivemind 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
rajbos/ai-engineering-fluency#2340 · 1 条评论 ·
维护者通常 1 天内回复
-
community documentation first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
难度 1/5 1 小时以内 新手友好度 70/100
lingdojo/kana-dojo#31864 · 1 条评论 · 5 个 reaction ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
zenstackhq/zenstack#2873 ·
维护者通常 1 天内回复
-
CLI: TUI shows onboarding when the provider's API key is only in the environment (e.g. OPENROUTER_API_KEY)可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭CLI
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
paperclipai/paperclip#15490 ·
维护者通常 1 天内回复