compose method
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');
}