compose method

Future<String> compose(
  1. List<String> skillNames,
  2. ProjectContext context
)

Compose multiple skills into one document

Takes a list of skill names and composes them into a single document with a header and rendered skill sections.

Throws SkillNotFoundException if any skill is not found. Throws UnsatisfiedDependencyException if dependencies are not met. Throws CircularDependencyException if circular dependencies exist.

Implementation

Future<String> compose(List<String> skillNames, ProjectContext context) async {
  final skills = await _loadSkills(skillNames);
  _validateDependencies(skills);

  final sections = <String>[];

  // Add header
  sections.add(_buildHeader(skills));

  // Add each skill
  for (final skill in skills) {
    sections.add(await _renderSkill(skill, context));
  }

  return sections.join('\n\n---\n\n');
}