Select features, variants, and skins from the App Factory library to match project requirements. Use when given a feature request, meeting transcript, project brief, or natural language description that needs to be mapped to concrete feature selections and output as a compose YAML config.
42:Ta76,
Match requirements to the App Factory feature library and produce a compose YAML config that the assembler pipeline can consume.
Read the catalog. Scan features/*/feature.json to understand available features. For each relevant feature, read variants/variant.json and skins/skin.json to see options. See references/catalog-format.md for field definitions.
Extract requirements. From the input (prompt, transcript, brief), identify:
brand-research skill)Select features. For each requirement, find the matching feature by reading useCases and description in feature.json. Include infrastructure features (design-system, sidebar-nav) automatically.
Select variants. For each feature, pick the variant whose whenToUse and capabilities best match the requirements. Prefer simpler variants (complexity: "simple") unless requirements demand more.
Select skins. For page-level features (auth, dashboard, landing), pick the skin whose mood and style match the brand direction. Verify compatibleWith includes the selected variant. Use consistent skins across features for visual coherence.
Write compose YAML. Output to .context/compose/<client-slug>.yaml in the format documented in references/catalog-format.md. Include app.name, app.slug, colors, and features[] with variant and skin IDs.
| Brand Signal | Skin Mood | Skin Style |
|---|---|---|
| Tech startup, modern SaaS | modern | glassmorphism |
| Enterprise, corporate | corporate | flat or minimal |
| Luxury brand, premium | luxury | editorial |
| Consumer app, friendly | playful | neumorphism |
| No signal provided | modern | glassmorphism (safe default) |
If no existing variant fits the requirements, note this in the compose YAML as a comment and select the closest match. Flag the gap for the library-growth skill to address.
After writing the compose YAML:
feature ID exists in features/variant ID exists in that feature's variant.jsonskin ID exists in that feature's skin.json and is compatible with the chosen variantnpx tsx bin/appfactory.ts compose -c <config> -o ./output to test assembly