"""Referenz-Ausprägungen (Method Profiles) — Code-Seeds AP2.0b.""" from __future__ import annotations from typing import Any, Optional METHOD_PROFILES: tuple[dict[str, Any], ...] = ( { "key": "maturity.karate_kumite", "label": "Karate Kumite", "description": "Mehrere Fähigkeiten mit Stufen, Routinen und Voraussetzungs-Graph.", "initiative_archetype_key": "initiative.maturity_journey", "method_key": "maturity_progression", "seed_hints": { "skill_count": 8, "stages_per_skill": "5-7", "graph_prerequisites": True, }, }, { "key": "content.book_writing", "label": "Buch schreiben", "description": "Kapitelstruktur, Schreib-APs, Review-Gates.", "initiative_archetype_key": "initiative.content_project", "method_key": "chapter_based_progression", "seed_hints": { "roadmap_item_type": "chapter", "review_gates": True, }, }, { "key": "product.kairo_dev", "label": "Kairo Entwicklung", "description": "Kontinuierliches Produkt mit Gate-Orientierung und optionaler Sprint-Zeitbox.", "initiative_archetype_key": "initiative.product", "method_key": "continuous_product", "seed_hints": { "agile_iteration_profile": True, "default_actor_setup": "po_plus_vibe_coder", }, }, ) _PROFILE_INDEX = {item["key"]: item for item in METHOD_PROFILES} def get_method_profile(key: str) -> Optional[dict[str, Any]]: item = _PROFILE_INDEX.get(key) return dict(item) if item else None def list_method_profiles(*, initiative_archetype_key: Optional[str] = None) -> list[dict[str, Any]]: items = METHOD_PROFILES if initiative_archetype_key: items = tuple( i for i in items if i["initiative_archetype_key"] == initiative_archetype_key ) return [dict(item) for item in items] def resolve_method_for_profile(profile_key: str) -> Optional[str]: profile = get_method_profile(profile_key) return profile["method_key"] if profile else None