设计与多媒体

Program Derivation

试用

Führt Architekturanalyse, Komplexitätsmessung, Abstraktionsschicht-Design, Vendor Lock-in Bewertung, Refactoring-Planung und Software-Qualitätsbewertung durch.

它能做什么

Wann dieser Skill geladen werden soll / When to Load

技能文档

Programmableitung / Program Derivation

Wann dieser Skill geladen werden soll / When to Load

Deutsch: Lade diesen Skill bei:

  • Architekturanalyse eines bestehenden oder neuen Systems
  • Formale Programmableitung / Program Derivation
  • Abstraktionsschichten-Design (Interfaces, Wrappers, Facades)
  • Komplexitätsmessung (CC, LCOM, Kopplung, Kohäsion)
  • Vendor Lock-in Analyse
  • Refactoring-Planung und Entkopplungspunkte
  • Software-Qualitätsbewertung

English: Load this skill for:

  • Architecture analysis of existing or new systems
  • Formal program derivation
  • Abstraction layer design (Interfaces, Wrappers, Facades)
  • Complexity measurement (CC, LCOM, Coupling, Cohesion)
  • Vendor Lock-in analysis
  • Refactoring planning and decoupling points
  • Software quality assessment

Arbeitsanweisung / Work Instructions

Führe die Analyse in drei Phasen durch. Sprache der Ausgabe: Sprache des Nutzers (de/en).


Phase 1: Architektur-Ermittlung / Architecture Discovery

1.1 Grenzschichten-Check / Boundary Analysis

Identifiziere alle Schnittstellen zu externen Systemen.

Ausgabe-Tabelle / Output table:

SchnittstelleTypProtokollAuthentifizierungFehlerbehandlung
...REST-API / DB / Browser-API / FSHTTPS/JSON / SQLite / In-ProcessBearer / Key / keineja (Retry) / teilweise / nein

1.2 Austauschbarkeits-Check / Replaceability Check

Bewerte jede externe Abhängigkeit: Ist sie austauschbar ohne Core-Code-Änderungen?

Skala: 1 = hardgecoded, kein Interface | 3 = Interface vorhanden, aber spezifische Typen | 5 = vollständig abstrakt, Provider-agnostisch

1.3 Komplexitäts-Check / Complexity Check

  • Zeilenzahl und Funktionsanzahl pro Modul
  • Geschachtelte Async-Strukturen / fire-and-forget Patterns
  • Kritische Pfade identifizieren

1.4 Vendor Lock-in Analyse

Bewertung: HOCH (hardgecoded URL + Model + Response-Parsing) | MITTEL (teilweise abstrahiert) | NIEDRIG (Web-Standard oder austauschbar)

1.5 Separation of Concerns (SoC)

Identifiziere Verletzungen: Business-Logik in Routing-Schicht, duplizierte Logik mit abweichenden Konstanten, Datenbankzugriff ohne Interface-Nutzung.

1.6 Kopplung & Kohäsion / Coupling & Cohesion

  • Ca (Afferente Kopplung): Wie viele Module hängen von diesem ab?
  • Ce (Efferente Kopplung): Von wie vielen Modulen hängt dieses ab?
  • I (Instabilitäts-Index): I = Ce / (Ca + Ce) — 0 = stabil, 1 = instabil
  • Kohäsionstyp: Funktional (hoch) → Logisch → Sequentiell → Kommunikativ → Prozedural → Zeitlich → Koinzidentell (niedrig)

1.7 Leckende Abstraktionen / Leaky Abstractions

Identifiziere konkrete Fälle:

  • ORM-/DB-spezifische Typen im Interface
  • Raw HTTP-Status-Codes oder Exception-Typen in der UI
  • Unstrukturierte LLM-Rohantworten in DB-Spalten
  • Plattform-spezifische APIs direkt in Business-Hooks
  • Zwei Verbindungen auf dieselbe Ressource (Architekturleck)

Phase 2: Abstraktionsschichten-Design / Abstraction Layer Design

2.1 Wrapper & Facade-Ermittlung

Welche Wrappers/Facades fehlen? Für jeden Vorschlag:

  • Name und Zweck
  • TypeScript/Python/Java Interface-Definition
  • Konkrete Implementierungen die das Interface erfüllen sollen

2.2 Strategische Entkopplungspunkte / Strategic Decoupling Points

Priorisiere die 3–5 wichtigsten Stellen nach:

  • Häufigkeit der erwarteten Änderung (hoch = höhere Priorität)
  • Anzahl betroffener Module (viele = höhere Priorität)
  • Vendor Lock-in Stärke

2.3 Interface-Definitionen / Interface Definitions

Erstelle vollständige Interface-Definitionen in der Zielsprache (TypeScript / Python ABC / Java Interface). Muster:

// Beispiel: Austauschbarer Vision-Provider
export interface IVisionProvider {
  readonly providerName: string;
  isAvailable(config: ApiKeyConfig): boolean;
  analyze(inputs: AnalysisInput[], prompt: string, config: ApiKeyConfig): Promise;
}
// Konkrete Implementierungen: OpenAIProvider, AnthropicProvider, FallbackProvider

Phase 3: Metriken / Metrics

3.1 Zyklomatische Komplexität / Cyclomatic Complexity (CC)

CC = Entscheidungspunkte + 1

Zähle als Entscheidungspunkt: if, else if, for, while, do-while, case, catch, &&, ||, ternärer Operator, ??.

Bewertung:

CCTestbarkeit
1–4Sehr gut — einfach unit-testbar
5–7Gut — testbar mit wenigen Cases
8–10Mittel — refactoring empfohlen
11–15Schlecht — aufteilen
>15Kritisch — sofortiger Refactoring-Bedarf

3.2 LCOM (Lack of Cohesion of Methods)

LCOM4: Anzahl der unverbundenen Komponentengruppen in einer Klasse/Modul.

  • LCOM4 = 1: Kohärent — alle Methoden teilen Zustand/Daten
  • LCOM4 = 2–3: Kandidat für Aufspaltung
  • LCOM4 > 3: Aufspaltung dringend empfohlen

3.3 Zusammenfassung / Summary Table

ModulCC (max)LCOM4I-IndexSoC-VerletzungenPriorität
...............Hoch/Mittel/Niedrig

Ausgabeformat / Output Format

Strukturiere die Ausgabe immer so:

  1. Kritische Befunde (sofortiger Handlungsbedarf) — mit konkreten Code-Beispielen
  2. Hohe Befunde (nächster Sprint) — mit Interface-Vorschlägen
  3. Mittlere Befunde (Backlog) — mit kurzer Begründung
  4. Positive Aspekte — was bereits gut strukturiert ist
  5. Priorisierte Refactoring-Reihenfolge — Tabelle mit Aufwand und Nutzen

Für jedes Interface immer vollständige TypeScript/Python/Java-Definition, nicht nur den Namen.


Referenzen / References

Detaillierte Checklisten und Beispiele:

  • references/boundary-checklist.md — Grenzschichten-Checkliste
  • references/interface-templates.md — Interface-Vorlagen für häufige Muster
  • references/metrics-examples.md — CC/LCOM Berechnungsbeispiele

Beispiel-Trigger / Example Triggers

  • "Führe eine Architekturanalyse durch"
  • "Erstelle eine Programmableitung für [System]"
  • "Welche Abstraktionsschichten fehlen?"
  • "Berechne die zyklomatische Komplexität"
  • "Analysiere den Vendor Lock-in"
  • "Wo sind die strategischen Entkopplungspunkte?"
  • "Perform a program derivation / architecture analysis"
  • "What interfaces are missing?"
  • "Analyze coupling and cohesion"

相关技能

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

kikikari 的更多技能

浏览全部技能

Robust JSON parsing and validation with Pydantic schemas, JSON Schema validation, batch processing, and automatic JSON repair for LLM outputs. Use when Codex...

作者 kikikari15 次安装

Permanent log collection agent. Collects logs and history from all nodes via SSH/VPN every 3 hours. Stores in logs.db with 30-day retention. Multi-node capab...

作者 kikikari14 次安装

Musikerkennung und AudD-Kontoverwaltung über den offiziellen AudD-MCP-Server (https://mcp.audd.io) und/oder die direkte HTTP-API. Ein eigener api_token ist optional — funktioniert per OAuth-MCP ganz ohne Token, mit Trial-Plan und mit bezahltem Plan, ebenso mit dauerhaft hinterlegtem Token. Nutze diesen Skill bei Songerkennung — "welcher Song ist das?", Audio-Clip oder Datei identifizieren, Shazam-artig, Radio-/Twitch-/YouTube-Streams überwachen, DJ-Sets, Podcasts oder Videos nach Tracks durchsuchen, Tracklists, Airplay-Monitoring, Copyright-Check — und bei allem rund um das AudD-Konto: api_token eintragen, hinterlegen, aus der Zwischenablage in den Secret-Vault übernehmen, in .env setzen, rotieren; Request-Kontingent, Verbrauch, Trial-Restlaufzeit, Plan-Upgrade, Rechnungen. Auch anwenden, wenn AudD nicht namentlich genannt wird, aber ein Audio-/Video-Link oder eine lokale Audiodatei identifiziert werden soll.

作者 kikikari

Baut einen "Companion" — eine lokal laufende Beobachtungs-Anwendung: kleiner Server auf 127.0.0.1, Doppelklick-Starter, installierbare PWA, optionale Browser-Erweiterung, Meldung beim Zustandswechsel, Dauerbetrieb im Container. Nutze diesen Skill, sobald jemand etwas dauerhaft im Auge behalten und benachrichtigt werden will — Livestreams, Kanäle, Feeds, Preise, Build-Zustände, Serververfügbarkeit, Ordner, Warteschlangen. Auch wenn die Anfrage nur nach einem Teil klingt: "sag mir Bescheid wenn X online geht", "kleines Tool das im Hintergrund läuft", "Statusseite für Y", "als App installierbar", "soll dauerhaft laufen", "auch nach Neustart", "als Docker-Container". Besonders wichtig bei einer einzelnen HTML-Datei, die fremde Daten abruft: ob das trägt, hängt an einer CORS-Freigabe, die man vorher prüfen muss — sonst bleibt die Datei beim Nutzer leer.

作者 kikikari

Diagnose und Einrichtung fremder, offizieller MCP-Server (Konnektoren) in der Claude-App. Nutze diesen Skill, wenn jemand fragt: gibt es für diesen Anbieter einen offiziellen MCP-Server, trag mir den als Konnektor ein, warum sehe ich die Tools von dem Dienst nicht, welche Scopes braucht er, mein Konnektor antwortet nicht, MCP-Server hinzufügen, Connector verbinden, Server hängt in "connecting", invalid_scope, 401 nach Wochen, Tools verschwunden. Unterscheidet fünf Zustände — offen ohne Konto, verbunden mit Tools, verbunden ohne Tools, installiert aber unangemeldet, gar nicht vorhanden — und nennt pro Zustand den konkreten nächsten Schritt. Nicht anwenden bei reinen Preisfragen zu einer API, bei Code-Anfragen oder bei der allgemeinen Frage, was MCP überhaupt ist.

作者 kikikari

TikTok LIVE monitor. Check whether a TikTok user is live right now, resolve their current m3u8 stream URL, or spawn a background daemon that polls them over a timer window and emits go_live / go_offline / rename_detected events for the sub-agent to announce.

作者 kikikari