Alle Skills

improve-codebase-architecture (mattpocock/skills)

Findet Vertiefungschancen in einer bestehenden Codebasis und plant klarere, besser testbare Modulschnittstellen.

improve-codebase-architecture: 4.1/5 gegenüber 3.2 ohne Skill, aber ein Ein-Satz-Prompt erreicht 3.9 bei 58 % der Tokens des Skills

SituativSicher

Codex CLI · gpt-6-astra

23.0 / 30

Lift gegenüber ohne Skill: +0.92 · Situativ · 18 Läufe

Situativ: der Lift +0.92 liegt unter +1.0. Für „Empfohlen“ sind insgesamt 22/30, eine Ausgabequalität von 3.5 und ein Lift von +1.0 nötig.

SOTA

Bestanden

Getestet mit Codex.

Gilt für Codex, Claude Code

Codex CLI 0.166 (SOTA-Stufe): 18 bewertete Läufe. Ein Bestehen hier deckt gemäß unserer Stufenregel auch Claude Code ab; über die zweite Stufe sagt es nichts aus.

Punktzahlen

Jede Dimension reicht von 0 bis 5, und die sechs ergeben zusammen die Gesamtpunktzahl von 30. 5 ist in jeder Dimension besser. Kosten 5 bedeutet günstig und schnell. Installation 5 bedeutet einfach.

Trigger-Zuverlässigkeit
5.0
Lift gegenüber ohne Skill
2.9
Ausgabequalität
4.1
Token- und Zeitkosten
2.0
Installation und Portabilität
4.0
Sicherheit
5.0

Sicherheitsprüfung

Sicher

Statischer Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Manuelle Prüfung: Sicher in einer Sandbox ohne Netzwerk auszuführen (keine Befunde). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Installieren

npx skills@latest add mattpocock/skills --skill improve-codebase-architecture

Quelle

Fixierter Commit: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Getestet: 2026-11-02

Was wir getestet haben

  • Architektur-Scan des gesamten Repos — Dieses kleine Shop-Backend auf Architekturverbesserungen prüfen: Wo würde eine Umstrukturierung den Code leichter änderbar und leichter testbar machen? Die Befunde als eigenständigen HTML-Bericht namens report.html in diesem Ordner schreiben (keinen Browser öffnen und keinen Se…
  • Nur Payments und Inventory — Nur die Payment- und Inventory-Teile dieses Backends betrachten und sagen, welche Umstrukturierungen sich lohnen. Die Befunde als eigenständigen HTML-Bericht namens report.html in diesem Ordner schreiben (keinen Browser öffnen und keinen Server starten) und keine Co…
  • Warum ist place_order schwer zu testen? — Es fühlt sich mühsam an, einen ordentlichen Test für place_order in diesem Backend zu schreiben. Warum, und welche Umstrukturierung würde das beheben? Keine Dateien ändern; in der letzten Nachricht antworten.

Vorteile

  • Hebt den Mittelwert von 3.2 auf 4.12 gegenüber ohne Skill (+0.92).
  • Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.

Nachteile

  • Verbraucht 1.8x die Tokens von ohne Skill.
  • n=2 pro Aufgabe und Variante; Unterschiede unter etwa 1 Punkt sind Rauschen.

Bewertung

Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem dedizierten Windows-Test-PC, einem frischen temporären Projekt und temporären HOME/TMPDIR/Caches pro Lauf; Skill installiert (Treatment) oder nicht vorhanden (Kontrolle) oder nicht vorhanden mit der Kernanforderung des Skills in einem an den Prompt angehängten Satz (One-Liner-Gruppe); 2 Läufe pro Gruppe und Aufgabe; Netzwerk aus; Schreiben nach /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung). Drei Aufgaben an einem kleinen Python-Shop-Backend mit eingebauter Reibung (flache Validatoren/Geld-Helfer, ein Inventory-Service, der nur an sein Repo weiterleitet, ein einzelner Payment-Adapter, in Cart und Orders duplizierte Rabattlogik, Tests, die nur Helfer abdecken): ein Architektur-Review des gesamten Codebase als report.html, dasselbe begrenzt auf Payment und Inventory, und „warum ist place_order mühsam zu testen“ als Chat-Antwort. Die Prompts der Skill-Gruppe beginnen mit $improve-codebase-architecture (explizite Aufrufung); Kontrolle und Ein-Satz-Prompts nennen ihn nicht.

Drei-Arm-Vergleich

VarianteDurchschnittsnote (0-5)Tokens pro Lauf
Ohne Skill3.2115k
Ein-Satz-Prompt3.91120k
Mit Skill4.12208k

Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 23.0 / 30, Urteil Situativ.

Urteil: Situativ (23.0 / 30). Quelle: mattpocock/skills, skills/engineering/improve-codebase-architecture, skills/engineering/codebase-design, gepinnt auf Commit 4ae2317. Installation: npx skills@latest add mattpocock/skills --skill improve-codebase-architecture. Lizenz: MIT (Repo-LICENSE).

Was es ist

Der Skill improve-codebase-architecture aus mattpocock/skills. Er sucht „Vertiefungsmöglichkeiten“ in einer Codebasis: flache Module, deren Schnittstelle so komplex ist wie ihre Implementierung, Durchreich-Schichten, hypothetische Single-Adapter-Nahtstellen, duplizierte Logik, Verhalten, das nur über Helfer getestet wird. Er schreibt einen HTML-Bericht mit Vorher/Nachher pro Kandidat und einer Hauptempfehlung. Für das Vokabular stützt er sich auf den Schwester-Skill codebase-design. Nur Markdown, keine Skripte.

So haben wir getestet

Codex CLI 0.166 (gpt-6-astra, low reasoning) auf einem dedizierten Windows-Test-PC, pro Lauf ein frisches temporäres Projekt und temporäre HOME/TMPDIR/Caches, Skill installiert (Mit-Skill-Gruppe) oder nicht vorhanden (Kontrollgruppe) oder nicht vorhanden, aber mit der Kernanforderung des Skills als einem an den Prompt angehängten Satz (Ein-Satz-Gruppe), 2 Läufe pro Gruppe und Aufgabe, Netzwerk aus, Schreibzugriffe auf /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung).

Drei Aufgaben an einem kleinen Python-Shop-Backend mit eingebauter Reibung (flache Validatoren/Geld-Helfer, ein Inventory-Service, der nur an sein Repo weiterleitet, ein einzelner Payment-Adapter, Rabattlogik, dupliziert in Cart und Orders, Tests, die nur Helfer abdecken): ein Architektur-Review der gesamten Codebasis als report.html, dasselbe beschränkt auf Payment und Inventory, und „warum ist place_order schwer zu testen“ als Chat-Antwort. Die Prompts der Skill-Gruppe beginnen mit $improve-codebase-architecture (expliziter Aufruf); Kontrolle und Ein-Satz-Prompts nennen ihn nicht.

  1. Architektur-Scan des gesamten Repos — Prüfe dieses kleine Shop-Backend auf Architekturverbesserungen: Wo würde eine Umstrukturierung den Code leichter änderbar und leichter testbar machen? Schreibe deine Erkenntnisse als eigenständigen HTML-Bericht namens report.html in diesen Ordner (öffne keinen Browser und starte keinen Se…
  2. Nur Payments und Inventory — Betrachte nur die Payment- und Inventory-Teile dieses Backends und sage mir, welche Umstrukturierungen sich lohnen würden. Schreibe deine Erkenntnisse als eigenständigen HTML-Bericht namens report.html in diesen Ordner (öffne keinen Browser und starte keinen Server) und ändere keine Co…
  3. Warum ist place_order schwer zu testen? — Es fühlt sich mühsam an, für place_order in diesem Backend einen anständigen Test zu schreiben. Warum, und welche Umstrukturierung würde das beheben? Ändere keine Dateien; antworte in deiner letzten Nachricht.

Die Bewertung erfolgt programmatisch (versteckte Tests / Trefferquote bei eingebauten Problemen / Constraint-Prüfungen / Rendern+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Richter hat eine Punktzahl entschieden.

Ergebnisse

Der Ein-Satz-Prompt für die dritte Gruppe: "Suche nach Vertiefungsmöglichkeiten: flache Module, deren Schnittstelle so komplex ist wie ihre Implementierung (wende den Löschtest an: würde das Löschen Komplexität bündeln oder nur verschieben?), Durchreich-Schichten, Single-Adapter-Nahtstellen, die nur hypothetisch sind, über Module hinweg duplizierte Logik und Logik, die nur über Helfer statt über die echte Schnittstelle getestet wird; stelle jeden Kandidaten mit Dateien, Problem, Lösung, Nutzen und einem Vorher/Nachher dar und nenne eine Hauptempfehlung."

AufgabePunktzahl KontrolleEin-SatzMit SkillToken KontrolleToken Ein-SatzToken mit SkillSkill gelesen
t1-scan2.924.244.43154k158k243k2/2
t2-focus2.082.53.75116k133k228k2/2
t3-testing4.585.04.1774k67k150k2/2

Durchschnitt: 3.2 ohne vs. 4.12 mit Skill (Delta +0.92). Token pro Lauf: 115k vs. 208k (1.80x); Zeit 112s vs. 135s. Ein-Satz-Gruppe: 3.91 (Zuwachs des Skills gegenüber dem Ein-Satz-Prompt: +0.2; Zuwachs des Ein-Satz-Prompts gegenüber ohne Skill: +0.72); Token des Ein-Satz-Prompts 120k pro Lauf, der Skill kostet also 1.73x so viel wie der Ein-Satz-Prompt.

Was dabei herauskam

  • Beim Review der gesamten Codebasis zeigt der Skill seinen Wert: Skill und Ein-Satz-Version fanden 6/6 eingebaute Punkte mit Architekturvokabular, Vorher/Nachher und einer Hauptempfehlung in allen vier Läufen; reines Codex fand in einem Lauf 2/6 und im anderen 5 von 6 Prüfungen, und keiner der beiden Läufe hatte eine klare „Hauptempfehlung“.
  • Das fokussierte Review (nur Payment und Inventory) ist für alle schwierig: Die beste Gruppe fand im Schnitt einen der zwei eingebauten Punkte. Kontrolle 2/4 Prüfungen, Ein-Satz 3/4, Skill 3/4. Der Skill war nicht besser als der Satz.
  • Bei „warum ist place_order schwer zu testen“ fanden alle drei Gruppen die eingebauten Ursachen (versteckter PaymentAdapter, geteilter Stock auf Modulebene, duplizierte Rabattlogik, Tests, die bei Helfern aufhören). Die Antwort des Skills nutzte dessen Vokabular („interface“, „locality“); die der Kontrolle war in einfachen Worten ebenso richtig.
  • Durchschnitt 3.20 Kontrolle, 3.91 Ein-Satz, 4.12 Skill. Der Skill legt 0.21 gegenüber dem Satz bei 1.7x Token (208k vs. 120k pro Lauf) drauf, weil er auch den Schwester-Skill liest; die Ein-Satz-Gruppe kostet so viel wie die Kontrolle (115k).
  • Da der Skill zwei Skill-Ordner installiert, legten die Mit-Skill-Läufe zusätzliche Dateien im .agents-Ordner des Projekts an; sie wurden von der Prüfung „keine Codedateien geändert“ ausgenommen (ein erster Durchlauf ließ sie fälschlich durchfallen, und ein Windows-spezifischer Fehler in der Prüfung wurde vor den endgültigen Zahlen behoben).

Bewertung nach Dimensionen

DimensionPunktzahlBegründung
1_output_quality4.12

Durchschnitt 4.12/5 mit Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe).

2_lift_vs_no_skill2.92

+0.92 Punkte gegenüber 3.20 ohne Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen).

3_trigger5.0Skill-Datei in 6/6 Mit-Skill-Läufen gelesen.
4_instructions_portability4

Hängt von einem Schwester-Skill (codebase-design) und optional grilling/domain-modeling ab; ohne die zusätzlichen Skills fehlt das Vokabular.

5_efficiency2

1.80x Token (208k vs. 115k pro Lauf) und 1.20x Zeit (135s vs. 112s).

6_safety_hygiene5

Nur Markdown; Scanner sauber. Das generierte Berichtsgerüst lädt CDN-Skripte, wenn es im Browser geöffnet wird.

Grenzen dieses Tests

  • Ein kleines Python-Fixture mit Lehrbuchproblemen; ob der Bericht in einem großen echten Repo nützlich ist, wird nicht gemessen.
  • Berichtsqualität, Fehlalarme und das HTML-Styling (es lädt Tailwind und Mermaid von CDNs, wenn es im Browser geöffnet wird) wurden nicht bewertet; das Subagenten-Verhalten, das der Skill beschreibt, wurde nicht ausgeführt.
  • Der Ein-Satz-Prompt wiederholt die Checkliste des Skills selbst und ist damit eine Obergrenze für einen kurzen Prompt.
  • n = 2 pro Gruppe und Aufgabe: Unterschiede unter etwa 1 Punkt sind Rauschen.
  • Regelbasierte Bewertung misst nur, was die Prüfungen sehen können; Geschmack oder ob ein Ergebnis das bestmögliche ist, lässt sich so nicht beurteilen.

Sicherheit

Siehe security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Fazit

Verglichen mit gar nichts verbessert der Skill ein Review der gesamten Codebasis deutlich, vor allem indem er Berichtsstruktur und Vokabular erzwingt, und kostet 1.8x Token. Ein einzelner Satz, der dieselben Gerüche auflistet, holt den Großteil des Gewinns; die Installation lohnt sich vor allem, wenn Sie jedes Mal das identische Berichtsformat wollen.

Transkript

Laufprotokoll: improve-codebase-architecture (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Spalten: Aufgabe, Gruppe-Lauf, Punktzahl (0-5), Tokens, Sekunden, bestandene Prüfungen, vom Agenten geöffnete Skill-Dateien.

t1-scan control-1: Punkte 1.67, Tokens 154044, Sek. 168.7, Prüfungen 2/6, nichts geöffnet
t1-scan control-2: Punkte 4.17, Tokens 154957, Sek. 158.2, Prüfungen 5/6, nichts geöffnet
t1-scan oneliner-1: Punkte 4.24, Tokens 158136, Sek. 159.2, Prüfungen 6/6, nichts geöffnet
t1-scan oneliner-2: Punkte 4.24, Tokens 158141, Sek. 183.3, Prüfungen 6/6, nichts geöffnet
t1-scan treatment-1: Punkte 4.62, Tokens 229717, Sek. 180.3, Prüfungen 6/6, geöffnet codebase-design,improve-codebase-architecture
t1-scan treatment-2: Punkte 4.24, Tokens 258001, Sek. 158.7, Prüfungen 6/6, geöffnet codebase-design,improve-codebase-architecture
t2-focus control-1: Punkte 1.25, Tokens 107480, Sek. 117.6, Prüfungen 2/4, nichts geöffnet
t2-focus control-2: Punkte 2.92, Tokens 125637, Sek. 137.1, Prüfungen 2/4, nichts geöffnet
t2-focus oneliner-1: Punkte 2.5, Tokens 139088, Sek. 200.6, Prüfungen 3/4, nichts geöffnet

18 Läufe, 3 Artefakte

Beispielausgabe

SOTA · With the skill: report.html (t1-scan, run 1, Codex)

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Small shop — architecture review</title> <style> :root{color-scheme:light;--ink:#182b36;--muted:#52616b;--accent:#13745b;--paper:#f5f3ed;--line:#d6ddd8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}main{max-width:1120px;margin:auto;padding:50px 28px}h1,h2,h3{line-height:1.18}h1{font: clamp(34px,5vw,58px)/1.1 Georgia,serif;margin:12px 0}h2{font:30px/1.2 Georgia,serif;margin:12px 0}h3{font-size:16px}a{color:var(--accent)}.eyebrow,.label{font-size:12px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.muted{color:var(--muted)}header{margin-bottom:30px}.summary,article,.top{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;margin:24px 0}article{border-top:4px solid var(--accent)}.badge{display:inline-block;padding:4px 12px;border-radius:20px;background:#dff3e9;color:#07583f;font-size:13px;font-weight:700}.explore{background:#fff0ce;color:#805800}.files{font:13px/1.8 ui-monospace,monospace;color:var(--muted);overflow-wrap:anywhere}.diagrams{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.diagram{padding:20px;background:#f5f7f5;border-radius:10px}.diagram h3{margin:0 0 18px}.box{border:1px solid #95aaa1;border-radius:6px;background:white;padding:12px;text-align:center}.row{display:flex;gap:10px}.row>*{flex:1}.arrow{text-align:center;color:var(--accent);font-weight:700;padding:6px}.leak{color:#ad3f35}.deep{background:var(--ink);color:#fff;border:4px solid var(--ink);border-radius:8px;padding:16px;text-align:center}.inside{margin-top:12px;border-top:1px solid #7d9b98;padding:12px 4px;color:#d2e4df;font-size:14px}.seam{border-top:2px dashed #80958c;margin:12px 0;padding-top:8px;text-align:center;font-size:13px;color:var(--muted)}p{margin:12px 0}ul{padding-left:22px}li{margin:6px 0}.note{border-left:3px solid #d29b35;padding:8px 14px;background:#fff9eb}.top{background:#e3eee7}.index{display:flex;gap:20px;flex-wrap:wrap}.footer{font-size:13px;color:var(--muted)}@media(max-width:720px){main{padding:24px 14px}.diagrams{grid-template-columns:1fr}article,.summary,.top{padding:20px}}@media print{body{background:#fff}main{padding:0}article{break-inside:avoid}a{color:inherit}} </style> </head> <body><main> <header><div class="eyebrow">Architecture review · 2 November 2026</div><h1>Give shop behavior<br>one place to live.</h1><p class="muted">Three focused opportunities for change locality and test leverage.</p><nav class="index" aria-label="Candidates"><a href="#pricing">01 Pricing</a><a href="#inventory">02 Inventory</a><a href="#order">03 Order execution</a></nav></header> <section class="summary" aria-label="Scope and evidence"> <h2>Scope &amp; confidence</h2> <p>Reviewed all ten Python files in <code>shop/</code>, <code>tests/test_helpers.py</code>, README, and available history at <code>39cbee1</code>. History contains only <code>init</code>; no change hotspots can be inferred. No <code>GLOSSARY.md</code>, <code>docs/adr/</code>, or <code>AGENTS.md</code> was found. Domain names below come from [... excerpt: first 3200 of 13128 characters]

Pro ansehen