Skip to content

feat(v2): Grimoire as Skill Forge Engine — integration with skills-master#16

Open
LeoLin990405 wants to merge 3 commits into
mainfrom
feat/v2-skills-master-integration
Open

feat(v2): Grimoire as Skill Forge Engine — integration with skills-master#16
LeoLin990405 wants to merge 3 commits into
mainfrom
feat/v2-skills-master-integration

Conversation

@LeoLin990405

Copy link
Copy Markdown
Owner

Summary

v2 升级:Grimoire 从"PDF → 笔记 + skill pack 工具"升级为 通用 Skill Forge 底层引擎,被 skills-master (Skill Strategist) 作为 manager 调用。

Analogy: grimoire ≈ webpack / compiler;skills-master ≈ npm / package manager。

v2 4 layers

Layer 1: Input Source Adapters (10+ sources, 4 new in v2)
   ↓ Universal Markdown + metadata.json
Layer 2: Smart Classifier (11 source-types → 12 skills-master categories)
   ↓ + 推荐 skill type (thin/thick/meta)
Layer 3: Distillation Engine (chapter-skills → reviewed → enable)
   ↓ workspace
Layer 4: Quality Gate + skills-master Interface

Phase 1 (commit 344b442)

  • ✅ `docs/grimoire-as-engine.md` — v2 架构 4 层 + 11→12 映射表 + sequence diagram
  • ✅ `scripts/lib/skills-master-categories.sh` — recommend_category + recommend_skill_type + write_manifest

Phase 2 (commit 9008f2d)

  • ✅ `scripts/lib/source-types.sh` 加 3 新类型: github-repo / obsidian-vault-segment / podcast
  • ✅ classify_source_type 新增 heuristic(podcast / github / obsidian 路径)

Phase 3 (commit 9008f2d) — 4 new input source adapters

  • webpage (`source-adapter-webpage.sh`): Crawl4AI → r.jina.ai Reader (free, no auth) → curl+pandoc → curl+sed fallback chain
  • Obsidian vault (`source-adapter-obsidian.sh`): folder or single note; preserves frontmatter + [[wikilinks]]
  • GitHub repo (`source-adapter-github-repo.sh`): shallow clone + README + SKILL.md + docs/ + structure
  • audio/podcast (`source-adapter-audio.sh`): whisper.cpp → openai-whisper CLI

Phase 4 (commit 9008f2d)

  • ✅ `README.md` 加 v2 显眼章节(架构 + call chain + backward compat)
  • ✅ `CHANGELOG.md` v2 entries
  • ✅ `tests/run.sh` 更新 'unknown URL' 测试(v2 后走 webpage adapter)

Tests

✅ `make test` 166 / 166 PASS (was 165 pre-v2)

Backward Compatibility

v1 usage 100% 保留:

  • `forge.sh ` 直接调用仍能工作
  • 5 个 bundled skills (mineru / mineru-local / kedou-media-workflow / youtube-clipper / grimoire-manage) 不动
  • 不强制走 skills-master(独立用 Grimoire 仍 OK)

skills-master 端配套(在 ~/.claude/skills/skills-master/ 已落地)

  • `references/workflows/create-skill-via-grimoire.md` — 5 步 manager 调 forge 流程
  • `references/reasoning/grimoire-as-engine.md` — v7 三方分工 + 路线图

后续

  • 用 Grimoire v2 跑 1 本书测试(验证 manifest.json 含 skills_master 推荐字段)
  • book-distill-pipeline 重新定位(推荐 A: "已有 MD 的 LLM 蒸馏 phase")
  • Phase 5 (后续): forge.sh 调 skills-master-categories.sh 写 manifest(当前只是 lib 准备好,调用还没接)

Test plan

  • `bash -n` syntax check 全部 7 个改动脚本通过
  • `make test` 166/166 PASS
  • Leo 用 v2 跑一本真实 PDF 验证 skill 草稿输出符合 skills-master template

- Add docs/grimoire-as-engine.md (v2 architecture: skill forge engine)
- Add scripts/lib/skills-master-categories.sh (11 source-types → 12 skills-master categories mapper)

Part of v2 upgrade: position Grimoire as the underlying Skill Forge engine
called by skills-master (Skill Strategist) at ~/.claude/skills/skills-master/.

Phase 1 deliverables:
- ✓ docs/grimoire-as-engine.md (this file)
- ✓ scripts/lib/skills-master-categories.sh
- ✓ symlink ~/.claude/skills/grimoire → ~/Projects/grimoire-skill (local)
- ✓ skills-master/references/workflows/create-skill-via-grimoire.md (manager side)
- ✓ skills-master/references/reasoning/grimoire-as-engine.md (manager side)

Phase 2-4 TODO: classifier upgrade, input source extension (web/obsidian/
github-repo/audio), README v2 rewrite, make test.

Refs: TASK-2026-06-03-005
Phase 2 (Classifier upgrade):
- scripts/lib/source-types.sh: add 3 new source types
  (github-repo, obsidian-vault-segment, podcast)
  + classify_source_type heuristic extended (podcast keywords,
    github.com / readme detection, /obsidian-vaults/ paths)
  + source_unit_label adds Module / Note / Episode units

Phase 3 (4 new input adapters):
- scripts/source-adapter-webpage.sh: Crawl4AI → r.jina.ai Reader API
  (free, no auth) → curl+pandoc → curl+sed fallback chain
- scripts/source-adapter-obsidian.sh: read Obsidian vault folder or
  single note; preserves frontmatter + [[wikilinks]]; --max-depth N
- scripts/source-adapter-github-repo.sh: shallow clone + extract
  README + SKILL.md + docs/ + top-level structure + CHANGELOG head
- scripts/source-adapter-audio.sh: whisper.cpp (M-series optimized)
  → openai-whisper CLI strategy chain; URL or local file input
- scripts/forge.sh: auto-detect 4 new KINDs (webpage, github-repo,
  obsidian-vault, audio); directory input → obsidian-vault;
  git@ URLs → github-repo; new ext: .mp3/.m4a/.wav/.flac/.opus/.ogg

Phase 4 (README v2 + tests):
- README.md: prominent v2 section explaining Skill Forge Engine
  positioning under skills-master (Skill Strategist), call chain
  sequence, backward compatibility statement
- CHANGELOG.md: v2 entries documenting all Phase 2-3 additions
- tests/run.sh: update 'unknown URL rejection' test to expect new
  v2 webpage adapter routing (assert kind: webpage)

Tests: 166/166 PASS (was 165 pre-v2)

Refs: TASK-2026-06-03-006
On 2026-06-03 PM, this engine was mounted into the user's local
skills-master skill as `forge/engine/`. The standalone `grimoire` skill
summoning entry was removed locally; "forge from source" requests now
route through skills-master first. This GitHub repo remains canonical.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant