feat(skills): NL skill generation and GitHub repo mining (#2418, #1889)#2605
Merged
feat(skills): NL skill generation and GitHub repo mining (#2418, #1889)#2605
Conversation
This was referenced Apr 4, 2026
Add two new skill acquisition pathways to zeph-skills: 1. `/skill create <description>` — generates a complete SKILL.md from a natural language description using an LLM (IronClaw NL-to-skill pattern). Generated skills are previewed, require explicit user approval, and are assigned quarantined trust level on save. Validates frontmatter and body for injection patterns before presenting to the user. 2. `zeph-skills-miner` binary — offline pipeline that crawls GitHub repos by topic query, generates SKILL.md from README content via LLM, deduplicates against the existing registry (cosine similarity >= 0.85), and writes novel skills to a configurable output directory for hot-reload pickup. Config additions: `[skills] generation_provider`, `generation_output_dir`; new `[skills.mining]` section with `generation_provider`, `embedding_provider`, `dedup_threshold`, `queries`, `output_dir`, `rate_limit_rpm`. Both features follow multi-model design: provider fields reference `[[llm.providers]]` by name, falling back to the primary provider when unset.
d8658e9 to
7c9f3e4
Compare
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.
Summary
/skill create <description>command: generates a complete SKILL.md from natural language via LLM, previews it, requires user approval, assignsquarantinedtrust level on save (research(skills): dynamic skill generation from natural language — IronClaw NL-to-skill pattern #2418)zeph-skills-minerbinary: offline GitHub repo crawl → README → LLM → SKILL.md with cosine dedup (threshold 0.85) against existing registry, rate-limited to 25 search req/min (research(skills): automated skill acquisition via open-source repository mining #1889)*_providerconfig fields referencing[[llm.providers]]by name for multi-model routingfetch_readmevalidatesowner/repobefore URL constructionConfig additions
Test plan
cargo nextest run -p zeph-skills --lib— 361 tests pass (22 new unit tests for generator/miner)/skill create "summarize a URL and save to file"— generates, previews, confirms, hot-reloadscargo run --bin zeph-skills-miner -- --query "devops" --output /tmp/skills --dry-run— no files writtenquarantinedtrust inzeph skillslist.local/testing/playbooks/skill-generation.mdfor full live testing playbookFollow-up issues (not in this PR)
SkillMinershould useSecret<String>with zeroize-on-drop/skill createdescription/skill createshould dedup against existing registry before savingCloses #2418
Closes #1889