Skip to content

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

@vivekchand

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions