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
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
BestandenGetestet 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
SicherStatischer 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
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
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 3.2 | 115k |
| Ein-Satz-Prompt | 3.91 | 120k |
| Mit Skill | 4.12 | 208k |
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.
- 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…
- 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…
- 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."
| Aufgabe | Punktzahl Kontrolle | Ein-Satz | Mit Skill | Token Kontrolle | Token Ein-Satz | Token mit Skill | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-scan | 2.92 | 4.24 | 4.43 | 154k | 158k | 243k | 2/2 |
| t2-focus | 2.08 | 2.5 | 3.75 | 116k | 133k | 228k | 2/2 |
| t3-testing | 4.58 | 5.0 | 4.17 | 74k | 67k | 150k | 2/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
| Dimension | Punktzahl | Begründung |
|---|---|---|
| 1_output_quality | 4.12 | Durchschnitt 4.12/5 mit Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 2.92 | +0.92 Punkte gegenüber 3.20 ohne Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen). |
| 3_trigger | 5.0 | Skill-Datei in 6/6 Mit-Skill-Läufen gelesen. |
| 4_instructions_portability | 4 | Hängt von einem Schwester-Skill (codebase-design) und optional
|
| 5_efficiency | 2 | 1.80x Token (208k vs. 115k pro Lauf) und 1.20x Zeit (135s vs. 112s). |
| 6_safety_hygiene | 5 | 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 & 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]