activeloopai / activeloopai/hivemind

Centralize skillify command list in SKILL.md via build-step generator

Đang mở
#175 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
1.6k
Fork
107
Merge trung bình
17 giờ 30 phút
Pull request đã merge (30 ngày)
6

Mô tả

## Context

[PR #129](https://github.com/activeloopai/hivemind/pull/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 in `tests/pi/skillify-spec-drift.test.ts`)
- `hivemind --help` top-level output in `src/cli/index.ts` *(centralized in #129 as part of the kaghni feedback)*
- `hivemind skillify --help` `usage()` in `src/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)` section
- `codex/skills/deeplake-memory/SKILL.md` — same block
- `openclaw/skills/SKILL.md` — same block (pre-dates #129, on `main` since 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

1. **Markers in each SKILL.md** — wrap the command block in HTML-comment markers so the generator can locate it deterministically without ambiguity:
```md

- `hivemind skillify` — show current scope...
...

```

2. **Generator script** — add `scripts/sync-md-commands.mjs` that:
- Imports the compiled `SKILLIFY_COMMANDS` from `bundle/cli.js` (or `dist/skillify-spec.js`)
- Renders the block in the same bullet format the SKILL.md files use today
- Rewrites the content between `` / `END` in all 3 files

3. **Wire into `npm run build`** — append `node scripts/sync-md-commands.mjs` to the build pipeline so the markdown can't drift in CI.

4. **Drift detection test** — under `tests/`, mirror the structure of `tests/pi/skillify-spec-drift.test.ts`: read each SKILL.md, parse the block between markers, assert it matches what `renderSkillifyCommands()` would produce. Fails CI if a developer edits the markdown by hand and skips the build.

5. **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 an `ORG_COMMANDS` constant and applying the same generator closes the symmetric debt.

## Why a separate PR

- **Scope**: #129 ships the `hivemind skillify mine-local` user-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 build` change 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 build` regenerates 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](https://github.com/activeloopai/hivemind/pull/129#discussion_r3253393667)

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.