Skip to content

RFC: Composable Skills Architecture — skill dependencies, interfaces, and composition #11919

Description

@vivekchand

Summary

I'd like to propose a backwards-compatible extension to OpenClaw's skill system that enables skill composition: the ability for skills to declare dependencies on other skills, expose typed interfaces, and compose into higher-order capabilities.

Problem

Today, skills are flat and isolated. There's no mechanism for:

  1. Skill dependencies — a video-narrator skill can't declare it needs video-frames + TTS
  2. Shared capabilities — multiple skills duplicate overlapping instructions (context window waste)
  3. Skill extension — no way to create a specialized variant without forking
  4. Conditional composition — no way to say "if TTS is available, add voice output"

As the skill ecosystem grows (50+ bundled, ClawHub registry), this becomes increasingly painful.

Proposed Solution

New optional frontmatter fields in SKILL.md (all additive, zero breaking changes):

  • requires.skills / optionalSkills — hard and soft skill dependencies
  • provides / requires.interfaces — abstract capability interfaces (tts, camera, etc.)
  • extends — single-inheritance skill extension
  • mixins — lightweight composable instruction fragments
  • Conditional sections via HTML comments: <!-- @if-skill sag --> (backwards-compatible, ignored by non-OpenClaw consumers)

Resolution happens at prompt-build time (no runtime changes). Topological sort with cycle detection and depth caps.

Full RFC

I've written a detailed RFC with:

  • Complete specification for all new fields
  • Dependency resolution algorithm
  • 4 concrete examples using existing skills
  • Token budget analysis
  • Migration plan (3 phases)
  • Backwards compatibility guarantees

Happy to share the full document or submit a PR with implementation. Would love feedback from maintainers on whether this direction aligns with OpenClaw's roadmap.

Implementation

I'm working on a TypeScript implementation that modifies the skill-scanner to support these new fields. PR incoming if there's interest.

cc @openclaw/maintainers

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions