Skip to content

feat(skills): add plugin-style skill system for dynamic instruction l…#292

Closed
likebeans wants to merge 1 commit into
JoshuaC215:mainfrom
likebeans:feat/skill-system
Closed

feat(skills): add plugin-style skill system for dynamic instruction l…#292
likebeans wants to merge 1 commit into
JoshuaC215:mainfrom
likebeans:feat/skill-system

Conversation

@likebeans

Copy link
Copy Markdown

Summary

Add a plugin-style skill system inspired by GitHub Copilot / Cursor Rules / AGENTS.md that allows agents to dynamically discover, load, and execute structured instructions and scripts.

Core Components

  • SkillRegistry: Multi-directory scanning with hierarchical override
  • SkillLoader: Progressive/lazy content loading with 32KB cap
  • SkillMatcher: Keyword, path glob, and extensible semantic matching
  • ResourceResolver + ScriptExecutor: Resource file access and safe script execution
  • SkillSystem facade: Unified interface + 6 LangChain tools for agent integration

What's Included

  • src/skills/ — Full skill system module
  • src/skills/catalog/git_operations/ — Example skill with commit check script and templates
  • src/streamlit_app.py — Sidebar "Skills" popover showing skill load status
  • tests/skills/test_skill_system.py — 25 unit tests covering all components
  • docs/Skill_System.md — Feature documentation

Testing

pytest tests/skills/test_skill_system.py -v
# 25 passed

---
 
## Note
 
Thank you for building and maintaining this excellent toolkit — it's been a great learning resource and foundation for exploring LangGraph-based agent architectures. 
 
This is my first contribution to this project. I'd love to hear your feedback on the design and implementation. Happy to adjust anything based on your preferences and project direction.

…oading

Add a skill system inspired by GitHub Copilot / Cursor Rules / AGENTS.md
that allows agents to dynamically discover, load, and execute structured
instructions and scripts.

Core components:
- SkillRegistry: multi-directory scanning with hierarchical override
- SkillLoader: progressive/lazy content loading with 32KB cap
- SkillMatcher: keyword, path glob, and extensible semantic matching
- ResourceResolver + ScriptExecutor: resource file access and safe script execution
- SkillSystem facade + 6 LangChain tools for agent integration

Includes:
- Example "git_operations" skill with commit check script and templates
- Streamlit sidebar "Skills" popover showing skill load status
- 25 unit tests covering all components
- Documentation in docs/Skill_System.md
JoshuaC215 pushed a commit that referenced this pull request Jun 30, 2026
- #305: cut the long defense-in-depth restatement (the PR already states
  it) down to just the positive + negative test ask; strengthen SKILL rule
  6 — never explain back a caveat the contributor already raised.
- #307: reviewed the diff — connection-string format is correct (?/&
  handled, tls=true is right); dropped the test ask; only request is
  default=False. Noted minor nits.
- #301/302: decided — answer on #301, close both.
- #292: Joshua responding manually (reference draft only).
- Add pr-299-review-prompt.md: copy-paste agent prompt to deep-review/
  test/validate PR #299, plus an explanation of why the GitHub UI shows no
  run-CI option (no workflow_dispatch; first-time-contributor approval gate;
  0 check runs).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ALYJSRixXCfLsmb2Koc1Hi
@JoshuaC215

Copy link
Copy Markdown
Owner

Hey, thanks for putting this together @likebeans , unfortunately a dynamic skill system is beyond the scope of what I want to support with this project.

If you have other ideas, I would recommend to file an issue first and we can discuss so you aren't spending time (or burning tokens) on implementation that won't be used. Thanks!

@JoshuaC215 JoshuaC215 closed this Jun 30, 2026
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.

2 participants