feat(openab-agent): add skill support#955
Conversation
OpenAB PR ScreeningThis is auto-generated by the OpenAB project-screening flow for context collection and reviewer handoff.
Screening reportscreening pass complete for `#955`.GitHub comment: #955 (comment) IntentAdd first-class skill discovery to FeatFeature work. Adds skill scanning from Who It ServesAgent runtime operators and maintainers. Rewritten PromptImplement on-demand skill awareness for Merge PitchLow-risk prompt-layer feature with moderate blast radius. Main reviewer concerns: deterministic discovery, prompt-size growth, malformed skill handling, and visible operator diagnostics. Best-Practice ComparisonOpenClaw mostly does not apply; this is not scheduling, delivery, retries, or durable jobs. The useful lesson is isolation: do not silently turn skills into executable tools yet. Hermes Agent partially applies: discovery should be deterministic per session and avoid hidden mutable runtime state. Implementation OptionsConservative: metadata discovery and prompt injection only. Balanced: metadata discovery plus logs/guardrails for skipped, shadowed, or malformed skills. Ambitious: full skill runtime with dynamic tools, MCP declarations, permissions, isolation, and run logs. Comparison Table
RecommendationProceed with the balanced path. Before merge, Masami or Pahud should check prompt-size limits, invalid |
Implement on-demand skill loading following the Agent Skills standard (compatible with Pi and Claude Code skill format). - Scan .openab/skills/ (project-local) and ~/.openab/skills/ (global) - Parse SKILL.md YAML frontmatter (name, description) - Inject skill descriptions into system prompt - Agent loads full SKILL.md on-demand via read tool - Project-local skills take precedence over global (deduplication by name) - 6 unit tests covering parsing, discovery, and formatting Skills guide the LLM to use existing tools (bash/read/write/edit). Dynamic tool registration deferred to v0.3.
76493dd to
1d777f4
Compare
- F1: use entry.path().is_dir() to follow symlinks during skill discovery - F2: mark filesystem I/O tests with #[ignore] per ADR
|
LGTM ✅ — the filesystem I/O tests are now properly ignored, and the previous blockers are addressed. What This PR DoesAdds skill discovery for How It WorksIt scans project-local and global skill directories, parses YAML frontmatter for Findings
What's Good (🟢)
|
Summary
Add on-demand skill loading to openab-agent, following the Agent Skills standard (compatible with Pi and Claude Code skill format).
How It Works
.openab/skills/(project-local) and~/.openab/agent/skills/(global)SKILL.mdYAML frontmatter (name,description)readtool to load full SKILL.md content on-demand when a task matchesProject-local skills take precedence over global (deduplication by name).
Example
Testing
6 unit tests in
skills.rscovering frontmatter parsing, discovery, deduplication, and prompt formatting. Filesystem I/O tests marked with#[ignore]per ADR.What's NOT included (v0.3)
Ref: discussed in thread https://discord.com/channels/1490282656913559673/1510476394201612510