Centralize skillify command list in SKILL.md via build-step generator
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 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 の build スクリプトを確認し、既存の drift-test と build-step のパターンに合わせます。次に、3 つの 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分
- マージ済み PR(30日)
- 11
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
activeloopai/hivemind のほかの issue
-
Transcript parsing aborts on a non-record JSON line対応中かも @DivyamTalwar が 15 日前に担当しました。 オープン
難易度 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 が 9 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
activeloopai/hivemind#86 ·
メンテナーはふだん 1 日以内に返信
activeloopai/hivemind の issue をすべて見る
似ている issue
-
area: backend bug priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
snapotter-hq/SnapOtter#2254 ·
メンテナーはふだん 1 日以内に返信
-
bug ticket
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cratestack/cratestack#1154 ·
メンテナーはふだん 1 日以内に返信
-
server 消息处理器 cmd 分支补显式错误回报——竞态非法命令现走未处理拒绝対応中かも @openaddr が今日担当しました。 オープンready-for-agent refactor wayfinder:task
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
openaddr/dafung-web#428 ·
メンテナーはふだん 1 日以内に返信
-
Flaky: mongodb-memory-server 'Port already in use' when another process starts a mongod concurrentlyオープンarea:testing bug effort:S priority:P2
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
lens:agent lens:process process
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
thebristolsound/birdbrain#1772 ·
メンテナーはふだん 1 日以内に返信