Skip to content

feat: add skills ingestion system#31

Merged
Aryan Mahajan (aryanma) merged 8 commits into
refactor/app-decomposefrom
feat/skills-ingestion
Apr 24, 2026
Merged

feat: add skills ingestion system#31
Aryan Mahajan (aryanma) merged 8 commits into
refactor/app-decomposefrom
feat/skills-ingestion

Conversation

@windsornguyen

@windsornguyen Windsor Nguyễn (windsornguyen) commented Apr 21, 2026

Copy link
Copy Markdown
Member

Summary

Stacked on #30 (app decompose). Adds a skills system that loads SKILL.md files from .agents/skills/ and .wingman/skills/, making them available as /slash commands.

Pattern: self.skills = SkillManager(self)

Features:

  • Parses SKILL.md frontmatter (name, description, allowed-tools, argument-hint)
  • $ARGUMENTS and positional $0, $1 substitution
  • Inline shell execution: !`git status` expands at invocation time
  • /skills command lists all available skills
  • Skills auto-register in command dispatch — /commit, /pr, etc.
  • Loads on mount, searches .agents/skills/ first, .wingman/skills/ fallback

Loaded skills: commit, pr, pr-review, issue, promote, greentext, better-interface

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • My changes generate no new warnings
  • I have tested the TUI locally

View in Codesmith
Codesmith can help with this PR — just tag @codesmith or enable autofix.

  • Autofix CI and bot reviews

self.skills = SkillManager(self) loads SKILL.md files from
.agents/skills/ (source of truth) and .wingman/skills/ (fallback).

Features:
- Frontmatter parsing (name, description, allowed-tools, argument-hint)
- Argument substitution ($ARGUMENTS, $0, $1)
- Inline shell execution (!`command` blocks)
- /skills command lists available skills
- Skills auto-register as /slash commands in dispatch
- Skills reload on mount and directory change

7 skills loaded: commit, pr, pr-review, issue, promote, greentext,
better-interface
Skills now send the expanded prompt to the model as a transient user
message. The model follows the skill instructions (runs tools, etc.)
and the response persists in conversation history. The skill prompt
itself is stripped after the turn — only the invocation command
(e.g., /commit) and the model's response remain in history.
- ToolBridgeMixin: deduplicate panel lookup into resolve_panel()
- panels.py, context.py: rename single-letter loop variables
Three-phase review: identify changes, run parallel reuse/quality/
efficiency audits, then fix issues. Adapted for general Python
codebases.
@aryanma Aryan Mahajan (aryanma) merged commit e4e848e into refactor/app-decompose Apr 24, 2026
4 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 24, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants