Problem
Reusable workflows currently require edits to the always-loaded body prompt or repeated ad hoc instructions. That increases prompt size, requires a server restart, and gives sponsors no supported way to maintain small, reusable operating recipes.
Desired outcome
Add a body-owned skills layer that discovers trusted SKILL.md recipes and activates one explicitly for a single turn when a human invokes it.
Recommended priority: P1.
Scope
- Discover local and bundled skill roots.
- Parse bounded YAML frontmatter with safe loading and strict name validation.
- Support manual
/skillname invocation plus /skill list|show|refresh|help.
- Make local skills override bundled skills by name.
- Reject symlinks, traversal, malformed metadata, reserved names, and oversized bodies.
- Audit every activation before emitting effective prompt context.
- Keep persona-sati observation behavior unchanged.
Non-goals
- A skills marketplace.
- Executing scripts or loading arbitrary sidecar files from a skill directory.
- Agent-initiated semantic routing in the MVP.
- Letting skills override the non-overridable body prompt.
- Adding tools or MCP servers dynamically.
Acceptance criteria
- Valid local and bundled skills load deterministically; local precedence is tested.
- Manual invocation forwards arguments and injects only the selected skill for one turn.
- Special commands return bounded, Teams-safe output.
- Unknown slash commands do not activate a skill.
- Symlink, traversal, unsafe YAML, malformed metadata, reserved-name, and size-limit cases fail safely.
- Activation is audit-first and fails closed if the audit write fails.
- The feature is optional and Entrabot boots normally with no skills directory.
- Documentation and tests match the plan; full pytest and Ruff gates pass.
Sources and related work
Problem
Reusable workflows currently require edits to the always-loaded body prompt or repeated ad hoc instructions. That increases prompt size, requires a server restart, and gives sponsors no supported way to maintain small, reusable operating recipes.
Desired outcome
Add a body-owned skills layer that discovers trusted
SKILL.mdrecipes and activates one explicitly for a single turn when a human invokes it.Recommended priority: P1.
Scope
/skillnameinvocation plus/skill list|show|refresh|help.Non-goals
Acceptance criteria
Sources and related work